bdy 1.25.1-master → 1.25.2-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/distTs/package.json +2 -6
- package/distTs/src/command/api/info.js +224 -255
- package/distTs/src/command/api/list.js +14 -17
- package/distTs/src/command/yaml/actions/detect.js +11 -2
- package/distTs/src/command/yaml/actions/info.js +22 -12
- package/distTs/src/command/yaml/actions/list.js +11 -20
- package/distTs/src/command/yaml/actions/schema.js +43 -87
- package/distTs/src/command/yaml/pipeline.js +9 -25
- package/distTs/src/command/yaml/render.js +83 -71
- package/distTs/src/command/yaml/schemaUtils.js +12 -50
- package/distTs/src/command/yaml/validate.js +32 -27
- package/distTs/src/diskCache.js +0 -1
- package/distTs/src/openapi.js +16 -68
- package/distTs/src/texts.js +7 -9
- package/package.json +2 -6
- package/distTs/README.md +0 -181
- package/distTs/src/autocomplete.js +0 -90
- package/distTs/src/command/autocomplete/install.js +0 -16
- package/distTs/src/command/autocomplete/uninstall.js +0 -16
- package/distTs/src/command/autocomplete.js +0 -14
- package/distTs/src/command/environment/resolve.js +0 -47
- package/distTs/src/command/package/create.js +0 -64
- package/distTs/src/command/package/delete.js +0 -38
- package/distTs/src/command/package/docker/login.js +0 -26
- package/distTs/src/command/package/docker.js +0 -11
- package/distTs/src/command/package/download.js +0 -138
- package/distTs/src/command/package/get.js +0 -36
- package/distTs/src/command/package/list.js +0 -31
- package/distTs/src/command/package/publish.js +0 -241
- package/distTs/src/command/package/version/delete.js +0 -39
- package/distTs/src/command/package/version/get.js +0 -45
- package/distTs/src/command/package/version/list.js +0 -47
- package/distTs/src/command/package/version.js +0 -16
- package/distTs/src/command/package.js +0 -26
- package/distTs/src/command/project/get.js +0 -18
- package/distTs/src/command/project/set.js +0 -31
- package/distTs/src/command/sandbox/get/yaml.js +0 -30
- package/distTs/src/command/scrape/validation.js +0 -154
- package/distTs/src/command/scrape.js +0 -144
- package/distTs/src/command/ut/upload.js +0 -86
- package/distTs/src/command/ut.js +0 -12
- package/distTs/src/command/vt/close.js +0 -27
- package/distTs/src/command/vt/compare/validation.js +0 -46
- package/distTs/src/command/vt/compare.js +0 -100
- package/distTs/src/command/vt/exec.js +0 -82
- package/distTs/src/command/vt/installBrowser.js +0 -20
- package/distTs/src/command/vt/scrape.js +0 -193
- package/distTs/src/command/vt/shared/validation.js +0 -145
- package/distTs/src/command/vt/storybook.js +0 -138
- package/distTs/src/command/vt.js +0 -20
- package/distTs/src/main.js +0 -190
- package/distTs/src/types/options.js +0 -2
- package/distTs/src/types/scrape.js +0 -2
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../utils");
|
|
7
|
-
const texts_1 = require("../../texts");
|
|
8
|
-
const output_1 = __importDefault(require("../../output"));
|
|
9
|
-
const node_fs_1 = require("node:fs");
|
|
10
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
-
const node_zlib_1 = require("node:zlib");
|
|
12
|
-
const commandVtStorybook = (0, utils_1.newCommand)('storybook', texts_1.DESC_COMMAND_VT_STORYBOOK);
|
|
13
|
-
commandVtStorybook.action(async () => {
|
|
14
|
-
const { getCiAndGitInfo, formattedCiInfo } = require('@buddy-works/ci-info');
|
|
15
|
-
const { checkToken } = require('../../visualTest/validation');
|
|
16
|
-
const { getDefaultSettings, sendStorybook } = require('../../visualTest/requests');
|
|
17
|
-
const { setDefaultSettings } = require('../../visualTest/snapshots');
|
|
18
|
-
const { setCiAndCommitInfo } = require('../../visualTest/context');
|
|
19
|
-
if (!checkToken('vt')) {
|
|
20
|
-
output_1.default.exitError(texts_1.ERR_MISSING_VT_TOKEN);
|
|
21
|
-
}
|
|
22
|
-
const currentDirectoryFiles = getCurrentDirectoryFiles();
|
|
23
|
-
if (!isStorybookDirectory(currentDirectoryFiles)) {
|
|
24
|
-
output_1.default.exitError(texts_1.ERR_WRONG_STORYBOOK_DIRECTORY);
|
|
25
|
-
}
|
|
26
|
-
const storybookStoriesIndex = getStorybookStoriesIndex(currentDirectoryFiles);
|
|
27
|
-
const storiesList = getStoriesList(storybookStoriesIndex);
|
|
28
|
-
const storybookSnapshots = getStorybookSnapshots(storiesList);
|
|
29
|
-
const defaultSettings = await getDefaultSettings();
|
|
30
|
-
setDefaultSettings(defaultSettings);
|
|
31
|
-
const ciAndGitInfo = await getCiAndGitInfo({
|
|
32
|
-
baseBranch: defaultSettings.baseBranch,
|
|
33
|
-
logger: output_1.default.warning,
|
|
34
|
-
});
|
|
35
|
-
setCiAndCommitInfo(ciAndGitInfo);
|
|
36
|
-
output_1.default.normal(formattedCiInfo(ciAndGitInfo));
|
|
37
|
-
try {
|
|
38
|
-
const compressedStorybookDirectory = await createCompressedStorybookDirectory(currentDirectoryFiles);
|
|
39
|
-
const { message } = await sendStorybook(storybookSnapshots, compressedStorybookDirectory);
|
|
40
|
-
output_1.default.exitSuccess(message);
|
|
41
|
-
}
|
|
42
|
-
catch (error) {
|
|
43
|
-
output_1.default.exitError(`${error}`);
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
function getCurrentDirectoryFiles() {
|
|
47
|
-
const cwd = process.cwd();
|
|
48
|
-
const filesAndDirectories = (0, node_fs_1.readdirSync)(cwd, {
|
|
49
|
-
encoding: 'utf8',
|
|
50
|
-
recursive: true,
|
|
51
|
-
});
|
|
52
|
-
return filesAndDirectories.filter((file) => {
|
|
53
|
-
const elementPath = node_path_1.default.join(cwd, file);
|
|
54
|
-
const stats = (0, node_fs_1.statSync)(elementPath);
|
|
55
|
-
return stats.isFile();
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
async function createCompressedStorybookDirectory(files) {
|
|
59
|
-
const tar = require('tar-stream');
|
|
60
|
-
const cwd = process.cwd();
|
|
61
|
-
const chunks = [];
|
|
62
|
-
return new Promise((resolve, reject) => {
|
|
63
|
-
const compressStream = (0, node_zlib_1.createBrotliCompress)({
|
|
64
|
-
params: {
|
|
65
|
-
[node_zlib_1.constants.BROTLI_PARAM_QUALITY]: 6,
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
compressStream.on('data', (chunk) => {
|
|
69
|
-
chunks.push(chunk);
|
|
70
|
-
});
|
|
71
|
-
compressStream.on('end', () => {
|
|
72
|
-
resolve(Buffer.concat(chunks));
|
|
73
|
-
});
|
|
74
|
-
compressStream.on('error', reject);
|
|
75
|
-
const packStream = tar.pack();
|
|
76
|
-
packStream.pipe(compressStream);
|
|
77
|
-
let filesProcessed = 0;
|
|
78
|
-
for (const file of files) {
|
|
79
|
-
const filePath = node_path_1.default.join(cwd, file);
|
|
80
|
-
const stats = (0, node_fs_1.statSync)(filePath);
|
|
81
|
-
const entry = packStream.entry({
|
|
82
|
-
name: file,
|
|
83
|
-
size: stats.size,
|
|
84
|
-
}, (error) => {
|
|
85
|
-
if (error) {
|
|
86
|
-
reject(error);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
filesProcessed += 1;
|
|
90
|
-
if (filesProcessed === files.length) {
|
|
91
|
-
packStream.finalize();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
const fileStream = (0, node_fs_1.createReadStream)(filePath);
|
|
96
|
-
fileStream.pipe(entry);
|
|
97
|
-
fileStream.on('error', reject);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
function isStorybookDirectory(files) {
|
|
102
|
-
return (files.length > 0 &&
|
|
103
|
-
files.includes('index.html') &&
|
|
104
|
-
files.includes('iframe.html'));
|
|
105
|
-
}
|
|
106
|
-
function getStorybookStoriesIndex(files) {
|
|
107
|
-
const indexFiles = files.find((file) => file === 'index.json');
|
|
108
|
-
if (indexFiles) {
|
|
109
|
-
return indexFiles;
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
return output_1.default.exitError(texts_1.ERR_MISSING_STORYBOOK_INDEX_FILE);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
function getStoriesList(storybookStoriesIndex) {
|
|
116
|
-
const storiesListFile = (0, node_fs_1.readFileSync)(storybookStoriesIndex);
|
|
117
|
-
try {
|
|
118
|
-
const json = JSON.parse(storiesListFile.toString());
|
|
119
|
-
if (![4, 5].includes(json.v)) {
|
|
120
|
-
output_1.default.exitError(texts_1.ERR_UNSUPPORTED_STORYBOOK);
|
|
121
|
-
}
|
|
122
|
-
return json;
|
|
123
|
-
}
|
|
124
|
-
catch {
|
|
125
|
-
output_1.default.exitError(texts_1.ERR_PARSING_STORIES);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
function getStorybookSnapshots(storiesList) {
|
|
129
|
-
const stories = Object.entries(storiesList.entries)
|
|
130
|
-
.filter(([, value]) => value.type === 'story')
|
|
131
|
-
.map(([key, value]) => ({
|
|
132
|
-
id: key,
|
|
133
|
-
name: `${value.title}/${value.name}`,
|
|
134
|
-
}));
|
|
135
|
-
output_1.default.normal((0, texts_1.TXT_STORIES_AMOUNT)(stories.length));
|
|
136
|
-
return stories;
|
|
137
|
-
}
|
|
138
|
-
exports.default = commandVtStorybook;
|
package/distTs/src/command/vt.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const texts_1 = require("../texts");
|
|
7
|
-
const utils_1 = require("../utils");
|
|
8
|
-
const close_1 = __importDefault(require("./vt/close"));
|
|
9
|
-
const storybook_1 = __importDefault(require("./vt/storybook"));
|
|
10
|
-
const exec_1 = __importDefault(require("./vt/exec"));
|
|
11
|
-
const installBrowser_1 = __importDefault(require("./vt/installBrowser"));
|
|
12
|
-
const compare_1 = __importDefault(require("./vt/compare"));
|
|
13
|
-
const commandVt = (0, utils_1.newCommand)('visual', texts_1.DESC_COMMAND_VT);
|
|
14
|
-
commandVt.alias('vt');
|
|
15
|
-
commandVt.addCommand(close_1.default);
|
|
16
|
-
commandVt.addCommand(storybook_1.default);
|
|
17
|
-
commandVt.addCommand(exec_1.default);
|
|
18
|
-
commandVt.addCommand(installBrowser_1.default);
|
|
19
|
-
commandVt.addCommand(compare_1.default);
|
|
20
|
-
exports.default = commandVt;
|
package/distTs/src/main.js
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const output_1 = __importDefault(require("./output"));
|
|
7
|
-
const selectCommand = async (parentCommand) => {
|
|
8
|
-
let items = [];
|
|
9
|
-
const map = {};
|
|
10
|
-
parentCommand.commands.filter((c) => !c._hidden).forEach((c) => {
|
|
11
|
-
const name = c.name();
|
|
12
|
-
map[name] = c;
|
|
13
|
-
items.push({
|
|
14
|
-
name,
|
|
15
|
-
description: c.description(),
|
|
16
|
-
value: name,
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
items = items.sort((a, b) => a.name.localeCompare(b.name));
|
|
20
|
-
const goBack = 'go back';
|
|
21
|
-
items.push({
|
|
22
|
-
name: 'help',
|
|
23
|
-
description: 'Display help for current command',
|
|
24
|
-
value: 'help',
|
|
25
|
-
});
|
|
26
|
-
if (parentCommand.parent) {
|
|
27
|
-
items.unshift({
|
|
28
|
-
name: goBack,
|
|
29
|
-
description: 'Go back to parent command',
|
|
30
|
-
value: goBack
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
output_1.default.clearPreviousLine();
|
|
34
|
-
const name = await output_1.default.inputMenuAdv(getFinalCommand(parentCommand, {}, []), items);
|
|
35
|
-
if (name === 'help') {
|
|
36
|
-
parentCommand.help();
|
|
37
|
-
output_1.default.exitNormal();
|
|
38
|
-
}
|
|
39
|
-
else if (name === goBack && parentCommand.parent) {
|
|
40
|
-
return await selectCommand(parentCommand.parent);
|
|
41
|
-
}
|
|
42
|
-
const cmd = map[name];
|
|
43
|
-
if (cmd.commands.length > 0) {
|
|
44
|
-
return await selectCommand(cmd);
|
|
45
|
-
}
|
|
46
|
-
return cmd;
|
|
47
|
-
};
|
|
48
|
-
const setOptionValue = async (opt) => {
|
|
49
|
-
output_1.default.clearPreviousLine();
|
|
50
|
-
let name = opt.name();
|
|
51
|
-
const desc = opt.description;
|
|
52
|
-
if (desc)
|
|
53
|
-
name += ` (${desc})`;
|
|
54
|
-
if (opt.isBoolean()) {
|
|
55
|
-
const val = await output_1.default.inputMenu(`--${name}`, ['true', 'false']);
|
|
56
|
-
return val === 0;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
return await output_1.default.inputString(`--${name}:`, opt.defaultValue);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
const nameToCamelCase = (name) => {
|
|
63
|
-
const s = name.split('-');
|
|
64
|
-
if (s.length <= 1)
|
|
65
|
-
return name;
|
|
66
|
-
return s
|
|
67
|
-
.map((txt, i) => {
|
|
68
|
-
if (!txt || !txt.length || !i)
|
|
69
|
-
return txt;
|
|
70
|
-
return `${txt[0].toUpperCase()}${txt.substring(1)}`;
|
|
71
|
-
})
|
|
72
|
-
.join('');
|
|
73
|
-
};
|
|
74
|
-
const camelCaseToName = (cc) => {
|
|
75
|
-
return cc.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);
|
|
76
|
-
};
|
|
77
|
-
const selectOptions = async (cmd) => {
|
|
78
|
-
const options = {};
|
|
79
|
-
if (cmd.options.length > 0) {
|
|
80
|
-
const map = {};
|
|
81
|
-
let items = [];
|
|
82
|
-
cmd.options.forEach((opt) => {
|
|
83
|
-
const name = opt.name();
|
|
84
|
-
map[name] = opt;
|
|
85
|
-
items.push({
|
|
86
|
-
name: `--${name}`,
|
|
87
|
-
description: opt.description,
|
|
88
|
-
value: name,
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
items = items.sort((a, b) => a.name.localeCompare(b.name));
|
|
92
|
-
items.unshift({
|
|
93
|
-
name: 'Skip options',
|
|
94
|
-
value: '',
|
|
95
|
-
});
|
|
96
|
-
while (true) {
|
|
97
|
-
output_1.default.clearPreviousLine();
|
|
98
|
-
const name = await output_1.default.inputMenuAdv(getFinalCommand(cmd, options, []), items);
|
|
99
|
-
if (map[name]) {
|
|
100
|
-
const opt = map[name];
|
|
101
|
-
const value = await setOptionValue(opt);
|
|
102
|
-
const cc = nameToCamelCase(name);
|
|
103
|
-
if (opt.variadic) {
|
|
104
|
-
if (!options[cc])
|
|
105
|
-
options[cc] = [];
|
|
106
|
-
const o = options[cc];
|
|
107
|
-
o.push(value);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
options[cc] = value;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
break;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return options;
|
|
119
|
-
};
|
|
120
|
-
const selectArguments = async (cmd) => {
|
|
121
|
-
const args = [];
|
|
122
|
-
if (cmd.registeredArguments.length > 0) {
|
|
123
|
-
for (let i = 0; i < cmd.registeredArguments.length; i += 1) {
|
|
124
|
-
const arg = cmd.registeredArguments[i];
|
|
125
|
-
let desc = arg.name();
|
|
126
|
-
if (arg.description)
|
|
127
|
-
desc += ` - ${arg.description}`;
|
|
128
|
-
desc += ':';
|
|
129
|
-
output_1.default.clearPreviousLine();
|
|
130
|
-
const value = await output_1.default.inputString(`${desc[0].toUpperCase()}${desc.substring(1)}`, arg.defaultValue, arg.required);
|
|
131
|
-
if (arg.variadic) {
|
|
132
|
-
args.push(value.split(' '));
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
args.push(value);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return args;
|
|
140
|
-
};
|
|
141
|
-
const getFinalCommand = (cmd, options, args) => {
|
|
142
|
-
let txt = '';
|
|
143
|
-
let c = cmd;
|
|
144
|
-
while (c !== null) {
|
|
145
|
-
txt = c.name() + ' ' + txt;
|
|
146
|
-
c = c.parent;
|
|
147
|
-
}
|
|
148
|
-
txt = txt.trim();
|
|
149
|
-
Object.entries(options).forEach(([name, val]) => {
|
|
150
|
-
const n = camelCaseToName(name);
|
|
151
|
-
if (val === true) {
|
|
152
|
-
txt += ` --${n}`;
|
|
153
|
-
}
|
|
154
|
-
else if (val === false) {
|
|
155
|
-
txt += ` --${n}=false`;
|
|
156
|
-
}
|
|
157
|
-
else if (Array.isArray(val)) {
|
|
158
|
-
val.forEach((v) => {
|
|
159
|
-
txt += ` --${n}="${v}"`;
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
txt += ` --${n}="${val}"`;
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
args.forEach((arg) => {
|
|
167
|
-
if (Array.isArray(arg)) {
|
|
168
|
-
txt += ` ${arg.map(a => `"${a}"`).join(' ')}`;
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
txt += ` "${arg}"`;
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
return txt;
|
|
175
|
-
};
|
|
176
|
-
const main = async (program) => {
|
|
177
|
-
if (!output_1.default.isTTY()) {
|
|
178
|
-
program.help();
|
|
179
|
-
output_1.default.exitNormal();
|
|
180
|
-
}
|
|
181
|
-
const cmd = await selectCommand(program);
|
|
182
|
-
const options = await selectOptions(cmd);
|
|
183
|
-
const args = await selectArguments(cmd);
|
|
184
|
-
Object.entries(options).forEach(([k, v]) => cmd.setOptionValue(camelCaseToName(k), v));
|
|
185
|
-
output_1.default.clearPreviousLine();
|
|
186
|
-
output_1.default.cyan('❯ ', false);
|
|
187
|
-
output_1.default.normal(getFinalCommand(cmd, options, args));
|
|
188
|
-
await cmd._actionHandler([...args, options, cmd]);
|
|
189
|
-
};
|
|
190
|
-
exports.default = main;
|