@teambit/cli 0.0.524 → 0.0.527

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.
@@ -367,6 +367,10 @@ class CLIParser {
367
367
  descriptionColored.push(command === null || command === void 0 ? void 0 : command.extendedDescription);
368
368
  }
369
369
 
370
+ if (command !== null && command !== void 0 && command.helpUrl) {
371
+ descriptionColored.push(`for more info, visit: ${_chalk().default.underline(command.helpUrl)}`);
372
+ }
373
+
370
374
  const descriptionStr = descriptionColored.join('\n');
371
375
  const globalOptionsStr = globalOptions.join('\n');
372
376
  const finalOutput = `${cmdLine}
@@ -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","console","log","chalk","yellow","commandsToShowComponentIdsForCompletion","completion","current","completionFilter","done","startsWith","includes","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","extendedDescription","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 // eslint-disable-next-line no-console\n console.log(`\\n${chalk.yellow(msg)}`);\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 yellow\n const descriptionColored = description.map((desc) => chalk.yellow(desc));\n if (command?.extendedDescription) {\n descriptionColored.push(command?.extendedDescription);\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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"}
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","console","log","chalk","yellow","commandsToShowComponentIdsForCompletion","completion","current","completionFilter","done","startsWith","includes","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","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 // eslint-disable-next-line no-console\n console.log(`\\n${chalk.yellow(msg)}`);\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 yellow\n const descriptionColored = description.map((desc) => chalk.yellow(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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"}
@@ -271,6 +271,10 @@ class CLIMain {
271
271
  command.loader = true;
272
272
  }
273
273
  }
274
+
275
+ if (command.helpUrl && !isFullUrl(command.helpUrl)) {
276
+ command.helpUrl = `https://${this.community.getDocsDomain()}/${command.helpUrl}`;
277
+ }
274
278
  }
275
279
 
276
280
  static async provider([community], config, [commandsSlot, onStartSlot]) {
@@ -310,4 +314,8 @@ async function ensureWorkspaceAndScope() {
310
314
  }
311
315
  }
312
316
 
317
+ function isFullUrl(url) {
318
+ return url.startsWith('http://') || url.startsWith('https://');
319
+ }
320
+
313
321
  //# sourceMappingURL=cli.main.runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CLIMain","constructor","commandsSlot","onStartSlot","community","clone","groups","register","commands","forEach","command","setDefaults","cmd","unregister","commandName","toArray","aspectId","filteredCommands","filter","getCommandId","name","map","set","values","flat","getCommand","find","registerGroup","description","AlreadyExistsError","registerOnStart","onStartFn","run","hasWorkspace","invokeOnStart","CliParser","CLIParser","undefined","getDocsDomain","parse","onStartFns","promises","onStart","Promise","all","alias","extendedDescription","group","options","private","loader","internal","provider","config","cliMain","legacyRegistry","buildRegistry","ensureWorkspaceAndScope","legacyCommands","legacyCommandsAdapters","LegacyCommandAdapter","cliGenerateCmd","CliGenerateCmd","cliCmd","CliCmd","helpCmd","HelpCmd","push","CompletionCmd","CommunityAspect","MainRuntime","Slot","withType","CLIAspect","addRuntime","loadConsumerIfExist","err"],"sources":["cli.main.runtime.ts"],"sourcesContent":["import { Slot, SlotRegistry } from '@teambit/harmony';\nimport { buildRegistry } from '@teambit/legacy/dist/cli';\nimport { Command } from '@teambit/legacy/dist/cli/command';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\n\nimport { groups, GroupsType } from '@teambit/legacy/dist/cli/command-groups';\nimport { loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport { clone } from 'lodash';\nimport { CLIAspect, MainRuntime } from './cli.aspect';\nimport { AlreadyExistsError } from './exceptions/already-exists';\nimport { getCommandId } from './get-command-id';\nimport { LegacyCommandAdapter } from './legacy-command-adapter';\nimport { CLIParser } from './cli-parser';\nimport { CompletionCmd } from './completion.cmd';\nimport { CliCmd, CliGenerateCmd } from './cli.cmd';\nimport { HelpCmd } from './help.cmd';\n\nexport type CommandList = Array<Command>;\nexport type OnStart = (hasWorkspace: boolean) => Promise<void>;\n\nexport type OnStartSlot = SlotRegistry<OnStart>;\nexport type CommandsSlot = SlotRegistry<CommandList>;\n\nexport class CLIMain {\n public groups: GroupsType = clone(groups); // if it's not cloned, it is cached across loadBit() instances\n\n constructor(private commandsSlot: CommandsSlot, private onStartSlot: OnStartSlot, private community: CommunityMain) {}\n\n /**\n * registers a new command in to the CLI.\n */\n register(...commands: CommandList) {\n commands.forEach((command) => {\n this.setDefaults(command);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n command.commands!.forEach((cmd) => this.setDefaults(cmd));\n });\n this.commandsSlot.register(commands);\n }\n\n /**\n * helpful for having the same command name in different environments (e.g. legacy and non-legacy).\n * for example `cli.unregister('tag');` removes the \"bit tag\" command.\n */\n unregister(commandName: string) {\n this.commandsSlot.toArray().forEach(([aspectId, commands]) => {\n const filteredCommands = commands.filter((command) => {\n return getCommandId(command.name) !== commandName;\n });\n this.commandsSlot.map.set(aspectId, filteredCommands);\n });\n }\n\n /**\n * list of all registered commands. (legacy and new).\n */\n get commands(): CommandList {\n return this.commandsSlot.values().flat();\n }\n\n /**\n * get an instance of a registered command. (useful for aspects to modify and extend existing commands)\n */\n getCommand(name: string): Command | undefined {\n return this.commands.find((command) => getCommandId(command.name) === name);\n }\n\n /**\n * when running `bit help`, commands are grouped by categories.\n * this method helps registering a new group by providing its name and a description.\n * the name is what needs to be assigned to the `group` property of the Command interface.\n * the description is what shown in the `bit help` output.\n */\n registerGroup(name: string, description: string) {\n if (this.groups[name]) {\n throw new AlreadyExistsError('group', name);\n }\n this.groups[name] = description;\n }\n\n registerOnStart(onStartFn: OnStart) {\n this.onStartSlot.register(onStartFn);\n return this;\n }\n\n /**\n * execute commands registered to this aspect.\n */\n async run(hasWorkspace: boolean) {\n await this.invokeOnStart(hasWorkspace);\n const CliParser = new CLIParser(this.commands, this.groups, undefined, this.community.getDocsDomain());\n await CliParser.parse();\n }\n\n private async invokeOnStart(hasWorkspace: boolean) {\n const onStartFns = this.onStartSlot.values();\n const promises = onStartFns.map(async (onStart) => onStart(hasWorkspace));\n return Promise.all(promises);\n }\n\n private setDefaults(command: Command) {\n command.alias = command.alias || '';\n command.description = command.description || '';\n command.extendedDescription = command.extendedDescription || '';\n command.group = command.group || 'ungrouped';\n command.options = command.options || [];\n command.private = command.private || false;\n command.commands = command.commands || [];\n if (command.loader === undefined) {\n if (command.internal) {\n command.loader = false;\n } else {\n command.loader = true;\n }\n }\n }\n\n static dependencies = [CommunityAspect];\n static runtime = MainRuntime;\n static slots = [Slot.withType<CommandList>(), Slot.withType<OnStart>()];\n\n static async provider(\n [community]: [CommunityMain],\n config,\n [commandsSlot, onStartSlot]: [CommandsSlot, OnStartSlot]\n ) {\n const cliMain = new CLIMain(commandsSlot, onStartSlot, community);\n const legacyRegistry = buildRegistry();\n await ensureWorkspaceAndScope();\n const legacyCommands = legacyRegistry.commands;\n const legacyCommandsAdapters = legacyCommands.map((command) => new LegacyCommandAdapter(command, cliMain));\n const cliGenerateCmd = new CliGenerateCmd(cliMain);\n const cliCmd = new CliCmd(cliMain, community.getDocsDomain());\n const helpCmd = new HelpCmd(cliMain, community.getDocsDomain());\n cliCmd.commands.push(cliGenerateCmd);\n cliMain.register(...legacyCommandsAdapters, new CompletionCmd(), cliCmd, helpCmd);\n return cliMain;\n }\n}\n\nCLIAspect.addRuntime(CLIMain);\n\n/**\n * kind of a hack.\n * in the legacy, this is running at the beginning and it take care of issues when Bit files are missing,\n * such as \".bit\".\n * (to make this process better, you can easily remove it and run the e2e-tests. you'll see some failing)\n */\nasync function ensureWorkspaceAndScope() {\n try {\n await loadConsumerIfExist();\n } catch (err) {\n // do nothing. it could fail for example with ScopeNotFound error, which is taken care of in \"bit init\".\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["CLIMain","constructor","commandsSlot","onStartSlot","community","clone","groups","register","commands","forEach","command","setDefaults","cmd","unregister","commandName","toArray","aspectId","filteredCommands","filter","getCommandId","name","map","set","values","flat","getCommand","find","registerGroup","description","AlreadyExistsError","registerOnStart","onStartFn","run","hasWorkspace","invokeOnStart","CliParser","CLIParser","undefined","getDocsDomain","parse","onStartFns","promises","onStart","Promise","all","alias","extendedDescription","group","options","private","loader","internal","helpUrl","isFullUrl","provider","config","cliMain","legacyRegistry","buildRegistry","ensureWorkspaceAndScope","legacyCommands","legacyCommandsAdapters","LegacyCommandAdapter","cliGenerateCmd","CliGenerateCmd","cliCmd","CliCmd","helpCmd","HelpCmd","push","CompletionCmd","CommunityAspect","MainRuntime","Slot","withType","CLIAspect","addRuntime","loadConsumerIfExist","err","url","startsWith"],"sources":["cli.main.runtime.ts"],"sourcesContent":["import { Slot, SlotRegistry } from '@teambit/harmony';\nimport { buildRegistry } from '@teambit/legacy/dist/cli';\nimport { Command } from '@teambit/legacy/dist/cli/command';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\n\nimport { groups, GroupsType } from '@teambit/legacy/dist/cli/command-groups';\nimport { loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport { clone } from 'lodash';\nimport { CLIAspect, MainRuntime } from './cli.aspect';\nimport { AlreadyExistsError } from './exceptions/already-exists';\nimport { getCommandId } from './get-command-id';\nimport { LegacyCommandAdapter } from './legacy-command-adapter';\nimport { CLIParser } from './cli-parser';\nimport { CompletionCmd } from './completion.cmd';\nimport { CliCmd, CliGenerateCmd } from './cli.cmd';\nimport { HelpCmd } from './help.cmd';\n\nexport type CommandList = Array<Command>;\nexport type OnStart = (hasWorkspace: boolean) => Promise<void>;\n\nexport type OnStartSlot = SlotRegistry<OnStart>;\nexport type CommandsSlot = SlotRegistry<CommandList>;\n\nexport class CLIMain {\n public groups: GroupsType = clone(groups); // if it's not cloned, it is cached across loadBit() instances\n\n constructor(private commandsSlot: CommandsSlot, private onStartSlot: OnStartSlot, private community: CommunityMain) {}\n\n /**\n * registers a new command in to the CLI.\n */\n register(...commands: CommandList) {\n commands.forEach((command) => {\n this.setDefaults(command);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n command.commands!.forEach((cmd) => this.setDefaults(cmd));\n });\n this.commandsSlot.register(commands);\n }\n\n /**\n * helpful for having the same command name in different environments (e.g. legacy and non-legacy).\n * for example `cli.unregister('tag');` removes the \"bit tag\" command.\n */\n unregister(commandName: string) {\n this.commandsSlot.toArray().forEach(([aspectId, commands]) => {\n const filteredCommands = commands.filter((command) => {\n return getCommandId(command.name) !== commandName;\n });\n this.commandsSlot.map.set(aspectId, filteredCommands);\n });\n }\n\n /**\n * list of all registered commands. (legacy and new).\n */\n get commands(): CommandList {\n return this.commandsSlot.values().flat();\n }\n\n /**\n * get an instance of a registered command. (useful for aspects to modify and extend existing commands)\n */\n getCommand(name: string): Command | undefined {\n return this.commands.find((command) => getCommandId(command.name) === name);\n }\n\n /**\n * when running `bit help`, commands are grouped by categories.\n * this method helps registering a new group by providing its name and a description.\n * the name is what needs to be assigned to the `group` property of the Command interface.\n * the description is what shown in the `bit help` output.\n */\n registerGroup(name: string, description: string) {\n if (this.groups[name]) {\n throw new AlreadyExistsError('group', name);\n }\n this.groups[name] = description;\n }\n\n registerOnStart(onStartFn: OnStart) {\n this.onStartSlot.register(onStartFn);\n return this;\n }\n\n /**\n * execute commands registered to this aspect.\n */\n async run(hasWorkspace: boolean) {\n await this.invokeOnStart(hasWorkspace);\n const CliParser = new CLIParser(this.commands, this.groups, undefined, this.community.getDocsDomain());\n await CliParser.parse();\n }\n\n private async invokeOnStart(hasWorkspace: boolean) {\n const onStartFns = this.onStartSlot.values();\n const promises = onStartFns.map(async (onStart) => onStart(hasWorkspace));\n return Promise.all(promises);\n }\n\n private setDefaults(command: Command) {\n command.alias = command.alias || '';\n command.description = command.description || '';\n command.extendedDescription = command.extendedDescription || '';\n command.group = command.group || 'ungrouped';\n command.options = command.options || [];\n command.private = command.private || false;\n command.commands = command.commands || [];\n if (command.loader === undefined) {\n if (command.internal) {\n command.loader = false;\n } else {\n command.loader = true;\n }\n }\n if (command.helpUrl && !isFullUrl(command.helpUrl)) {\n command.helpUrl = `https://${this.community.getDocsDomain()}/${command.helpUrl}`;\n }\n }\n\n static dependencies = [CommunityAspect];\n static runtime = MainRuntime;\n static slots = [Slot.withType<CommandList>(), Slot.withType<OnStart>()];\n\n static async provider(\n [community]: [CommunityMain],\n config,\n [commandsSlot, onStartSlot]: [CommandsSlot, OnStartSlot]\n ) {\n const cliMain = new CLIMain(commandsSlot, onStartSlot, community);\n const legacyRegistry = buildRegistry();\n await ensureWorkspaceAndScope();\n const legacyCommands = legacyRegistry.commands;\n const legacyCommandsAdapters = legacyCommands.map((command) => new LegacyCommandAdapter(command, cliMain));\n const cliGenerateCmd = new CliGenerateCmd(cliMain);\n const cliCmd = new CliCmd(cliMain, community.getDocsDomain());\n const helpCmd = new HelpCmd(cliMain, community.getDocsDomain());\n cliCmd.commands.push(cliGenerateCmd);\n cliMain.register(...legacyCommandsAdapters, new CompletionCmd(), cliCmd, helpCmd);\n return cliMain;\n }\n}\n\nCLIAspect.addRuntime(CLIMain);\n\n/**\n * kind of a hack.\n * in the legacy, this is running at the beginning and it take care of issues when Bit files are missing,\n * such as \".bit\".\n * (to make this process better, you can easily remove it and run the e2e-tests. you'll see some failing)\n */\nasync function ensureWorkspaceAndScope() {\n try {\n await loadConsumerIfExist();\n } catch (err) {\n // do nothing. it could fail for example with ScopeNotFound error, which is taken care of in \"bit init\".\n }\n}\n\nfunction isFullUrl(url: string) {\n return url.startsWith('http://') || url.startsWith('https://');\n}\n"],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare class LegacyCommandAdapter implements Command {
15
15
  migration?: boolean;
16
16
  internal?: boolean;
17
17
  skipWorkspace?: boolean;
18
+ helpUrl?: string;
18
19
  _packageManagerArgs?: string[];
19
20
  constructor(cmd: LegacyCommand, cliExtension: CLIMain);
20
21
  private action;
@@ -36,9 +36,11 @@ class LegacyCommandAdapter {
36
36
  (0, _defineProperty2().default)(this, "migration", void 0);
37
37
  (0, _defineProperty2().default)(this, "internal", void 0);
38
38
  (0, _defineProperty2().default)(this, "skipWorkspace", void 0);
39
+ (0, _defineProperty2().default)(this, "helpUrl", void 0);
39
40
  (0, _defineProperty2().default)(this, "_packageManagerArgs", void 0);
40
41
  this.name = cmd.name;
41
42
  this.description = cmd.description;
43
+ this.helpUrl = cmd.helpUrl;
42
44
  this.options = cmd.opts || [];
43
45
  this.alias = cmd.alias;
44
46
  this.extendedDescription = cmd.extendedDescription;
@@ -1 +1 @@
1
- {"version":3,"names":["LegacyCommandAdapter","constructor","cmd","cliExtension","name","description","options","opts","alias","extendedDescription","skipWorkspace","group","loader","private","migration","internal","commands","map","sub","action","params","res","_packageManagerArgs","data","code","__code","undefined","report","actionResult","json","JSON","parse"],"sources":["legacy-command-adapter.ts"],"sourcesContent":["import { LegacyCommand } from '@teambit/legacy/dist/cli/legacy-command';\nimport { Command, CommandOptions, GenericObject } from '.';\nimport { CLIMain } from './cli.main.runtime';\n\nexport class LegacyCommandAdapter implements Command {\n alias: string;\n name: string;\n description: string;\n options: CommandOptions;\n extendedDescription?: string;\n group?: string;\n loader?: boolean;\n commands: Command[];\n private?: boolean;\n migration?: boolean;\n internal?: boolean;\n skipWorkspace?: boolean;\n _packageManagerArgs?: string[];\n constructor(private cmd: LegacyCommand, cliExtension: CLIMain) {\n this.name = cmd.name;\n this.description = cmd.description;\n this.options = cmd.opts || [];\n this.alias = cmd.alias;\n this.extendedDescription = cmd.extendedDescription;\n this.skipWorkspace = cmd.skipWorkspace;\n this.group = cmd.group;\n this.loader = cmd.loader;\n this.private = cmd.private;\n this.migration = cmd.migration;\n this.internal = cmd.internal;\n this.commands = (cmd.commands || []).map((sub) => new LegacyCommandAdapter(sub, cliExtension));\n }\n\n private async action(params: any, options: { [key: string]: any }): Promise<ActionResult> {\n const res = await this.cmd.action(params, options, this._packageManagerArgs);\n let data = res;\n let code = 0;\n if (res && res.__code !== undefined) {\n data = res.data;\n code = res.__code;\n }\n const report = this.cmd.report(data, params, options);\n return {\n code,\n report,\n };\n }\n\n async report(params: any, options: { [key: string]: any }): Promise<{ data: string; code: number }> {\n const actionResult = await this.action(params, options);\n return { data: actionResult.report, code: actionResult.code };\n }\n\n async json(params: any, options: { [key: string]: any }): Promise<GenericObject> {\n const actionResult = await this.action(params, options);\n return {\n data: JSON.parse(actionResult.report),\n code: actionResult.code,\n };\n }\n}\n\ntype ActionResult = {\n code: number;\n report: string;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAMA,oBAAN,CAA8C;EAcnDC,WAAW,CAASC,GAAT,EAA6BC,YAA7B,EAAoD;IAAA,KAA3CD,GAA2C,GAA3CA,GAA2C;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAC7D,KAAKE,IAAL,GAAYF,GAAG,CAACE,IAAhB;IACA,KAAKC,WAAL,GAAmBH,GAAG,CAACG,WAAvB;IACA,KAAKC,OAAL,GAAeJ,GAAG,CAACK,IAAJ,IAAY,EAA3B;IACA,KAAKC,KAAL,GAAaN,GAAG,CAACM,KAAjB;IACA,KAAKC,mBAAL,GAA2BP,GAAG,CAACO,mBAA/B;IACA,KAAKC,aAAL,GAAqBR,GAAG,CAACQ,aAAzB;IACA,KAAKC,KAAL,GAAaT,GAAG,CAACS,KAAjB;IACA,KAAKC,MAAL,GAAcV,GAAG,CAACU,MAAlB;IACA,KAAKC,OAAL,GAAeX,GAAG,CAACW,OAAnB;IACA,KAAKC,SAAL,GAAiBZ,GAAG,CAACY,SAArB;IACA,KAAKC,QAAL,GAAgBb,GAAG,CAACa,QAApB;IACA,KAAKC,QAAL,GAAgB,CAACd,GAAG,CAACc,QAAJ,IAAgB,EAAjB,EAAqBC,GAArB,CAA0BC,GAAD,IAAS,IAAIlB,oBAAJ,CAAyBkB,GAAzB,EAA8Bf,YAA9B,CAAlC,CAAhB;EACD;;EAEmB,MAANgB,MAAM,CAACC,MAAD,EAAcd,OAAd,EAAsE;IACxF,MAAMe,GAAG,GAAG,MAAM,KAAKnB,GAAL,CAASiB,MAAT,CAAgBC,MAAhB,EAAwBd,OAAxB,EAAiC,KAAKgB,mBAAtC,CAAlB;IACA,IAAIC,IAAI,GAAGF,GAAX;IACA,IAAIG,IAAI,GAAG,CAAX;;IACA,IAAIH,GAAG,IAAIA,GAAG,CAACI,MAAJ,KAAeC,SAA1B,EAAqC;MACnCH,IAAI,GAAGF,GAAG,CAACE,IAAX;MACAC,IAAI,GAAGH,GAAG,CAACI,MAAX;IACD;;IACD,MAAME,MAAM,GAAG,KAAKzB,GAAL,CAASyB,MAAT,CAAgBJ,IAAhB,EAAsBH,MAAtB,EAA8Bd,OAA9B,CAAf;IACA,OAAO;MACLkB,IADK;MAELG;IAFK,CAAP;EAID;;EAEW,MAANA,MAAM,CAACP,MAAD,EAAcd,OAAd,EAAwF;IAClG,MAAMsB,YAAY,GAAG,MAAM,KAAKT,MAAL,CAAYC,MAAZ,EAAoBd,OAApB,CAA3B;IACA,OAAO;MAAEiB,IAAI,EAAEK,YAAY,CAACD,MAArB;MAA6BH,IAAI,EAAEI,YAAY,CAACJ;IAAhD,CAAP;EACD;;EAES,MAAJK,IAAI,CAACT,MAAD,EAAcd,OAAd,EAAuE;IAC/E,MAAMsB,YAAY,GAAG,MAAM,KAAKT,MAAL,CAAYC,MAAZ,EAAoBd,OAApB,CAA3B;IACA,OAAO;MACLiB,IAAI,EAAEO,IAAI,CAACC,KAAL,CAAWH,YAAY,CAACD,MAAxB,CADD;MAELH,IAAI,EAAEI,YAAY,CAACJ;IAFd,CAAP;EAID;;AAvDkD"}
1
+ {"version":3,"names":["LegacyCommandAdapter","constructor","cmd","cliExtension","name","description","helpUrl","options","opts","alias","extendedDescription","skipWorkspace","group","loader","private","migration","internal","commands","map","sub","action","params","res","_packageManagerArgs","data","code","__code","undefined","report","actionResult","json","JSON","parse"],"sources":["legacy-command-adapter.ts"],"sourcesContent":["import { LegacyCommand } from '@teambit/legacy/dist/cli/legacy-command';\nimport { Command, CommandOptions, GenericObject } from '.';\nimport { CLIMain } from './cli.main.runtime';\n\nexport class LegacyCommandAdapter implements Command {\n alias: string;\n name: string;\n description: string;\n options: CommandOptions;\n extendedDescription?: string;\n group?: string;\n loader?: boolean;\n commands: Command[];\n private?: boolean;\n migration?: boolean;\n internal?: boolean;\n skipWorkspace?: boolean;\n helpUrl?: string;\n _packageManagerArgs?: string[];\n constructor(private cmd: LegacyCommand, cliExtension: CLIMain) {\n this.name = cmd.name;\n this.description = cmd.description;\n this.helpUrl = cmd.helpUrl;\n this.options = cmd.opts || [];\n this.alias = cmd.alias;\n this.extendedDescription = cmd.extendedDescription;\n this.skipWorkspace = cmd.skipWorkspace;\n this.group = cmd.group;\n this.loader = cmd.loader;\n this.private = cmd.private;\n this.migration = cmd.migration;\n this.internal = cmd.internal;\n this.commands = (cmd.commands || []).map((sub) => new LegacyCommandAdapter(sub, cliExtension));\n }\n\n private async action(params: any, options: { [key: string]: any }): Promise<ActionResult> {\n const res = await this.cmd.action(params, options, this._packageManagerArgs);\n let data = res;\n let code = 0;\n if (res && res.__code !== undefined) {\n data = res.data;\n code = res.__code;\n }\n const report = this.cmd.report(data, params, options);\n return {\n code,\n report,\n };\n }\n\n async report(params: any, options: { [key: string]: any }): Promise<{ data: string; code: number }> {\n const actionResult = await this.action(params, options);\n return { data: actionResult.report, code: actionResult.code };\n }\n\n async json(params: any, options: { [key: string]: any }): Promise<GenericObject> {\n const actionResult = await this.action(params, options);\n return {\n data: JSON.parse(actionResult.report),\n code: actionResult.code,\n };\n }\n}\n\ntype ActionResult = {\n code: number;\n report: string;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAMA,oBAAN,CAA8C;EAenDC,WAAW,CAASC,GAAT,EAA6BC,YAA7B,EAAoD;IAAA,KAA3CD,GAA2C,GAA3CA,GAA2C;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAC7D,KAAKE,IAAL,GAAYF,GAAG,CAACE,IAAhB;IACA,KAAKC,WAAL,GAAmBH,GAAG,CAACG,WAAvB;IACA,KAAKC,OAAL,GAAeJ,GAAG,CAACI,OAAnB;IACA,KAAKC,OAAL,GAAeL,GAAG,CAACM,IAAJ,IAAY,EAA3B;IACA,KAAKC,KAAL,GAAaP,GAAG,CAACO,KAAjB;IACA,KAAKC,mBAAL,GAA2BR,GAAG,CAACQ,mBAA/B;IACA,KAAKC,aAAL,GAAqBT,GAAG,CAACS,aAAzB;IACA,KAAKC,KAAL,GAAaV,GAAG,CAACU,KAAjB;IACA,KAAKC,MAAL,GAAcX,GAAG,CAACW,MAAlB;IACA,KAAKC,OAAL,GAAeZ,GAAG,CAACY,OAAnB;IACA,KAAKC,SAAL,GAAiBb,GAAG,CAACa,SAArB;IACA,KAAKC,QAAL,GAAgBd,GAAG,CAACc,QAApB;IACA,KAAKC,QAAL,GAAgB,CAACf,GAAG,CAACe,QAAJ,IAAgB,EAAjB,EAAqBC,GAArB,CAA0BC,GAAD,IAAS,IAAInB,oBAAJ,CAAyBmB,GAAzB,EAA8BhB,YAA9B,CAAlC,CAAhB;EACD;;EAEmB,MAANiB,MAAM,CAACC,MAAD,EAAcd,OAAd,EAAsE;IACxF,MAAMe,GAAG,GAAG,MAAM,KAAKpB,GAAL,CAASkB,MAAT,CAAgBC,MAAhB,EAAwBd,OAAxB,EAAiC,KAAKgB,mBAAtC,CAAlB;IACA,IAAIC,IAAI,GAAGF,GAAX;IACA,IAAIG,IAAI,GAAG,CAAX;;IACA,IAAIH,GAAG,IAAIA,GAAG,CAACI,MAAJ,KAAeC,SAA1B,EAAqC;MACnCH,IAAI,GAAGF,GAAG,CAACE,IAAX;MACAC,IAAI,GAAGH,GAAG,CAACI,MAAX;IACD;;IACD,MAAME,MAAM,GAAG,KAAK1B,GAAL,CAAS0B,MAAT,CAAgBJ,IAAhB,EAAsBH,MAAtB,EAA8Bd,OAA9B,CAAf;IACA,OAAO;MACLkB,IADK;MAELG;IAFK,CAAP;EAID;;EAEW,MAANA,MAAM,CAACP,MAAD,EAAcd,OAAd,EAAwF;IAClG,MAAMsB,YAAY,GAAG,MAAM,KAAKT,MAAL,CAAYC,MAAZ,EAAoBd,OAApB,CAA3B;IACA,OAAO;MAAEiB,IAAI,EAAEK,YAAY,CAACD,MAArB;MAA6BH,IAAI,EAAEI,YAAY,CAACJ;IAAhD,CAAP;EACD;;EAES,MAAJK,IAAI,CAACT,MAAD,EAAcd,OAAd,EAAuE;IAC/E,MAAMsB,YAAY,GAAG,MAAM,KAAKT,MAAL,CAAYC,MAAZ,EAAoBd,OAApB,CAA3B;IACA,OAAO;MACLiB,IAAI,EAAEO,IAAI,CAACC,KAAL,CAAWH,YAAY,CAACD,MAAxB,CADD;MAELH,IAAI,EAAEI,YAAY,CAACJ;IAFd,CAAP;EAID;;AAzDkD"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/cli",
3
- "version": "0.0.524",
3
+ "version": "0.0.527",
4
4
  "homepage": "https://bit.dev/teambit/harmony/cli",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "cli",
9
- "version": "0.0.524"
9
+ "version": "0.0.527"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -18,7 +18,7 @@
18
18
  "@babel/runtime": "7.12.18",
19
19
  "core-js": "^3.0.0",
20
20
  "@teambit/harmony": "0.3.3",
21
- "@teambit/community": "0.0.72",
21
+ "@teambit/community": "0.0.75",
22
22
  "@teambit/bit-error": "0.0.394"
23
23
  },
24
24
  "devDependencies": {
@@ -33,7 +33,7 @@
33
33
  "@types/node": "12.20.4"
34
34
  },
35
35
  "peerDependencies": {
36
- "@teambit/legacy": "1.0.306",
36
+ "@teambit/legacy": "1.0.309",
37
37
  "react-dom": "^16.8.0 || ^17.0.0",
38
38
  "react": "^16.8.0 || ^17.0.0"
39
39
  },
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_cli@0.0.524/dist/cli.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_cli@0.0.524/dist/cli.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_cli@0.0.527/dist/cli.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_cli@0.0.527/dist/cli.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
Binary file