@teambit/cli 0.0.494 → 0.0.497

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.cmd.d.ts CHANGED
@@ -11,6 +11,9 @@ export declare class CliGenerateCmd implements Command {
11
11
  options: CommandOptions;
12
12
  constructor(cliMain: CLIMain);
13
13
  report(args: any, { metadata }: GenerateOpts): Promise<string>;
14
+ json(): Promise<(Pick<Command, "name" | "alias" | "options" | "description" | "extendedDescription" | "group" | "private" | "internal" | "remoteOp" | "skipWorkspace"> & {
15
+ commands?: any;
16
+ })[]>;
14
17
  }
15
18
  export declare class CliCmd implements Command {
16
19
  private cliMain;
package/dist/cli.cmd.js CHANGED
@@ -92,7 +92,7 @@ class CliGenerateCmd {
92
92
  (0, _defineProperty2().default)(this, "alias", '');
93
93
  (0, _defineProperty2().default)(this, "loader", false);
94
94
  (0, _defineProperty2().default)(this, "group", 'general');
95
- (0, _defineProperty2().default)(this, "options", [['', 'metadata', 'metadata/front-matter to place at the top of the .md file, enter as an object e.g. --metadata.id=cli --metadata.title=commands']]);
95
+ (0, _defineProperty2().default)(this, "options", [['', 'metadata', 'metadata/front-matter to place at the top of the .md file, enter as an object e.g. --metadata.id=cli --metadata.title=commands'], ['j', 'json', 'output the commands info as JSON']]);
96
96
  }
97
97
 
98
98
  async report(args, {
@@ -103,6 +103,10 @@ class CliGenerateCmd {
103
103
  }).generate();
104
104
  }
105
105
 
106
+ async json() {
107
+ return new (_generateDocMd().GenerateCommandsDoc)(this.cliMain.commands, {}).generateJson();
108
+ }
109
+
106
110
  }
107
111
 
108
112
  exports.CliGenerateCmd = CliGenerateCmd;
@@ -1 +1 @@
1
- {"version":3,"names":["CliGenerateCmd","constructor","cliMain","report","args","metadata","GenerateCommandsDoc","commands","generate","CliCmd","docsDomain","logger","isDaemon","rl","readline","createInterface","input","process","stdin","output","stdout","prompt","completer","line","cb","cliParser","CLIParser","groups","undefined","Promise","resolve","on","cmd","trim","split","parse","err","handleErrorAndExit","lineSplit","values","length","completeCommand","loadConsumerIfExist","then","consumer","comps","bitmapIdsFromCurrentLane","map","id","toStringWithoutVersion","filter","c","includes","catch","name","startsWith"],"sources":["cli.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { handleErrorAndExit } from '@teambit/legacy/dist/cli/handle-errors';\nimport { loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport readline from 'readline';\nimport { CLIParser } from './cli-parser';\nimport { CLIMain } from './cli.main.runtime';\nimport { GenerateCommandsDoc, GenerateOpts } from './generate-doc-md';\n\nexport class CliGenerateCmd implements Command {\n name = 'generate';\n description = 'EXPERIMENTAL. generate an .md file with all commands details';\n alias = '';\n loader = false;\n group = 'general';\n options = [\n [\n '',\n 'metadata',\n 'metadata/front-matter to place at the top of the .md file, enter as an object e.g. --metadata.id=cli --metadata.title=commands',\n ],\n ] as CommandOptions;\n\n constructor(private cliMain: CLIMain) {}\n\n async report(args, { metadata }: GenerateOpts): Promise<string> {\n return new GenerateCommandsDoc(this.cliMain.commands, { metadata }).generate();\n }\n}\n\nexport class CliCmd implements Command {\n name = 'cli';\n description = 'EXPERIMENTAL. enters bit cli program and generates commands list';\n alias = '';\n commands: Command[] = [];\n loader = false;\n group = 'general';\n options = [] as CommandOptions;\n\n constructor(private cliMain: CLIMain, private docsDomain: string) {}\n\n async report(): Promise<string> {\n logger.isDaemon = true;\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n prompt: 'bit > ',\n completer: (line, cb) => completer(line, cb, this.cliMain),\n });\n\n const cliParser = new CLIParser(this.cliMain.commands, this.cliMain.groups, undefined, this.docsDomain);\n\n rl.prompt();\n\n return new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n rl.on('line', async (line) => {\n const cmd = line.trim().split(' ');\n try {\n await cliParser.parse(cmd);\n } catch (err: any) {\n await handleErrorAndExit(err, cmd[0]);\n }\n rl.prompt();\n }).on('close', () => {\n resolve('Have a great day!');\n });\n });\n }\n}\n\nfunction completer(line: string, cb: Function, cliMain: CLIMain) {\n const lineSplit = line.split(' ');\n let values: string[] = [];\n if (lineSplit.length <= 1) {\n values = completeCommand(line, cliMain);\n cb(null, [values, line]);\n }\n loadConsumerIfExist()\n .then((consumer) => {\n const comps = consumer?.bitmapIdsFromCurrentLane.map((id) => id.toStringWithoutVersion()) || [];\n values = comps.filter((c) => c.includes(lineSplit[1]));\n // eslint-disable-next-line promise/no-callback-in-promise\n cb(null, [values, line]);\n })\n .catch((err) => {\n // eslint-disable-next-line promise/no-callback-in-promise\n cb(err, [[], line]);\n });\n}\n\nfunction completeCommand(line: string, cliMain: CLIMain): string[] {\n const commands = cliMain.commands.filter((cmd) => cmd.name.startsWith(line));\n return commands.map((c) => c.name).map((name) => name.split(' ')[0]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;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;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AARA;AAUO,MAAMA,cAAN,CAAwC;EAc7CC,WAAW,CAASC,OAAT,EAA2B;IAAA,KAAlBA,OAAkB,GAAlBA,OAAkB;IAAA,8CAb/B,UAa+B;IAAA,qDAZxB,8DAYwB;IAAA,+CAX9B,EAW8B;IAAA,gDAV7B,KAU6B;IAAA,+CAT9B,SAS8B;IAAA,iDAR5B,CACR,CACE,EADF,EAEE,UAFF,EAGE,gIAHF,CADQ,CAQ4B;EAAE;;EAE5B,MAANC,MAAM,CAACC,IAAD,EAAO;IAAEC;EAAF,CAAP,EAAoD;IAC9D,OAAO,KAAIC,oCAAJ,EAAwB,KAAKJ,OAAL,CAAaK,QAArC,EAA+C;MAAEF;IAAF,CAA/C,EAA6DG,QAA7D,EAAP;EACD;;AAlB4C;;;;AAqBxC,MAAMC,MAAN,CAAgC;EASrCR,WAAW,CAASC,OAAT,EAAmCQ,UAAnC,EAAuD;IAAA,KAA9CR,OAA8C,GAA9CA,OAA8C;IAAA,KAApBQ,UAAoB,GAApBA,UAAoB;IAAA,8CAR3D,KAQ2D;IAAA,qDAPpD,kEAOoD;IAAA,+CAN1D,EAM0D;IAAA,kDAL5C,EAK4C;IAAA,gDAJzD,KAIyD;IAAA,+CAH1D,SAG0D;IAAA,iDAFxD,EAEwD;EAAE;;EAExD,MAANP,MAAM,GAAoB;IAC9BQ,iBAAA,CAAOC,QAAP,GAAkB,IAAlB;;IACA,MAAMC,EAAE,GAAGC,mBAAA,CAASC,eAAT,CAAyB;MAClCC,KAAK,EAAEC,OAAO,CAACC,KADmB;MAElCC,MAAM,EAAEF,OAAO,CAACG,MAFkB;MAGlCC,MAAM,EAAE,QAH0B;MAIlCC,SAAS,EAAE,CAACC,IAAD,EAAOC,EAAP,KAAcF,SAAS,CAACC,IAAD,EAAOC,EAAP,EAAW,KAAKtB,OAAhB;IAJA,CAAzB,CAAX;;IAOA,MAAMuB,SAAS,GAAG,KAAIC,sBAAJ,EAAc,KAAKxB,OAAL,CAAaK,QAA3B,EAAqC,KAAKL,OAAL,CAAayB,MAAlD,EAA0DC,SAA1D,EAAqE,KAAKlB,UAA1E,CAAlB;IAEAG,EAAE,CAACQ,MAAH;IAEA,OAAO,IAAIQ,OAAJ,CAAaC,OAAD,IAAa;MAC9B;MACAjB,EAAE,CAACkB,EAAH,CAAM,MAAN,EAAc,MAAOR,IAAP,IAAgB;QAC5B,MAAMS,GAAG,GAAGT,IAAI,CAACU,IAAL,GAAYC,KAAZ,CAAkB,GAAlB,CAAZ;;QACA,IAAI;UACF,MAAMT,SAAS,CAACU,KAAV,CAAgBH,GAAhB,CAAN;QACD,CAFD,CAEE,OAAOI,GAAP,EAAiB;UACjB,MAAM,IAAAC,kCAAA,EAAmBD,GAAnB,EAAwBJ,GAAG,CAAC,CAAD,CAA3B,CAAN;QACD;;QACDnB,EAAE,CAACQ,MAAH;MACD,CARD,EAQGU,EARH,CAQM,OARN,EAQe,MAAM;QACnBD,OAAO,CAAC,mBAAD,CAAP;MACD,CAVD;IAWD,CAbM,CAAP;EAcD;;AAtCoC;;;;AAyCvC,SAASR,SAAT,CAAmBC,IAAnB,EAAiCC,EAAjC,EAA+CtB,OAA/C,EAAiE;EAC/D,MAAMoC,SAAS,GAAGf,IAAI,CAACW,KAAL,CAAW,GAAX,CAAlB;EACA,IAAIK,MAAgB,GAAG,EAAvB;;EACA,IAAID,SAAS,CAACE,MAAV,IAAoB,CAAxB,EAA2B;IACzBD,MAAM,GAAGE,eAAe,CAAClB,IAAD,EAAOrB,OAAP,CAAxB;IACAsB,EAAE,CAAC,IAAD,EAAO,CAACe,MAAD,EAAShB,IAAT,CAAP,CAAF;EACD;;EACD,IAAAmB,+BAAA,IACGC,IADH,CACSC,QAAD,IAAc;IAClB,MAAMC,KAAK,GAAG,CAAAD,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEE,wBAAV,CAAmCC,GAAnC,CAAwCC,EAAD,IAAQA,EAAE,CAACC,sBAAH,EAA/C,MAA+E,EAA7F;IACAV,MAAM,GAAGM,KAAK,CAACK,MAAN,CAAcC,CAAD,IAAOA,CAAC,CAACC,QAAF,CAAWd,SAAS,CAAC,CAAD,CAApB,CAApB,CAAT,CAFkB,CAGlB;;IACAd,EAAE,CAAC,IAAD,EAAO,CAACe,MAAD,EAAShB,IAAT,CAAP,CAAF;EACD,CANH,EAOG8B,KAPH,CAOUjB,GAAD,IAAS;IACd;IACAZ,EAAE,CAACY,GAAD,EAAM,CAAC,EAAD,EAAKb,IAAL,CAAN,CAAF;EACD,CAVH;AAWD;;AAED,SAASkB,eAAT,CAAyBlB,IAAzB,EAAuCrB,OAAvC,EAAmE;EACjE,MAAMK,QAAQ,GAAGL,OAAO,CAACK,QAAR,CAAiB2C,MAAjB,CAAyBlB,GAAD,IAASA,GAAG,CAACsB,IAAJ,CAASC,UAAT,CAAoBhC,IAApB,CAAjC,CAAjB;EACA,OAAOhB,QAAQ,CAACwC,GAAT,CAAcI,CAAD,IAAOA,CAAC,CAACG,IAAtB,EAA4BP,GAA5B,CAAiCO,IAAD,IAAUA,IAAI,CAACpB,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAA1C,CAAP;AACD"}
1
+ {"version":3,"names":["CliGenerateCmd","constructor","cliMain","report","args","metadata","GenerateCommandsDoc","commands","generate","json","generateJson","CliCmd","docsDomain","logger","isDaemon","rl","readline","createInterface","input","process","stdin","output","stdout","prompt","completer","line","cb","cliParser","CLIParser","groups","undefined","Promise","resolve","on","cmd","trim","split","parse","err","handleErrorAndExit","lineSplit","values","length","completeCommand","loadConsumerIfExist","then","consumer","comps","bitmapIdsFromCurrentLane","map","id","toStringWithoutVersion","filter","c","includes","catch","name","startsWith"],"sources":["cli.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { handleErrorAndExit } from '@teambit/legacy/dist/cli/handle-errors';\nimport { loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport readline from 'readline';\nimport { CLIParser } from './cli-parser';\nimport { CLIMain } from './cli.main.runtime';\nimport { GenerateCommandsDoc, GenerateOpts } from './generate-doc-md';\n\nexport class CliGenerateCmd implements Command {\n name = 'generate';\n description = 'EXPERIMENTAL. generate an .md file with all commands details';\n alias = '';\n loader = false;\n group = 'general';\n options = [\n [\n '',\n 'metadata',\n 'metadata/front-matter to place at the top of the .md file, enter as an object e.g. --metadata.id=cli --metadata.title=commands',\n ],\n ['j', 'json', 'output the commands info as JSON'],\n ] as CommandOptions;\n\n constructor(private cliMain: CLIMain) {}\n\n async report(args, { metadata }: GenerateOpts): Promise<string> {\n return new GenerateCommandsDoc(this.cliMain.commands, { metadata }).generate();\n }\n\n async json() {\n return new GenerateCommandsDoc(this.cliMain.commands, {}).generateJson();\n }\n}\n\nexport class CliCmd implements Command {\n name = 'cli';\n description = 'EXPERIMENTAL. enters bit cli program and generates commands list';\n alias = '';\n commands: Command[] = [];\n loader = false;\n group = 'general';\n options = [] as CommandOptions;\n\n constructor(private cliMain: CLIMain, private docsDomain: string) {}\n\n async report(): Promise<string> {\n logger.isDaemon = true;\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n prompt: 'bit > ',\n completer: (line, cb) => completer(line, cb, this.cliMain),\n });\n\n const cliParser = new CLIParser(this.cliMain.commands, this.cliMain.groups, undefined, this.docsDomain);\n\n rl.prompt();\n\n return new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n rl.on('line', async (line) => {\n const cmd = line.trim().split(' ');\n try {\n await cliParser.parse(cmd);\n } catch (err: any) {\n await handleErrorAndExit(err, cmd[0]);\n }\n rl.prompt();\n }).on('close', () => {\n resolve('Have a great day!');\n });\n });\n }\n}\n\nfunction completer(line: string, cb: Function, cliMain: CLIMain) {\n const lineSplit = line.split(' ');\n let values: string[] = [];\n if (lineSplit.length <= 1) {\n values = completeCommand(line, cliMain);\n cb(null, [values, line]);\n }\n loadConsumerIfExist()\n .then((consumer) => {\n const comps = consumer?.bitmapIdsFromCurrentLane.map((id) => id.toStringWithoutVersion()) || [];\n values = comps.filter((c) => c.includes(lineSplit[1]));\n // eslint-disable-next-line promise/no-callback-in-promise\n cb(null, [values, line]);\n })\n .catch((err) => {\n // eslint-disable-next-line promise/no-callback-in-promise\n cb(err, [[], line]);\n });\n}\n\nfunction completeCommand(line: string, cliMain: CLIMain): string[] {\n const commands = cliMain.commands.filter((cmd) => cmd.name.startsWith(line));\n return commands.map((c) => c.name).map((name) => name.split(' ')[0]);\n}\n"],"mappings":"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"}
@@ -257,7 +257,7 @@ class CLIMain {
257
257
  setDefaults(command) {
258
258
  command.alias = command.alias || '';
259
259
  command.description = command.description || '';
260
- command.shortDescription = command.shortDescription || '';
260
+ command.extendedDescription = command.extendedDescription || '';
261
261
  command.group = command.group || 'ungrouped';
262
262
  command.options = command.options || [];
263
263
  command.private = command.private || false;
@@ -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","shortDescription","group","options","private","loader","internal","provider","config","cliMain","legacyExtensions","LegacyLoadExtensions","extension","registerHookActionsOnHooksManager","extensionsCommands","reduce","acc","curr","length","concat","legacyRegistry","buildRegistry","legacyCommands","legacyCommandsAdapters","LegacyCommandAdapter","cliGenerateCmd","CliGenerateCmd","cliCmd","CliCmd","helpCmd","HelpCmd","push","CompletionCmd","CommunityAspect","MainRuntime","Slot","withType","CLIAspect","addRuntime"],"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 LegacyLoadExtensions from '@teambit/legacy/dist/legacy-extensions/extensions-loader';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\n\nimport { groups, GroupsType } from '@teambit/legacy/dist/cli/command-groups';\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 (legacy and Harmony)\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.shortDescription = command.shortDescription || '';\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 legacyExtensions = await LegacyLoadExtensions();\n // Make sure to register all the hooks actions in the global hooks manager\n legacyExtensions.forEach((extension) => {\n extension.registerHookActionsOnHooksManager();\n });\n\n const extensionsCommands = legacyExtensions.reduce((acc, curr) => {\n if (curr.commands && curr.commands.length) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n acc = acc.concat(curr.commands);\n }\n return acc;\n }, []);\n\n const legacyRegistry = buildRegistry(extensionsCommands);\n const legacyCommands = legacyRegistry.commands.concat(legacyRegistry.extensionsCommands || []);\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"],"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","provider","config","cliMain","legacyExtensions","LegacyLoadExtensions","extension","registerHookActionsOnHooksManager","extensionsCommands","reduce","acc","curr","length","concat","legacyRegistry","buildRegistry","legacyCommands","legacyCommandsAdapters","LegacyCommandAdapter","cliGenerateCmd","CliGenerateCmd","cliCmd","CliCmd","helpCmd","HelpCmd","push","CompletionCmd","CommunityAspect","MainRuntime","Slot","withType","CLIAspect","addRuntime"],"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 LegacyLoadExtensions from '@teambit/legacy/dist/legacy-extensions/extensions-loader';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\n\nimport { groups, GroupsType } from '@teambit/legacy/dist/cli/command-groups';\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 (legacy and Harmony)\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 legacyExtensions = await LegacyLoadExtensions();\n // Make sure to register all the hooks actions in the global hooks manager\n legacyExtensions.forEach((extension) => {\n extension.registerHookActionsOnHooksManager();\n });\n\n const extensionsCommands = legacyExtensions.reduce((acc, curr) => {\n if (curr.commands && curr.commands.length) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n acc = acc.concat(curr.commands);\n }\n return acc;\n }, []);\n\n const legacyRegistry = buildRegistry(extensionsCommands);\n const legacyCommands = legacyRegistry.commands.concat(legacyRegistry.extensionsCommands || []);\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"],"mappings":"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"}
@@ -239,6 +239,7 @@ class CommandRunner {
239
239
  }
240
240
 
241
241
  if (this.flags.log) {
242
+ // probably not necessary anymore. it is handled in src/logger - determineWritingLogToScreen()
242
243
  const logValue = typeof this.flags.log === 'string' ? this.flags.log : undefined;
243
244
 
244
245
  _logger().default.switchToConsoleLogger(logValue);
@@ -1 +1 @@
1
- {"version":3,"names":["CommandRunner","constructor","command","args","flags","commandName","parseCommandName","name","runCommand","bootstrapCommand","runMigrateIfNeeded","determineConsoleWritingDuringCommand","json","runJsonHandler","shouldRunRender","runRenderHandler","report","runReportHandler","err","handleErrorAndExit","internal","Error","Analytics","init","logger","info","token","TOKEN_FLAG_NAME","globalFlags","toString","isTerminal","process","stdout","isTTY","Boolean","render","result","code","data","writeAndExit","JSON","stringify","loader","off","toRenderResult","waitUntilExit","exitAfterFlush","exitCode","on","start","shouldWriteToConsole","log","logValue","undefined","switchToConsoleLogger","write","migration","debug","migrate","obj","isRenderResult","hasOwnProperty"],"sources":["command-runner.ts"],"sourcesContent":["import { render } from 'ink';\nimport { migrate } from '@teambit/legacy/dist/api/consumer';\nimport logger, { LoggerLevel } from '@teambit/legacy/dist/logger/logger';\nimport { CLIArgs, Command, Flags, RenderResult } from '@teambit/legacy/dist/cli/command';\nimport { parseCommandName } from '@teambit/legacy/dist/cli/command-registry';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { handleErrorAndExit } from '@teambit/legacy/dist/cli/handle-errors';\nimport { TOKEN_FLAG_NAME } from '@teambit/legacy/dist/constants';\nimport globalFlags from '@teambit/legacy/dist/cli/global-flags';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\n\nexport class CommandRunner {\n private commandName: string;\n constructor(private command: Command, private args: CLIArgs, private flags: Flags) {\n this.commandName = parseCommandName(this.command.name);\n }\n\n /**\n * run command using one of the handler, \"json\"/\"report\"/\"render\". once done, exit the process.\n */\n async runCommand() {\n try {\n this.bootstrapCommand();\n await this.runMigrateIfNeeded();\n this.determineConsoleWritingDuringCommand();\n if (this.flags.json) {\n return await this.runJsonHandler();\n }\n if (this.shouldRunRender()) {\n return await this.runRenderHandler();\n }\n if (this.command.report) {\n return await this.runReportHandler();\n }\n } catch (err: any) {\n return handleErrorAndExit(err, this.commandName, this.command.internal);\n }\n\n throw new Error(`command \"${this.commandName}\" doesn't implement \"render\" nor \"report\" methods`);\n }\n\n private bootstrapCommand() {\n Analytics.init(this.commandName, this.flags, this.args);\n logger.info(`[*] started a new command: \"${this.commandName}\" with the following data:`, {\n args: this.args,\n flags: this.flags,\n });\n const token = this.flags[TOKEN_FLAG_NAME];\n if (token) {\n globalFlags.token = token.toString();\n }\n }\n\n /**\n * when both \"render\" and \"report\" were implemented, check whether it's a terminal.\n * if it's a terminal, use \"render\", if not, use \"report\" because \"report\" is just a string\n */\n private shouldRunRender() {\n const isTerminal = process.stdout.isTTY;\n if (this.command.report && !isTerminal) {\n return false;\n }\n return Boolean(this.command.render);\n }\n\n /**\n * this works for both, Harmony commands and Legacy commands (the legacy-command-adapter\n * implements json() method)\n */\n private async runJsonHandler() {\n if (!this.flags.json) return null;\n if (!this.command.json) throw new Error(`command \"${this.commandName}\" doesn't implement \"json\" method`);\n const result = await this.command.json(this.args, this.flags);\n const code = result.code || 0;\n const data = result.data || result;\n return this.writeAndExit(JSON.stringify(data, null, 2), code);\n }\n\n private async runRenderHandler() {\n if (!this.command.render) throw new Error('runRenderHandler expects command.render to be implemented');\n const result = await this.command.render(this.args, this.flags);\n loader.off();\n\n const { data, code } = toRenderResult(result);\n\n const { waitUntilExit } = render(data);\n await waitUntilExit();\n return logger.exitAfterFlush(code, this.commandName);\n }\n\n private async runReportHandler() {\n if (!this.command.report) throw new Error('runReportHandler expects command.report to be implemented');\n const result = await this.command.report(this.args, this.flags);\n loader.off();\n const data = typeof result === 'string' ? result : result.data;\n const exitCode = typeof result === 'string' ? 0 : result.code;\n return this.writeAndExit(`${data}\\n`, exitCode);\n }\n\n /**\n * the loader and logger.console write output to the console during the command execution.\n * for internals commands, such as, _put, _fetch, the command.loader = false.\n */\n private determineConsoleWritingDuringCommand() {\n if (this.command.loader && !this.flags.json && !this.flags['get-yargs-completions']) {\n loader.on();\n loader.start(`running command \"${this.commandName}\"...`);\n logger.shouldWriteToConsole = true;\n } else {\n loader.off();\n logger.shouldWriteToConsole = false;\n }\n if (this.flags.log) {\n const logValue = typeof this.flags.log === 'string' ? this.flags.log : undefined;\n logger.switchToConsoleLogger(logValue as LoggerLevel);\n }\n }\n\n private async writeAndExit(data: string, exitCode: number) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return process.stdout.write(data, async () => logger.exitAfterFlush(exitCode, this.commandName, data));\n }\n\n private async runMigrateIfNeeded(): Promise<any> {\n // @ts-ignore LegacyCommandAdapter has .migration\n if (this.command.migration) {\n logger.debug('Checking if a migration is needed');\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return migrate(null, false);\n }\n return null;\n }\n}\n\nfunction toRenderResult(obj: RenderResult | React.ReactElement) {\n return isRenderResult(obj) ? obj : { data: obj, code: 0 };\n}\n\nfunction isRenderResult(obj: RenderResult | any): obj is RenderResult {\n // eslint-disable-next-line no-prototype-builtins\n return typeof obj === 'object' && typeof obj.code === 'number' && obj.hasOwnProperty('data');\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["CommandRunner","constructor","command","args","flags","commandName","parseCommandName","name","runCommand","bootstrapCommand","runMigrateIfNeeded","determineConsoleWritingDuringCommand","json","runJsonHandler","shouldRunRender","runRenderHandler","report","runReportHandler","err","handleErrorAndExit","internal","Error","Analytics","init","logger","info","token","TOKEN_FLAG_NAME","globalFlags","toString","isTerminal","process","stdout","isTTY","Boolean","render","result","code","data","writeAndExit","JSON","stringify","loader","off","toRenderResult","waitUntilExit","exitAfterFlush","exitCode","on","start","shouldWriteToConsole","log","logValue","undefined","switchToConsoleLogger","write","migration","debug","migrate","obj","isRenderResult","hasOwnProperty"],"sources":["command-runner.ts"],"sourcesContent":["import { render } from 'ink';\nimport { migrate } from '@teambit/legacy/dist/api/consumer';\nimport logger, { LoggerLevel } from '@teambit/legacy/dist/logger/logger';\nimport { CLIArgs, Command, Flags, RenderResult } from '@teambit/legacy/dist/cli/command';\nimport { parseCommandName } from '@teambit/legacy/dist/cli/command-registry';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { handleErrorAndExit } from '@teambit/legacy/dist/cli/handle-errors';\nimport { TOKEN_FLAG_NAME } from '@teambit/legacy/dist/constants';\nimport globalFlags from '@teambit/legacy/dist/cli/global-flags';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\n\nexport class CommandRunner {\n private commandName: string;\n constructor(private command: Command, private args: CLIArgs, private flags: Flags) {\n this.commandName = parseCommandName(this.command.name);\n }\n\n /**\n * run command using one of the handler, \"json\"/\"report\"/\"render\". once done, exit the process.\n */\n async runCommand() {\n try {\n this.bootstrapCommand();\n await this.runMigrateIfNeeded();\n this.determineConsoleWritingDuringCommand();\n if (this.flags.json) {\n return await this.runJsonHandler();\n }\n if (this.shouldRunRender()) {\n return await this.runRenderHandler();\n }\n if (this.command.report) {\n return await this.runReportHandler();\n }\n } catch (err: any) {\n return handleErrorAndExit(err, this.commandName, this.command.internal);\n }\n\n throw new Error(`command \"${this.commandName}\" doesn't implement \"render\" nor \"report\" methods`);\n }\n\n private bootstrapCommand() {\n Analytics.init(this.commandName, this.flags, this.args);\n logger.info(`[*] started a new command: \"${this.commandName}\" with the following data:`, {\n args: this.args,\n flags: this.flags,\n });\n const token = this.flags[TOKEN_FLAG_NAME];\n if (token) {\n globalFlags.token = token.toString();\n }\n }\n\n /**\n * when both \"render\" and \"report\" were implemented, check whether it's a terminal.\n * if it's a terminal, use \"render\", if not, use \"report\" because \"report\" is just a string\n */\n private shouldRunRender() {\n const isTerminal = process.stdout.isTTY;\n if (this.command.report && !isTerminal) {\n return false;\n }\n return Boolean(this.command.render);\n }\n\n /**\n * this works for both, Harmony commands and Legacy commands (the legacy-command-adapter\n * implements json() method)\n */\n private async runJsonHandler() {\n if (!this.flags.json) return null;\n if (!this.command.json) throw new Error(`command \"${this.commandName}\" doesn't implement \"json\" method`);\n const result = await this.command.json(this.args, this.flags);\n const code = result.code || 0;\n const data = result.data || result;\n return this.writeAndExit(JSON.stringify(data, null, 2), code);\n }\n\n private async runRenderHandler() {\n if (!this.command.render) throw new Error('runRenderHandler expects command.render to be implemented');\n const result = await this.command.render(this.args, this.flags);\n loader.off();\n\n const { data, code } = toRenderResult(result);\n\n const { waitUntilExit } = render(data);\n await waitUntilExit();\n return logger.exitAfterFlush(code, this.commandName);\n }\n\n private async runReportHandler() {\n if (!this.command.report) throw new Error('runReportHandler expects command.report to be implemented');\n const result = await this.command.report(this.args, this.flags);\n loader.off();\n const data = typeof result === 'string' ? result : result.data;\n const exitCode = typeof result === 'string' ? 0 : result.code;\n return this.writeAndExit(`${data}\\n`, exitCode);\n }\n\n /**\n * the loader and logger.console write output to the console during the command execution.\n * for internals commands, such as, _put, _fetch, the command.loader = false.\n */\n private determineConsoleWritingDuringCommand() {\n if (this.command.loader && !this.flags.json && !this.flags['get-yargs-completions']) {\n loader.on();\n loader.start(`running command \"${this.commandName}\"...`);\n logger.shouldWriteToConsole = true;\n } else {\n loader.off();\n logger.shouldWriteToConsole = false;\n }\n if (this.flags.log) {\n // probably not necessary anymore. it is handled in src/logger - determineWritingLogToScreen()\n const logValue = typeof this.flags.log === 'string' ? this.flags.log : undefined;\n logger.switchToConsoleLogger(logValue as LoggerLevel);\n }\n }\n\n private async writeAndExit(data: string, exitCode: number) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return process.stdout.write(data, async () => logger.exitAfterFlush(exitCode, this.commandName, data));\n }\n\n private async runMigrateIfNeeded(): Promise<any> {\n // @ts-ignore LegacyCommandAdapter has .migration\n if (this.command.migration) {\n logger.debug('Checking if a migration is needed');\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return migrate(null, false);\n }\n return null;\n }\n}\n\nfunction toRenderResult(obj: RenderResult | React.ReactElement) {\n return isRenderResult(obj) ? obj : { data: obj, code: 0 };\n}\n\nfunction isRenderResult(obj: RenderResult | any): obj is RenderResult {\n // eslint-disable-next-line no-prototype-builtins\n return typeof obj === 'object' && typeof obj.code === 'number' && obj.hasOwnProperty('data');\n}\n"],"mappings":"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"}
@@ -2,11 +2,17 @@ import { Command } from '@teambit/legacy/dist/cli/command';
2
2
  export declare type GenerateOpts = {
3
3
  metadata?: Record<string, string>;
4
4
  };
5
+ declare type CommandObject = ReturnType<typeof oneCommandToObject> & {
6
+ commands?: any;
7
+ };
5
8
  export declare class GenerateCommandsDoc {
6
9
  private commands;
7
10
  private options;
8
11
  constructor(commands: Command[], options: GenerateOpts);
9
12
  generate(): string;
13
+ generateJson(): CommandObject[];
14
+ private commandsToObjects;
15
+ private getFrontmatter;
10
16
  private getAllPublicCommandsSorted;
11
17
  private generateCommand;
12
18
  private generateSubCommands;
@@ -14,3 +20,5 @@ export declare class GenerateCommandsDoc {
14
20
  private formatStringToMD;
15
21
  private formatDescription;
16
22
  }
23
+ declare function oneCommandToObject(command: Command): Pick<Command, "name" | "alias" | "options" | "description" | "extendedDescription" | "group" | "private" | "internal" | "remoteOp" | "skipWorkspace">;
24
+ export {};
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  require("core-js/modules/es.symbol.description.js");
6
4
 
7
5
  require("core-js/modules/es.array.iterator.js");
@@ -15,10 +13,10 @@ Object.defineProperty(exports, "__esModule", {
15
13
  });
16
14
  exports.GenerateCommandsDoc = void 0;
17
15
 
18
- function _defineProperty2() {
19
- const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ function _lodash() {
17
+ const data = require("lodash");
20
18
 
21
- _defineProperty2 = function () {
19
+ _lodash = function () {
22
20
  return data;
23
21
  };
24
22
 
@@ -35,10 +33,6 @@ function _getCommandId() {
35
33
  return data;
36
34
  }
37
35
 
38
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
-
40
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
-
42
36
  class GenerateCommandsDoc {
43
37
  constructor(commands, options) {
44
38
  this.commands = commands;
@@ -47,17 +41,7 @@ class GenerateCommandsDoc {
47
41
 
48
42
  generate() {
49
43
  const commands = this.getAllPublicCommandsSorted();
50
-
51
- const metadata = _objectSpread({
52
- id: 'cli-all',
53
- title: 'CLI Commands'
54
- }, this.options.metadata);
55
-
56
- const metadataStr = Object.keys(metadata).map(key => `${key}: ${metadata[key]}`).join('\n');
57
- let output = `---
58
- ${metadataStr}
59
- ---
60
-
44
+ let output = `${this.getFrontmatter()}
61
45
  # CLI Reference
62
46
 
63
47
  Commands that are marked as workspace only must be executed inside a workspace. Commands that are marked as not workspace only, can be executed from anywhere and will run on a remote server.
@@ -66,6 +50,38 @@ Commands that are marked as workspace only must be executed inside a workspace.
66
50
  return output;
67
51
  }
68
52
 
53
+ generateJson() {
54
+ return this.commandsToObjects();
55
+ }
56
+
57
+ commandsToObjects(commands = this.commands) {
58
+ return commands.map(command => {
59
+ var _command$commands;
60
+
61
+ const cmdObject = oneCommandToObject(command);
62
+
63
+ if ((_command$commands = command.commands) !== null && _command$commands !== void 0 && _command$commands.length) {
64
+ cmdObject.commands = this.commandsToObjects(command.commands);
65
+ }
66
+
67
+ return cmdObject;
68
+ });
69
+ }
70
+
71
+ getFrontmatter() {
72
+ const metadata = this.options.metadata;
73
+
74
+ if (!metadata) {
75
+ return '';
76
+ }
77
+
78
+ const metadataStr = Object.keys(metadata).map(key => `${key}: ${metadata[key]}`).join('\n');
79
+ return `---
80
+ ${metadataStr}
81
+ ---
82
+ `;
83
+ }
84
+
69
85
  getAllPublicCommandsSorted() {
70
86
  const publicCommands = this.commands.filter(cmd => !cmd.private);
71
87
  return publicCommands.sort((a, b) => a.name.localeCompare(b.name));
@@ -135,4 +151,8 @@ Commands that are marked as workspace only must be executed inside a workspace.
135
151
 
136
152
  exports.GenerateCommandsDoc = GenerateCommandsDoc;
137
153
 
154
+ function oneCommandToObject(command) {
155
+ return (0, _lodash().pick)(command, ['name', 'alias', 'options', 'description', 'extendedDescription', 'group', 'private', 'internal', 'remoteOp', 'skipWorkspace']);
156
+ }
157
+
138
158
  //# sourceMappingURL=generate-doc-md.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GenerateCommandsDoc","constructor","commands","options","generate","getAllPublicCommandsSorted","metadata","id","title","metadataStr","Object","keys","map","key","join","output","cmd","generateCommand","publicCommands","filter","private","sort","a","b","name","localeCompare","commandName","getCommandId","result","alias","length","skipWorkspace","formatDescription","generateSubCommands","generateOptions","subCommands","command","ret","forEach","subCommand","subcommandName","usage","opt","flag","description","aliasFormatted","flagFormatted","formatStringToMD","str","split","extendedDescription"],"sources":["generate-doc-md.ts"],"sourcesContent":["import { Command } from '@teambit/legacy/dist/cli/command';\nimport { CommandOptions } from '@teambit/legacy/dist/cli/legacy-command';\nimport { getCommandId } from './get-command-id';\n\nexport type GenerateOpts = {\n metadata?: Record<string, string>;\n};\nexport class GenerateCommandsDoc {\n constructor(private commands: Command[], private options: GenerateOpts) {}\n\n generate(): string {\n const commands = this.getAllPublicCommandsSorted();\n const metadata = {\n id: 'cli-all',\n title: 'CLI Commands',\n ...this.options.metadata,\n };\n const metadataStr = Object.keys(metadata)\n .map((key) => `${key}: ${metadata[key]}`)\n .join('\\n');\n let output = `---\n${metadataStr}\n---\n\n# CLI Reference\n\nCommands that are marked as workspace only must be executed inside a workspace. Commands that are marked as not workspace only, can be executed from anywhere and will run on a remote server.\n`;\n output += commands.map((cmd) => this.generateCommand(cmd)).join('\\n');\n\n return output;\n }\n\n private getAllPublicCommandsSorted() {\n const publicCommands = this.commands.filter((cmd) => !cmd.private);\n return publicCommands.sort((a, b) => a.name.localeCompare(b.name));\n }\n\n private generateCommand(cmd: Command) {\n const commandName = getCommandId(cmd.name);\n let result = `## ${commandName} \\n\\n`;\n if (cmd.alias && cmd.alias.length > 0) {\n result += `**Alias**: \\`${cmd.alias}\\` \\n`;\n }\n result += `**Workspace only**: ${cmd.skipWorkspace ? 'no' : 'yes'} \\n`;\n result += `**Description**: ${this.formatDescription(cmd)}`;\n result += `\\`bit ${cmd.name}\\` \\n\\n`;\n\n if (cmd.commands && cmd.commands.length > 0) {\n result += this.generateSubCommands(cmd.commands, cmd);\n }\n result += this.generateOptions(cmd.options);\n result += `--- \\n`;\n\n return result;\n }\n\n private generateSubCommands(subCommands: Command[], command: Command) {\n let ret = '';\n subCommands.forEach((subCommand) => {\n const commandName = getCommandId(command.name);\n const subcommandName = getCommandId(subCommand.name);\n const usage = `${commandName} ${subCommand.name}`;\n ret += `### ${commandName} ${subcommandName} \\n`;\n ret += `**Usage**: \\`${usage}\\` \\n\\n`;\n ret += `**Description**: ${this.formatDescription(subCommand)}`;\n\n ret += '\\n';\n ret += this.generateOptions(subCommand.options);\n });\n return ret;\n }\n\n private generateOptions(options: CommandOptions): string {\n if (!options || options.length <= 0) return '';\n let output = `| **Option** | **Option alias** | **Description**| \\n`;\n output += `|---|:-----:|---|\\n`;\n options.forEach((opt) => {\n const [alias, flag, description] = opt;\n const aliasFormatted = alias ? `\\`-${alias}\\`` : ' ';\n const flagFormatted = `--${flag}`;\n output += `|\\`${flagFormatted}\\`|${aliasFormatted}|${description}|\\n`;\n });\n output += `\\n`;\n return output;\n }\n\n private formatStringToMD(str: string): string {\n return str.split('\\n').join(' \\n');\n }\n\n private formatDescription(command: Command): string {\n const extendedDescription = command.extendedDescription\n ? ` \\n${this.formatStringToMD(command.extendedDescription)}`\n : '';\n const description = this.formatStringToMD(command.description as string);\n return `${description}${extendedDescription} \\n\\n`;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["GenerateCommandsDoc","constructor","commands","options","generate","getAllPublicCommandsSorted","output","getFrontmatter","map","cmd","generateCommand","join","generateJson","commandsToObjects","command","cmdObject","oneCommandToObject","length","metadata","metadataStr","Object","keys","key","publicCommands","filter","private","sort","a","b","name","localeCompare","commandName","getCommandId","result","alias","skipWorkspace","formatDescription","generateSubCommands","generateOptions","subCommands","ret","forEach","subCommand","subcommandName","usage","opt","flag","description","aliasFormatted","flagFormatted","formatStringToMD","str","split","extendedDescription","pick"],"sources":["generate-doc-md.ts"],"sourcesContent":["import { Command } from '@teambit/legacy/dist/cli/command';\nimport { CommandOptions } from '@teambit/legacy/dist/cli/legacy-command';\nimport { pick } from 'lodash';\nimport { getCommandId } from './get-command-id';\n\nexport type GenerateOpts = {\n metadata?: Record<string, string>;\n};\n\ntype CommandObject = ReturnType<typeof oneCommandToObject> & { commands?: any };\n\nexport class GenerateCommandsDoc {\n constructor(private commands: Command[], private options: GenerateOpts) {}\n\n generate(): string {\n const commands = this.getAllPublicCommandsSorted();\n let output = `${this.getFrontmatter()}\n# CLI Reference\n\nCommands that are marked as workspace only must be executed inside a workspace. Commands that are marked as not workspace only, can be executed from anywhere and will run on a remote server.\n`;\n output += commands.map((cmd) => this.generateCommand(cmd)).join('\\n');\n\n return output;\n }\n\n generateJson() {\n return this.commandsToObjects();\n }\n\n private commandsToObjects(commands: Command[] = this.commands): CommandObject[] {\n return commands.map((command) => {\n const cmdObject: CommandObject = oneCommandToObject(command);\n if (command.commands?.length) {\n cmdObject.commands = this.commandsToObjects(command.commands);\n }\n return cmdObject;\n });\n }\n\n private getFrontmatter() {\n const metadata = this.options.metadata;\n if (!metadata) {\n return '';\n }\n const metadataStr = Object.keys(metadata)\n .map((key) => `${key}: ${metadata[key]}`)\n .join('\\n');\n\n return `---\n ${metadataStr}\n ---\n`;\n }\n\n private getAllPublicCommandsSorted() {\n const publicCommands = this.commands.filter((cmd) => !cmd.private);\n return publicCommands.sort((a, b) => a.name.localeCompare(b.name));\n }\n\n private generateCommand(cmd: Command) {\n const commandName = getCommandId(cmd.name);\n let result = `## ${commandName} \\n\\n`;\n if (cmd.alias && cmd.alias.length > 0) {\n result += `**Alias**: \\`${cmd.alias}\\` \\n`;\n }\n result += `**Workspace only**: ${cmd.skipWorkspace ? 'no' : 'yes'} \\n`;\n result += `**Description**: ${this.formatDescription(cmd)}`;\n result += `\\`bit ${cmd.name}\\` \\n\\n`;\n\n if (cmd.commands && cmd.commands.length > 0) {\n result += this.generateSubCommands(cmd.commands, cmd);\n }\n result += this.generateOptions(cmd.options);\n result += `--- \\n`;\n\n return result;\n }\n\n private generateSubCommands(subCommands: Command[], command: Command) {\n let ret = '';\n subCommands.forEach((subCommand) => {\n const commandName = getCommandId(command.name);\n const subcommandName = getCommandId(subCommand.name);\n const usage = `${commandName} ${subCommand.name}`;\n ret += `### ${commandName} ${subcommandName} \\n`;\n ret += `**Usage**: \\`${usage}\\` \\n\\n`;\n ret += `**Description**: ${this.formatDescription(subCommand)}`;\n\n ret += '\\n';\n ret += this.generateOptions(subCommand.options);\n });\n return ret;\n }\n\n private generateOptions(options: CommandOptions): string {\n if (!options || options.length <= 0) return '';\n let output = `| **Option** | **Option alias** | **Description**| \\n`;\n output += `|---|:-----:|---|\\n`;\n options.forEach((opt) => {\n const [alias, flag, description] = opt;\n const aliasFormatted = alias ? `\\`-${alias}\\`` : ' ';\n const flagFormatted = `--${flag}`;\n output += `|\\`${flagFormatted}\\`|${aliasFormatted}|${description}|\\n`;\n });\n output += `\\n`;\n return output;\n }\n\n private formatStringToMD(str: string): string {\n return str.split('\\n').join(' \\n');\n }\n\n private formatDescription(command: Command): string {\n const extendedDescription = command.extendedDescription\n ? ` \\n${this.formatStringToMD(command.extendedDescription)}`\n : '';\n const description = this.formatStringToMD(command.description as string);\n return `${description}${extendedDescription} \\n\\n`;\n }\n}\n\nfunction oneCommandToObject(command: Command) {\n return pick(command, [\n 'name',\n 'alias',\n 'options',\n 'description',\n 'extendedDescription',\n 'group',\n 'private',\n 'internal',\n 'remoteOp',\n 'skipWorkspace',\n ]);\n}\n"],"mappings":"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"}
package/dist/help.js CHANGED
@@ -65,7 +65,7 @@ ${getFooter()}`;
65
65
  }
66
66
 
67
67
  function groupCommands(commands, groups) {
68
- const help = commands.filter(command => !command.private && (command.shortDescription || command.description)).reduce(function (partialHelp, command) {
68
+ const help = commands.filter(command => !command.private && command.description).reduce(function (partialHelp, command) {
69
69
  const groupName = command.group; // at this stage, it must be set
70
70
 
71
71
  partialHelp[groupName] = partialHelp[groupName] || {
@@ -73,7 +73,7 @@ function groupCommands(commands, groups) {
73
73
  description: groups[groupName] || (0, _lodash().capitalize)(command.group)
74
74
  };
75
75
  const cmdId = (0, _getCommandId().getCommandId)(command.name);
76
- partialHelp[groupName].commands[cmdId] = command.shortDescription || command.description;
76
+ partialHelp[groupName].commands[cmdId] = command.description;
77
77
  return partialHelp;
78
78
  }, {});
79
79
  return help;
package/dist/help.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["SPACE","TITLE_LEFT_SPACES_NUMBER","COMMAND_LEFT_SPACES_NUMBER","NAME_WITH_SPACES_LENGTH","formatHelp","commands","groups","docsDomain","helpProps","groupCommands","commandsStr","formatCommandsHelp","getHeader","getFooter","help","filter","command","private","shortDescription","description","reduce","partialHelp","groupName","group","capitalize","cmdId","getCommandId","name","Object","keys","map","commandsSectionTemplate","join","section","titleSpace","repeat","title","chalk","underline","bold","blue","cmdName","commandTemplate","res","nameSpace","nameWithRightSpace","rightpad","green","yellow"],"sources":["help.ts"],"sourcesContent":["import chalk from 'chalk';\nimport rightpad from 'pad-right';\nimport { capitalize } from 'lodash';\nimport { GroupsType } from '@teambit/legacy/dist/cli/command-groups';\nimport { CommandList } from './cli.main.runtime';\nimport { getCommandId } from './get-command-id';\n\nconst SPACE = ' ';\nconst TITLE_LEFT_SPACES_NUMBER = 2;\nconst COMMAND_LEFT_SPACES_NUMBER = 4;\nconst NAME_WITH_SPACES_LENGTH = 15;\n\ntype HelpProps = {\n [groupName: string]: GroupContent;\n};\n\ntype GroupContent = {\n commands: { [cmdName: string]: string };\n description: string;\n};\n\nexport function formatHelp(commands: CommandList, groups: GroupsType, docsDomain: string) {\n const helpProps = groupCommands(commands, groups);\n const commandsStr = formatCommandsHelp(helpProps);\n\n return `${getHeader(docsDomain)}\n\n${commandsStr}\n\n${getFooter()}`;\n}\n\nfunction groupCommands(commands: CommandList, groups: GroupsType): HelpProps {\n const help: HelpProps = commands\n .filter((command) => !command.private && (command.shortDescription || command.description))\n .reduce(function (partialHelp, command) {\n const groupName = command.group as string; // at this stage, it must be set\n partialHelp[groupName] = partialHelp[groupName] || {\n commands: {},\n description: groups[groupName] || capitalize(command.group),\n };\n const cmdId = getCommandId(command.name);\n partialHelp[groupName].commands[cmdId] = command.shortDescription || command.description;\n return partialHelp;\n }, {});\n return help;\n}\n\nfunction formatCommandsHelp(helpProps: HelpProps): string {\n return Object.keys(helpProps)\n .map((groupName) => commandsSectionTemplate(helpProps[groupName]))\n .join('\\n\\n');\n}\n\nfunction commandsSectionTemplate(section: GroupContent): string {\n const titleSpace = SPACE.repeat(TITLE_LEFT_SPACES_NUMBER);\n const title = `${titleSpace}${chalk.underline.bold.blue(section.description)}`;\n const commands = Object.keys(section.commands)\n .map((cmdName) => commandTemplate(cmdName, section.commands[cmdName]))\n .join('\\n');\n const res = `${title}\\n${commands}`;\n return res;\n}\n\nfunction commandTemplate(name: string, description: string): string {\n const nameSpace = SPACE.repeat(COMMAND_LEFT_SPACES_NUMBER);\n const nameWithRightSpace = rightpad(name, NAME_WITH_SPACES_LENGTH, SPACE);\n const res = `${nameSpace}${chalk.green(nameWithRightSpace)}${description}`;\n return res;\n}\n\nfunction getHeader(docsDomain: string): string {\n return `${chalk.bold('usage: bit [--version] [--help] <command> [<args>]')}\n\n${chalk.yellow(`bit documentation: https://${docsDomain}`)}`;\n}\n\nfunction getFooter(): string {\n return `${chalk.yellow(\"please use 'bit <command> --help' for more information and guides on specific commands.\")}`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["SPACE","TITLE_LEFT_SPACES_NUMBER","COMMAND_LEFT_SPACES_NUMBER","NAME_WITH_SPACES_LENGTH","formatHelp","commands","groups","docsDomain","helpProps","groupCommands","commandsStr","formatCommandsHelp","getHeader","getFooter","help","filter","command","private","description","reduce","partialHelp","groupName","group","capitalize","cmdId","getCommandId","name","Object","keys","map","commandsSectionTemplate","join","section","titleSpace","repeat","title","chalk","underline","bold","blue","cmdName","commandTemplate","res","nameSpace","nameWithRightSpace","rightpad","green","yellow"],"sources":["help.ts"],"sourcesContent":["import chalk from 'chalk';\nimport rightpad from 'pad-right';\nimport { capitalize } from 'lodash';\nimport { GroupsType } from '@teambit/legacy/dist/cli/command-groups';\nimport { CommandList } from './cli.main.runtime';\nimport { getCommandId } from './get-command-id';\n\nconst SPACE = ' ';\nconst TITLE_LEFT_SPACES_NUMBER = 2;\nconst COMMAND_LEFT_SPACES_NUMBER = 4;\nconst NAME_WITH_SPACES_LENGTH = 15;\n\ntype HelpProps = {\n [groupName: string]: GroupContent;\n};\n\ntype GroupContent = {\n commands: { [cmdName: string]: string };\n description: string;\n};\n\nexport function formatHelp(commands: CommandList, groups: GroupsType, docsDomain: string) {\n const helpProps = groupCommands(commands, groups);\n const commandsStr = formatCommandsHelp(helpProps);\n\n return `${getHeader(docsDomain)}\n\n${commandsStr}\n\n${getFooter()}`;\n}\n\nfunction groupCommands(commands: CommandList, groups: GroupsType): HelpProps {\n const help: HelpProps = commands\n .filter((command) => !command.private && command.description)\n .reduce(function (partialHelp, command) {\n const groupName = command.group as string; // at this stage, it must be set\n partialHelp[groupName] = partialHelp[groupName] || {\n commands: {},\n description: groups[groupName] || capitalize(command.group),\n };\n const cmdId = getCommandId(command.name);\n partialHelp[groupName].commands[cmdId] = command.description;\n return partialHelp;\n }, {});\n return help;\n}\n\nfunction formatCommandsHelp(helpProps: HelpProps): string {\n return Object.keys(helpProps)\n .map((groupName) => commandsSectionTemplate(helpProps[groupName]))\n .join('\\n\\n');\n}\n\nfunction commandsSectionTemplate(section: GroupContent): string {\n const titleSpace = SPACE.repeat(TITLE_LEFT_SPACES_NUMBER);\n const title = `${titleSpace}${chalk.underline.bold.blue(section.description)}`;\n const commands = Object.keys(section.commands)\n .map((cmdName) => commandTemplate(cmdName, section.commands[cmdName]))\n .join('\\n');\n const res = `${title}\\n${commands}`;\n return res;\n}\n\nfunction commandTemplate(name: string, description: string): string {\n const nameSpace = SPACE.repeat(COMMAND_LEFT_SPACES_NUMBER);\n const nameWithRightSpace = rightpad(name, NAME_WITH_SPACES_LENGTH, SPACE);\n const res = `${nameSpace}${chalk.green(nameWithRightSpace)}${description}`;\n return res;\n}\n\nfunction getHeader(docsDomain: string): string {\n return `${chalk.bold('usage: bit [--version] [--help] <command> [<args>]')}\n\n${chalk.yellow(`bit documentation: https://${docsDomain}`)}`;\n}\n\nfunction getFooter(): string {\n return `${chalk.yellow(\"please use 'bit <command> --help' for more information and guides on specific commands.\")}`;\n}\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ export declare class LegacyCommandAdapter implements Command {
7
7
  name: string;
8
8
  description: string;
9
9
  options: CommandOptions;
10
- shortDescription?: string;
10
+ extendedDescription?: string;
11
11
  group?: string;
12
12
  loader?: boolean;
13
13
  commands: Command[];
@@ -28,7 +28,7 @@ class LegacyCommandAdapter {
28
28
  (0, _defineProperty2().default)(this, "name", void 0);
29
29
  (0, _defineProperty2().default)(this, "description", void 0);
30
30
  (0, _defineProperty2().default)(this, "options", void 0);
31
- (0, _defineProperty2().default)(this, "shortDescription", void 0);
31
+ (0, _defineProperty2().default)(this, "extendedDescription", void 0);
32
32
  (0, _defineProperty2().default)(this, "group", void 0);
33
33
  (0, _defineProperty2().default)(this, "loader", void 0);
34
34
  (0, _defineProperty2().default)(this, "commands", void 0);
@@ -41,7 +41,7 @@ class LegacyCommandAdapter {
41
41
  this.description = cmd.description;
42
42
  this.options = cmd.opts || [];
43
43
  this.alias = cmd.alias;
44
- this.shortDescription = cmd.shortDescription;
44
+ this.extendedDescription = cmd.extendedDescription;
45
45
  this.skipWorkspace = cmd.skipWorkspace;
46
46
  this.group = cmd.group;
47
47
  this.loader = cmd.loader;
@@ -1 +1 @@
1
- {"version":3,"names":["LegacyCommandAdapter","constructor","cmd","cliExtension","name","description","options","opts","alias","shortDescription","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 shortDescription?: 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.shortDescription = cmd.shortDescription;\n this.skipWorkspace = cmd.skipWorkspace;\n this.group = cmd.group;\n this.loader = cmd.loader;\n this.private = cmd.private;\n\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,gBAAL,GAAwBP,GAAG,CAACO,gBAA5B;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;IAEA,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;;AAxDkD"}
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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/cli",
3
- "version": "0.0.494",
3
+ "version": "0.0.497",
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.494"
9
+ "version": "0.0.497"
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.42",
21
+ "@teambit/community": "0.0.45",
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.274",
36
+ "@teambit/legacy": "1.0.277",
37
37
  "react-dom": "^16.8.0 || ^17.0.0",
38
38
  "react": "^16.8.0 || ^17.0.0"
39
39
  },
@@ -61,7 +61,7 @@
61
61
  "react": "-"
62
62
  },
63
63
  "peerDependencies": {
64
- "@teambit/legacy": "1.0.274",
64
+ "@teambit/legacy": "1.0.277",
65
65
  "react-dom": "^16.8.0 || ^17.0.0",
66
66
  "react": "^16.8.0 || ^17.0.0"
67
67
  }
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_cli@0.0.494/dist/cli.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_cli@0.0.494/dist/cli.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_cli@0.0.497/dist/cli.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_cli@0.0.497/dist/cli.docs.mdx')]
Binary file