@teambit/cli 0.0.591 → 0.0.593
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/dist/cli-parser.js +21 -106
- package/dist/cli-parser.js.map +1 -1
- package/dist/cli.aspect.js +0 -6
- package/dist/cli.aspect.js.map +1 -1
- package/dist/cli.cmd.js +3 -44
- package/dist/cli.cmd.js.map +1 -1
- package/dist/cli.composition.js +0 -6
- package/dist/cli.composition.js.map +1 -1
- package/dist/cli.main.runtime.js +11 -79
- package/dist/cli.main.runtime.js.map +1 -1
- package/dist/command-runner.js +6 -73
- package/dist/command-runner.js.map +1 -1
- package/dist/completion.cmd.js +0 -7
- package/dist/completion.cmd.js.map +1 -1
- package/dist/exceptions/already-exists.js +0 -6
- package/dist/exceptions/already-exists.js.map +1 -1
- package/dist/exceptions/command-not-found.js +0 -16
- package/dist/exceptions/command-not-found.js.map +1 -1
- package/dist/exceptions/index.js +0 -3
- package/dist/exceptions/index.js.map +1 -1
- package/dist/generate-doc-md.js +0 -33
- package/dist/generate-doc-md.js.map +1 -1
- package/dist/get-command-id.js +0 -3
- package/dist/get-command-id.js.map +1 -1
- package/dist/help.cmd.js +1 -12
- package/dist/help.cmd.js.map +1 -1
- package/dist/help.js +0 -23
- package/dist/help.js.map +1 -1
- package/dist/index.js +0 -11
- package/dist/index.js.map +1 -1
- package/dist/legacy-command-adapter.js +0 -14
- package/dist/legacy-command-adapter.js.map +1 -1
- package/dist/yargs-adapter.js +6 -41
- package/dist/yargs-adapter.js.map +1 -1
- package/package-tar/teambit-cli-0.0.593.tgz +0 -0
- package/package.json +5 -5
- package/{preview-1666409808293.js → preview-1666755696699.js} +2 -2
- package/package-tar/teambit-cli-0.0.591.tgz +0 -0
package/dist/cli-parser.js
CHANGED
|
@@ -1,130 +1,91 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.array.iterator.js");
|
|
6
|
-
|
|
7
5
|
require("core-js/modules/es.promise.js");
|
|
8
|
-
|
|
9
6
|
require("core-js/modules/es.regexp.exec.js");
|
|
10
|
-
|
|
11
7
|
require("core-js/modules/es.string.replace.js");
|
|
12
|
-
|
|
13
8
|
Object.defineProperty(exports, "__esModule", {
|
|
14
9
|
value: true
|
|
15
10
|
});
|
|
16
11
|
exports.CLIParser = void 0;
|
|
17
|
-
|
|
18
12
|
function _didyoumean() {
|
|
19
13
|
const data = _interopRequireDefault(require("didyoumean"));
|
|
20
|
-
|
|
21
14
|
_didyoumean = function () {
|
|
22
15
|
return data;
|
|
23
16
|
};
|
|
24
|
-
|
|
25
17
|
return data;
|
|
26
18
|
}
|
|
27
|
-
|
|
28
19
|
function _yargs() {
|
|
29
20
|
const data = _interopRequireDefault(require("yargs"));
|
|
30
|
-
|
|
31
21
|
_yargs = function () {
|
|
32
22
|
return data;
|
|
33
23
|
};
|
|
34
|
-
|
|
35
24
|
return data;
|
|
36
25
|
}
|
|
37
|
-
|
|
38
26
|
function _lodash() {
|
|
39
27
|
const data = require("lodash");
|
|
40
|
-
|
|
41
28
|
_lodash = function () {
|
|
42
29
|
return data;
|
|
43
30
|
};
|
|
44
|
-
|
|
45
31
|
return data;
|
|
46
32
|
}
|
|
47
|
-
|
|
48
33
|
function _consumer() {
|
|
49
34
|
const data = require("@teambit/legacy/dist/consumer");
|
|
50
|
-
|
|
51
35
|
_consumer = function () {
|
|
52
36
|
return data;
|
|
53
37
|
};
|
|
54
|
-
|
|
55
38
|
return data;
|
|
56
39
|
}
|
|
57
|
-
|
|
58
40
|
function _logger() {
|
|
59
41
|
const data = _interopRequireDefault(require("@teambit/legacy/dist/logger/logger"));
|
|
60
|
-
|
|
61
42
|
_logger = function () {
|
|
62
43
|
return data;
|
|
63
44
|
};
|
|
64
|
-
|
|
65
45
|
return data;
|
|
66
46
|
}
|
|
67
|
-
|
|
68
47
|
function _loader() {
|
|
69
48
|
const data = _interopRequireDefault(require("@teambit/legacy/dist/cli/loader"));
|
|
70
|
-
|
|
71
49
|
_loader = function () {
|
|
72
50
|
return data;
|
|
73
51
|
};
|
|
74
|
-
|
|
75
52
|
return data;
|
|
76
53
|
}
|
|
77
|
-
|
|
78
54
|
function _chalk() {
|
|
79
55
|
const data = _interopRequireDefault(require("chalk"));
|
|
80
|
-
|
|
81
56
|
_chalk = function () {
|
|
82
57
|
return data;
|
|
83
58
|
};
|
|
84
|
-
|
|
85
59
|
return data;
|
|
86
60
|
}
|
|
87
|
-
|
|
88
61
|
function _getCommandId() {
|
|
89
62
|
const data = require("./get-command-id");
|
|
90
|
-
|
|
91
63
|
_getCommandId = function () {
|
|
92
64
|
return data;
|
|
93
65
|
};
|
|
94
|
-
|
|
95
66
|
return data;
|
|
96
67
|
}
|
|
97
|
-
|
|
98
68
|
function _help() {
|
|
99
69
|
const data = require("./help");
|
|
100
|
-
|
|
101
70
|
_help = function () {
|
|
102
71
|
return data;
|
|
103
72
|
};
|
|
104
|
-
|
|
105
73
|
return data;
|
|
106
74
|
}
|
|
107
|
-
|
|
108
75
|
function _yargsAdapter() {
|
|
109
76
|
const data = require("./yargs-adapter");
|
|
110
|
-
|
|
111
77
|
_yargsAdapter = function () {
|
|
112
78
|
return data;
|
|
113
79
|
};
|
|
114
|
-
|
|
115
80
|
return data;
|
|
116
81
|
}
|
|
117
|
-
|
|
118
82
|
function _commandNotFound() {
|
|
119
83
|
const data = require("./exceptions/command-not-found");
|
|
120
|
-
|
|
121
84
|
_commandNotFound = function () {
|
|
122
85
|
return data;
|
|
123
86
|
};
|
|
124
|
-
|
|
125
87
|
return data;
|
|
126
88
|
}
|
|
127
|
-
|
|
128
89
|
class CLIParser {
|
|
129
90
|
constructor(commands, groups, parser = _yargs().default, docsDomain) {
|
|
130
91
|
this.commands = commands;
|
|
@@ -132,23 +93,17 @@ class CLIParser {
|
|
|
132
93
|
this.parser = parser;
|
|
133
94
|
this.docsDomain = docsDomain;
|
|
134
95
|
}
|
|
135
|
-
|
|
136
96
|
async parse(args = process.argv.slice(2)) {
|
|
137
97
|
this.throwForNonExistsCommand(args[0]);
|
|
138
|
-
|
|
139
98
|
_logger().default.debug(`[+] CLI-INPUT: ${args.join(' ')}`);
|
|
140
|
-
|
|
141
99
|
(0, _yargs().default)(args);
|
|
142
|
-
|
|
143
100
|
_yargs().default.help(false);
|
|
144
|
-
|
|
145
101
|
this.configureParser();
|
|
146
102
|
this.commands.forEach(command => {
|
|
147
103
|
if (command.commands && command.commands.length) {
|
|
148
104
|
this.parseCommandWithSubCommands(command);
|
|
149
105
|
} else {
|
|
150
106
|
const yargsCommand = this.getYargsCommand(command);
|
|
151
|
-
|
|
152
107
|
_yargs().default.command(yargsCommand);
|
|
153
108
|
}
|
|
154
109
|
});
|
|
@@ -156,16 +111,13 @@ class CLIParser {
|
|
|
156
111
|
this.setHelpMiddleware();
|
|
157
112
|
this.handleCommandFailure();
|
|
158
113
|
this.configureCompletion();
|
|
159
|
-
|
|
160
114
|
_yargs().default.strict(); // don't allow non-exist flags and non-exist commands
|
|
161
115
|
|
|
162
|
-
|
|
163
|
-
|
|
116
|
+
_yargs().default
|
|
117
|
+
// .recommendCommands() // don't use it, it brings the global help of yargs, we have a custom one
|
|
164
118
|
.wrap(null);
|
|
165
|
-
|
|
166
119
|
await _yargs().default.parse();
|
|
167
120
|
}
|
|
168
|
-
|
|
169
121
|
setHelpMiddleware() {
|
|
170
122
|
_yargs().default.middleware(argv => {
|
|
171
123
|
if (argv._.length === 0 && argv.help) {
|
|
@@ -173,45 +125,35 @@ class CLIParser {
|
|
|
173
125
|
this.printHelp();
|
|
174
126
|
process.exit(0);
|
|
175
127
|
}
|
|
176
|
-
|
|
177
128
|
if (argv.help) {
|
|
178
129
|
_loader().default.off(); // stop the "loading bit..." before showing help if needed
|
|
179
130
|
// this is a command help page
|
|
180
|
-
|
|
181
|
-
|
|
182
131
|
_yargs().default.showHelp(this.logCommandHelp.bind(this));
|
|
183
|
-
|
|
184
132
|
if (!_logger().default.isDaemon) process.exit(0);
|
|
185
133
|
}
|
|
186
134
|
}, true);
|
|
187
135
|
}
|
|
188
|
-
|
|
189
136
|
handleCommandFailure() {
|
|
190
137
|
_yargs().default.fail((msg, err) => {
|
|
191
138
|
_loader().default.stop();
|
|
192
|
-
|
|
193
139
|
if (err) {
|
|
194
140
|
throw err;
|
|
195
141
|
}
|
|
196
|
-
|
|
197
142
|
_yargs().default.showHelp(this.logCommandHelp.bind(this));
|
|
198
|
-
|
|
199
143
|
const args = process.argv.slice(2);
|
|
200
144
|
const isHelpFlagEntered = args.includes('--help') || args.includes('-h');
|
|
201
|
-
const isMsgAboutMissingArgs = msg.startsWith('Not enough non-option arguments');
|
|
202
|
-
|
|
145
|
+
const isMsgAboutMissingArgs = msg.startsWith('Not enough non-option arguments');
|
|
146
|
+
// avoid showing the "Not enough non-option arguments" message when the user is trying to get the command help
|
|
203
147
|
if (!isMsgAboutMissingArgs || !isHelpFlagEntered) {
|
|
204
148
|
// eslint-disable-next-line no-console
|
|
205
149
|
console.log(`\n${_chalk().default.yellow(msg)}`);
|
|
206
150
|
}
|
|
207
|
-
|
|
208
151
|
if (!_logger().default.isDaemon) process.exit(1);
|
|
209
152
|
});
|
|
210
153
|
}
|
|
211
|
-
|
|
212
154
|
configureCompletion() {
|
|
213
|
-
const commandsToShowComponentIdsForCompletion = ['show', 'diff', 'tag', 'export', 'env', 'envs', 'compile', 'build', 'test', 'lint', 'log', 'dependents', 'dependencies'];
|
|
214
|
-
|
|
155
|
+
const commandsToShowComponentIdsForCompletion = ['show', 'diff', 'tag', 'export', 'env', 'envs', 'compile', 'build', 'test', 'lint', 'log', 'dependents', 'dependencies'];
|
|
156
|
+
// @ts-ignore
|
|
215
157
|
_yargs().default.completion('completion', async function (current, argv, completionFilter, done) {
|
|
216
158
|
if (!current.startsWith('-') && commandsToShowComponentIdsForCompletion.includes(argv._[1])) {
|
|
217
159
|
const consumer = await (0, _consumer().loadConsumerIfExist)();
|
|
@@ -221,13 +163,11 @@ class CLIParser {
|
|
|
221
163
|
}
|
|
222
164
|
});
|
|
223
165
|
}
|
|
224
|
-
|
|
225
166
|
printHelp() {
|
|
226
|
-
const help = (0, _help().formatHelp)(this.commands, this.groups, this.docsDomain);
|
|
227
|
-
|
|
167
|
+
const help = (0, _help().formatHelp)(this.commands, this.groups, this.docsDomain);
|
|
168
|
+
// eslint-disable-next-line no-console
|
|
228
169
|
console.log(help);
|
|
229
170
|
}
|
|
230
|
-
|
|
231
171
|
configureParser() {
|
|
232
172
|
_yargs().default.parserConfiguration({
|
|
233
173
|
// 'strip-dashed': true, // we can't enable it, otherwise, the completion doesn't work
|
|
@@ -236,36 +176,27 @@ class CLIParser {
|
|
|
236
176
|
'populate--': true
|
|
237
177
|
});
|
|
238
178
|
}
|
|
239
|
-
|
|
240
179
|
parseCommandWithSubCommands(command) {
|
|
241
180
|
const yarnCommand = this.getYargsCommand(command);
|
|
242
|
-
|
|
243
181
|
const builderFunc = () => {
|
|
244
182
|
var _command$commands;
|
|
245
|
-
|
|
246
183
|
(_command$commands = command.commands) === null || _command$commands === void 0 ? void 0 : _command$commands.forEach(cmd => {
|
|
247
184
|
const subCommand = this.getYargsCommand(cmd);
|
|
248
|
-
|
|
249
185
|
_yargs().default.command(subCommand);
|
|
250
|
-
});
|
|
251
|
-
|
|
186
|
+
});
|
|
187
|
+
// since the "builder" method is overridden, the global flags of the main command are gone, this fixes it.
|
|
252
188
|
_yargs().default.options(_yargsAdapter().YargsAdapter.getGlobalOptions(command));
|
|
253
|
-
|
|
254
189
|
return _yargs().default;
|
|
255
190
|
};
|
|
256
|
-
|
|
257
191
|
yarnCommand.builder = builderFunc;
|
|
258
|
-
|
|
259
192
|
_yargs().default.command(yarnCommand);
|
|
260
193
|
}
|
|
261
|
-
|
|
262
194
|
getYargsCommand(command) {
|
|
263
195
|
const yarnCommand = new (_yargsAdapter().YargsAdapter)(command);
|
|
264
196
|
yarnCommand.builder = yarnCommand.builder.bind(yarnCommand);
|
|
265
197
|
yarnCommand.handler = yarnCommand.handler.bind(yarnCommand);
|
|
266
198
|
return yarnCommand;
|
|
267
199
|
}
|
|
268
|
-
|
|
269
200
|
configureGlobalFlags() {
|
|
270
201
|
_yargs().default.option('help', {
|
|
271
202
|
alias: 'h',
|
|
@@ -278,18 +209,15 @@ class CLIParser {
|
|
|
278
209
|
group: _yargsAdapter().GLOBAL_GROUP
|
|
279
210
|
});
|
|
280
211
|
}
|
|
281
|
-
|
|
282
212
|
throwForNonExistsCommand(commandName) {
|
|
283
213
|
if (!commandName || commandName.startsWith('-')) {
|
|
284
214
|
return;
|
|
285
215
|
}
|
|
286
|
-
|
|
287
216
|
const commandsNames = this.commands.map(c => (0, _getCommandId().getCommandId)(c.name));
|
|
288
217
|
const aliases = this.commands.map(c => c.alias).filter(a => a);
|
|
289
218
|
const existingGlobalFlags = ['-V', '--version'];
|
|
290
219
|
const validCommands = [...commandsNames, ...aliases, ...existingGlobalFlags];
|
|
291
220
|
const commandExist = validCommands.includes(commandName);
|
|
292
|
-
|
|
293
221
|
if (!commandExist) {
|
|
294
222
|
_didyoumean().default.returnFirstMatch = true;
|
|
295
223
|
const suggestions = (0, _didyoumean().default)(commandName, this.commands.filter(c => !c.private).map(c => (0, _getCommandId().getCommandId)(c.name)));
|
|
@@ -297,6 +225,7 @@ class CLIParser {
|
|
|
297
225
|
throw new (_commandNotFound().CommandNotFound)(commandName, suggestion);
|
|
298
226
|
}
|
|
299
227
|
}
|
|
228
|
+
|
|
300
229
|
/**
|
|
301
230
|
* manipulate the command help output. there is no API from Yarn to do any of this, so it needs to be done manually.
|
|
302
231
|
* see https://github.com/yargs/yargs/issues/1956
|
|
@@ -309,13 +238,9 @@ class CLIParser {
|
|
|
309
238
|
* Positionals
|
|
310
239
|
* Examples
|
|
311
240
|
*/
|
|
312
|
-
|
|
313
|
-
|
|
314
241
|
logCommandHelp(help) {
|
|
315
242
|
const command = this.findCommandByArgv();
|
|
316
|
-
|
|
317
243
|
const replacer = (_, p1, p2) => `${p1}${_chalk().default.green(p2)}`;
|
|
318
|
-
|
|
319
244
|
const lines = help.split('\n');
|
|
320
245
|
const linesWithoutEmpty = (0, _lodash().compact)(lines);
|
|
321
246
|
const cmdLine = linesWithoutEmpty[0];
|
|
@@ -330,10 +255,8 @@ class CLIParser {
|
|
|
330
255
|
let subCommandsStarted = false;
|
|
331
256
|
let positionalsStarted = false;
|
|
332
257
|
let examplesStarted = false;
|
|
333
|
-
|
|
334
258
|
for (let i = 1; i < linesWithoutEmpty.length; i += 1) {
|
|
335
259
|
const currentLine = linesWithoutEmpty[i];
|
|
336
|
-
|
|
337
260
|
if (currentLine === _yargsAdapter().STANDARD_GROUP) {
|
|
338
261
|
optionsStarted = true;
|
|
339
262
|
} else if (currentLine === _yargsAdapter().GLOBAL_GROUP) {
|
|
@@ -357,27 +280,23 @@ class CLIParser {
|
|
|
357
280
|
} else {
|
|
358
281
|
description.push(currentLine);
|
|
359
282
|
}
|
|
360
|
-
}
|
|
361
|
-
|
|
283
|
+
}
|
|
362
284
|
|
|
285
|
+
// show the flags in green
|
|
363
286
|
const optionsColored = options.map(opt => opt.replace(/(--)([\w-]+)/, replacer).replace(/(-)([\w-]+)/, replacer));
|
|
364
287
|
const argsColored = args.map(arg => arg.replace(/^ {2}\S+/, argName => _chalk().default.green(argName))); // regex: two spaces then the first word until a white space
|
|
365
|
-
|
|
366
288
|
const optionsStr = options.length ? `\n${_yargsAdapter().STANDARD_GROUP}\n${optionsColored.join('\n')}\n` : '';
|
|
367
289
|
const argumentsStr = args.length ? `\nArguments:\n${argsColored.join('\n')}\n` : '';
|
|
368
290
|
const examplesStr = examples.length ? `\nExamples:\n${examples.join('\n')}\n` : '';
|
|
369
|
-
const subCommandsStr = subCommands.length ? `\n${'Commands:'}\n${subCommands.join('\n')}\n` : '';
|
|
370
|
-
|
|
291
|
+
const subCommandsStr = subCommands.length ? `\n${'Commands:'}\n${subCommands.join('\n')}\n` : '';
|
|
292
|
+
// show the description in bold
|
|
371
293
|
const descriptionColored = description.map(desc => _chalk().default.bold(desc));
|
|
372
|
-
|
|
373
294
|
if (command !== null && command !== void 0 && command.extendedDescription) {
|
|
374
295
|
descriptionColored.push(command === null || command === void 0 ? void 0 : command.extendedDescription);
|
|
375
296
|
}
|
|
376
|
-
|
|
377
297
|
if (command !== null && command !== void 0 && command.helpUrl) {
|
|
378
298
|
descriptionColored.push(`for more info, visit: ${_chalk().default.underline(command.helpUrl)}`);
|
|
379
299
|
}
|
|
380
|
-
|
|
381
300
|
const descriptionStr = descriptionColored.join('\n');
|
|
382
301
|
const globalOptionsStr = globalOptions.join('\n');
|
|
383
302
|
const finalOutput = `${cmdLine}
|
|
@@ -385,32 +304,30 @@ class CLIParser {
|
|
|
385
304
|
${descriptionStr}
|
|
386
305
|
${argumentsStr}${subCommandsStr}${optionsStr}${examplesStr}
|
|
387
306
|
${_yargsAdapter().GLOBAL_GROUP}
|
|
388
|
-
${globalOptionsStr}`;
|
|
307
|
+
${globalOptionsStr}`;
|
|
389
308
|
|
|
309
|
+
// eslint-disable-next-line no-console
|
|
390
310
|
console.log(finalOutput);
|
|
391
311
|
}
|
|
392
|
-
|
|
393
312
|
findCommandByArgv() {
|
|
394
313
|
const args = process.argv.slice(2);
|
|
395
314
|
const enteredCommand = args[0];
|
|
396
315
|
const enteredSubCommand = args[1];
|
|
397
|
-
|
|
398
316
|
if (!enteredCommand) {
|
|
399
317
|
return undefined;
|
|
400
318
|
}
|
|
401
|
-
|
|
402
319
|
const isCommandMatch = (cmd, str) => {
|
|
403
|
-
return cmd.name.startsWith(`${str} `) ||
|
|
404
|
-
|
|
320
|
+
return cmd.name.startsWith(`${str} `) ||
|
|
321
|
+
// e.g. "tag <id>".startsWith("tag ")
|
|
322
|
+
cmd.name === str ||
|
|
323
|
+
// e.g. "globals" === "globals"
|
|
405
324
|
cmd.alias === str; // e.g. "t" === "t"
|
|
406
325
|
};
|
|
407
326
|
|
|
408
327
|
const command = this.commands.find(cmd => isCommandMatch(cmd, enteredCommand));
|
|
409
|
-
|
|
410
328
|
if (!command) {
|
|
411
329
|
return undefined;
|
|
412
330
|
}
|
|
413
|
-
|
|
414
331
|
if (!command.commands || !enteredSubCommand) {
|
|
415
332
|
return command; // no sub-commands.
|
|
416
333
|
}
|
|
@@ -418,9 +335,7 @@ ${globalOptionsStr}`; // eslint-disable-next-line no-console
|
|
|
418
335
|
const subCommand = command.commands.find(cmd => isCommandMatch(cmd, enteredSubCommand));
|
|
419
336
|
return subCommand || command;
|
|
420
337
|
}
|
|
421
|
-
|
|
422
338
|
}
|
|
423
|
-
|
|
424
339
|
exports.CLIParser = CLIParser;
|
|
425
340
|
|
|
426
341
|
//# sourceMappingURL=cli-parser.js.map
|
package/dist/cli-parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CLIParser","constructor","commands","groups","parser","yargs","docsDomain","parse","args","process","argv","slice","throwForNonExistsCommand","logger","debug","join","help","configureParser","forEach","command","length","parseCommandWithSubCommands","yargsCommand","getYargsCommand","configureGlobalFlags","setHelpMiddleware","handleCommandFailure","configureCompletion","strict","wrap","middleware","_","printHelp","exit","loader","off","showHelp","logCommandHelp","bind","isDaemon","fail","msg","err","stop","isHelpFlagEntered","includes","isMsgAboutMissingArgs","startsWith","console","log","chalk","yellow","commandsToShowComponentIdsForCompletion","completion","current","completionFilter","done","consumer","loadConsumerIfExist","bitmapIdsFromCurrentLane","map","id","toStringWithoutVersion","formatHelp","parserConfiguration","yarnCommand","builderFunc","cmd","subCommand","options","YargsAdapter","getGlobalOptions","builder","handler","option","alias","describe","group","GLOBAL_GROUP","global","commandName","commandsNames","c","getCommandId","name","aliases","filter","a","existingGlobalFlags","validCommands","commandExist","didYouMean","returnFirstMatch","suggestions","private","suggestion","Array","isArray","CommandNotFound","findCommandByArgv","replacer","p1","p2","green","lines","split","linesWithoutEmpty","compact","cmdLine","description","globalOptions","subCommands","examples","optionsStarted","globalStarted","subCommandsStarted","positionalsStarted","examplesStarted","i","currentLine","STANDARD_GROUP","push","optionsColored","opt","replace","argsColored","arg","argName","optionsStr","argumentsStr","examplesStr","subCommandsStr","descriptionColored","desc","bold","extendedDescription","helpUrl","underline","descriptionStr","globalOptionsStr","finalOutput","enteredCommand","enteredSubCommand","undefined","isCommandMatch","str","find"],"sources":["cli-parser.ts"],"sourcesContent":["import didYouMean from 'didyoumean';\nimport yargs from 'yargs';\nimport { Command } from '@teambit/legacy/dist/cli/command';\nimport { GroupsType } from '@teambit/legacy/dist/cli/command-groups';\nimport { compact } from 'lodash';\nimport { loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport chalk from 'chalk';\nimport { getCommandId } from './get-command-id';\nimport { formatHelp } from './help';\nimport { GLOBAL_GROUP, STANDARD_GROUP, YargsAdapter } from './yargs-adapter';\nimport { CommandNotFound } from './exceptions/command-not-found';\n\nexport class CLIParser {\n constructor(\n private commands: Command[],\n private groups: GroupsType,\n public parser = yargs,\n private docsDomain: string\n ) {}\n\n async parse(args = process.argv.slice(2)) {\n this.throwForNonExistsCommand(args[0]);\n logger.debug(`[+] CLI-INPUT: ${args.join(' ')}`);\n yargs(args);\n yargs.help(false);\n this.configureParser();\n this.commands.forEach((command: Command) => {\n if (command.commands && command.commands.length) {\n this.parseCommandWithSubCommands(command);\n } else {\n const yargsCommand = this.getYargsCommand(command);\n yargs.command(yargsCommand);\n }\n });\n this.configureGlobalFlags();\n this.setHelpMiddleware();\n this.handleCommandFailure();\n this.configureCompletion();\n yargs.strict(); // don't allow non-exist flags and non-exist commands\n\n yargs\n // .recommendCommands() // don't use it, it brings the global help of yargs, we have a custom one\n .wrap(null);\n\n await yargs.parse();\n }\n\n private setHelpMiddleware() {\n yargs.middleware((argv) => {\n if (argv._.length === 0 && argv.help) {\n // this is the main help page\n this.printHelp();\n process.exit(0);\n }\n if (argv.help) {\n loader.off(); // stop the \"loading bit...\" before showing help if needed\n // this is a command help page\n yargs.showHelp(this.logCommandHelp.bind(this));\n if (!logger.isDaemon) process.exit(0);\n }\n }, true);\n }\n\n private handleCommandFailure() {\n yargs.fail((msg, err) => {\n loader.stop();\n if (err) {\n throw err;\n }\n yargs.showHelp(this.logCommandHelp.bind(this));\n const args = process.argv.slice(2);\n const isHelpFlagEntered = args.includes('--help') || args.includes('-h');\n const isMsgAboutMissingArgs = msg.startsWith('Not enough non-option arguments');\n // avoid showing the \"Not enough non-option arguments\" message when the user is trying to get the command help\n if (!isMsgAboutMissingArgs || !isHelpFlagEntered) {\n // eslint-disable-next-line no-console\n console.log(`\\n${chalk.yellow(msg)}`);\n }\n if (!logger.isDaemon) process.exit(1);\n });\n }\n\n private configureCompletion() {\n const commandsToShowComponentIdsForCompletion = [\n 'show',\n 'diff',\n 'tag',\n 'export',\n 'env',\n 'envs',\n 'compile',\n 'build',\n 'test',\n 'lint',\n 'log',\n 'dependents',\n 'dependencies',\n ];\n // @ts-ignore\n yargs.completion('completion', async function (current, argv, completionFilter, done) {\n if (!current.startsWith('-') && commandsToShowComponentIdsForCompletion.includes(argv._[1])) {\n const consumer = await loadConsumerIfExist();\n done(consumer?.bitmapIdsFromCurrentLane.map((id) => id.toStringWithoutVersion()));\n } else {\n completionFilter();\n }\n });\n }\n\n private printHelp() {\n const help = formatHelp(this.commands, this.groups, this.docsDomain);\n // eslint-disable-next-line no-console\n console.log(help);\n }\n\n private configureParser() {\n yargs.parserConfiguration({\n // 'strip-dashed': true, // we can't enable it, otherwise, the completion doesn't work\n 'strip-aliased': true,\n 'boolean-negation': false,\n 'populate--': true,\n });\n }\n\n private parseCommandWithSubCommands(command: Command) {\n const yarnCommand = this.getYargsCommand(command);\n const builderFunc = () => {\n command.commands?.forEach((cmd) => {\n const subCommand = this.getYargsCommand(cmd);\n yargs.command(subCommand);\n });\n // since the \"builder\" method is overridden, the global flags of the main command are gone, this fixes it.\n yargs.options(YargsAdapter.getGlobalOptions(command));\n return yargs;\n };\n yarnCommand.builder = builderFunc;\n yargs.command(yarnCommand);\n }\n\n private getYargsCommand(command: Command): YargsAdapter {\n const yarnCommand = new YargsAdapter(command);\n yarnCommand.builder = yarnCommand.builder.bind(yarnCommand);\n yarnCommand.handler = yarnCommand.handler.bind(yarnCommand);\n\n return yarnCommand;\n }\n\n private configureGlobalFlags() {\n yargs\n .option('help', {\n alias: 'h',\n describe: 'show help',\n group: GLOBAL_GROUP,\n })\n .option('version', {\n global: false,\n alias: 'v',\n describe: 'show version',\n group: GLOBAL_GROUP,\n });\n }\n\n private throwForNonExistsCommand(commandName: string) {\n if (!commandName || commandName.startsWith('-')) {\n return;\n }\n const commandsNames = this.commands.map((c) => getCommandId(c.name));\n const aliases = this.commands.map((c) => c.alias).filter((a) => a);\n const existingGlobalFlags = ['-V', '--version'];\n const validCommands = [...commandsNames, ...aliases, ...existingGlobalFlags];\n const commandExist = validCommands.includes(commandName);\n\n if (!commandExist) {\n didYouMean.returnFirstMatch = true;\n const suggestions = didYouMean(\n commandName,\n this.commands.filter((c) => !c.private).map((c) => getCommandId(c.name))\n );\n const suggestion = suggestions && Array.isArray(suggestions) ? suggestions[0] : suggestions;\n\n throw new CommandNotFound(commandName, suggestion as string);\n }\n }\n\n /**\n * manipulate the command help output. there is no API from Yarn to do any of this, so it needs to be done manually.\n * see https://github.com/yargs/yargs/issues/1956\n *\n * the original order of the output:\n * description\n * Options\n * Commands\n * Global\n * Positionals\n * Examples\n */\n private logCommandHelp(help: string) {\n const command = this.findCommandByArgv();\n\n const replacer = (_, p1, p2) => `${p1}${chalk.green(p2)}`;\n const lines = help.split('\\n');\n const linesWithoutEmpty = compact(lines);\n const cmdLine = linesWithoutEmpty[0];\n const description: string[] = [];\n const options: string[] = [];\n const globalOptions: string[] = [];\n const subCommands: string[] = [];\n const args: string[] = [];\n const examples: string[] = [];\n\n let optionsStarted = false;\n let globalStarted = false;\n let subCommandsStarted = false;\n let positionalsStarted = false;\n let examplesStarted = false;\n for (let i = 1; i < linesWithoutEmpty.length; i += 1) {\n const currentLine = linesWithoutEmpty[i];\n if (currentLine === STANDARD_GROUP) {\n optionsStarted = true;\n } else if (currentLine === GLOBAL_GROUP) {\n globalStarted = true;\n } else if (currentLine === 'Commands:') {\n subCommandsStarted = true;\n } else if (currentLine === 'Positionals:') {\n positionalsStarted = true;\n } else if (currentLine === 'Examples:') {\n examplesStarted = true;\n } else if (examplesStarted) {\n examples.push(currentLine);\n } else if (positionalsStarted) {\n args.push(currentLine);\n } else if (globalStarted) {\n globalOptions.push(currentLine);\n } else if (optionsStarted) {\n options.push(currentLine);\n } else if (subCommandsStarted) {\n subCommands.push(currentLine);\n } else {\n description.push(currentLine);\n }\n }\n\n // show the flags in green\n const optionsColored = options.map((opt) => opt.replace(/(--)([\\w-]+)/, replacer).replace(/(-)([\\w-]+)/, replacer));\n const argsColored = args.map((arg) => arg.replace(/^ {2}\\S+/, (argName) => chalk.green(argName))); // regex: two spaces then the first word until a white space\n const optionsStr = options.length ? `\\n${STANDARD_GROUP}\\n${optionsColored.join('\\n')}\\n` : '';\n const argumentsStr = args.length ? `\\nArguments:\\n${argsColored.join('\\n')}\\n` : '';\n const examplesStr = examples.length ? `\\nExamples:\\n${examples.join('\\n')}\\n` : '';\n const subCommandsStr = subCommands.length ? `\\n${'Commands:'}\\n${subCommands.join('\\n')}\\n` : '';\n // show the description in bold\n const descriptionColored = description.map((desc) => chalk.bold(desc));\n if (command?.extendedDescription) {\n descriptionColored.push(command?.extendedDescription);\n }\n if (command?.helpUrl) {\n descriptionColored.push(`for more info, visit: ${chalk.underline(command.helpUrl)}`);\n }\n const descriptionStr = descriptionColored.join('\\n');\n const globalOptionsStr = globalOptions.join('\\n');\n\n const finalOutput = `${cmdLine}\n\n${descriptionStr}\n${argumentsStr}${subCommandsStr}${optionsStr}${examplesStr}\n${GLOBAL_GROUP}\n${globalOptionsStr}`;\n\n // eslint-disable-next-line no-console\n console.log(finalOutput);\n }\n\n private findCommandByArgv(): Command | undefined {\n const args = process.argv.slice(2);\n const enteredCommand = args[0];\n const enteredSubCommand = args[1];\n if (!enteredCommand) {\n return undefined;\n }\n const isCommandMatch = (cmd: Command, str: string) => {\n return (\n cmd.name.startsWith(`${str} `) || // e.g. \"tag <id>\".startsWith(\"tag \")\n cmd.name === str || // e.g. \"globals\" === \"globals\"\n cmd.alias === str\n ); // e.g. \"t\" === \"t\"\n };\n const command = this.commands.find((cmd) => isCommandMatch(cmd, enteredCommand));\n if (!command) {\n return undefined;\n }\n if (!command.commands || !enteredSubCommand) {\n return command; // no sub-commands.\n }\n const subCommand = command.commands.find((cmd) => isCommandMatch(cmd, enteredSubCommand));\n return subCommand || command;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,SAAN,CAAgB;EACrBC,WAAW,CACDC,QADC,EAEDC,MAFC,EAGFC,MAAM,GAAGC,gBAHP,EAIDC,UAJC,EAKT;IAAA,KAJQJ,QAIR,GAJQA,QAIR;IAAA,KAHQC,MAGR,GAHQA,MAGR;IAAA,KAFOC,MAEP,GAFOA,MAEP;IAAA,KADQE,UACR,GADQA,UACR;EAAE;;EAEO,MAALC,KAAK,CAACC,IAAI,GAAGC,OAAO,CAACC,IAAR,CAAaC,KAAb,CAAmB,CAAnB,CAAR,EAA+B;IACxC,KAAKC,wBAAL,CAA8BJ,IAAI,CAAC,CAAD,CAAlC;;IACAK,iBAAA,CAAOC,KAAP,CAAc,kBAAiBN,IAAI,CAACO,IAAL,CAAU,GAAV,CAAe,EAA9C;;IACA,IAAAV,gBAAA,EAAMG,IAAN;;IACAH,gBAAA,CAAMW,IAAN,CAAW,KAAX;;IACA,KAAKC,eAAL;IACA,KAAKf,QAAL,CAAcgB,OAAd,CAAuBC,OAAD,IAAsB;MAC1C,IAAIA,OAAO,CAACjB,QAAR,IAAoBiB,OAAO,CAACjB,QAAR,CAAiBkB,MAAzC,EAAiD;QAC/C,KAAKC,2BAAL,CAAiCF,OAAjC;MACD,CAFD,MAEO;QACL,MAAMG,YAAY,GAAG,KAAKC,eAAL,CAAqBJ,OAArB,CAArB;;QACAd,gBAAA,CAAMc,OAAN,CAAcG,YAAd;MACD;IACF,CAPD;IAQA,KAAKE,oBAAL;IACA,KAAKC,iBAAL;IACA,KAAKC,oBAAL;IACA,KAAKC,mBAAL;;IACAtB,gBAAA,CAAMuB,MAAN,GAlBwC,CAkBxB;;;IAEhBvB,gBAAA,CACE;IADF,CAEGwB,IAFH,CAEQ,IAFR;;IAIA,MAAMxB,gBAAA,CAAME,KAAN,EAAN;EACD;;EAEOkB,iBAAiB,GAAG;IAC1BpB,gBAAA,CAAMyB,UAAN,CAAkBpB,IAAD,IAAU;MACzB,IAAIA,IAAI,CAACqB,CAAL,CAAOX,MAAP,KAAkB,CAAlB,IAAuBV,IAAI,CAACM,IAAhC,EAAsC;QACpC;QACA,KAAKgB,SAAL;QACAvB,OAAO,CAACwB,IAAR,CAAa,CAAb;MACD;;MACD,IAAIvB,IAAI,CAACM,IAAT,EAAe;QACbkB,iBAAA,CAAOC,GAAP,GADa,CACC;QACd;;;QACA9B,gBAAA,CAAM+B,QAAN,CAAe,KAAKC,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CAAf;;QACA,IAAI,CAACzB,iBAAA,CAAO0B,QAAZ,EAAsB9B,OAAO,CAACwB,IAAR,CAAa,CAAb;MACvB;IACF,CAZD,EAYG,IAZH;EAaD;;EAEOP,oBAAoB,GAAG;IAC7BrB,gBAAA,CAAMmC,IAAN,CAAW,CAACC,GAAD,EAAMC,GAAN,KAAc;MACvBR,iBAAA,CAAOS,IAAP;;MACA,IAAID,GAAJ,EAAS;QACP,MAAMA,GAAN;MACD;;MACDrC,gBAAA,CAAM+B,QAAN,CAAe,KAAKC,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CAAf;;MACA,MAAM9B,IAAI,GAAGC,OAAO,CAACC,IAAR,CAAaC,KAAb,CAAmB,CAAnB,CAAb;MACA,MAAMiC,iBAAiB,GAAGpC,IAAI,CAACqC,QAAL,CAAc,QAAd,KAA2BrC,IAAI,CAACqC,QAAL,CAAc,IAAd,CAArD;MACA,MAAMC,qBAAqB,GAAGL,GAAG,CAACM,UAAJ,CAAe,iCAAf,CAA9B,CARuB,CASvB;;MACA,IAAI,CAACD,qBAAD,IAA0B,CAACF,iBAA/B,EAAkD;QAChD;QACAI,OAAO,CAACC,GAAR,CAAa,KAAIC,gBAAA,CAAMC,MAAN,CAAaV,GAAb,CAAkB,EAAnC;MACD;;MACD,IAAI,CAAC5B,iBAAA,CAAO0B,QAAZ,EAAsB9B,OAAO,CAACwB,IAAR,CAAa,CAAb;IACvB,CAfD;EAgBD;;EAEON,mBAAmB,GAAG;IAC5B,MAAMyB,uCAAuC,GAAG,CAC9C,MAD8C,EAE9C,MAF8C,EAG9C,KAH8C,EAI9C,QAJ8C,EAK9C,KAL8C,EAM9C,MAN8C,EAO9C,SAP8C,EAQ9C,OAR8C,EAS9C,MAT8C,EAU9C,MAV8C,EAW9C,KAX8C,EAY9C,YAZ8C,EAa9C,cAb8C,CAAhD,CAD4B,CAgB5B;;IACA/C,gBAAA,CAAMgD,UAAN,CAAiB,YAAjB,EAA+B,gBAAgBC,OAAhB,EAAyB5C,IAAzB,EAA+B6C,gBAA/B,EAAiDC,IAAjD,EAAuD;MACpF,IAAI,CAACF,OAAO,CAACP,UAAR,CAAmB,GAAnB,CAAD,IAA4BK,uCAAuC,CAACP,QAAxC,CAAiDnC,IAAI,CAACqB,CAAL,CAAO,CAAP,CAAjD,CAAhC,EAA6F;QAC3F,MAAM0B,QAAQ,GAAG,MAAM,IAAAC,+BAAA,GAAvB;QACAF,IAAI,CAACC,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAEE,wBAAV,CAAmCC,GAAnC,CAAwCC,EAAD,IAAQA,EAAE,CAACC,sBAAH,EAA/C,CAAD,CAAJ;MACD,CAHD,MAGO;QACLP,gBAAgB;MACjB;IACF,CAPD;EAQD;;EAEOvB,SAAS,GAAG;IAClB,MAAMhB,IAAI,GAAG,IAAA+C,kBAAA,EAAW,KAAK7D,QAAhB,EAA0B,KAAKC,MAA/B,EAAuC,KAAKG,UAA5C,CAAb,CADkB,CAElB;;IACA0C,OAAO,CAACC,GAAR,CAAYjC,IAAZ;EACD;;EAEOC,eAAe,GAAG;IACxBZ,gBAAA,CAAM2D,mBAAN,CAA0B;MACxB;MACA,iBAAiB,IAFO;MAGxB,oBAAoB,KAHI;MAIxB,cAAc;IAJU,CAA1B;EAMD;;EAEO3C,2BAA2B,CAACF,OAAD,EAAmB;IACpD,MAAM8C,WAAW,GAAG,KAAK1C,eAAL,CAAqBJ,OAArB,CAApB;;IACA,MAAM+C,WAAW,GAAG,MAAM;MAAA;;MACxB,qBAAA/C,OAAO,CAACjB,QAAR,wEAAkBgB,OAAlB,CAA2BiD,GAAD,IAAS;QACjC,MAAMC,UAAU,GAAG,KAAK7C,eAAL,CAAqB4C,GAArB,CAAnB;;QACA9D,gBAAA,CAAMc,OAAN,CAAciD,UAAd;MACD,CAHD,EADwB,CAKxB;;MACA/D,gBAAA,CAAMgE,OAAN,CAAcC,4BAAA,CAAaC,gBAAb,CAA8BpD,OAA9B,CAAd;;MACA,OAAOd,gBAAP;IACD,CARD;;IASA4D,WAAW,CAACO,OAAZ,GAAsBN,WAAtB;;IACA7D,gBAAA,CAAMc,OAAN,CAAc8C,WAAd;EACD;;EAEO1C,eAAe,CAACJ,OAAD,EAAiC;IACtD,MAAM8C,WAAW,GAAG,KAAIK,4BAAJ,EAAiBnD,OAAjB,CAApB;IACA8C,WAAW,CAACO,OAAZ,GAAsBP,WAAW,CAACO,OAAZ,CAAoBlC,IAApB,CAAyB2B,WAAzB,CAAtB;IACAA,WAAW,CAACQ,OAAZ,GAAsBR,WAAW,CAACQ,OAAZ,CAAoBnC,IAApB,CAAyB2B,WAAzB,CAAtB;IAEA,OAAOA,WAAP;EACD;;EAEOzC,oBAAoB,GAAG;IAC7BnB,gBAAA,CACGqE,MADH,CACU,MADV,EACkB;MACdC,KAAK,EAAE,GADO;MAEdC,QAAQ,EAAE,WAFI;MAGdC,KAAK,EAAEC;IAHO,CADlB,EAMGJ,MANH,CAMU,SANV,EAMqB;MACjBK,MAAM,EAAE,KADS;MAEjBJ,KAAK,EAAE,GAFU;MAGjBC,QAAQ,EAAE,cAHO;MAIjBC,KAAK,EAAEC;IAJU,CANrB;EAYD;;EAEOlE,wBAAwB,CAACoE,WAAD,EAAsB;IACpD,IAAI,CAACA,WAAD,IAAgBA,WAAW,CAACjC,UAAZ,CAAuB,GAAvB,CAApB,EAAiD;MAC/C;IACD;;IACD,MAAMkC,aAAa,GAAG,KAAK/E,QAAL,CAAc0D,GAAd,CAAmBsB,CAAD,IAAO,IAAAC,4BAAA,EAAaD,CAAC,CAACE,IAAf,CAAzB,CAAtB;IACA,MAAMC,OAAO,GAAG,KAAKnF,QAAL,CAAc0D,GAAd,CAAmBsB,CAAD,IAAOA,CAAC,CAACP,KAA3B,EAAkCW,MAAlC,CAA0CC,CAAD,IAAOA,CAAhD,CAAhB;IACA,MAAMC,mBAAmB,GAAG,CAAC,IAAD,EAAO,WAAP,CAA5B;IACA,MAAMC,aAAa,GAAG,CAAC,GAAGR,aAAJ,EAAmB,GAAGI,OAAtB,EAA+B,GAAGG,mBAAlC,CAAtB;IACA,MAAME,YAAY,GAAGD,aAAa,CAAC5C,QAAd,CAAuBmC,WAAvB,CAArB;;IAEA,IAAI,CAACU,YAAL,EAAmB;MACjBC,qBAAA,CAAWC,gBAAX,GAA8B,IAA9B;MACA,MAAMC,WAAW,GAAG,IAAAF,qBAAA,EAClBX,WADkB,EAElB,KAAK9E,QAAL,CAAcoF,MAAd,CAAsBJ,CAAD,IAAO,CAACA,CAAC,CAACY,OAA/B,EAAwClC,GAAxC,CAA6CsB,CAAD,IAAO,IAAAC,4BAAA,EAAaD,CAAC,CAACE,IAAf,CAAnD,CAFkB,CAApB;MAIA,MAAMW,UAAU,GAAGF,WAAW,IAAIG,KAAK,CAACC,OAAN,CAAcJ,WAAd,CAAf,GAA4CA,WAAW,CAAC,CAAD,CAAvD,GAA6DA,WAAhF;MAEA,MAAM,KAAIK,kCAAJ,EAAoBlB,WAApB,EAAiCe,UAAjC,CAAN;IACD;EACF;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACU1D,cAAc,CAACrB,IAAD,EAAe;IACnC,MAAMG,OAAO,GAAG,KAAKgF,iBAAL,EAAhB;;IAEA,MAAMC,QAAQ,GAAG,CAACrE,CAAD,EAAIsE,EAAJ,EAAQC,EAAR,KAAgB,GAAED,EAAG,GAAEnD,gBAAA,CAAMqD,KAAN,CAAYD,EAAZ,CAAgB,EAAxD;;IACA,MAAME,KAAK,GAAGxF,IAAI,CAACyF,KAAL,CAAW,IAAX,CAAd;IACA,MAAMC,iBAAiB,GAAG,IAAAC,iBAAA,EAAQH,KAAR,CAA1B;IACA,MAAMI,OAAO,GAAGF,iBAAiB,CAAC,CAAD,CAAjC;IACA,MAAMG,WAAqB,GAAG,EAA9B;IACA,MAAMxC,OAAiB,GAAG,EAA1B;IACA,MAAMyC,aAAuB,GAAG,EAAhC;IACA,MAAMC,WAAqB,GAAG,EAA9B;IACA,MAAMvG,IAAc,GAAG,EAAvB;IACA,MAAMwG,QAAkB,GAAG,EAA3B;IAEA,IAAIC,cAAc,GAAG,KAArB;IACA,IAAIC,aAAa,GAAG,KAApB;IACA,IAAIC,kBAAkB,GAAG,KAAzB;IACA,IAAIC,kBAAkB,GAAG,KAAzB;IACA,IAAIC,eAAe,GAAG,KAAtB;;IACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGZ,iBAAiB,CAACtF,MAAtC,EAA8CkG,CAAC,IAAI,CAAnD,EAAsD;MACpD,MAAMC,WAAW,GAAGb,iBAAiB,CAACY,CAAD,CAArC;;MACA,IAAIC,WAAW,KAAKC,8BAApB,EAAoC;QAClCP,cAAc,GAAG,IAAjB;MACD,CAFD,MAEO,IAAIM,WAAW,KAAKzC,4BAApB,EAAkC;QACvCoC,aAAa,GAAG,IAAhB;MACD,CAFM,MAEA,IAAIK,WAAW,KAAK,WAApB,EAAiC;QACtCJ,kBAAkB,GAAG,IAArB;MACD,CAFM,MAEA,IAAII,WAAW,KAAK,cAApB,EAAoC;QACzCH,kBAAkB,GAAG,IAArB;MACD,CAFM,MAEA,IAAIG,WAAW,KAAK,WAApB,EAAiC;QACtCF,eAAe,GAAG,IAAlB;MACD,CAFM,MAEA,IAAIA,eAAJ,EAAqB;QAC1BL,QAAQ,CAACS,IAAT,CAAcF,WAAd;MACD,CAFM,MAEA,IAAIH,kBAAJ,EAAwB;QAC7B5G,IAAI,CAACiH,IAAL,CAAUF,WAAV;MACD,CAFM,MAEA,IAAIL,aAAJ,EAAmB;QACxBJ,aAAa,CAACW,IAAd,CAAmBF,WAAnB;MACD,CAFM,MAEA,IAAIN,cAAJ,EAAoB;QACzB5C,OAAO,CAACoD,IAAR,CAAaF,WAAb;MACD,CAFM,MAEA,IAAIJ,kBAAJ,EAAwB;QAC7BJ,WAAW,CAACU,IAAZ,CAAiBF,WAAjB;MACD,CAFM,MAEA;QACLV,WAAW,CAACY,IAAZ,CAAiBF,WAAjB;MACD;IACF,CA5CkC,CA8CnC;;;IACA,MAAMG,cAAc,GAAGrD,OAAO,CAACT,GAAR,CAAa+D,GAAD,IAASA,GAAG,CAACC,OAAJ,CAAY,cAAZ,EAA4BxB,QAA5B,EAAsCwB,OAAtC,CAA8C,aAA9C,EAA6DxB,QAA7D,CAArB,CAAvB;IACA,MAAMyB,WAAW,GAAGrH,IAAI,CAACoD,GAAL,CAAUkE,GAAD,IAASA,GAAG,CAACF,OAAJ,CAAY,UAAZ,EAAyBG,OAAD,IAAa7E,gBAAA,CAAMqD,KAAN,CAAYwB,OAAZ,CAArC,CAAlB,CAApB,CAhDmC,CAgDgE;;IACnG,MAAMC,UAAU,GAAG3D,OAAO,CAACjD,MAAR,GAAkB,KAAIoG,8BAAe,KAAIE,cAAc,CAAC3G,IAAf,CAAoB,IAApB,CAA0B,IAAnE,GAAyE,EAA5F;IACA,MAAMkH,YAAY,GAAGzH,IAAI,CAACY,MAAL,GAAe,iBAAgByG,WAAW,CAAC9G,IAAZ,CAAiB,IAAjB,CAAuB,IAAtD,GAA4D,EAAjF;IACA,MAAMmH,WAAW,GAAGlB,QAAQ,CAAC5F,MAAT,GAAmB,gBAAe4F,QAAQ,CAACjG,IAAT,CAAc,IAAd,CAAoB,IAAtD,GAA4D,EAAhF;IACA,MAAMoH,cAAc,GAAGpB,WAAW,CAAC3F,MAAZ,GAAsB,KAAI,WAAY,KAAI2F,WAAW,CAAChG,IAAZ,CAAiB,IAAjB,CAAuB,IAAjE,GAAuE,EAA9F,CApDmC,CAqDnC;;IACA,MAAMqH,kBAAkB,GAAGvB,WAAW,CAACjD,GAAZ,CAAiByE,IAAD,IAAUnF,gBAAA,CAAMoF,IAAN,CAAWD,IAAX,CAA1B,CAA3B;;IACA,IAAIlH,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEoH,mBAAb,EAAkC;MAChCH,kBAAkB,CAACX,IAAnB,CAAwBtG,OAAxB,aAAwBA,OAAxB,uBAAwBA,OAAO,CAAEoH,mBAAjC;IACD;;IACD,IAAIpH,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEqH,OAAb,EAAsB;MACpBJ,kBAAkB,CAACX,IAAnB,CAAyB,yBAAwBvE,gBAAA,CAAMuF,SAAN,CAAgBtH,OAAO,CAACqH,OAAxB,CAAiC,EAAlF;IACD;;IACD,MAAME,cAAc,GAAGN,kBAAkB,CAACrH,IAAnB,CAAwB,IAAxB,CAAvB;IACA,MAAM4H,gBAAgB,GAAG7B,aAAa,CAAC/F,IAAd,CAAmB,IAAnB,CAAzB;IAEA,MAAM6H,WAAW,GAAI,GAAEhC,OAAQ;AACnC;AACA,EAAE8B,cAAe;AACjB,EAAET,YAAa,GAAEE,cAAe,GAAEH,UAAW,GAAEE,WAAY;AAC3D,EAAEpD,4BAAa;AACf,EAAE6D,gBAAiB,EALf,CAhEmC,CAuEnC;;IACA3F,OAAO,CAACC,GAAR,CAAY2F,WAAZ;EACD;;EAEOzC,iBAAiB,GAAwB;IAC/C,MAAM3F,IAAI,GAAGC,OAAO,CAACC,IAAR,CAAaC,KAAb,CAAmB,CAAnB,CAAb;IACA,MAAMkI,cAAc,GAAGrI,IAAI,CAAC,CAAD,CAA3B;IACA,MAAMsI,iBAAiB,GAAGtI,IAAI,CAAC,CAAD,CAA9B;;IACA,IAAI,CAACqI,cAAL,EAAqB;MACnB,OAAOE,SAAP;IACD;;IACD,MAAMC,cAAc,GAAG,CAAC7E,GAAD,EAAe8E,GAAf,KAA+B;MACpD,OACE9E,GAAG,CAACiB,IAAJ,CAASrC,UAAT,CAAqB,GAAEkG,GAAI,GAA3B,KAAkC;MAClC9E,GAAG,CAACiB,IAAJ,KAAa6D,GADb,IACoB;MACpB9E,GAAG,CAACQ,KAAJ,KAAcsE,GAHhB,CADoD,CAKjD;IACJ,CAND;;IAOA,MAAM9H,OAAO,GAAG,KAAKjB,QAAL,CAAcgJ,IAAd,CAAoB/E,GAAD,IAAS6E,cAAc,CAAC7E,GAAD,EAAM0E,cAAN,CAA1C,CAAhB;;IACA,IAAI,CAAC1H,OAAL,EAAc;MACZ,OAAO4H,SAAP;IACD;;IACD,IAAI,CAAC5H,OAAO,CAACjB,QAAT,IAAqB,CAAC4I,iBAA1B,EAA6C;MAC3C,OAAO3H,OAAP,CAD2C,CAC3B;IACjB;;IACD,MAAMiD,UAAU,GAAGjD,OAAO,CAACjB,QAAR,CAAiBgJ,IAAjB,CAAuB/E,GAAD,IAAS6E,cAAc,CAAC7E,GAAD,EAAM2E,iBAAN,CAA7C,CAAnB;IACA,OAAO1E,UAAU,IAAIjD,OAArB;EACD;;AA1RoB"}
|
|
1
|
+
{"version":3,"names":["CLIParser","constructor","commands","groups","parser","yargs","docsDomain","parse","args","process","argv","slice","throwForNonExistsCommand","logger","debug","join","help","configureParser","forEach","command","length","parseCommandWithSubCommands","yargsCommand","getYargsCommand","configureGlobalFlags","setHelpMiddleware","handleCommandFailure","configureCompletion","strict","wrap","middleware","_","printHelp","exit","loader","off","showHelp","logCommandHelp","bind","isDaemon","fail","msg","err","stop","isHelpFlagEntered","includes","isMsgAboutMissingArgs","startsWith","console","log","chalk","yellow","commandsToShowComponentIdsForCompletion","completion","current","completionFilter","done","consumer","loadConsumerIfExist","bitmapIdsFromCurrentLane","map","id","toStringWithoutVersion","formatHelp","parserConfiguration","yarnCommand","builderFunc","cmd","subCommand","options","YargsAdapter","getGlobalOptions","builder","handler","option","alias","describe","group","GLOBAL_GROUP","global","commandName","commandsNames","c","getCommandId","name","aliases","filter","a","existingGlobalFlags","validCommands","commandExist","didYouMean","returnFirstMatch","suggestions","private","suggestion","Array","isArray","CommandNotFound","findCommandByArgv","replacer","p1","p2","green","lines","split","linesWithoutEmpty","compact","cmdLine","description","globalOptions","subCommands","examples","optionsStarted","globalStarted","subCommandsStarted","positionalsStarted","examplesStarted","i","currentLine","STANDARD_GROUP","push","optionsColored","opt","replace","argsColored","arg","argName","optionsStr","argumentsStr","examplesStr","subCommandsStr","descriptionColored","desc","bold","extendedDescription","helpUrl","underline","descriptionStr","globalOptionsStr","finalOutput","enteredCommand","enteredSubCommand","undefined","isCommandMatch","str","find"],"sources":["cli-parser.ts"],"sourcesContent":["import didYouMean from 'didyoumean';\nimport yargs from 'yargs';\nimport { Command } from '@teambit/legacy/dist/cli/command';\nimport { GroupsType } from '@teambit/legacy/dist/cli/command-groups';\nimport { compact } from 'lodash';\nimport { loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport chalk from 'chalk';\nimport { getCommandId } from './get-command-id';\nimport { formatHelp } from './help';\nimport { GLOBAL_GROUP, STANDARD_GROUP, YargsAdapter } from './yargs-adapter';\nimport { CommandNotFound } from './exceptions/command-not-found';\n\nexport class CLIParser {\n constructor(\n private commands: Command[],\n private groups: GroupsType,\n public parser = yargs,\n private docsDomain: string\n ) {}\n\n async parse(args = process.argv.slice(2)) {\n this.throwForNonExistsCommand(args[0]);\n logger.debug(`[+] CLI-INPUT: ${args.join(' ')}`);\n yargs(args);\n yargs.help(false);\n this.configureParser();\n this.commands.forEach((command: Command) => {\n if (command.commands && command.commands.length) {\n this.parseCommandWithSubCommands(command);\n } else {\n const yargsCommand = this.getYargsCommand(command);\n yargs.command(yargsCommand);\n }\n });\n this.configureGlobalFlags();\n this.setHelpMiddleware();\n this.handleCommandFailure();\n this.configureCompletion();\n yargs.strict(); // don't allow non-exist flags and non-exist commands\n\n yargs\n // .recommendCommands() // don't use it, it brings the global help of yargs, we have a custom one\n .wrap(null);\n\n await yargs.parse();\n }\n\n private setHelpMiddleware() {\n yargs.middleware((argv) => {\n if (argv._.length === 0 && argv.help) {\n // this is the main help page\n this.printHelp();\n process.exit(0);\n }\n if (argv.help) {\n loader.off(); // stop the \"loading bit...\" before showing help if needed\n // this is a command help page\n yargs.showHelp(this.logCommandHelp.bind(this));\n if (!logger.isDaemon) process.exit(0);\n }\n }, true);\n }\n\n private handleCommandFailure() {\n yargs.fail((msg, err) => {\n loader.stop();\n if (err) {\n throw err;\n }\n yargs.showHelp(this.logCommandHelp.bind(this));\n const args = process.argv.slice(2);\n const isHelpFlagEntered = args.includes('--help') || args.includes('-h');\n const isMsgAboutMissingArgs = msg.startsWith('Not enough non-option arguments');\n // avoid showing the \"Not enough non-option arguments\" message when the user is trying to get the command help\n if (!isMsgAboutMissingArgs || !isHelpFlagEntered) {\n // eslint-disable-next-line no-console\n console.log(`\\n${chalk.yellow(msg)}`);\n }\n if (!logger.isDaemon) process.exit(1);\n });\n }\n\n private configureCompletion() {\n const commandsToShowComponentIdsForCompletion = [\n 'show',\n 'diff',\n 'tag',\n 'export',\n 'env',\n 'envs',\n 'compile',\n 'build',\n 'test',\n 'lint',\n 'log',\n 'dependents',\n 'dependencies',\n ];\n // @ts-ignore\n yargs.completion('completion', async function (current, argv, completionFilter, done) {\n if (!current.startsWith('-') && commandsToShowComponentIdsForCompletion.includes(argv._[1])) {\n const consumer = await loadConsumerIfExist();\n done(consumer?.bitmapIdsFromCurrentLane.map((id) => id.toStringWithoutVersion()));\n } else {\n completionFilter();\n }\n });\n }\n\n private printHelp() {\n const help = formatHelp(this.commands, this.groups, this.docsDomain);\n // eslint-disable-next-line no-console\n console.log(help);\n }\n\n private configureParser() {\n yargs.parserConfiguration({\n // 'strip-dashed': true, // we can't enable it, otherwise, the completion doesn't work\n 'strip-aliased': true,\n 'boolean-negation': false,\n 'populate--': true,\n });\n }\n\n private parseCommandWithSubCommands(command: Command) {\n const yarnCommand = this.getYargsCommand(command);\n const builderFunc = () => {\n command.commands?.forEach((cmd) => {\n const subCommand = this.getYargsCommand(cmd);\n yargs.command(subCommand);\n });\n // since the \"builder\" method is overridden, the global flags of the main command are gone, this fixes it.\n yargs.options(YargsAdapter.getGlobalOptions(command));\n return yargs;\n };\n yarnCommand.builder = builderFunc;\n yargs.command(yarnCommand);\n }\n\n private getYargsCommand(command: Command): YargsAdapter {\n const yarnCommand = new YargsAdapter(command);\n yarnCommand.builder = yarnCommand.builder.bind(yarnCommand);\n yarnCommand.handler = yarnCommand.handler.bind(yarnCommand);\n\n return yarnCommand;\n }\n\n private configureGlobalFlags() {\n yargs\n .option('help', {\n alias: 'h',\n describe: 'show help',\n group: GLOBAL_GROUP,\n })\n .option('version', {\n global: false,\n alias: 'v',\n describe: 'show version',\n group: GLOBAL_GROUP,\n });\n }\n\n private throwForNonExistsCommand(commandName: string) {\n if (!commandName || commandName.startsWith('-')) {\n return;\n }\n const commandsNames = this.commands.map((c) => getCommandId(c.name));\n const aliases = this.commands.map((c) => c.alias).filter((a) => a);\n const existingGlobalFlags = ['-V', '--version'];\n const validCommands = [...commandsNames, ...aliases, ...existingGlobalFlags];\n const commandExist = validCommands.includes(commandName);\n\n if (!commandExist) {\n didYouMean.returnFirstMatch = true;\n const suggestions = didYouMean(\n commandName,\n this.commands.filter((c) => !c.private).map((c) => getCommandId(c.name))\n );\n const suggestion = suggestions && Array.isArray(suggestions) ? suggestions[0] : suggestions;\n\n throw new CommandNotFound(commandName, suggestion as string);\n }\n }\n\n /**\n * manipulate the command help output. there is no API from Yarn to do any of this, so it needs to be done manually.\n * see https://github.com/yargs/yargs/issues/1956\n *\n * the original order of the output:\n * description\n * Options\n * Commands\n * Global\n * Positionals\n * Examples\n */\n private logCommandHelp(help: string) {\n const command = this.findCommandByArgv();\n\n const replacer = (_, p1, p2) => `${p1}${chalk.green(p2)}`;\n const lines = help.split('\\n');\n const linesWithoutEmpty = compact(lines);\n const cmdLine = linesWithoutEmpty[0];\n const description: string[] = [];\n const options: string[] = [];\n const globalOptions: string[] = [];\n const subCommands: string[] = [];\n const args: string[] = [];\n const examples: string[] = [];\n\n let optionsStarted = false;\n let globalStarted = false;\n let subCommandsStarted = false;\n let positionalsStarted = false;\n let examplesStarted = false;\n for (let i = 1; i < linesWithoutEmpty.length; i += 1) {\n const currentLine = linesWithoutEmpty[i];\n if (currentLine === STANDARD_GROUP) {\n optionsStarted = true;\n } else if (currentLine === GLOBAL_GROUP) {\n globalStarted = true;\n } else if (currentLine === 'Commands:') {\n subCommandsStarted = true;\n } else if (currentLine === 'Positionals:') {\n positionalsStarted = true;\n } else if (currentLine === 'Examples:') {\n examplesStarted = true;\n } else if (examplesStarted) {\n examples.push(currentLine);\n } else if (positionalsStarted) {\n args.push(currentLine);\n } else if (globalStarted) {\n globalOptions.push(currentLine);\n } else if (optionsStarted) {\n options.push(currentLine);\n } else if (subCommandsStarted) {\n subCommands.push(currentLine);\n } else {\n description.push(currentLine);\n }\n }\n\n // show the flags in green\n const optionsColored = options.map((opt) => opt.replace(/(--)([\\w-]+)/, replacer).replace(/(-)([\\w-]+)/, replacer));\n const argsColored = args.map((arg) => arg.replace(/^ {2}\\S+/, (argName) => chalk.green(argName))); // regex: two spaces then the first word until a white space\n const optionsStr = options.length ? `\\n${STANDARD_GROUP}\\n${optionsColored.join('\\n')}\\n` : '';\n const argumentsStr = args.length ? `\\nArguments:\\n${argsColored.join('\\n')}\\n` : '';\n const examplesStr = examples.length ? `\\nExamples:\\n${examples.join('\\n')}\\n` : '';\n const subCommandsStr = subCommands.length ? `\\n${'Commands:'}\\n${subCommands.join('\\n')}\\n` : '';\n // show the description in bold\n const descriptionColored = description.map((desc) => chalk.bold(desc));\n if (command?.extendedDescription) {\n descriptionColored.push(command?.extendedDescription);\n }\n if (command?.helpUrl) {\n descriptionColored.push(`for more info, visit: ${chalk.underline(command.helpUrl)}`);\n }\n const descriptionStr = descriptionColored.join('\\n');\n const globalOptionsStr = globalOptions.join('\\n');\n\n const finalOutput = `${cmdLine}\n\n${descriptionStr}\n${argumentsStr}${subCommandsStr}${optionsStr}${examplesStr}\n${GLOBAL_GROUP}\n${globalOptionsStr}`;\n\n // eslint-disable-next-line no-console\n console.log(finalOutput);\n }\n\n private findCommandByArgv(): Command | undefined {\n const args = process.argv.slice(2);\n const enteredCommand = args[0];\n const enteredSubCommand = args[1];\n if (!enteredCommand) {\n return undefined;\n }\n const isCommandMatch = (cmd: Command, str: string) => {\n return (\n cmd.name.startsWith(`${str} `) || // e.g. \"tag <id>\".startsWith(\"tag \")\n cmd.name === str || // e.g. \"globals\" === \"globals\"\n cmd.alias === str\n ); // e.g. \"t\" === \"t\"\n };\n const command = this.commands.find((cmd) => isCommandMatch(cmd, enteredCommand));\n if (!command) {\n return undefined;\n }\n if (!command.commands || !enteredSubCommand) {\n return command; // no sub-commands.\n }\n const subCommand = command.commands.find((cmd) => isCommandMatch(cmd, enteredSubCommand));\n return subCommand || command;\n }\n}\n"],"mappings":"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"}
|
package/dist/cli.aspect.js
CHANGED
|
@@ -4,26 +4,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.MainRuntime = exports.CLIAspect = void 0;
|
|
7
|
-
|
|
8
7
|
function _harmony() {
|
|
9
8
|
const data = require("@teambit/harmony");
|
|
10
|
-
|
|
11
9
|
_harmony = function () {
|
|
12
10
|
return data;
|
|
13
11
|
};
|
|
14
|
-
|
|
15
12
|
return data;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
const MainRuntime = new (_harmony().RuntimeDefinition)('main');
|
|
19
15
|
exports.MainRuntime = MainRuntime;
|
|
20
|
-
|
|
21
16
|
const CLIAspect = _harmony().Aspect.create({
|
|
22
17
|
id: 'teambit.harmony/cli',
|
|
23
18
|
dependencies: [],
|
|
24
19
|
declareRuntime: MainRuntime
|
|
25
20
|
});
|
|
26
|
-
|
|
27
21
|
exports.CLIAspect = CLIAspect;
|
|
28
22
|
|
|
29
23
|
//# sourceMappingURL=cli.aspect.js.map
|
package/dist/cli.aspect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MainRuntime","RuntimeDefinition","CLIAspect","Aspect","create","id","dependencies","declareRuntime"],"sources":["cli.aspect.ts"],"sourcesContent":["import { Aspect, RuntimeDefinition } from '@teambit/harmony';\n\nexport const MainRuntime = new RuntimeDefinition('main');\n\nexport const CLIAspect = Aspect.create({\n id: 'teambit.harmony/cli',\n dependencies: [],\n declareRuntime: MainRuntime,\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["MainRuntime","RuntimeDefinition","CLIAspect","Aspect","create","id","dependencies","declareRuntime"],"sources":["cli.aspect.ts"],"sourcesContent":["import { Aspect, RuntimeDefinition } from '@teambit/harmony';\n\nexport const MainRuntime = new RuntimeDefinition('main');\n\nexport const CLIAspect = Aspect.create({\n id: 'teambit.harmony/cli',\n dependencies: [],\n declareRuntime: MainRuntime,\n});\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,WAAW,GAAG,KAAIC,4BAAiB,EAAC,MAAM,CAAC;AAAC;AAElD,MAAMC,SAAS,GAAGC,iBAAM,CAACC,MAAM,CAAC;EACrCC,EAAE,EAAE,qBAAqB;EACzBC,YAAY,EAAE,EAAE;EAChBC,cAAc,EAAEP;AAClB,CAAC,CAAC;AAAC"}
|