@contember/cli-common 2.0.0-alpha.9 → 2.0.0-beta.1

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.
Files changed (100) hide show
  1. package/dist/development/index.cjs +2 -0
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +3 -1
  4. package/dist/development/index.js.map +1 -1
  5. package/dist/development/src/application/Application.cjs.map +1 -1
  6. package/dist/development/src/application/Application.js.map +1 -1
  7. package/dist/development/src/application/Argument.cjs.map +1 -1
  8. package/dist/development/src/application/Argument.js.map +1 -1
  9. package/dist/development/src/application/Command.cjs.map +1 -1
  10. package/dist/development/src/application/Command.js.map +1 -1
  11. package/dist/development/src/application/CommandConfiguration.cjs.map +1 -1
  12. package/dist/development/src/application/CommandConfiguration.js.map +1 -1
  13. package/dist/development/src/application/CommandManager.cjs.map +1 -1
  14. package/dist/development/src/application/CommandManager.js.map +1 -1
  15. package/dist/development/src/application/Input.cjs.map +1 -1
  16. package/dist/development/src/application/Input.js.map +1 -1
  17. package/dist/development/src/application/InputParser.cjs.map +1 -1
  18. package/dist/development/src/application/InputParser.js.map +1 -1
  19. package/dist/development/src/application/Option.cjs.map +1 -1
  20. package/dist/development/src/application/Option.js.map +1 -1
  21. package/dist/development/src/application/UsageFormatter.cjs.map +1 -1
  22. package/dist/development/src/application/UsageFormatter.js.map +1 -1
  23. package/dist/development/src/npm/CommandRunner.cjs.map +1 -1
  24. package/dist/development/src/npm/CommandRunner.js.map +1 -1
  25. package/dist/development/src/npm/Package.cjs.map +1 -1
  26. package/dist/development/src/npm/Package.js.map +1 -1
  27. package/dist/development/src/npm/PackageWorkspace.cjs.map +1 -1
  28. package/dist/development/src/npm/PackageWorkspace.js.map +1 -1
  29. package/dist/development/src/npm/PackageWorkspaceResolver.cjs.map +1 -1
  30. package/dist/development/src/npm/PackageWorkspaceResolver.js.map +1 -1
  31. package/dist/development/src/npm/packageManagers/Npm.cjs.map +1 -1
  32. package/dist/development/src/npm/packageManagers/Npm.js.map +1 -1
  33. package/dist/development/src/npm/packageManagers/PackageManagerHelpers.cjs.map +1 -1
  34. package/dist/development/src/npm/packageManagers/PackageManagerHelpers.js.map +1 -1
  35. package/dist/development/src/npm/packageManagers/Pnpm.cjs.map +1 -1
  36. package/dist/development/src/npm/packageManagers/Pnpm.js.map +1 -1
  37. package/dist/development/src/npm/packageManagers/Yarn.cjs.map +1 -1
  38. package/dist/development/src/npm/packageManagers/Yarn.js.map +1 -1
  39. package/dist/development/src/npm/packageManagers/YarnClassic.cjs.map +1 -1
  40. package/dist/development/src/npm/packageManagers/YarnClassic.js.map +1 -1
  41. package/dist/development/src/utils/findPackageRoot.cjs +20 -0
  42. package/dist/development/src/utils/findPackageRoot.cjs.map +1 -0
  43. package/dist/development/src/utils/findPackageRoot.js +20 -0
  44. package/dist/development/src/utils/findPackageRoot.js.map +1 -0
  45. package/dist/production/index.cjs +2 -0
  46. package/dist/production/index.cjs.map +1 -1
  47. package/dist/production/index.js +3 -1
  48. package/dist/production/index.js.map +1 -1
  49. package/dist/production/src/application/Application.cjs.map +1 -1
  50. package/dist/production/src/application/Application.js.map +1 -1
  51. package/dist/production/src/application/Argument.cjs.map +1 -1
  52. package/dist/production/src/application/Argument.js.map +1 -1
  53. package/dist/production/src/application/Command.cjs.map +1 -1
  54. package/dist/production/src/application/Command.js.map +1 -1
  55. package/dist/production/src/application/CommandConfiguration.cjs.map +1 -1
  56. package/dist/production/src/application/CommandConfiguration.js.map +1 -1
  57. package/dist/production/src/application/CommandManager.cjs.map +1 -1
  58. package/dist/production/src/application/CommandManager.js.map +1 -1
  59. package/dist/production/src/application/Input.cjs.map +1 -1
  60. package/dist/production/src/application/Input.js.map +1 -1
  61. package/dist/production/src/application/InputParser.cjs.map +1 -1
  62. package/dist/production/src/application/InputParser.js.map +1 -1
  63. package/dist/production/src/application/Option.cjs.map +1 -1
  64. package/dist/production/src/application/Option.js.map +1 -1
  65. package/dist/production/src/application/UsageFormatter.cjs.map +1 -1
  66. package/dist/production/src/application/UsageFormatter.js.map +1 -1
  67. package/dist/production/src/npm/CommandRunner.cjs.map +1 -1
  68. package/dist/production/src/npm/CommandRunner.js.map +1 -1
  69. package/dist/production/src/npm/Package.cjs.map +1 -1
  70. package/dist/production/src/npm/Package.js.map +1 -1
  71. package/dist/production/src/npm/PackageWorkspace.cjs.map +1 -1
  72. package/dist/production/src/npm/PackageWorkspace.js.map +1 -1
  73. package/dist/production/src/npm/PackageWorkspaceResolver.cjs.map +1 -1
  74. package/dist/production/src/npm/PackageWorkspaceResolver.js.map +1 -1
  75. package/dist/production/src/npm/packageManagers/Npm.cjs.map +1 -1
  76. package/dist/production/src/npm/packageManagers/Npm.js.map +1 -1
  77. package/dist/production/src/npm/packageManagers/PackageManagerHelpers.cjs.map +1 -1
  78. package/dist/production/src/npm/packageManagers/PackageManagerHelpers.js.map +1 -1
  79. package/dist/production/src/npm/packageManagers/Pnpm.cjs.map +1 -1
  80. package/dist/production/src/npm/packageManagers/Pnpm.js.map +1 -1
  81. package/dist/production/src/npm/packageManagers/Yarn.cjs.map +1 -1
  82. package/dist/production/src/npm/packageManagers/Yarn.js.map +1 -1
  83. package/dist/production/src/npm/packageManagers/YarnClassic.cjs.map +1 -1
  84. package/dist/production/src/npm/packageManagers/YarnClassic.js.map +1 -1
  85. package/dist/production/src/utils/findPackageRoot.cjs +20 -0
  86. package/dist/production/src/utils/findPackageRoot.cjs.map +1 -0
  87. package/dist/production/src/utils/findPackageRoot.js +20 -0
  88. package/dist/production/src/utils/findPackageRoot.js.map +1 -0
  89. package/dist/types/index.d.ts +1 -0
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/dist/types/tsconfig.tsbuildinfo +1 -1
  92. package/dist/types/utils/findPackageRoot.d.ts +2 -0
  93. package/dist/types/utils/findPackageRoot.d.ts.map +1 -0
  94. package/dist/types/utils/index.d.ts +2 -0
  95. package/dist/types/utils/index.d.ts.map +1 -0
  96. package/package.json +4 -4
  97. package/src/index.ts +1 -0
  98. package/src/utils/findPackageRoot.ts +20 -0
  99. package/src/utils/index.ts +1 -0
  100. package/tsconfig.settings.json +0 -4
@@ -12,6 +12,7 @@ const Pnpm = require("./src/npm/packageManagers/Pnpm.cjs");
12
12
  const Yarn = require("./src/npm/packageManagers/Yarn.cjs");
13
13
  const YarnClassic = require("./src/npm/packageManagers/YarnClassic.cjs");
14
14
  const PackageWorkspaceResolver = require("./src/npm/PackageWorkspaceResolver.cjs");
15
+ const findPackageRoot = require("./src/utils/findPackageRoot.cjs");
15
16
  exports.Application = Application.Application;
16
17
  exports.Command = Command.Command;
17
18
  exports.CommandManager = CommandManager.CommandManager;
@@ -25,4 +26,5 @@ exports.Pnpm = Pnpm.Pnpm;
25
26
  exports.Yarn = Yarn.Yarn;
26
27
  exports.YarnClassic = YarnClassic.YarnClassic;
27
28
  exports.PackageWorkspaceResolver = PackageWorkspaceResolver.PackageWorkspaceResolver;
29
+ exports.findPackageRoot = findPackageRoot.findPackageRoot;
28
30
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -10,6 +10,7 @@ import { Pnpm } from "./src/npm/packageManagers/Pnpm.js";
10
10
  import { Yarn } from "./src/npm/packageManagers/Yarn.js";
11
11
  import { YarnClassic } from "./src/npm/packageManagers/YarnClassic.js";
12
12
  import { PackageWorkspaceResolver } from "./src/npm/PackageWorkspaceResolver.js";
13
+ import { findPackageRoot } from "./src/utils/findPackageRoot.js";
13
14
  export {
14
15
  Application,
15
16
  ChildProcessError,
@@ -23,6 +24,7 @@ export {
23
24
  PackageWorkspaceResolver,
24
25
  Pnpm,
25
26
  Yarn,
26
- YarnClassic
27
+ YarnClassic,
28
+ findPackageRoot
27
29
  };
28
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Application.cjs","sources":["../../../../../packages/cli-common/src/application/Application.ts"],"sourcesContent":["import { InvalidInputError } from './InputParser'\nimport { CommandManager } from './CommandManager'\nimport chalk from 'chalk'\nimport { Command } from './Command'\n\nexport class Application {\n\tconstructor(\n\t\tprivate readonly commandManager: CommandManager,\n\t\tprivate readonly applicationDescription: string,\n\t\tprivate readonly options: {\n\t\t\tbeforeRun?: (args: {command: Command<any, any>; name: string; args: string[]}) => void\n\t\t} = {},\n\t) {}\n\n\tasync run(args: string[]): Promise<void> {\n\t\tconst [name, ...rest] = args\n\t\tif (!name || name === '--help') {\n\t\t\tconsole.error(this.applicationDescription)\n\t\t\tconsole.error(`Usage: <command> <command args>`)\n\t\t\tconst commands = Object.entries(this.commandManager.commands)\n\t\t\t\t.filter(([name, factory], index, commands) => commands.findIndex(it => it[1] === factory) === index)\n\t\t\t\t.map(([name]) => name)\n\t\t\t\t.sort((a, b) => a.localeCompare(b))\n\n\t\t\tconst maxCommandNameLength = Math.max(...commands.map(it => it.length))\n\n\t\t\tfor (let commandName of commands) {\n\t\t\t\tconst [, command] = this.commandManager.createCommand(commandName)\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconst indent = ' '\n\t\t\t\tconsole.error(\n\t\t\t\t\t`${indent}${chalk.greenBright(\n\t\t\t\t\t\tcommandName.padEnd(maxCommandNameLength),\n\t\t\t\t\t)}${indent}${configuration.getDescription()}`,\n\t\t\t\t)\n\t\t\t\tif (name === '--help') {\n\t\t\t\t\tconst helpIndent = `${indent}${' '.repeat(maxCommandNameLength)}${indent}`\n\t\t\t\t\tconst usage = configuration.getUsage({ format: 'multiline', indent: helpIndent })\n\t\t\t\t\tif (usage) {\n\t\t\t\t\t\tconsole.error(chalk.green(usage))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error(`${helpIndent}${chalk.gray('No options')}`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\t\treturn this.runCommandInternal(name, rest, true)\n\t}\n\n\tpublic async runCommand(name: string, args: string[]) {\n\t\treturn this.runCommandInternal(name, args, false)\n\t}\n\n\tpublic async runCommandInternal(name: string, args: string[], showCommandName: boolean) {\n\t\tconst [fullName, command] = this.commandManager.createCommand(name)\n\n\t\tif (args[0] === '--help' || args[0] === '-h') {\n\t\t\tif (showCommandName) {\n\t\t\t\tconsole.error(chalk.greenBright(fullName))\n\t\t\t}\n\t\t\tconst configuration = command.getConfiguration()\n\t\t\tconst commandDescription = configuration.getDescription()\n\t\t\tif (commandDescription) {\n\t\t\t\tconsole.error(commandDescription)\n\t\t\t}\n\t\t\tconst shortUsage = configuration.getUsage({ format: 'short' })\n\t\t\tif (shortUsage) {\n\t\t\t\tconsole.error('\\nUsage:')\n\t\t\t\tconsole.error(chalk.green(shortUsage))\n\t\t\t\tconsole.error('\\nArguments and options:')\n\t\t\t\tconsole.error(configuration.getUsage({ format: 'multiline' }))\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.options.beforeRun?.({ command, args, name: fullName })\n\n\t\t\tconst result = await command.run(args)\n\t\t\treturn process.exit(result)\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidInputError) {\n\t\t\t\tconsole.error(chalk.bgRedBright.white(e.message))\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconsole.error(`${showCommandName ? chalk.greenBright(fullName) + ' ' : ''}${chalk.green(configuration.getUsage({ format: 'line' }))}`)\n\n\t\t\t\treturn process.exit(1)\n\t\t\t} else {\n\t\t\t\tconsole.error(e)\n\t\t\t\treturn process.exit(2)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["name","commands","InvalidInputError"],"mappings":"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"}
1
+ {"version":3,"file":"Application.cjs","sources":["../../../../../packages/cli-common/src/application/Application.ts"],"sourcesContent":["import { InvalidInputError } from './InputParser'\nimport { CommandManager } from './CommandManager'\nimport chalk from 'chalk'\nimport { Command } from './Command'\n\nexport class Application {\n\tconstructor(\n\t\tprivate readonly commandManager: CommandManager,\n\t\tprivate readonly applicationDescription: string,\n\t\tprivate readonly options: {\n\t\t\tbeforeRun?: (args: {command: Command<any, any>; name: string; args: string[]}) => void\n\t\t} = {},\n\t) {}\n\n\tasync run(args: string[]): Promise<void> {\n\t\tconst [name, ...rest] = args\n\t\tif (!name || name === '--help') {\n\t\t\tconsole.error(this.applicationDescription)\n\t\t\tconsole.error(`Usage: <command> <command args>`)\n\t\t\tconst commands = Object.entries(this.commandManager.commands)\n\t\t\t\t.filter(([name, factory], index, commands) => commands.findIndex(it => it[1] === factory) === index)\n\t\t\t\t.map(([name]) => name)\n\t\t\t\t.sort((a, b) => a.localeCompare(b))\n\n\t\t\tconst maxCommandNameLength = Math.max(...commands.map(it => it.length))\n\n\t\t\tfor (let commandName of commands) {\n\t\t\t\tconst [, command] = this.commandManager.createCommand(commandName)\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconst indent = ' '\n\t\t\t\tconsole.error(\n\t\t\t\t\t`${indent}${chalk.greenBright(\n\t\t\t\t\t\tcommandName.padEnd(maxCommandNameLength),\n\t\t\t\t\t)}${indent}${configuration.getDescription()}`,\n\t\t\t\t)\n\t\t\t\tif (name === '--help') {\n\t\t\t\t\tconst helpIndent = `${indent}${' '.repeat(maxCommandNameLength)}${indent}`\n\t\t\t\t\tconst usage = configuration.getUsage({ format: 'multiline', indent: helpIndent })\n\t\t\t\t\tif (usage) {\n\t\t\t\t\t\tconsole.error(chalk.green(usage))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error(`${helpIndent}${chalk.gray('No options')}`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\t\treturn this.runCommandInternal(name, rest, true)\n\t}\n\n\tpublic async runCommand(name: string, args: string[]) {\n\t\treturn this.runCommandInternal(name, args, false)\n\t}\n\n\tpublic async runCommandInternal(name: string, args: string[], showCommandName: boolean) {\n\t\tconst [fullName, command] = this.commandManager.createCommand(name)\n\n\t\tif (args[0] === '--help' || args[0] === '-h') {\n\t\t\tif (showCommandName) {\n\t\t\t\tconsole.error(chalk.greenBright(fullName))\n\t\t\t}\n\t\t\tconst configuration = command.getConfiguration()\n\t\t\tconst commandDescription = configuration.getDescription()\n\t\t\tif (commandDescription) {\n\t\t\t\tconsole.error(commandDescription)\n\t\t\t}\n\t\t\tconst shortUsage = configuration.getUsage({ format: 'short' })\n\t\t\tif (shortUsage) {\n\t\t\t\tconsole.error('\\nUsage:')\n\t\t\t\tconsole.error(chalk.green(shortUsage))\n\t\t\t\tconsole.error('\\nArguments and options:')\n\t\t\t\tconsole.error(configuration.getUsage({ format: 'multiline' }))\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.options.beforeRun?.({ command, args, name: fullName })\n\n\t\t\tconst result = await command.run(args)\n\t\t\treturn process.exit(result)\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidInputError) {\n\t\t\t\tconsole.error(chalk.bgRedBright.white(e.message))\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconsole.error(`${showCommandName ? chalk.greenBright(fullName) + ' ' : ''}${chalk.green(configuration.getUsage({ format: 'line' }))}`)\n\n\t\t\t\treturn process.exit(1)\n\t\t\t} else {\n\t\t\t\tconsole.error(e)\n\t\t\t\treturn process.exit(2)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["name","commands","InvalidInputError"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sources":["../../../../../packages/cli-common/src/application/Application.ts"],"sourcesContent":["import { InvalidInputError } from './InputParser'\nimport { CommandManager } from './CommandManager'\nimport chalk from 'chalk'\nimport { Command } from './Command'\n\nexport class Application {\n\tconstructor(\n\t\tprivate readonly commandManager: CommandManager,\n\t\tprivate readonly applicationDescription: string,\n\t\tprivate readonly options: {\n\t\t\tbeforeRun?: (args: {command: Command<any, any>; name: string; args: string[]}) => void\n\t\t} = {},\n\t) {}\n\n\tasync run(args: string[]): Promise<void> {\n\t\tconst [name, ...rest] = args\n\t\tif (!name || name === '--help') {\n\t\t\tconsole.error(this.applicationDescription)\n\t\t\tconsole.error(`Usage: <command> <command args>`)\n\t\t\tconst commands = Object.entries(this.commandManager.commands)\n\t\t\t\t.filter(([name, factory], index, commands) => commands.findIndex(it => it[1] === factory) === index)\n\t\t\t\t.map(([name]) => name)\n\t\t\t\t.sort((a, b) => a.localeCompare(b))\n\n\t\t\tconst maxCommandNameLength = Math.max(...commands.map(it => it.length))\n\n\t\t\tfor (let commandName of commands) {\n\t\t\t\tconst [, command] = this.commandManager.createCommand(commandName)\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconst indent = ' '\n\t\t\t\tconsole.error(\n\t\t\t\t\t`${indent}${chalk.greenBright(\n\t\t\t\t\t\tcommandName.padEnd(maxCommandNameLength),\n\t\t\t\t\t)}${indent}${configuration.getDescription()}`,\n\t\t\t\t)\n\t\t\t\tif (name === '--help') {\n\t\t\t\t\tconst helpIndent = `${indent}${' '.repeat(maxCommandNameLength)}${indent}`\n\t\t\t\t\tconst usage = configuration.getUsage({ format: 'multiline', indent: helpIndent })\n\t\t\t\t\tif (usage) {\n\t\t\t\t\t\tconsole.error(chalk.green(usage))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error(`${helpIndent}${chalk.gray('No options')}`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\t\treturn this.runCommandInternal(name, rest, true)\n\t}\n\n\tpublic async runCommand(name: string, args: string[]) {\n\t\treturn this.runCommandInternal(name, args, false)\n\t}\n\n\tpublic async runCommandInternal(name: string, args: string[], showCommandName: boolean) {\n\t\tconst [fullName, command] = this.commandManager.createCommand(name)\n\n\t\tif (args[0] === '--help' || args[0] === '-h') {\n\t\t\tif (showCommandName) {\n\t\t\t\tconsole.error(chalk.greenBright(fullName))\n\t\t\t}\n\t\t\tconst configuration = command.getConfiguration()\n\t\t\tconst commandDescription = configuration.getDescription()\n\t\t\tif (commandDescription) {\n\t\t\t\tconsole.error(commandDescription)\n\t\t\t}\n\t\t\tconst shortUsage = configuration.getUsage({ format: 'short' })\n\t\t\tif (shortUsage) {\n\t\t\t\tconsole.error('\\nUsage:')\n\t\t\t\tconsole.error(chalk.green(shortUsage))\n\t\t\t\tconsole.error('\\nArguments and options:')\n\t\t\t\tconsole.error(configuration.getUsage({ format: 'multiline' }))\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.options.beforeRun?.({ command, args, name: fullName })\n\n\t\t\tconst result = await command.run(args)\n\t\t\treturn process.exit(result)\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidInputError) {\n\t\t\t\tconsole.error(chalk.bgRedBright.white(e.message))\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconsole.error(`${showCommandName ? chalk.greenBright(fullName) + ' ' : ''}${chalk.green(configuration.getUsage({ format: 'line' }))}`)\n\n\t\t\t\treturn process.exit(1)\n\t\t\t} else {\n\t\t\t\tconsole.error(e)\n\t\t\t\treturn process.exit(2)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["name","commands"],"mappings":"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"}
1
+ {"version":3,"file":"Application.js","sources":["../../../../../packages/cli-common/src/application/Application.ts"],"sourcesContent":["import { InvalidInputError } from './InputParser'\nimport { CommandManager } from './CommandManager'\nimport chalk from 'chalk'\nimport { Command } from './Command'\n\nexport class Application {\n\tconstructor(\n\t\tprivate readonly commandManager: CommandManager,\n\t\tprivate readonly applicationDescription: string,\n\t\tprivate readonly options: {\n\t\t\tbeforeRun?: (args: {command: Command<any, any>; name: string; args: string[]}) => void\n\t\t} = {},\n\t) {}\n\n\tasync run(args: string[]): Promise<void> {\n\t\tconst [name, ...rest] = args\n\t\tif (!name || name === '--help') {\n\t\t\tconsole.error(this.applicationDescription)\n\t\t\tconsole.error(`Usage: <command> <command args>`)\n\t\t\tconst commands = Object.entries(this.commandManager.commands)\n\t\t\t\t.filter(([name, factory], index, commands) => commands.findIndex(it => it[1] === factory) === index)\n\t\t\t\t.map(([name]) => name)\n\t\t\t\t.sort((a, b) => a.localeCompare(b))\n\n\t\t\tconst maxCommandNameLength = Math.max(...commands.map(it => it.length))\n\n\t\t\tfor (let commandName of commands) {\n\t\t\t\tconst [, command] = this.commandManager.createCommand(commandName)\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconst indent = ' '\n\t\t\t\tconsole.error(\n\t\t\t\t\t`${indent}${chalk.greenBright(\n\t\t\t\t\t\tcommandName.padEnd(maxCommandNameLength),\n\t\t\t\t\t)}${indent}${configuration.getDescription()}`,\n\t\t\t\t)\n\t\t\t\tif (name === '--help') {\n\t\t\t\t\tconst helpIndent = `${indent}${' '.repeat(maxCommandNameLength)}${indent}`\n\t\t\t\t\tconst usage = configuration.getUsage({ format: 'multiline', indent: helpIndent })\n\t\t\t\t\tif (usage) {\n\t\t\t\t\t\tconsole.error(chalk.green(usage))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error(`${helpIndent}${chalk.gray('No options')}`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\t\treturn this.runCommandInternal(name, rest, true)\n\t}\n\n\tpublic async runCommand(name: string, args: string[]) {\n\t\treturn this.runCommandInternal(name, args, false)\n\t}\n\n\tpublic async runCommandInternal(name: string, args: string[], showCommandName: boolean) {\n\t\tconst [fullName, command] = this.commandManager.createCommand(name)\n\n\t\tif (args[0] === '--help' || args[0] === '-h') {\n\t\t\tif (showCommandName) {\n\t\t\t\tconsole.error(chalk.greenBright(fullName))\n\t\t\t}\n\t\t\tconst configuration = command.getConfiguration()\n\t\t\tconst commandDescription = configuration.getDescription()\n\t\t\tif (commandDescription) {\n\t\t\t\tconsole.error(commandDescription)\n\t\t\t}\n\t\t\tconst shortUsage = configuration.getUsage({ format: 'short' })\n\t\t\tif (shortUsage) {\n\t\t\t\tconsole.error('\\nUsage:')\n\t\t\t\tconsole.error(chalk.green(shortUsage))\n\t\t\t\tconsole.error('\\nArguments and options:')\n\t\t\t\tconsole.error(configuration.getUsage({ format: 'multiline' }))\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.options.beforeRun?.({ command, args, name: fullName })\n\n\t\t\tconst result = await command.run(args)\n\t\t\treturn process.exit(result)\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidInputError) {\n\t\t\t\tconsole.error(chalk.bgRedBright.white(e.message))\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconsole.error(`${showCommandName ? chalk.greenBright(fullName) + ' ' : ''}${chalk.green(configuration.getUsage({ format: 'line' }))}`)\n\n\t\t\t\treturn process.exit(1)\n\t\t\t} else {\n\t\t\t\tconsole.error(e)\n\t\t\t\treturn process.exit(2)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["name","commands"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Argument.cjs","sources":["../../../../../packages/cli-common/src/application/Argument.ts"],"sourcesContent":["export type Argument = {\n\tname: string\n\tdescription?: string\n\toptional: boolean\n\tvariadic: boolean\n\tvalidator?: (value: string) => boolean\n}\n\nexport class ArgumentConfiguration {\n\tconstructor(private readonly options: Argument) {}\n\n\tpublic optional(optional: boolean = true) {\n\t\tthis.options.optional = optional\n\t\treturn this\n\t}\n\n\tpublic variadic(variadic: boolean = true) {\n\t\tthis.options.variadic = variadic\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.options.description = description\n\t\treturn this\n\t}\n\n\tpublic validator(validator: (value: string) => boolean) {\n\t\tthis.options.validator = validator\n\t\treturn this\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,sBAAsB;AAAA,EAClC,YAA6B,SAAmB;AAAnB,SAAA,UAAA;AAAA,EAAoB;AAAA,EAE1C,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EACR;AAAA,EAEO,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EACR;AAAA,EAEO,YAAY,aAAqB;AACvC,SAAK,QAAQ,cAAc;AACpB,WAAA;AAAA,EACR;AAAA,EAEO,UAAU,WAAuC;AACvD,SAAK,QAAQ,YAAY;AAClB,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"Argument.cjs","sources":["../../../../../packages/cli-common/src/application/Argument.ts"],"sourcesContent":["export type Argument = {\n\tname: string\n\tdescription?: string\n\toptional: boolean\n\tvariadic: boolean\n\tvalidator?: (value: string) => boolean\n}\n\nexport class ArgumentConfiguration {\n\tconstructor(private readonly options: Argument) {}\n\n\tpublic optional(optional: boolean = true) {\n\t\tthis.options.optional = optional\n\t\treturn this\n\t}\n\n\tpublic variadic(variadic: boolean = true) {\n\t\tthis.options.variadic = variadic\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.options.description = description\n\t\treturn this\n\t}\n\n\tpublic validator(validator: (value: string) => boolean) {\n\t\tthis.options.validator = validator\n\t\treturn this\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,sBAAsB;AAAA,EAClC,YAA6B,SAAmB;AAAnB,SAAA,UAAA;AAAA,EAAA;AAAA,EAEtB,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EAAA;AAAA,EAGD,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EAAA;AAAA,EAGD,YAAY,aAAqB;AACvC,SAAK,QAAQ,cAAc;AACpB,WAAA;AAAA,EAAA;AAAA,EAGD,UAAU,WAAuC;AACvD,SAAK,QAAQ,YAAY;AAClB,WAAA;AAAA,EAAA;AAET;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Argument.js","sources":["../../../../../packages/cli-common/src/application/Argument.ts"],"sourcesContent":["export type Argument = {\n\tname: string\n\tdescription?: string\n\toptional: boolean\n\tvariadic: boolean\n\tvalidator?: (value: string) => boolean\n}\n\nexport class ArgumentConfiguration {\n\tconstructor(private readonly options: Argument) {}\n\n\tpublic optional(optional: boolean = true) {\n\t\tthis.options.optional = optional\n\t\treturn this\n\t}\n\n\tpublic variadic(variadic: boolean = true) {\n\t\tthis.options.variadic = variadic\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.options.description = description\n\t\treturn this\n\t}\n\n\tpublic validator(validator: (value: string) => boolean) {\n\t\tthis.options.validator = validator\n\t\treturn this\n\t}\n}\n"],"names":[],"mappings":"AAQO,MAAM,sBAAsB;AAAA,EAClC,YAA6B,SAAmB;AAAnB,SAAA,UAAA;AAAA,EAAoB;AAAA,EAE1C,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EACR;AAAA,EAEO,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EACR;AAAA,EAEO,YAAY,aAAqB;AACvC,SAAK,QAAQ,cAAc;AACpB,WAAA;AAAA,EACR;AAAA,EAEO,UAAU,WAAuC;AACvD,SAAK,QAAQ,YAAY;AAClB,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"Argument.js","sources":["../../../../../packages/cli-common/src/application/Argument.ts"],"sourcesContent":["export type Argument = {\n\tname: string\n\tdescription?: string\n\toptional: boolean\n\tvariadic: boolean\n\tvalidator?: (value: string) => boolean\n}\n\nexport class ArgumentConfiguration {\n\tconstructor(private readonly options: Argument) {}\n\n\tpublic optional(optional: boolean = true) {\n\t\tthis.options.optional = optional\n\t\treturn this\n\t}\n\n\tpublic variadic(variadic: boolean = true) {\n\t\tthis.options.variadic = variadic\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.options.description = description\n\t\treturn this\n\t}\n\n\tpublic validator(validator: (value: string) => boolean) {\n\t\tthis.options.validator = validator\n\t\treturn this\n\t}\n}\n"],"names":[],"mappings":"AAQO,MAAM,sBAAsB;AAAA,EAClC,YAA6B,SAAmB;AAAnB,SAAA,UAAA;AAAA,EAAA;AAAA,EAEtB,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EAAA;AAAA,EAGD,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EAAA;AAAA,EAGD,YAAY,aAAqB;AACvC,SAAK,QAAQ,cAAc;AACpB,WAAA;AAAA,EAAA;AAAA,EAGD,UAAU,WAAuC;AACvD,SAAK,QAAQ,YAAY;AAClB,WAAA;AAAA,EAAA;AAET;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Command.cjs","sources":["../../../../../packages/cli-common/src/application/Command.ts"],"sourcesContent":["import { CommandConfiguration } from './CommandConfiguration'\nimport { Arguments, Input, Options } from './Input'\n\nexport abstract class Command<Args extends Arguments, TOptions extends Options> {\n\tprivate configuration: CommandConfiguration<Args, TOptions> | undefined\n\n\tprotected abstract configure(configuration: CommandConfiguration<Args, TOptions>): void\n\n\tpublic getConfiguration(): CommandConfiguration<Args, TOptions> {\n\t\tif (this.configuration === undefined) {\n\t\t\tconst configuration = new CommandConfiguration()\n\t\t\tthis.configure(configuration)\n\t\t\tconfiguration.validate()\n\t\t\tthis.configuration = configuration\n\t\t}\n\t\treturn this.configuration\n\t}\n\n\tprotected abstract execute(input: Input<Args, TOptions>): Promise<void | number>\n\n\tpublic async run(args: string[]): Promise<number> {\n\t\tconst parser = this.getConfiguration().createParser()\n\t\tconst input = parser.parse<Args, TOptions>(args)\n\t\tconst result = await this.execute(input)\n\t\treturn result || 0\n\t}\n}\n"],"names":["CommandConfiguration"],"mappings":";;;;;;AAGO,MAAe,QAA0D;AAAA,EAAzE,cAAA;AACE,kBAAA,MAAA,eAAA;AAAA,EAAA;AAAA,EAID,mBAAyD;AAC3D,QAAA,KAAK,kBAAkB,QAAW;AAC/B,YAAA,gBAAgB,IAAIA,qBAAAA;AAC1B,WAAK,UAAU,aAAa;AAC5B,oBAAc,SAAS;AACvB,WAAK,gBAAgB;AAAA,IACtB;AACA,WAAO,KAAK;AAAA,EACb;AAAA,EAIA,MAAa,IAAI,MAAiC;AACjD,UAAM,SAAS,KAAK,iBAAiB,EAAE,aAAa;AAC9C,UAAA,QAAQ,OAAO,MAAsB,IAAI;AAC/C,UAAM,SAAS,MAAM,KAAK,QAAQ,KAAK;AACvC,WAAO,UAAU;AAAA,EAClB;AACD;;"}
1
+ {"version":3,"file":"Command.cjs","sources":["../../../../../packages/cli-common/src/application/Command.ts"],"sourcesContent":["import { CommandConfiguration } from './CommandConfiguration'\nimport { Arguments, Input, Options } from './Input'\n\nexport abstract class Command<Args extends Arguments, TOptions extends Options> {\n\tprivate configuration: CommandConfiguration<Args, TOptions> | undefined\n\n\tprotected abstract configure(configuration: CommandConfiguration<Args, TOptions>): void\n\n\tpublic getConfiguration(): CommandConfiguration<Args, TOptions> {\n\t\tif (this.configuration === undefined) {\n\t\t\tconst configuration = new CommandConfiguration()\n\t\t\tthis.configure(configuration)\n\t\t\tconfiguration.validate()\n\t\t\tthis.configuration = configuration\n\t\t}\n\t\treturn this.configuration\n\t}\n\n\tprotected abstract execute(input: Input<Args, TOptions>): Promise<void | number>\n\n\tpublic async run(args: string[]): Promise<number> {\n\t\tconst parser = this.getConfiguration().createParser()\n\t\tconst input = parser.parse<Args, TOptions>(args)\n\t\tconst result = await this.execute(input)\n\t\treturn result || 0\n\t}\n}\n"],"names":["CommandConfiguration"],"mappings":";;;;;;AAGO,MAAe,QAA0D;AAAA,EAAzE,cAAA;AACE,kBAAA,MAAA,eAAA;AAAA,EAAA;AAAA,EAID,mBAAyD;AAC3D,QAAA,KAAK,kBAAkB,QAAW;AAC/B,YAAA,gBAAgB,IAAIA,0CAAqB;AAC/C,WAAK,UAAU,aAAa;AAC5B,oBAAc,SAAS;AACvB,WAAK,gBAAgB;AAAA,IAAA;AAEtB,WAAO,KAAK;AAAA,EAAA;AAAA,EAKb,MAAa,IAAI,MAAiC;AACjD,UAAM,SAAS,KAAK,iBAAiB,EAAE,aAAa;AAC9C,UAAA,QAAQ,OAAO,MAAsB,IAAI;AAC/C,UAAM,SAAS,MAAM,KAAK,QAAQ,KAAK;AACvC,WAAO,UAAU;AAAA,EAAA;AAEnB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","sources":["../../../../../packages/cli-common/src/application/Command.ts"],"sourcesContent":["import { CommandConfiguration } from './CommandConfiguration'\nimport { Arguments, Input, Options } from './Input'\n\nexport abstract class Command<Args extends Arguments, TOptions extends Options> {\n\tprivate configuration: CommandConfiguration<Args, TOptions> | undefined\n\n\tprotected abstract configure(configuration: CommandConfiguration<Args, TOptions>): void\n\n\tpublic getConfiguration(): CommandConfiguration<Args, TOptions> {\n\t\tif (this.configuration === undefined) {\n\t\t\tconst configuration = new CommandConfiguration()\n\t\t\tthis.configure(configuration)\n\t\t\tconfiguration.validate()\n\t\t\tthis.configuration = configuration\n\t\t}\n\t\treturn this.configuration\n\t}\n\n\tprotected abstract execute(input: Input<Args, TOptions>): Promise<void | number>\n\n\tpublic async run(args: string[]): Promise<number> {\n\t\tconst parser = this.getConfiguration().createParser()\n\t\tconst input = parser.parse<Args, TOptions>(args)\n\t\tconst result = await this.execute(input)\n\t\treturn result || 0\n\t}\n}\n"],"names":[],"mappings":";;;;AAGO,MAAe,QAA0D;AAAA,EAAzE,cAAA;AACE,kBAAA,MAAA,eAAA;AAAA,EAAA;AAAA,EAID,mBAAyD;AAC3D,QAAA,KAAK,kBAAkB,QAAW;AAC/B,YAAA,gBAAgB,IAAI;AAC1B,WAAK,UAAU,aAAa;AAC5B,oBAAc,SAAS;AACvB,WAAK,gBAAgB;AAAA,IACtB;AACA,WAAO,KAAK;AAAA,EACb;AAAA,EAIA,MAAa,IAAI,MAAiC;AACjD,UAAM,SAAS,KAAK,iBAAiB,EAAE,aAAa;AAC9C,UAAA,QAAQ,OAAO,MAAsB,IAAI;AAC/C,UAAM,SAAS,MAAM,KAAK,QAAQ,KAAK;AACvC,WAAO,UAAU;AAAA,EAClB;AACD;"}
1
+ {"version":3,"file":"Command.js","sources":["../../../../../packages/cli-common/src/application/Command.ts"],"sourcesContent":["import { CommandConfiguration } from './CommandConfiguration'\nimport { Arguments, Input, Options } from './Input'\n\nexport abstract class Command<Args extends Arguments, TOptions extends Options> {\n\tprivate configuration: CommandConfiguration<Args, TOptions> | undefined\n\n\tprotected abstract configure(configuration: CommandConfiguration<Args, TOptions>): void\n\n\tpublic getConfiguration(): CommandConfiguration<Args, TOptions> {\n\t\tif (this.configuration === undefined) {\n\t\t\tconst configuration = new CommandConfiguration()\n\t\t\tthis.configure(configuration)\n\t\t\tconfiguration.validate()\n\t\t\tthis.configuration = configuration\n\t\t}\n\t\treturn this.configuration\n\t}\n\n\tprotected abstract execute(input: Input<Args, TOptions>): Promise<void | number>\n\n\tpublic async run(args: string[]): Promise<number> {\n\t\tconst parser = this.getConfiguration().createParser()\n\t\tconst input = parser.parse<Args, TOptions>(args)\n\t\tconst result = await this.execute(input)\n\t\treturn result || 0\n\t}\n}\n"],"names":[],"mappings":";;;;AAGO,MAAe,QAA0D;AAAA,EAAzE,cAAA;AACE,kBAAA,MAAA,eAAA;AAAA,EAAA;AAAA,EAID,mBAAyD;AAC3D,QAAA,KAAK,kBAAkB,QAAW;AAC/B,YAAA,gBAAgB,IAAI,qBAAqB;AAC/C,WAAK,UAAU,aAAa;AAC5B,oBAAc,SAAS;AACvB,WAAK,gBAAgB;AAAA,IAAA;AAEtB,WAAO,KAAK;AAAA,EAAA;AAAA,EAKb,MAAa,IAAI,MAAiC;AACjD,UAAM,SAAS,KAAK,iBAAiB,EAAE,aAAa;AAC9C,UAAA,QAAQ,OAAO,MAAsB,IAAI;AAC/C,UAAM,SAAS,MAAM,KAAK,QAAQ,KAAK;AACvC,WAAO,UAAU;AAAA,EAAA;AAEnB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandConfiguration.cjs","sources":["../../../../../packages/cli-common/src/application/CommandConfiguration.ts"],"sourcesContent":["import { Argument, ArgumentConfiguration } from './Argument'\nimport { Option, OptionConfiguration, OptionMode } from './Option'\nimport { InputParser } from './InputParser'\nimport { UsageFormat, UsageFormatter } from './UsageFormatter'\nimport { Arguments, Options } from './Input'\n\nexport class CommandConfiguration<Args extends Arguments, TOptions extends Options> {\n\tprivate descriptionValue: string = ''\n\n\tprivate arguments: Argument[] = []\n\tprivate options: Option[] = []\n\n\tpublic description(description: string) {\n\t\tthis.descriptionValue = description\n\t}\n\n\tpublic argument(name: Extract<keyof Args, string>): ArgumentConfiguration {\n\t\tconst options = { name, optional: false, variadic: false }\n\t\tthis.arguments.push(options)\n\t\treturn new ArgumentConfiguration(options)\n\t}\n\n\tpublic option(name: Extract<keyof TOptions, string>): OptionConfiguration {\n\t\tconst option: Option = { name, required: false, mode: OptionMode.VALUE_NONE, deprecated: false }\n\t\tthis.options.push(option)\n\t\treturn new OptionConfiguration(option)\n\t}\n\n\tpublic validate() {\n\t\tlet hasVariadic = false\n\t\tlet hasOptional = false\n\t\tfor (let argument of this.arguments) {\n\t\t\tif (hasOptional && !argument.optional) {\n\t\t\t\tthrow new InvalidConfigurationError(`Required argument ${argument.name} cannot follow an optional `)\n\t\t\t}\n\t\t\tif (hasVariadic) {\n\t\t\t\tthrow new InvalidConfigurationError(`A variadic argument must be the last`)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getDescription(): string {\n\t\treturn this.descriptionValue\n\t}\n\n\tpublic createParser(): InputParser {\n\t\treturn new InputParser(this.arguments, this.options)\n\t}\n\n\tpublic getUsage(args: { format?: UsageFormat; indent?: string } = {}): string {\n\t\treturn UsageFormatter.format(this.arguments, this.options, args)\n\t}\n}\n\nexport class InvalidConfigurationError extends Error {}\n"],"names":["ArgumentConfiguration","OptionMode","OptionConfiguration","InputParser","UsageFormatter"],"mappings":";;;;;;;;;AAMO,MAAM,qBAAuE;AAAA,EAA7E,cAAA;AACN,kBAAA,MAAQ,oBAA2B,EAAA;AAEnC,kBAAA,MAAQ,aAAwB,CAAA,CAAC;AACjC,kBAAA,MAAQ,WAAoB,CAAA,CAAC;AAAA,EAAA;AAAA,EAEtB,YAAY,aAAqB;AACvC,SAAK,mBAAmB;AAAA,EACzB;AAAA,EAEO,SAAS,MAA0D;AACzE,UAAM,UAAU,EAAE,MAAM,UAAU,OAAO,UAAU;AAC9C,SAAA,UAAU,KAAK,OAAO;AACpB,WAAA,IAAIA,SAAAA,sBAAsB,OAAO;AAAA,EACzC;AAAA,EAEO,OAAO,MAA4D;AACnE,UAAA,SAAiB,EAAE,MAAM,UAAU,OAAO,MAAMC,OAAAA,WAAW,YAAY,YAAY;AACpF,SAAA,QAAQ,KAAK,MAAM;AACjB,WAAA,IAAIC,OAAAA,oBAAoB,MAAM;AAAA,EACtC;AAAA,EAEO,WAAW;AAGR,aAAA,YAAY,KAAK,WAAW;AAAA,IAOrC;AAAA,EACD;AAAA,EAEO,iBAAyB;AAC/B,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,eAA4B;AAClC,WAAO,IAAIC,YAAA,YAAY,KAAK,WAAW,KAAK,OAAO;AAAA,EACpD;AAAA,EAEO,SAAS,OAAkD,IAAY;AAC7E,WAAOC,eAAAA,eAAe,OAAO,KAAK,WAAW,KAAK,SAAS,IAAI;AAAA,EAChE;AACD;;"}
1
+ {"version":3,"file":"CommandConfiguration.cjs","sources":["../../../../../packages/cli-common/src/application/CommandConfiguration.ts"],"sourcesContent":["import { Argument, ArgumentConfiguration } from './Argument'\nimport { Option, OptionConfiguration, OptionMode } from './Option'\nimport { InputParser } from './InputParser'\nimport { UsageFormat, UsageFormatter } from './UsageFormatter'\nimport { Arguments, Options } from './Input'\n\nexport class CommandConfiguration<Args extends Arguments, TOptions extends Options> {\n\tprivate descriptionValue: string = ''\n\n\tprivate arguments: Argument[] = []\n\tprivate options: Option[] = []\n\n\tpublic description(description: string) {\n\t\tthis.descriptionValue = description\n\t}\n\n\tpublic argument(name: Extract<keyof Args, string>): ArgumentConfiguration {\n\t\tconst options = { name, optional: false, variadic: false }\n\t\tthis.arguments.push(options)\n\t\treturn new ArgumentConfiguration(options)\n\t}\n\n\tpublic option(name: Extract<keyof TOptions, string>): OptionConfiguration {\n\t\tconst option: Option = { name, required: false, mode: OptionMode.VALUE_NONE, deprecated: false }\n\t\tthis.options.push(option)\n\t\treturn new OptionConfiguration(option)\n\t}\n\n\tpublic validate() {\n\t\tlet hasVariadic = false\n\t\tlet hasOptional = false\n\t\tfor (let argument of this.arguments) {\n\t\t\tif (hasOptional && !argument.optional) {\n\t\t\t\tthrow new InvalidConfigurationError(`Required argument ${argument.name} cannot follow an optional `)\n\t\t\t}\n\t\t\tif (hasVariadic) {\n\t\t\t\tthrow new InvalidConfigurationError(`A variadic argument must be the last`)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getDescription(): string {\n\t\treturn this.descriptionValue\n\t}\n\n\tpublic createParser(): InputParser {\n\t\treturn new InputParser(this.arguments, this.options)\n\t}\n\n\tpublic getUsage(args: { format?: UsageFormat; indent?: string } = {}): string {\n\t\treturn UsageFormatter.format(this.arguments, this.options, args)\n\t}\n}\n\nexport class InvalidConfigurationError extends Error {}\n"],"names":["ArgumentConfiguration","OptionMode","OptionConfiguration","InputParser","UsageFormatter"],"mappings":";;;;;;;;;AAMO,MAAM,qBAAuE;AAAA,EAA7E,cAAA;AACN,kBAAA,MAAQ,oBAA2B,EAAA;AAEnC,kBAAA,MAAQ,aAAwB,EAAC;AACjC,kBAAA,MAAQ,WAAoB,EAAC;AAAA,EAAA;AAAA,EAEtB,YAAY,aAAqB;AACvC,SAAK,mBAAmB;AAAA,EAAA;AAAA,EAGlB,SAAS,MAA0D;AACzE,UAAM,UAAU,EAAE,MAAM,UAAU,OAAO,UAAU,MAAM;AACpD,SAAA,UAAU,KAAK,OAAO;AACpB,WAAA,IAAIA,+BAAsB,OAAO;AAAA,EAAA;AAAA,EAGlC,OAAO,MAA4D;AACnE,UAAA,SAAiB,EAAE,MAAM,UAAU,OAAO,MAAMC,kBAAW,YAAY,YAAY,MAAM;AAC1F,SAAA,QAAQ,KAAK,MAAM;AACjB,WAAA,IAAIC,2BAAoB,MAAM;AAAA,EAAA;AAAA,EAG/B,WAAW;AAGR,aAAA,YAAY,KAAK,WAAW;AAAA,IAMpC;AAAA,EACD;AAAA,EAGM,iBAAyB;AAC/B,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,eAA4B;AAClC,WAAO,IAAIC,YAAAA,YAAY,KAAK,WAAW,KAAK,OAAO;AAAA,EAAA;AAAA,EAG7C,SAAS,OAAkD,IAAY;AAC7E,WAAOC,eAAAA,eAAe,OAAO,KAAK,WAAW,KAAK,SAAS,IAAI;AAAA,EAAA;AAEjE;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandConfiguration.js","sources":["../../../../../packages/cli-common/src/application/CommandConfiguration.ts"],"sourcesContent":["import { Argument, ArgumentConfiguration } from './Argument'\nimport { Option, OptionConfiguration, OptionMode } from './Option'\nimport { InputParser } from './InputParser'\nimport { UsageFormat, UsageFormatter } from './UsageFormatter'\nimport { Arguments, Options } from './Input'\n\nexport class CommandConfiguration<Args extends Arguments, TOptions extends Options> {\n\tprivate descriptionValue: string = ''\n\n\tprivate arguments: Argument[] = []\n\tprivate options: Option[] = []\n\n\tpublic description(description: string) {\n\t\tthis.descriptionValue = description\n\t}\n\n\tpublic argument(name: Extract<keyof Args, string>): ArgumentConfiguration {\n\t\tconst options = { name, optional: false, variadic: false }\n\t\tthis.arguments.push(options)\n\t\treturn new ArgumentConfiguration(options)\n\t}\n\n\tpublic option(name: Extract<keyof TOptions, string>): OptionConfiguration {\n\t\tconst option: Option = { name, required: false, mode: OptionMode.VALUE_NONE, deprecated: false }\n\t\tthis.options.push(option)\n\t\treturn new OptionConfiguration(option)\n\t}\n\n\tpublic validate() {\n\t\tlet hasVariadic = false\n\t\tlet hasOptional = false\n\t\tfor (let argument of this.arguments) {\n\t\t\tif (hasOptional && !argument.optional) {\n\t\t\t\tthrow new InvalidConfigurationError(`Required argument ${argument.name} cannot follow an optional `)\n\t\t\t}\n\t\t\tif (hasVariadic) {\n\t\t\t\tthrow new InvalidConfigurationError(`A variadic argument must be the last`)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getDescription(): string {\n\t\treturn this.descriptionValue\n\t}\n\n\tpublic createParser(): InputParser {\n\t\treturn new InputParser(this.arguments, this.options)\n\t}\n\n\tpublic getUsage(args: { format?: UsageFormat; indent?: string } = {}): string {\n\t\treturn UsageFormatter.format(this.arguments, this.options, args)\n\t}\n}\n\nexport class InvalidConfigurationError extends Error {}\n"],"names":[],"mappings":";;;;;;;AAMO,MAAM,qBAAuE;AAAA,EAA7E,cAAA;AACN,kBAAA,MAAQ,oBAA2B,EAAA;AAEnC,kBAAA,MAAQ,aAAwB,CAAA,CAAC;AACjC,kBAAA,MAAQ,WAAoB,CAAA,CAAC;AAAA,EAAA;AAAA,EAEtB,YAAY,aAAqB;AACvC,SAAK,mBAAmB;AAAA,EACzB;AAAA,EAEO,SAAS,MAA0D;AACzE,UAAM,UAAU,EAAE,MAAM,UAAU,OAAO,UAAU;AAC9C,SAAA,UAAU,KAAK,OAAO;AACpB,WAAA,IAAI,sBAAsB,OAAO;AAAA,EACzC;AAAA,EAEO,OAAO,MAA4D;AACnE,UAAA,SAAiB,EAAE,MAAM,UAAU,OAAO,MAAM,WAAW,YAAY,YAAY;AACpF,SAAA,QAAQ,KAAK,MAAM;AACjB,WAAA,IAAI,oBAAoB,MAAM;AAAA,EACtC;AAAA,EAEO,WAAW;AAGR,aAAA,YAAY,KAAK,WAAW;AAAA,IAOrC;AAAA,EACD;AAAA,EAEO,iBAAyB;AAC/B,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,eAA4B;AAClC,WAAO,IAAI,YAAY,KAAK,WAAW,KAAK,OAAO;AAAA,EACpD;AAAA,EAEO,SAAS,OAAkD,IAAY;AAC7E,WAAO,eAAe,OAAO,KAAK,WAAW,KAAK,SAAS,IAAI;AAAA,EAChE;AACD;"}
1
+ {"version":3,"file":"CommandConfiguration.js","sources":["../../../../../packages/cli-common/src/application/CommandConfiguration.ts"],"sourcesContent":["import { Argument, ArgumentConfiguration } from './Argument'\nimport { Option, OptionConfiguration, OptionMode } from './Option'\nimport { InputParser } from './InputParser'\nimport { UsageFormat, UsageFormatter } from './UsageFormatter'\nimport { Arguments, Options } from './Input'\n\nexport class CommandConfiguration<Args extends Arguments, TOptions extends Options> {\n\tprivate descriptionValue: string = ''\n\n\tprivate arguments: Argument[] = []\n\tprivate options: Option[] = []\n\n\tpublic description(description: string) {\n\t\tthis.descriptionValue = description\n\t}\n\n\tpublic argument(name: Extract<keyof Args, string>): ArgumentConfiguration {\n\t\tconst options = { name, optional: false, variadic: false }\n\t\tthis.arguments.push(options)\n\t\treturn new ArgumentConfiguration(options)\n\t}\n\n\tpublic option(name: Extract<keyof TOptions, string>): OptionConfiguration {\n\t\tconst option: Option = { name, required: false, mode: OptionMode.VALUE_NONE, deprecated: false }\n\t\tthis.options.push(option)\n\t\treturn new OptionConfiguration(option)\n\t}\n\n\tpublic validate() {\n\t\tlet hasVariadic = false\n\t\tlet hasOptional = false\n\t\tfor (let argument of this.arguments) {\n\t\t\tif (hasOptional && !argument.optional) {\n\t\t\t\tthrow new InvalidConfigurationError(`Required argument ${argument.name} cannot follow an optional `)\n\t\t\t}\n\t\t\tif (hasVariadic) {\n\t\t\t\tthrow new InvalidConfigurationError(`A variadic argument must be the last`)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getDescription(): string {\n\t\treturn this.descriptionValue\n\t}\n\n\tpublic createParser(): InputParser {\n\t\treturn new InputParser(this.arguments, this.options)\n\t}\n\n\tpublic getUsage(args: { format?: UsageFormat; indent?: string } = {}): string {\n\t\treturn UsageFormatter.format(this.arguments, this.options, args)\n\t}\n}\n\nexport class InvalidConfigurationError extends Error {}\n"],"names":[],"mappings":";;;;;;;AAMO,MAAM,qBAAuE;AAAA,EAA7E,cAAA;AACN,kBAAA,MAAQ,oBAA2B,EAAA;AAEnC,kBAAA,MAAQ,aAAwB,EAAC;AACjC,kBAAA,MAAQ,WAAoB,EAAC;AAAA,EAAA;AAAA,EAEtB,YAAY,aAAqB;AACvC,SAAK,mBAAmB;AAAA,EAAA;AAAA,EAGlB,SAAS,MAA0D;AACzE,UAAM,UAAU,EAAE,MAAM,UAAU,OAAO,UAAU,MAAM;AACpD,SAAA,UAAU,KAAK,OAAO;AACpB,WAAA,IAAI,sBAAsB,OAAO;AAAA,EAAA;AAAA,EAGlC,OAAO,MAA4D;AACnE,UAAA,SAAiB,EAAE,MAAM,UAAU,OAAO,MAAM,WAAW,YAAY,YAAY,MAAM;AAC1F,SAAA,QAAQ,KAAK,MAAM;AACjB,WAAA,IAAI,oBAAoB,MAAM;AAAA,EAAA;AAAA,EAG/B,WAAW;AAGR,aAAA,YAAY,KAAK,WAAW;AAAA,IAMpC;AAAA,EACD;AAAA,EAGM,iBAAyB;AAC/B,WAAO,KAAK;AAAA,EAAA;AAAA,EAGN,eAA4B;AAClC,WAAO,IAAI,YAAY,KAAK,WAAW,KAAK,OAAO;AAAA,EAAA;AAAA,EAG7C,SAAS,OAAkD,IAAY;AAC7E,WAAO,eAAe,OAAO,KAAK,WAAW,KAAK,SAAS,IAAI;AAAA,EAAA;AAEjE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandManager.cjs","sources":["../../../../../packages/cli-common/src/application/CommandManager.ts"],"sourcesContent":["import { Command } from './Command'\nimport chalk from 'chalk'\n\nexport type CommandFactoryList = { [command: string]: () => Command<any, any> }\n\nexport class CommandManager {\n\tconstructor(public readonly commands: CommandFactoryList) {}\n\n\tpublic createCommand(name: string): [string, Command<any, any>] {\n\t\tconst fullName = this.findCommand(name)\n\t\tconst factory = this.commands[fullName]\n\t\tconst originalCommand = Object.entries(this.commands).find(([, it]) => it === factory)\n\t\tif (!originalCommand) {\n\t\t\tthrow new Error('impl error')\n\t\t}\n\t\tif (originalCommand[0] !== fullName) {\n\t\t\tconsole.warn(chalk.yellow(`Command name \"${fullName}\" is deprecated, use \"${originalCommand[0]}\" instead.`))\n\t\t}\n\t\treturn [fullName, factory()]\n\t}\n\n\tprivate findCommand(name: string): string {\n\t\tif (this.commands[name]) {\n\t\t\treturn name\n\t\t}\n\t\tconst pattern = new RegExp('^' + name.replace(/:/g, '\\\\w*\\\\:'))\n\t\tconst matchedCommands = Object.keys(this.commands).filter(it => it.match(pattern))\n\t\tif (matchedCommands.length === 1) {\n\t\t\treturn matchedCommands[0]\n\t\t}\n\t\tif (matchedCommands.length === 0) {\n\t\t\tthrow `Command ${name} not found.`\n\t\t}\n\t\tthrow `Command ${name} is ambiguous. Did you mean one of these?\\n - ` + matchedCommands.join('\\n - ') + '\\n'\n\t}\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,eAAe;AAAA,EAC3B,YAA4B,UAA8B;AAA9B,SAAA,WAAA;AAAA,EAA+B;AAAA,EAEpD,cAAc,MAA2C;AACzD,UAAA,WAAW,KAAK,YAAY,IAAI;AAChC,UAAA,UAAU,KAAK,SAAS,QAAQ;AACtC,UAAM,kBAAkB,OAAO,QAAQ,KAAK,QAAQ,EAAE,KAAK,CAAC,CAAA,EAAG,EAAE,MAAM,OAAO,OAAO;AACrF,QAAI,CAAC,iBAAiB;AACf,YAAA,IAAI,MAAM,YAAY;AAAA,IAC7B;AACI,QAAA,gBAAgB,CAAC,MAAM,UAAU;AAC5B,cAAA,KAAK,MAAM,OAAO,iBAAiB,QAAQ,yBAAyB,gBAAgB,CAAC,CAAC,YAAY,CAAC;AAAA,IAC5G;AACO,WAAA,CAAC,UAAU,QAAA,CAAS;AAAA,EAC5B;AAAA,EAEQ,YAAY,MAAsB;AACrC,QAAA,KAAK,SAAS,IAAI,GAAG;AACjB,aAAA;AAAA,IACR;AACM,UAAA,UAAU,IAAI,OAAO,MAAM,KAAK,QAAQ,MAAM,SAAS,CAAC;AACxD,UAAA,kBAAkB,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,CAAM,OAAA,GAAG,MAAM,OAAO,CAAC;AAC7E,QAAA,gBAAgB,WAAW,GAAG;AACjC,aAAO,gBAAgB,CAAC;AAAA,IACzB;AACI,QAAA,gBAAgB,WAAW,GAAG;AACjC,YAAM,WAAW,IAAI;AAAA,IACtB;AACA,UAAM,WAAW,IAAI;AAAA,OAAmD,gBAAgB,KAAK,OAAO,IAAI;AAAA,EACzG;AACD;;"}
1
+ {"version":3,"file":"CommandManager.cjs","sources":["../../../../../packages/cli-common/src/application/CommandManager.ts"],"sourcesContent":["import { Command } from './Command'\nimport chalk from 'chalk'\n\nexport type CommandFactoryList = { [command: string]: () => Command<any, any> }\n\nexport class CommandManager {\n\tconstructor(public readonly commands: CommandFactoryList) {}\n\n\tpublic createCommand(name: string): [string, Command<any, any>] {\n\t\tconst fullName = this.findCommand(name)\n\t\tconst factory = this.commands[fullName]\n\t\tconst originalCommand = Object.entries(this.commands).find(([, it]) => it === factory)\n\t\tif (!originalCommand) {\n\t\t\tthrow new Error('impl error')\n\t\t}\n\t\tif (originalCommand[0] !== fullName) {\n\t\t\tconsole.warn(chalk.yellow(`Command name \"${fullName}\" is deprecated, use \"${originalCommand[0]}\" instead.`))\n\t\t}\n\t\treturn [fullName, factory()]\n\t}\n\n\tprivate findCommand(name: string): string {\n\t\tif (this.commands[name]) {\n\t\t\treturn name\n\t\t}\n\t\tconst pattern = new RegExp('^' + name.replace(/:/g, '\\\\w*\\\\:'))\n\t\tconst matchedCommands = Object.keys(this.commands).filter(it => it.match(pattern))\n\t\tif (matchedCommands.length === 1) {\n\t\t\treturn matchedCommands[0]\n\t\t}\n\t\tif (matchedCommands.length === 0) {\n\t\t\tthrow `Command ${name} not found.`\n\t\t}\n\t\tthrow `Command ${name} is ambiguous. Did you mean one of these?\\n - ` + matchedCommands.join('\\n - ') + '\\n'\n\t}\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,eAAe;AAAA,EAC3B,YAA4B,UAA8B;AAA9B,SAAA,WAAA;AAAA,EAAA;AAAA,EAErB,cAAc,MAA2C;AACzD,UAAA,WAAW,KAAK,YAAY,IAAI;AAChC,UAAA,UAAU,KAAK,SAAS,QAAQ;AACtC,UAAM,kBAAkB,OAAO,QAAQ,KAAK,QAAQ,EAAE,KAAK,CAAC,CAAG,EAAA,EAAE,MAAM,OAAO,OAAO;AACrF,QAAI,CAAC,iBAAiB;AACf,YAAA,IAAI,MAAM,YAAY;AAAA,IAAA;AAEzB,QAAA,gBAAgB,CAAC,MAAM,UAAU;AAC5B,cAAA,KAAK,MAAM,OAAO,iBAAiB,QAAQ,yBAAyB,gBAAgB,CAAC,CAAC,YAAY,CAAC;AAAA,IAAA;AAErG,WAAA,CAAC,UAAU,SAAS;AAAA,EAAA;AAAA,EAGpB,YAAY,MAAsB;AACrC,QAAA,KAAK,SAAS,IAAI,GAAG;AACjB,aAAA;AAAA,IAAA;AAEF,UAAA,UAAU,IAAI,OAAO,MAAM,KAAK,QAAQ,MAAM,SAAS,CAAC;AACxD,UAAA,kBAAkB,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,CAAM,OAAA,GAAG,MAAM,OAAO,CAAC;AAC7E,QAAA,gBAAgB,WAAW,GAAG;AACjC,aAAO,gBAAgB,CAAC;AAAA,IAAA;AAErB,QAAA,gBAAgB,WAAW,GAAG;AACjC,YAAM,WAAW,IAAI;AAAA,IAAA;AAEtB,UAAM,WAAW,IAAI;AAAA,OAAmD,gBAAgB,KAAK,OAAO,IAAI;AAAA,EAAA;AAE1G;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandManager.js","sources":["../../../../../packages/cli-common/src/application/CommandManager.ts"],"sourcesContent":["import { Command } from './Command'\nimport chalk from 'chalk'\n\nexport type CommandFactoryList = { [command: string]: () => Command<any, any> }\n\nexport class CommandManager {\n\tconstructor(public readonly commands: CommandFactoryList) {}\n\n\tpublic createCommand(name: string): [string, Command<any, any>] {\n\t\tconst fullName = this.findCommand(name)\n\t\tconst factory = this.commands[fullName]\n\t\tconst originalCommand = Object.entries(this.commands).find(([, it]) => it === factory)\n\t\tif (!originalCommand) {\n\t\t\tthrow new Error('impl error')\n\t\t}\n\t\tif (originalCommand[0] !== fullName) {\n\t\t\tconsole.warn(chalk.yellow(`Command name \"${fullName}\" is deprecated, use \"${originalCommand[0]}\" instead.`))\n\t\t}\n\t\treturn [fullName, factory()]\n\t}\n\n\tprivate findCommand(name: string): string {\n\t\tif (this.commands[name]) {\n\t\t\treturn name\n\t\t}\n\t\tconst pattern = new RegExp('^' + name.replace(/:/g, '\\\\w*\\\\:'))\n\t\tconst matchedCommands = Object.keys(this.commands).filter(it => it.match(pattern))\n\t\tif (matchedCommands.length === 1) {\n\t\t\treturn matchedCommands[0]\n\t\t}\n\t\tif (matchedCommands.length === 0) {\n\t\t\tthrow `Command ${name} not found.`\n\t\t}\n\t\tthrow `Command ${name} is ambiguous. Did you mean one of these?\\n - ` + matchedCommands.join('\\n - ') + '\\n'\n\t}\n}\n"],"names":[],"mappings":";AAKO,MAAM,eAAe;AAAA,EAC3B,YAA4B,UAA8B;AAA9B,SAAA,WAAA;AAAA,EAA+B;AAAA,EAEpD,cAAc,MAA2C;AACzD,UAAA,WAAW,KAAK,YAAY,IAAI;AAChC,UAAA,UAAU,KAAK,SAAS,QAAQ;AACtC,UAAM,kBAAkB,OAAO,QAAQ,KAAK,QAAQ,EAAE,KAAK,CAAC,CAAA,EAAG,EAAE,MAAM,OAAO,OAAO;AACrF,QAAI,CAAC,iBAAiB;AACf,YAAA,IAAI,MAAM,YAAY;AAAA,IAC7B;AACI,QAAA,gBAAgB,CAAC,MAAM,UAAU;AAC5B,cAAA,KAAK,MAAM,OAAO,iBAAiB,QAAQ,yBAAyB,gBAAgB,CAAC,CAAC,YAAY,CAAC;AAAA,IAC5G;AACO,WAAA,CAAC,UAAU,QAAA,CAAS;AAAA,EAC5B;AAAA,EAEQ,YAAY,MAAsB;AACrC,QAAA,KAAK,SAAS,IAAI,GAAG;AACjB,aAAA;AAAA,IACR;AACM,UAAA,UAAU,IAAI,OAAO,MAAM,KAAK,QAAQ,MAAM,SAAS,CAAC;AACxD,UAAA,kBAAkB,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,CAAM,OAAA,GAAG,MAAM,OAAO,CAAC;AAC7E,QAAA,gBAAgB,WAAW,GAAG;AACjC,aAAO,gBAAgB,CAAC;AAAA,IACzB;AACI,QAAA,gBAAgB,WAAW,GAAG;AACjC,YAAM,WAAW,IAAI;AAAA,IACtB;AACA,UAAM,WAAW,IAAI;AAAA,OAAmD,gBAAgB,KAAK,OAAO,IAAI;AAAA,EACzG;AACD;"}
1
+ {"version":3,"file":"CommandManager.js","sources":["../../../../../packages/cli-common/src/application/CommandManager.ts"],"sourcesContent":["import { Command } from './Command'\nimport chalk from 'chalk'\n\nexport type CommandFactoryList = { [command: string]: () => Command<any, any> }\n\nexport class CommandManager {\n\tconstructor(public readonly commands: CommandFactoryList) {}\n\n\tpublic createCommand(name: string): [string, Command<any, any>] {\n\t\tconst fullName = this.findCommand(name)\n\t\tconst factory = this.commands[fullName]\n\t\tconst originalCommand = Object.entries(this.commands).find(([, it]) => it === factory)\n\t\tif (!originalCommand) {\n\t\t\tthrow new Error('impl error')\n\t\t}\n\t\tif (originalCommand[0] !== fullName) {\n\t\t\tconsole.warn(chalk.yellow(`Command name \"${fullName}\" is deprecated, use \"${originalCommand[0]}\" instead.`))\n\t\t}\n\t\treturn [fullName, factory()]\n\t}\n\n\tprivate findCommand(name: string): string {\n\t\tif (this.commands[name]) {\n\t\t\treturn name\n\t\t}\n\t\tconst pattern = new RegExp('^' + name.replace(/:/g, '\\\\w*\\\\:'))\n\t\tconst matchedCommands = Object.keys(this.commands).filter(it => it.match(pattern))\n\t\tif (matchedCommands.length === 1) {\n\t\t\treturn matchedCommands[0]\n\t\t}\n\t\tif (matchedCommands.length === 0) {\n\t\t\tthrow `Command ${name} not found.`\n\t\t}\n\t\tthrow `Command ${name} is ambiguous. Did you mean one of these?\\n - ` + matchedCommands.join('\\n - ') + '\\n'\n\t}\n}\n"],"names":[],"mappings":";AAKO,MAAM,eAAe;AAAA,EAC3B,YAA4B,UAA8B;AAA9B,SAAA,WAAA;AAAA,EAAA;AAAA,EAErB,cAAc,MAA2C;AACzD,UAAA,WAAW,KAAK,YAAY,IAAI;AAChC,UAAA,UAAU,KAAK,SAAS,QAAQ;AACtC,UAAM,kBAAkB,OAAO,QAAQ,KAAK,QAAQ,EAAE,KAAK,CAAC,CAAG,EAAA,EAAE,MAAM,OAAO,OAAO;AACrF,QAAI,CAAC,iBAAiB;AACf,YAAA,IAAI,MAAM,YAAY;AAAA,IAAA;AAEzB,QAAA,gBAAgB,CAAC,MAAM,UAAU;AAC5B,cAAA,KAAK,MAAM,OAAO,iBAAiB,QAAQ,yBAAyB,gBAAgB,CAAC,CAAC,YAAY,CAAC;AAAA,IAAA;AAErG,WAAA,CAAC,UAAU,SAAS;AAAA,EAAA;AAAA,EAGpB,YAAY,MAAsB;AACrC,QAAA,KAAK,SAAS,IAAI,GAAG;AACjB,aAAA;AAAA,IAAA;AAEF,UAAA,UAAU,IAAI,OAAO,MAAM,KAAK,QAAQ,MAAM,SAAS,CAAC;AACxD,UAAA,kBAAkB,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,CAAM,OAAA,GAAG,MAAM,OAAO,CAAC;AAC7E,QAAA,gBAAgB,WAAW,GAAG;AACjC,aAAO,gBAAgB,CAAC;AAAA,IAAA;AAErB,QAAA,gBAAgB,WAAW,GAAG;AACjC,YAAM,WAAW,IAAI;AAAA,IAAA;AAEtB,UAAM,WAAW,IAAI;AAAA,OAAmD,gBAAgB,KAAK,OAAO,IAAI;AAAA,EAAA;AAE1G;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.cjs","sources":["../../../../../packages/cli-common/src/application/Input.ts"],"sourcesContent":["export type Arguments = Record<string, string | string[] | undefined>\nexport type Options = Record<string, string | boolean | string[] | undefined>\n\nexport class Input<Args extends Arguments = Arguments, Opts extends Options = Options> {\n\tconstructor(private readonly args: Args, private readonly options: Opts) {}\n\n\tgetOption<Name extends keyof Opts>(name: Name): Opts[Name] {\n\t\treturn this.options[name]\n\t}\n\n\tgetArgument<Name extends keyof Args>(name: Name): Args[Name] {\n\t\treturn this.args[name]\n\t}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,MAA0E;AAAA,EACtF,YAA6B,MAA6B,SAAe;AAA5C,SAAA,OAAA;AAA6B,SAAA,UAAA;AAAA,EAAgB;AAAA,EAE1E,UAAmC,MAAwB;AACnD,WAAA,KAAK,QAAQ,IAAI;AAAA,EACzB;AAAA,EAEA,YAAqC,MAAwB;AACrD,WAAA,KAAK,KAAK,IAAI;AAAA,EACtB;AACD;;"}
1
+ {"version":3,"file":"Input.cjs","sources":["../../../../../packages/cli-common/src/application/Input.ts"],"sourcesContent":["export type Arguments = Record<string, string | string[] | undefined>\nexport type Options = Record<string, string | boolean | string[] | undefined>\n\nexport class Input<Args extends Arguments = Arguments, Opts extends Options = Options> {\n\tconstructor(private readonly args: Args, private readonly options: Opts) {}\n\n\tgetOption<Name extends keyof Opts>(name: Name): Opts[Name] {\n\t\treturn this.options[name]\n\t}\n\n\tgetArgument<Name extends keyof Args>(name: Name): Args[Name] {\n\t\treturn this.args[name]\n\t}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,MAA0E;AAAA,EACtF,YAA6B,MAA6B,SAAe;AAA5C,SAAA,OAAA;AAA6B,SAAA,UAAA;AAAA,EAAA;AAAA,EAE1D,UAAmC,MAAwB;AACnD,WAAA,KAAK,QAAQ,IAAI;AAAA,EAAA;AAAA,EAGzB,YAAqC,MAAwB;AACrD,WAAA,KAAK,KAAK,IAAI;AAAA,EAAA;AAEvB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../../../../packages/cli-common/src/application/Input.ts"],"sourcesContent":["export type Arguments = Record<string, string | string[] | undefined>\nexport type Options = Record<string, string | boolean | string[] | undefined>\n\nexport class Input<Args extends Arguments = Arguments, Opts extends Options = Options> {\n\tconstructor(private readonly args: Args, private readonly options: Opts) {}\n\n\tgetOption<Name extends keyof Opts>(name: Name): Opts[Name] {\n\t\treturn this.options[name]\n\t}\n\n\tgetArgument<Name extends keyof Args>(name: Name): Args[Name] {\n\t\treturn this.args[name]\n\t}\n}\n"],"names":[],"mappings":"AAGO,MAAM,MAA0E;AAAA,EACtF,YAA6B,MAA6B,SAAe;AAA5C,SAAA,OAAA;AAA6B,SAAA,UAAA;AAAA,EAAgB;AAAA,EAE1E,UAAmC,MAAwB;AACnD,WAAA,KAAK,QAAQ,IAAI;AAAA,EACzB;AAAA,EAEA,YAAqC,MAAwB;AACrD,WAAA,KAAK,KAAK,IAAI;AAAA,EACtB;AACD;"}
1
+ {"version":3,"file":"Input.js","sources":["../../../../../packages/cli-common/src/application/Input.ts"],"sourcesContent":["export type Arguments = Record<string, string | string[] | undefined>\nexport type Options = Record<string, string | boolean | string[] | undefined>\n\nexport class Input<Args extends Arguments = Arguments, Opts extends Options = Options> {\n\tconstructor(private readonly args: Args, private readonly options: Opts) {}\n\n\tgetOption<Name extends keyof Opts>(name: Name): Opts[Name] {\n\t\treturn this.options[name]\n\t}\n\n\tgetArgument<Name extends keyof Args>(name: Name): Args[Name] {\n\t\treturn this.args[name]\n\t}\n}\n"],"names":[],"mappings":"AAGO,MAAM,MAA0E;AAAA,EACtF,YAA6B,MAA6B,SAAe;AAA5C,SAAA,OAAA;AAA6B,SAAA,UAAA;AAAA,EAAA;AAAA,EAE1D,UAAmC,MAAwB;AACnD,WAAA,KAAK,QAAQ,IAAI;AAAA,EAAA;AAAA,EAGzB,YAAqC,MAAwB;AACrD,WAAA,KAAK,KAAK,IAAI;AAAA,EAAA;AAEvB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputParser.cjs","sources":["../../../../../packages/cli-common/src/application/InputParser.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { Arguments, Input, Options } from './Input'\n\nexport class InputParser {\n\tconstructor(private _arguments: Argument[], private options: Option[]) {}\n\n\tparse<Args extends Arguments, Opts extends Options>(args: string[]): Input<Args, Opts> {\n\t\targs = args.reduce<string[]>((acc, arg) => [...acc, ...(arg.startsWith('-') ? arg.split('=', 2) : [arg])], [])\n\t\tlet options: Options = {}\n\t\tlet argumentValues: Arguments = {}\n\n\t\tlet i = 0\n\t\tlet argumentNumber = 0\n\t\tconst variadicArg = this._arguments[this._arguments.length - 1]?.variadic\n\t\t\t? this._arguments[this._arguments.length - 1]\n\t\t\t: undefined\n\t\tfor (; i < args.length; i++) {\n\t\t\tconst value = this.tryParseValue(args[i])\n\t\t\tif (value === undefined) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tconst argument = this._arguments[argumentNumber] || variadicArg\n\t\t\tif (!argument) {\n\t\t\t\tthrow new InvalidInputError(`Unresolved argument for value \"${value}\"`)\n\t\t\t}\n\t\t\tif (argument.validator && !argument.validator(value)) {\n\t\t\t\tthrow new InvalidInputError(`Invalid value \"${value}\" for argument ${argument.name}`)\n\t\t\t}\n\t\t\tif (argument.variadic) {\n\t\t\t\targumentValues[argument.name] = argumentValues[argument.name] || []\n\t\t\t\t;(argumentValues[argument.name] as Array<string>).push(value)\n\t\t\t} else {\n\t\t\t\targumentValues[argument.name] = value\n\t\t\t}\n\t\t\targumentNumber++\n\t\t}\n\t\tfor (; argumentNumber < this._arguments.length; argumentNumber++) {\n\t\t\tif (!this._arguments[argumentNumber].optional) {\n\t\t\t\tthrow new InvalidInputError(`Argument ${this._arguments[argumentNumber].name} is required`)\n\t\t\t} else {\n\t\t\t\targumentValues[this._arguments[argumentNumber].name] = undefined\n\t\t\t}\n\t\t}\n\n\t\tfor (; i < args.length; i++) {\n\t\t\tlet option: Option | undefined\n\t\t\tif (args[i].startsWith('--')) {\n\t\t\t\toption = this.options.find(it => it.name === args[i].slice(2))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t} else if (args[i].startsWith('-')) {\n\t\t\t\toption = this.options.find(it => it.shortcut === args[i].slice(1))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!option) {\n\t\t\t\tthrow new InvalidInputError(`Unexpected value \"${args[i]}\"`)\n\t\t\t}\n\t\t\tif (option) {\n\t\t\t\tif (option.deprecated) {\n\t\t\t\t\tconsole.warn(`Option ${option.name} is deprecated.`)\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_NONE) {\n\t\t\t\t\toptions[option.name] = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst value = this.tryParseValue(args[i + 1])\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\ti++\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = options[option.name] || []\n\t\t\t\t\t;(options[option.name] as Array<string>).push(value)\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_REQUIRED) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = value\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_OPTIONAL) {\n\t\t\t\t\toptions[option.name] = value === undefined ? true : value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (let option of this.options) {\n\t\t\tif (options[option.name] !== undefined) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (option.required) {\n\t\t\t\tthrow new InvalidInputError(`Option --${option.name} is required`)\n\t\t\t} else {\n\t\t\t\toptions[option.name] = undefined\n\t\t\t}\n\t\t}\n\n\t\treturn new Input<Args, Opts>(argumentValues as Args, options as Opts)\n\t}\n\n\tprivate tryParseValue(arg: string | undefined): string | undefined {\n\t\tif (arg === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('-')) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('\\\\-')) {\n\t\t\treturn '-' + arg.slice(1)\n\t\t}\n\t\treturn arg\n\t}\n}\n\nexport class InvalidInputError extends Error {}\n"],"names":["OptionMode","Input"],"mappings":"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"}
1
+ {"version":3,"file":"InputParser.cjs","sources":["../../../../../packages/cli-common/src/application/InputParser.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { Arguments, Input, Options } from './Input'\n\nexport class InputParser {\n\tconstructor(private _arguments: Argument[], private options: Option[]) {}\n\n\tparse<Args extends Arguments, Opts extends Options>(args: string[]): Input<Args, Opts> {\n\t\targs = args.reduce<string[]>((acc, arg) => [...acc, ...(arg.startsWith('-') ? arg.split('=', 2) : [arg])], [])\n\t\tlet options: Options = {}\n\t\tlet argumentValues: Arguments = {}\n\n\t\tlet i = 0\n\t\tlet argumentNumber = 0\n\t\tconst variadicArg = this._arguments[this._arguments.length - 1]?.variadic\n\t\t\t? this._arguments[this._arguments.length - 1]\n\t\t\t: undefined\n\t\tfor (; i < args.length; i++) {\n\t\t\tconst value = this.tryParseValue(args[i])\n\t\t\tif (value === undefined) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tconst argument = this._arguments[argumentNumber] || variadicArg\n\t\t\tif (!argument) {\n\t\t\t\tthrow new InvalidInputError(`Unresolved argument for value \"${value}\"`)\n\t\t\t}\n\t\t\tif (argument.validator && !argument.validator(value)) {\n\t\t\t\tthrow new InvalidInputError(`Invalid value \"${value}\" for argument ${argument.name}`)\n\t\t\t}\n\t\t\tif (argument.variadic) {\n\t\t\t\targumentValues[argument.name] = argumentValues[argument.name] || []\n\t\t\t\t;(argumentValues[argument.name] as Array<string>).push(value)\n\t\t\t} else {\n\t\t\t\targumentValues[argument.name] = value\n\t\t\t}\n\t\t\targumentNumber++\n\t\t}\n\t\tfor (; argumentNumber < this._arguments.length; argumentNumber++) {\n\t\t\tif (!this._arguments[argumentNumber].optional) {\n\t\t\t\tthrow new InvalidInputError(`Argument ${this._arguments[argumentNumber].name} is required`)\n\t\t\t} else {\n\t\t\t\targumentValues[this._arguments[argumentNumber].name] = undefined\n\t\t\t}\n\t\t}\n\n\t\tfor (; i < args.length; i++) {\n\t\t\tlet option: Option | undefined\n\t\t\tif (args[i].startsWith('--')) {\n\t\t\t\toption = this.options.find(it => it.name === args[i].slice(2))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t} else if (args[i].startsWith('-')) {\n\t\t\t\toption = this.options.find(it => it.shortcut === args[i].slice(1))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!option) {\n\t\t\t\tthrow new InvalidInputError(`Unexpected value \"${args[i]}\"`)\n\t\t\t}\n\t\t\tif (option) {\n\t\t\t\tif (option.deprecated) {\n\t\t\t\t\tconsole.warn(`Option ${option.name} is deprecated.`)\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_NONE) {\n\t\t\t\t\toptions[option.name] = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst value = this.tryParseValue(args[i + 1])\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\ti++\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = options[option.name] || []\n\t\t\t\t\t;(options[option.name] as Array<string>).push(value)\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_REQUIRED) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = value\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_OPTIONAL) {\n\t\t\t\t\toptions[option.name] = value === undefined ? true : value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (let option of this.options) {\n\t\t\tif (options[option.name] !== undefined) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (option.required) {\n\t\t\t\tthrow new InvalidInputError(`Option --${option.name} is required`)\n\t\t\t} else {\n\t\t\t\toptions[option.name] = undefined\n\t\t\t}\n\t\t}\n\n\t\treturn new Input<Args, Opts>(argumentValues as Args, options as Opts)\n\t}\n\n\tprivate tryParseValue(arg: string | undefined): string | undefined {\n\t\tif (arg === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('-')) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('\\\\-')) {\n\t\t\treturn '-' + arg.slice(1)\n\t\t}\n\t\treturn arg\n\t}\n}\n\nexport class InvalidInputError extends Error {}\n"],"names":["OptionMode","Input"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputParser.js","sources":["../../../../../packages/cli-common/src/application/InputParser.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { Arguments, Input, Options } from './Input'\n\nexport class InputParser {\n\tconstructor(private _arguments: Argument[], private options: Option[]) {}\n\n\tparse<Args extends Arguments, Opts extends Options>(args: string[]): Input<Args, Opts> {\n\t\targs = args.reduce<string[]>((acc, arg) => [...acc, ...(arg.startsWith('-') ? arg.split('=', 2) : [arg])], [])\n\t\tlet options: Options = {}\n\t\tlet argumentValues: Arguments = {}\n\n\t\tlet i = 0\n\t\tlet argumentNumber = 0\n\t\tconst variadicArg = this._arguments[this._arguments.length - 1]?.variadic\n\t\t\t? this._arguments[this._arguments.length - 1]\n\t\t\t: undefined\n\t\tfor (; i < args.length; i++) {\n\t\t\tconst value = this.tryParseValue(args[i])\n\t\t\tif (value === undefined) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tconst argument = this._arguments[argumentNumber] || variadicArg\n\t\t\tif (!argument) {\n\t\t\t\tthrow new InvalidInputError(`Unresolved argument for value \"${value}\"`)\n\t\t\t}\n\t\t\tif (argument.validator && !argument.validator(value)) {\n\t\t\t\tthrow new InvalidInputError(`Invalid value \"${value}\" for argument ${argument.name}`)\n\t\t\t}\n\t\t\tif (argument.variadic) {\n\t\t\t\targumentValues[argument.name] = argumentValues[argument.name] || []\n\t\t\t\t;(argumentValues[argument.name] as Array<string>).push(value)\n\t\t\t} else {\n\t\t\t\targumentValues[argument.name] = value\n\t\t\t}\n\t\t\targumentNumber++\n\t\t}\n\t\tfor (; argumentNumber < this._arguments.length; argumentNumber++) {\n\t\t\tif (!this._arguments[argumentNumber].optional) {\n\t\t\t\tthrow new InvalidInputError(`Argument ${this._arguments[argumentNumber].name} is required`)\n\t\t\t} else {\n\t\t\t\targumentValues[this._arguments[argumentNumber].name] = undefined\n\t\t\t}\n\t\t}\n\n\t\tfor (; i < args.length; i++) {\n\t\t\tlet option: Option | undefined\n\t\t\tif (args[i].startsWith('--')) {\n\t\t\t\toption = this.options.find(it => it.name === args[i].slice(2))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t} else if (args[i].startsWith('-')) {\n\t\t\t\toption = this.options.find(it => it.shortcut === args[i].slice(1))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!option) {\n\t\t\t\tthrow new InvalidInputError(`Unexpected value \"${args[i]}\"`)\n\t\t\t}\n\t\t\tif (option) {\n\t\t\t\tif (option.deprecated) {\n\t\t\t\t\tconsole.warn(`Option ${option.name} is deprecated.`)\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_NONE) {\n\t\t\t\t\toptions[option.name] = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst value = this.tryParseValue(args[i + 1])\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\ti++\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = options[option.name] || []\n\t\t\t\t\t;(options[option.name] as Array<string>).push(value)\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_REQUIRED) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = value\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_OPTIONAL) {\n\t\t\t\t\toptions[option.name] = value === undefined ? true : value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (let option of this.options) {\n\t\t\tif (options[option.name] !== undefined) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (option.required) {\n\t\t\t\tthrow new InvalidInputError(`Option --${option.name} is required`)\n\t\t\t} else {\n\t\t\t\toptions[option.name] = undefined\n\t\t\t}\n\t\t}\n\n\t\treturn new Input<Args, Opts>(argumentValues as Args, options as Opts)\n\t}\n\n\tprivate tryParseValue(arg: string | undefined): string | undefined {\n\t\tif (arg === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('-')) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('\\\\-')) {\n\t\t\treturn '-' + arg.slice(1)\n\t\t}\n\t\treturn arg\n\t}\n}\n\nexport class InvalidInputError extends Error {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InputParser.js","sources":["../../../../../packages/cli-common/src/application/InputParser.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { Arguments, Input, Options } from './Input'\n\nexport class InputParser {\n\tconstructor(private _arguments: Argument[], private options: Option[]) {}\n\n\tparse<Args extends Arguments, Opts extends Options>(args: string[]): Input<Args, Opts> {\n\t\targs = args.reduce<string[]>((acc, arg) => [...acc, ...(arg.startsWith('-') ? arg.split('=', 2) : [arg])], [])\n\t\tlet options: Options = {}\n\t\tlet argumentValues: Arguments = {}\n\n\t\tlet i = 0\n\t\tlet argumentNumber = 0\n\t\tconst variadicArg = this._arguments[this._arguments.length - 1]?.variadic\n\t\t\t? this._arguments[this._arguments.length - 1]\n\t\t\t: undefined\n\t\tfor (; i < args.length; i++) {\n\t\t\tconst value = this.tryParseValue(args[i])\n\t\t\tif (value === undefined) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tconst argument = this._arguments[argumentNumber] || variadicArg\n\t\t\tif (!argument) {\n\t\t\t\tthrow new InvalidInputError(`Unresolved argument for value \"${value}\"`)\n\t\t\t}\n\t\t\tif (argument.validator && !argument.validator(value)) {\n\t\t\t\tthrow new InvalidInputError(`Invalid value \"${value}\" for argument ${argument.name}`)\n\t\t\t}\n\t\t\tif (argument.variadic) {\n\t\t\t\targumentValues[argument.name] = argumentValues[argument.name] || []\n\t\t\t\t;(argumentValues[argument.name] as Array<string>).push(value)\n\t\t\t} else {\n\t\t\t\targumentValues[argument.name] = value\n\t\t\t}\n\t\t\targumentNumber++\n\t\t}\n\t\tfor (; argumentNumber < this._arguments.length; argumentNumber++) {\n\t\t\tif (!this._arguments[argumentNumber].optional) {\n\t\t\t\tthrow new InvalidInputError(`Argument ${this._arguments[argumentNumber].name} is required`)\n\t\t\t} else {\n\t\t\t\targumentValues[this._arguments[argumentNumber].name] = undefined\n\t\t\t}\n\t\t}\n\n\t\tfor (; i < args.length; i++) {\n\t\t\tlet option: Option | undefined\n\t\t\tif (args[i].startsWith('--')) {\n\t\t\t\toption = this.options.find(it => it.name === args[i].slice(2))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t} else if (args[i].startsWith('-')) {\n\t\t\t\toption = this.options.find(it => it.shortcut === args[i].slice(1))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!option) {\n\t\t\t\tthrow new InvalidInputError(`Unexpected value \"${args[i]}\"`)\n\t\t\t}\n\t\t\tif (option) {\n\t\t\t\tif (option.deprecated) {\n\t\t\t\t\tconsole.warn(`Option ${option.name} is deprecated.`)\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_NONE) {\n\t\t\t\t\toptions[option.name] = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst value = this.tryParseValue(args[i + 1])\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\ti++\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = options[option.name] || []\n\t\t\t\t\t;(options[option.name] as Array<string>).push(value)\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_REQUIRED) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = value\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_OPTIONAL) {\n\t\t\t\t\toptions[option.name] = value === undefined ? true : value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (let option of this.options) {\n\t\t\tif (options[option.name] !== undefined) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (option.required) {\n\t\t\t\tthrow new InvalidInputError(`Option --${option.name} is required`)\n\t\t\t} else {\n\t\t\t\toptions[option.name] = undefined\n\t\t\t}\n\t\t}\n\n\t\treturn new Input<Args, Opts>(argumentValues as Args, options as Opts)\n\t}\n\n\tprivate tryParseValue(arg: string | undefined): string | undefined {\n\t\tif (arg === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('-')) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('\\\\-')) {\n\t\t\treturn '-' + arg.slice(1)\n\t\t}\n\t\treturn arg\n\t}\n}\n\nexport class InvalidInputError extends Error {}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Option.cjs","sources":["../../../../../packages/cli-common/src/application/Option.ts"],"sourcesContent":["export type Option = {\n\tname: string\n\tdescription?: string\n\tshortcut?: string\n\trequired: boolean\n\tdeprecated: boolean\n\tmode: OptionMode\n}\n\nexport enum OptionMode {\n\tVALUE_NONE = 'value_none',\n\tVALUE_OPTIONAL = 'value_optional',\n\tVALUE_REQUIRED = 'value_required',\n\tVALUE_ARRAY = 'value_array',\n}\n\nexport class OptionConfiguration {\n\tconstructor(private readonly option: Option) {}\n\n\tpublic shortcut(shortcut: string) {\n\t\tthis.option.shortcut = shortcut\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.option.description = description\n\t\treturn this\n\t}\n\n\tpublic required(required: boolean = true) {\n\t\tthis.option.required = required\n\t\treturn this\n\t}\n\n\tpublic valueRequired() {\n\t\tthis.option.mode = OptionMode.VALUE_REQUIRED\n\t\treturn this\n\t}\n\n\tpublic valueNone() {\n\t\tthis.option.mode = OptionMode.VALUE_NONE\n\t\treturn this\n\t}\n\n\tpublic valueOptional() {\n\t\tthis.option.mode = OptionMode.VALUE_OPTIONAL\n\t\treturn this\n\t}\n\n\tpublic valueArray() {\n\t\tthis.option.mode = OptionMode.VALUE_ARRAY\n\t\treturn this\n\t}\n\n\tpublic deprecated() {\n\t\tthis.option.deprecated = true\n\t\treturn this\n\t}\n}\n"],"names":["OptionMode"],"mappings":";;AASY,IAAA,+BAAAA,gBAAL;AACNA,cAAA,YAAa,IAAA;AACbA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,aAAc,IAAA;AAJHA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AAOL,MAAM,oBAAoB;AAAA,EAChC,YAA6B,QAAgB;AAAhB,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEvC,SAAS,UAAkB;AACjC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EACR;AAAA,EAEO,YAAY,aAAqB;AACvC,SAAK,OAAO,cAAc;AACnB,WAAA;AAAA,EACR;AAAA,EAEO,SAAS,WAAoB,MAAM;AACzC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EACR;AAAA,EAEO,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,YAAY;AAClB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,aAAa;AACnB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,aAAa;AACnB,SAAK,OAAO,aAAa;AAClB,WAAA;AAAA,EACR;AACD;;;"}
1
+ {"version":3,"file":"Option.cjs","sources":["../../../../../packages/cli-common/src/application/Option.ts"],"sourcesContent":["export type Option = {\n\tname: string\n\tdescription?: string\n\tshortcut?: string\n\trequired: boolean\n\tdeprecated: boolean\n\tmode: OptionMode\n}\n\nexport enum OptionMode {\n\tVALUE_NONE = 'value_none',\n\tVALUE_OPTIONAL = 'value_optional',\n\tVALUE_REQUIRED = 'value_required',\n\tVALUE_ARRAY = 'value_array',\n}\n\nexport class OptionConfiguration {\n\tconstructor(private readonly option: Option) {}\n\n\tpublic shortcut(shortcut: string) {\n\t\tthis.option.shortcut = shortcut\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.option.description = description\n\t\treturn this\n\t}\n\n\tpublic required(required: boolean = true) {\n\t\tthis.option.required = required\n\t\treturn this\n\t}\n\n\tpublic valueRequired() {\n\t\tthis.option.mode = OptionMode.VALUE_REQUIRED\n\t\treturn this\n\t}\n\n\tpublic valueNone() {\n\t\tthis.option.mode = OptionMode.VALUE_NONE\n\t\treturn this\n\t}\n\n\tpublic valueOptional() {\n\t\tthis.option.mode = OptionMode.VALUE_OPTIONAL\n\t\treturn this\n\t}\n\n\tpublic valueArray() {\n\t\tthis.option.mode = OptionMode.VALUE_ARRAY\n\t\treturn this\n\t}\n\n\tpublic deprecated() {\n\t\tthis.option.deprecated = true\n\t\treturn this\n\t}\n}\n"],"names":["OptionMode"],"mappings":";;AASY,IAAA,+BAAAA,gBAAL;AACNA,cAAA,YAAa,IAAA;AACbA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,aAAc,IAAA;AAJHA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AAOL,MAAM,oBAAoB;AAAA,EAChC,YAA6B,QAAgB;AAAhB,SAAA,SAAA;AAAA,EAAA;AAAA,EAEtB,SAAS,UAAkB;AACjC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EAAA;AAAA,EAGD,YAAY,aAAqB;AACvC,SAAK,OAAO,cAAc;AACnB,WAAA;AAAA,EAAA;AAAA,EAGD,SAAS,WAAoB,MAAM;AACzC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EAAA;AAAA,EAGD,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,YAAY;AAClB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,aAAa;AACnB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,aAAa;AACnB,SAAK,OAAO,aAAa;AAClB,WAAA;AAAA,EAAA;AAET;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","sources":["../../../../../packages/cli-common/src/application/Option.ts"],"sourcesContent":["export type Option = {\n\tname: string\n\tdescription?: string\n\tshortcut?: string\n\trequired: boolean\n\tdeprecated: boolean\n\tmode: OptionMode\n}\n\nexport enum OptionMode {\n\tVALUE_NONE = 'value_none',\n\tVALUE_OPTIONAL = 'value_optional',\n\tVALUE_REQUIRED = 'value_required',\n\tVALUE_ARRAY = 'value_array',\n}\n\nexport class OptionConfiguration {\n\tconstructor(private readonly option: Option) {}\n\n\tpublic shortcut(shortcut: string) {\n\t\tthis.option.shortcut = shortcut\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.option.description = description\n\t\treturn this\n\t}\n\n\tpublic required(required: boolean = true) {\n\t\tthis.option.required = required\n\t\treturn this\n\t}\n\n\tpublic valueRequired() {\n\t\tthis.option.mode = OptionMode.VALUE_REQUIRED\n\t\treturn this\n\t}\n\n\tpublic valueNone() {\n\t\tthis.option.mode = OptionMode.VALUE_NONE\n\t\treturn this\n\t}\n\n\tpublic valueOptional() {\n\t\tthis.option.mode = OptionMode.VALUE_OPTIONAL\n\t\treturn this\n\t}\n\n\tpublic valueArray() {\n\t\tthis.option.mode = OptionMode.VALUE_ARRAY\n\t\treturn this\n\t}\n\n\tpublic deprecated() {\n\t\tthis.option.deprecated = true\n\t\treturn this\n\t}\n}\n"],"names":["OptionMode"],"mappings":"AASY,IAAA,+BAAAA,gBAAL;AACNA,cAAA,YAAa,IAAA;AACbA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,aAAc,IAAA;AAJHA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AAOL,MAAM,oBAAoB;AAAA,EAChC,YAA6B,QAAgB;AAAhB,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEvC,SAAS,UAAkB;AACjC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EACR;AAAA,EAEO,YAAY,aAAqB;AACvC,SAAK,OAAO,cAAc;AACnB,WAAA;AAAA,EACR;AAAA,EAEO,SAAS,WAAoB,MAAM;AACzC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EACR;AAAA,EAEO,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,YAAY;AAClB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,aAAa;AACnB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,aAAa;AACnB,SAAK,OAAO,aAAa;AAClB,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"Option.js","sources":["../../../../../packages/cli-common/src/application/Option.ts"],"sourcesContent":["export type Option = {\n\tname: string\n\tdescription?: string\n\tshortcut?: string\n\trequired: boolean\n\tdeprecated: boolean\n\tmode: OptionMode\n}\n\nexport enum OptionMode {\n\tVALUE_NONE = 'value_none',\n\tVALUE_OPTIONAL = 'value_optional',\n\tVALUE_REQUIRED = 'value_required',\n\tVALUE_ARRAY = 'value_array',\n}\n\nexport class OptionConfiguration {\n\tconstructor(private readonly option: Option) {}\n\n\tpublic shortcut(shortcut: string) {\n\t\tthis.option.shortcut = shortcut\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.option.description = description\n\t\treturn this\n\t}\n\n\tpublic required(required: boolean = true) {\n\t\tthis.option.required = required\n\t\treturn this\n\t}\n\n\tpublic valueRequired() {\n\t\tthis.option.mode = OptionMode.VALUE_REQUIRED\n\t\treturn this\n\t}\n\n\tpublic valueNone() {\n\t\tthis.option.mode = OptionMode.VALUE_NONE\n\t\treturn this\n\t}\n\n\tpublic valueOptional() {\n\t\tthis.option.mode = OptionMode.VALUE_OPTIONAL\n\t\treturn this\n\t}\n\n\tpublic valueArray() {\n\t\tthis.option.mode = OptionMode.VALUE_ARRAY\n\t\treturn this\n\t}\n\n\tpublic deprecated() {\n\t\tthis.option.deprecated = true\n\t\treturn this\n\t}\n}\n"],"names":["OptionMode"],"mappings":"AASY,IAAA,+BAAAA,gBAAL;AACNA,cAAA,YAAa,IAAA;AACbA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,aAAc,IAAA;AAJHA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AAOL,MAAM,oBAAoB;AAAA,EAChC,YAA6B,QAAgB;AAAhB,SAAA,SAAA;AAAA,EAAA;AAAA,EAEtB,SAAS,UAAkB;AACjC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EAAA;AAAA,EAGD,YAAY,aAAqB;AACvC,SAAK,OAAO,cAAc;AACnB,WAAA;AAAA,EAAA;AAAA,EAGD,SAAS,WAAoB,MAAM;AACzC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EAAA;AAAA,EAGD,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,YAAY;AAClB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,aAAa;AACnB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,aAAa;AACnB,SAAK,OAAO,aAAa;AAClB,WAAA;AAAA,EAAA;AAET;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UsageFormatter.cjs","sources":["../../../../../packages/cli-common/src/application/UsageFormatter.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { assertNever } from './assertNever'\n\nexport type UsageFormat = 'line' | 'short' | 'multiline'\nexport type UsageFormatOptions = { format?: UsageFormat; indent?: string }\n\nexport class UsageFormatter {\n\tpublic static format(args: Argument[], options: Option[], { format, indent }: UsageFormatOptions): string {\n\t\tlet parts = []\n\t\tformat ??= 'short'\n\t\tindent ??= ' '\n\t\tconst isShort = format === 'short'\n\t\tfor (let arg of args) {\n\t\t\tconst name = arg.name\n\t\t\tconst argDescription = !isShort && arg.description ? ` (${arg.description})` : ''\n\t\t\tif (arg.variadic) {\n\t\t\t\tparts.push(`[...${name}${argDescription}]`)\n\t\t\t} else if (arg.optional) {\n\t\t\t\tparts.push(`[${name}${argDescription}]`)\n\t\t\t} else {\n\t\t\t\tparts.push(`<${name}${argDescription}>`)\n\t\t\t}\n\t\t}\n\t\tfor (let opt of options) {\n\t\t\tif (opt.deprecated) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : '')\n\t\t\tlet valueDescription\n\t\t\tswitch (opt.mode) {\n\t\t\t\tcase OptionMode.VALUE_ARRAY:\n\t\t\t\tcase OptionMode.VALUE_REQUIRED:\n\t\t\t\t\tvalueDescription = ' <value>'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_OPTIONAL:\n\t\t\t\t\tvalueDescription = ' [value]'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_NONE:\n\t\t\t\t\tvalueDescription = ''\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(opt.mode)\n\t\t\t}\n\t\t\tlet optionDescription = `${name}${valueDescription}`\n\t\t\tif (opt.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\toptionDescription = `${optionDescription} [... ${optionDescription}]`\n\t\t\t}\n\t\t\tif (!isShort && opt.description) {\n\t\t\t\toptionDescription += ` (${opt.description})`\n\t\t\t}\n\t\t\tif (!opt.required) {\n\t\t\t\toptionDescription = `[${optionDescription}]`\n\t\t\t}\n\t\t\tparts.push(optionDescription)\n\t\t}\n\t\tif (format === 'multiline') {\n\t\t\treturn parts.map(it => `${indent}${it}`).join('\\n')\n\t\t}\n\t\treturn parts.join(' ')\n\t}\n}\n"],"names":["OptionMode","assertNever"],"mappings":";;;;AAOO,MAAM,eAAe;AAAA,EAC3B,OAAc,OAAO,MAAkB,SAAmB,EAAE,QAAQ,UAAsC;AACzG,QAAI,QAAQ,CAAA;AACD,eAAA,SAAA;AACA,eAAA,SAAA;AACX,UAAM,UAAU,WAAW;AAC3B,aAAS,OAAO,MAAM;AACrB,YAAM,OAAO,IAAI;AACX,YAAA,iBAAiB,CAAC,WAAW,IAAI,cAAc,KAAK,IAAI,WAAW,MAAM;AAC/E,UAAI,IAAI,UAAU;AACjB,cAAM,KAAK,OAAO,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,WAChC,IAAI,UAAU;AACxB,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,OACjC;AACN,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MACxC;AAAA,IACD;AACA,aAAS,OAAO,SAAS;AACxB,UAAI,IAAI,YAAY;AACnB;AAAA,MACD;AACA,YAAM,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,QAAQ,KAAK;AAC7E,UAAA;AACJ,cAAQ,IAAI,MAAM;AAAA,QACjB,KAAKA,OAAAA,WAAW;AAAA,QAChB,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD;AACCC,kCAAY,IAAI,IAAI;AAAA,MACtB;AACA,UAAI,oBAAoB,GAAG,IAAI,GAAG,gBAAgB;AAC9C,UAAA,IAAI,SAASD,OAAA,WAAW,aAAa;AACpB,4BAAA,GAAG,iBAAiB,SAAS,iBAAiB;AAAA,MACnE;AACI,UAAA,CAAC,WAAW,IAAI,aAAa;AACX,6BAAA,KAAK,IAAI,WAAW;AAAA,MAC1C;AACI,UAAA,CAAC,IAAI,UAAU;AAClB,4BAAoB,IAAI,iBAAiB;AAAA,MAC1C;AACA,YAAM,KAAK,iBAAiB;AAAA,IAC7B;AACA,QAAI,WAAW,aAAa;AACpB,aAAA,MAAM,IAAI,CAAA,OAAM,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,IAAI;AAAA,IACnD;AACO,WAAA,MAAM,KAAK,GAAG;AAAA,EACtB;AACD;;"}
1
+ {"version":3,"file":"UsageFormatter.cjs","sources":["../../../../../packages/cli-common/src/application/UsageFormatter.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { assertNever } from './assertNever'\n\nexport type UsageFormat = 'line' | 'short' | 'multiline'\nexport type UsageFormatOptions = { format?: UsageFormat; indent?: string }\n\nexport class UsageFormatter {\n\tpublic static format(args: Argument[], options: Option[], { format, indent }: UsageFormatOptions): string {\n\t\tlet parts = []\n\t\tformat ??= 'short'\n\t\tindent ??= ' '\n\t\tconst isShort = format === 'short'\n\t\tfor (let arg of args) {\n\t\t\tconst name = arg.name\n\t\t\tconst argDescription = !isShort && arg.description ? ` (${arg.description})` : ''\n\t\t\tif (arg.variadic) {\n\t\t\t\tparts.push(`[...${name}${argDescription}]`)\n\t\t\t} else if (arg.optional) {\n\t\t\t\tparts.push(`[${name}${argDescription}]`)\n\t\t\t} else {\n\t\t\t\tparts.push(`<${name}${argDescription}>`)\n\t\t\t}\n\t\t}\n\t\tfor (let opt of options) {\n\t\t\tif (opt.deprecated) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : '')\n\t\t\tlet valueDescription\n\t\t\tswitch (opt.mode) {\n\t\t\t\tcase OptionMode.VALUE_ARRAY:\n\t\t\t\tcase OptionMode.VALUE_REQUIRED:\n\t\t\t\t\tvalueDescription = ' <value>'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_OPTIONAL:\n\t\t\t\t\tvalueDescription = ' [value]'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_NONE:\n\t\t\t\t\tvalueDescription = ''\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(opt.mode)\n\t\t\t}\n\t\t\tlet optionDescription = `${name}${valueDescription}`\n\t\t\tif (opt.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\toptionDescription = `${optionDescription} [... ${optionDescription}]`\n\t\t\t}\n\t\t\tif (!isShort && opt.description) {\n\t\t\t\toptionDescription += ` (${opt.description})`\n\t\t\t}\n\t\t\tif (!opt.required) {\n\t\t\t\toptionDescription = `[${optionDescription}]`\n\t\t\t}\n\t\t\tparts.push(optionDescription)\n\t\t}\n\t\tif (format === 'multiline') {\n\t\t\treturn parts.map(it => `${indent}${it}`).join('\\n')\n\t\t}\n\t\treturn parts.join(' ')\n\t}\n}\n"],"names":["OptionMode","assertNever"],"mappings":";;;;AAOO,MAAM,eAAe;AAAA,EAC3B,OAAc,OAAO,MAAkB,SAAmB,EAAE,QAAQ,UAAsC;AACzG,QAAI,QAAQ,CAAC;AACF,eAAA,SAAA;AACA,eAAA,SAAA;AACX,UAAM,UAAU,WAAW;AAC3B,aAAS,OAAO,MAAM;AACrB,YAAM,OAAO,IAAI;AACX,YAAA,iBAAiB,CAAC,WAAW,IAAI,cAAc,KAAK,IAAI,WAAW,MAAM;AAC/E,UAAI,IAAI,UAAU;AACjB,cAAM,KAAK,OAAO,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,WAChC,IAAI,UAAU;AACxB,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,OACjC;AACN,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA;AAAA,IACxC;AAED,aAAS,OAAO,SAAS;AACxB,UAAI,IAAI,YAAY;AACnB;AAAA,MAAA;AAED,YAAM,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,QAAQ,KAAK;AAC7E,UAAA;AACJ,cAAQ,IAAI,MAAM;AAAA,QACjB,KAAKA,OAAW,WAAA;AAAA,QAChB,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD;AACCC,sBAAA,YAAY,IAAI,IAAI;AAAA,MAAA;AAEtB,UAAI,oBAAoB,GAAG,IAAI,GAAG,gBAAgB;AAC9C,UAAA,IAAI,SAASD,OAAA,WAAW,aAAa;AACpB,4BAAA,GAAG,iBAAiB,SAAS,iBAAiB;AAAA,MAAA;AAE/D,UAAA,CAAC,WAAW,IAAI,aAAa;AACX,6BAAA,KAAK,IAAI,WAAW;AAAA,MAAA;AAEtC,UAAA,CAAC,IAAI,UAAU;AAClB,4BAAoB,IAAI,iBAAiB;AAAA,MAAA;AAE1C,YAAM,KAAK,iBAAiB;AAAA,IAAA;AAE7B,QAAI,WAAW,aAAa;AACpB,aAAA,MAAM,IAAI,CAAA,OAAM,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,IAAI;AAAA,IAAA;AAE5C,WAAA,MAAM,KAAK,GAAG;AAAA,EAAA;AAEvB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UsageFormatter.js","sources":["../../../../../packages/cli-common/src/application/UsageFormatter.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { assertNever } from './assertNever'\n\nexport type UsageFormat = 'line' | 'short' | 'multiline'\nexport type UsageFormatOptions = { format?: UsageFormat; indent?: string }\n\nexport class UsageFormatter {\n\tpublic static format(args: Argument[], options: Option[], { format, indent }: UsageFormatOptions): string {\n\t\tlet parts = []\n\t\tformat ??= 'short'\n\t\tindent ??= ' '\n\t\tconst isShort = format === 'short'\n\t\tfor (let arg of args) {\n\t\t\tconst name = arg.name\n\t\t\tconst argDescription = !isShort && arg.description ? ` (${arg.description})` : ''\n\t\t\tif (arg.variadic) {\n\t\t\t\tparts.push(`[...${name}${argDescription}]`)\n\t\t\t} else if (arg.optional) {\n\t\t\t\tparts.push(`[${name}${argDescription}]`)\n\t\t\t} else {\n\t\t\t\tparts.push(`<${name}${argDescription}>`)\n\t\t\t}\n\t\t}\n\t\tfor (let opt of options) {\n\t\t\tif (opt.deprecated) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : '')\n\t\t\tlet valueDescription\n\t\t\tswitch (opt.mode) {\n\t\t\t\tcase OptionMode.VALUE_ARRAY:\n\t\t\t\tcase OptionMode.VALUE_REQUIRED:\n\t\t\t\t\tvalueDescription = ' <value>'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_OPTIONAL:\n\t\t\t\t\tvalueDescription = ' [value]'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_NONE:\n\t\t\t\t\tvalueDescription = ''\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(opt.mode)\n\t\t\t}\n\t\t\tlet optionDescription = `${name}${valueDescription}`\n\t\t\tif (opt.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\toptionDescription = `${optionDescription} [... ${optionDescription}]`\n\t\t\t}\n\t\t\tif (!isShort && opt.description) {\n\t\t\t\toptionDescription += ` (${opt.description})`\n\t\t\t}\n\t\t\tif (!opt.required) {\n\t\t\t\toptionDescription = `[${optionDescription}]`\n\t\t\t}\n\t\t\tparts.push(optionDescription)\n\t\t}\n\t\tif (format === 'multiline') {\n\t\t\treturn parts.map(it => `${indent}${it}`).join('\\n')\n\t\t}\n\t\treturn parts.join(' ')\n\t}\n}\n"],"names":[],"mappings":";;AAOO,MAAM,eAAe;AAAA,EAC3B,OAAc,OAAO,MAAkB,SAAmB,EAAE,QAAQ,UAAsC;AACzG,QAAI,QAAQ,CAAA;AACD,eAAA,SAAA;AACA,eAAA,SAAA;AACX,UAAM,UAAU,WAAW;AAC3B,aAAS,OAAO,MAAM;AACrB,YAAM,OAAO,IAAI;AACX,YAAA,iBAAiB,CAAC,WAAW,IAAI,cAAc,KAAK,IAAI,WAAW,MAAM;AAC/E,UAAI,IAAI,UAAU;AACjB,cAAM,KAAK,OAAO,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,WAChC,IAAI,UAAU;AACxB,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,OACjC;AACN,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MACxC;AAAA,IACD;AACA,aAAS,OAAO,SAAS;AACxB,UAAI,IAAI,YAAY;AACnB;AAAA,MACD;AACA,YAAM,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,QAAQ,KAAK;AAC7E,UAAA;AACJ,cAAQ,IAAI,MAAM;AAAA,QACjB,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD;AACC,sBAAY,IAAI,IAAI;AAAA,MACtB;AACA,UAAI,oBAAoB,GAAG,IAAI,GAAG,gBAAgB;AAC9C,UAAA,IAAI,SAAS,WAAW,aAAa;AACpB,4BAAA,GAAG,iBAAiB,SAAS,iBAAiB;AAAA,MACnE;AACI,UAAA,CAAC,WAAW,IAAI,aAAa;AACX,6BAAA,KAAK,IAAI,WAAW;AAAA,MAC1C;AACI,UAAA,CAAC,IAAI,UAAU;AAClB,4BAAoB,IAAI,iBAAiB;AAAA,MAC1C;AACA,YAAM,KAAK,iBAAiB;AAAA,IAC7B;AACA,QAAI,WAAW,aAAa;AACpB,aAAA,MAAM,IAAI,CAAA,OAAM,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,IAAI;AAAA,IACnD;AACO,WAAA,MAAM,KAAK,GAAG;AAAA,EACtB;AACD;"}
1
+ {"version":3,"file":"UsageFormatter.js","sources":["../../../../../packages/cli-common/src/application/UsageFormatter.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { assertNever } from './assertNever'\n\nexport type UsageFormat = 'line' | 'short' | 'multiline'\nexport type UsageFormatOptions = { format?: UsageFormat; indent?: string }\n\nexport class UsageFormatter {\n\tpublic static format(args: Argument[], options: Option[], { format, indent }: UsageFormatOptions): string {\n\t\tlet parts = []\n\t\tformat ??= 'short'\n\t\tindent ??= ' '\n\t\tconst isShort = format === 'short'\n\t\tfor (let arg of args) {\n\t\t\tconst name = arg.name\n\t\t\tconst argDescription = !isShort && arg.description ? ` (${arg.description})` : ''\n\t\t\tif (arg.variadic) {\n\t\t\t\tparts.push(`[...${name}${argDescription}]`)\n\t\t\t} else if (arg.optional) {\n\t\t\t\tparts.push(`[${name}${argDescription}]`)\n\t\t\t} else {\n\t\t\t\tparts.push(`<${name}${argDescription}>`)\n\t\t\t}\n\t\t}\n\t\tfor (let opt of options) {\n\t\t\tif (opt.deprecated) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : '')\n\t\t\tlet valueDescription\n\t\t\tswitch (opt.mode) {\n\t\t\t\tcase OptionMode.VALUE_ARRAY:\n\t\t\t\tcase OptionMode.VALUE_REQUIRED:\n\t\t\t\t\tvalueDescription = ' <value>'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_OPTIONAL:\n\t\t\t\t\tvalueDescription = ' [value]'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_NONE:\n\t\t\t\t\tvalueDescription = ''\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(opt.mode)\n\t\t\t}\n\t\t\tlet optionDescription = `${name}${valueDescription}`\n\t\t\tif (opt.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\toptionDescription = `${optionDescription} [... ${optionDescription}]`\n\t\t\t}\n\t\t\tif (!isShort && opt.description) {\n\t\t\t\toptionDescription += ` (${opt.description})`\n\t\t\t}\n\t\t\tif (!opt.required) {\n\t\t\t\toptionDescription = `[${optionDescription}]`\n\t\t\t}\n\t\t\tparts.push(optionDescription)\n\t\t}\n\t\tif (format === 'multiline') {\n\t\t\treturn parts.map(it => `${indent}${it}`).join('\\n')\n\t\t}\n\t\treturn parts.join(' ')\n\t}\n}\n"],"names":[],"mappings":";;AAOO,MAAM,eAAe;AAAA,EAC3B,OAAc,OAAO,MAAkB,SAAmB,EAAE,QAAQ,UAAsC;AACzG,QAAI,QAAQ,CAAC;AACF,eAAA,SAAA;AACA,eAAA,SAAA;AACX,UAAM,UAAU,WAAW;AAC3B,aAAS,OAAO,MAAM;AACrB,YAAM,OAAO,IAAI;AACX,YAAA,iBAAiB,CAAC,WAAW,IAAI,cAAc,KAAK,IAAI,WAAW,MAAM;AAC/E,UAAI,IAAI,UAAU;AACjB,cAAM,KAAK,OAAO,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,WAChC,IAAI,UAAU;AACxB,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,OACjC;AACN,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA;AAAA,IACxC;AAED,aAAS,OAAO,SAAS;AACxB,UAAI,IAAI,YAAY;AACnB;AAAA,MAAA;AAED,YAAM,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,QAAQ,KAAK;AAC7E,UAAA;AACJ,cAAQ,IAAI,MAAM;AAAA,QACjB,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD;AACC,sBAAY,IAAI,IAAI;AAAA,MAAA;AAEtB,UAAI,oBAAoB,GAAG,IAAI,GAAG,gBAAgB;AAC9C,UAAA,IAAI,SAAS,WAAW,aAAa;AACpB,4BAAA,GAAG,iBAAiB,SAAS,iBAAiB;AAAA,MAAA;AAE/D,UAAA,CAAC,WAAW,IAAI,aAAa;AACX,6BAAA,KAAK,IAAI,WAAW;AAAA,MAAA;AAEtC,UAAA,CAAC,IAAI,UAAU;AAClB,4BAAoB,IAAI,iBAAiB;AAAA,MAAA;AAE1C,YAAM,KAAK,iBAAiB;AAAA,IAAA;AAE7B,QAAI,WAAW,aAAa;AACpB,aAAA,MAAM,IAAI,CAAA,OAAM,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,IAAI;AAAA,IAAA;AAE5C,WAAA,MAAM,KAAK,GAAG;AAAA,EAAA;AAEvB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandRunner.cjs","sources":["../../../../../packages/cli-common/src/npm/CommandRunner.ts"],"sourcesContent":["import { ChildProcessWithoutNullStreams, spawn } from 'node:child_process'\nimport { Readable, Writable } from 'node:stream'\nimport chalk from 'chalk'\n\nexport type RunningCommand = { child: ChildProcessWithoutNullStreams; output: Promise<string> }\n\nexport class CommandRunner {\n\trunCommand = (\n\t\tcommand: string,\n\t\targs: (string | undefined)[],\n\t\toptions: {\n\t\t\tcwd: string\n\t\t\tstdin?: Readable\n\t\t\tstdout?: Writable\n\t\t\tstderr?: Writable\n\t\t\tenv?: NodeJS.ProcessEnv\n\t\t\tdetached?: boolean\n\t\t},\n\t): RunningCommand => {\n\t\tconst args2 = args.filter((it): it is string => it !== undefined)\n\t\tif (!process.env.DISABLE_COMMAND_PRINTING) {\n\t\t\tconsole.error(chalk.gray(`$ ${command} ${args2.map(it => `'${it.replace(/'/g, `'\\\\''`)}'`).join(' ')}`))\n\t\t}\n\t\tconst child = spawn(command, args2, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: { ...process.env, ...(options.env || {}) },\n\t\t\tdetached: options.detached,\n\t\t})\n\t\tif (options.stdin) {\n\t\t\toptions.stdin.pipe(child.stdin)\n\t\t}\n\n\t\tlet stdout = ''\n\t\tlet stderr = ''\n\n\t\tchild.stdout.on('data', (chunk): void => {\n\t\t\tstdout += chunk.toString()\n\t\t})\n\n\t\tchild.stderr.on('data', (chunk): void => {\n\t\t\tstderr += chunk.toString()\n\t\t})\n\t\tif (options.stdout) {\n\t\t\tchild.stdout.pipe(options.stdout)\n\t\t}\n\t\tif (options.stderr) {\n\t\t\tchild.stderr.pipe(options.stderr)\n\t\t}\n\n\t\tconst output = new Promise<string>((resolve, reject) => {\n\t\t\tchild.on('exit', (exitCode): void => {\n\t\t\t\tif (exitCode === 0) {\n\t\t\t\t\tresolve(stdout)\n\t\t\t\t} else {\n\t\t\t\t\treject(new ChildProcessError(exitCode, stderr))\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\treturn { output, child }\n\t}\n}\n\n\nexport class ChildProcessError extends Error {\n\tconstructor(public readonly exitCode: number | null, public readonly stderr: string) {\n\t\tsuper(`Command has failed(${exitCode}): ${stderr} `)\n\t}\n}\n"],"names":["spawn"],"mappings":";;;;;;;AAMO,MAAM,cAAc;AAAA,EAApB,cAAA;AACO,kBAAA,MAAA,cAAA,CACZ,SACA,MACA,YAQoB;AACpB,YAAM,QAAQ,KAAK,OAAO,CAAC,OAAqB,OAAO,MAAS;AAC5D,UAAA,CAAC,QAAQ,IAAI,0BAA0B;AAClC,gBAAA,MAAM,MAAM,KAAK,KAAK,OAAO,IAAI,MAAM,IAAI,CAAM,OAAA,IAAI,GAAG,QAAQ,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;AAAA,MACxG;AACM,YAAA,QAAQA,mBAAAA,MAAM,SAAS,OAAO;AAAA,QACnC,KAAK,QAAQ;AAAA,QACb,KAAK,EAAE,GAAG,QAAQ,KAAK,GAAI,QAAQ,OAAO,GAAI;AAAA,QAC9C,UAAU,QAAQ;AAAA,MAAA,CAClB;AACD,UAAI,QAAQ,OAAO;AACV,gBAAA,MAAM,KAAK,MAAM,KAAK;AAAA,MAC/B;AAEA,UAAI,SAAS;AACb,UAAI,SAAS;AAEb,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM;MAAS,CACzB;AAED,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM;MAAS,CACzB;AACD,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MACjC;AACA,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MACjC;AAEA,YAAM,SAAS,IAAI,QAAgB,CAAC,SAAS,WAAW;AACjD,cAAA,GAAG,QAAQ,CAAC,aAAmB;AACpC,cAAI,aAAa,GAAG;AACnB,oBAAQ,MAAM;AAAA,UAAA,OACR;AACN,mBAAO,IAAI,kBAAkB,UAAU,MAAM,CAAC;AAAA,UAC/C;AAAA,QAAA,CACA;AAAA,MAAA,CACD;AAEM,aAAA,EAAE,QAAQ;IAAM,CACxB;AAAA,EAAA;AACD;AAGO,MAAM,0BAA0B,MAAM;AAAA,EAC5C,YAA4B,UAAyC,QAAgB;AACpF,UAAM,sBAAsB,QAAQ,MAAM,MAAM,GAAG;AADxB,SAAA,WAAA;AAAyC,SAAA,SAAA;AAAA,EAErE;AACD;;;"}
1
+ {"version":3,"file":"CommandRunner.cjs","sources":["../../../../../packages/cli-common/src/npm/CommandRunner.ts"],"sourcesContent":["import { ChildProcessWithoutNullStreams, spawn } from 'node:child_process'\nimport { Readable, Writable } from 'node:stream'\nimport chalk from 'chalk'\n\nexport type RunningCommand = { child: ChildProcessWithoutNullStreams; output: Promise<string> }\n\nexport class CommandRunner {\n\trunCommand = (\n\t\tcommand: string,\n\t\targs: (string | undefined)[],\n\t\toptions: {\n\t\t\tcwd: string\n\t\t\tstdin?: Readable\n\t\t\tstdout?: Writable\n\t\t\tstderr?: Writable\n\t\t\tenv?: NodeJS.ProcessEnv\n\t\t\tdetached?: boolean\n\t\t},\n\t): RunningCommand => {\n\t\tconst args2 = args.filter((it): it is string => it !== undefined)\n\t\tif (!process.env.DISABLE_COMMAND_PRINTING) {\n\t\t\tconsole.error(chalk.gray(`$ ${command} ${args2.map(it => `'${it.replace(/'/g, `'\\\\''`)}'`).join(' ')}`))\n\t\t}\n\t\tconst child = spawn(command, args2, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: { ...process.env, ...(options.env || {}) },\n\t\t\tdetached: options.detached,\n\t\t})\n\t\tif (options.stdin) {\n\t\t\toptions.stdin.pipe(child.stdin)\n\t\t}\n\n\t\tlet stdout = ''\n\t\tlet stderr = ''\n\n\t\tchild.stdout.on('data', (chunk): void => {\n\t\t\tstdout += chunk.toString()\n\t\t})\n\n\t\tchild.stderr.on('data', (chunk): void => {\n\t\t\tstderr += chunk.toString()\n\t\t})\n\t\tif (options.stdout) {\n\t\t\tchild.stdout.pipe(options.stdout)\n\t\t}\n\t\tif (options.stderr) {\n\t\t\tchild.stderr.pipe(options.stderr)\n\t\t}\n\n\t\tconst output = new Promise<string>((resolve, reject) => {\n\t\t\tchild.on('exit', (exitCode): void => {\n\t\t\t\tif (exitCode === 0) {\n\t\t\t\t\tresolve(stdout)\n\t\t\t\t} else {\n\t\t\t\t\treject(new ChildProcessError(exitCode, stderr))\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\treturn { output, child }\n\t}\n}\n\n\nexport class ChildProcessError extends Error {\n\tconstructor(public readonly exitCode: number | null, public readonly stderr: string) {\n\t\tsuper(`Command has failed(${exitCode}): ${stderr} `)\n\t}\n}\n"],"names":["spawn"],"mappings":";;;;;;;AAMO,MAAM,cAAc;AAAA,EAApB,cAAA;AACO,kBAAA,MAAA,cAAA,CACZ,SACA,MACA,YAQoB;AACpB,YAAM,QAAQ,KAAK,OAAO,CAAC,OAAqB,OAAO,MAAS;AAC5D,UAAA,CAAC,QAAQ,IAAI,0BAA0B;AAClC,gBAAA,MAAM,MAAM,KAAK,KAAK,OAAO,IAAI,MAAM,IAAI,CAAM,OAAA,IAAI,GAAG,QAAQ,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;AAAA,MAAA;AAElG,YAAA,QAAQA,mBAAAA,MAAM,SAAS,OAAO;AAAA,QACnC,KAAK,QAAQ;AAAA,QACb,KAAK,EAAE,GAAG,QAAQ,KAAK,GAAI,QAAQ,OAAO,GAAI;AAAA,QAC9C,UAAU,QAAQ;AAAA,MAAA,CAClB;AACD,UAAI,QAAQ,OAAO;AACV,gBAAA,MAAM,KAAK,MAAM,KAAK;AAAA,MAAA;AAG/B,UAAI,SAAS;AACb,UAAI,SAAS;AAEb,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM,SAAS;AAAA,MAAA,CACzB;AAED,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM,SAAS;AAAA,MAAA,CACzB;AACD,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MAAA;AAEjC,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MAAA;AAGjC,YAAM,SAAS,IAAI,QAAgB,CAAC,SAAS,WAAW;AACjD,cAAA,GAAG,QAAQ,CAAC,aAAmB;AACpC,cAAI,aAAa,GAAG;AACnB,oBAAQ,MAAM;AAAA,UAAA,OACR;AACN,mBAAO,IAAI,kBAAkB,UAAU,MAAM,CAAC;AAAA,UAAA;AAAA,QAC/C,CACA;AAAA,MAAA,CACD;AAEM,aAAA,EAAE,QAAQ,MAAM;AAAA,IAAA,CACxB;AAAA,EAAA;AACD;AAGO,MAAM,0BAA0B,MAAM;AAAA,EAC5C,YAA4B,UAAyC,QAAgB;AACpF,UAAM,sBAAsB,QAAQ,MAAM,MAAM,GAAG;AADxB,SAAA,WAAA;AAAyC,SAAA,SAAA;AAAA,EAAA;AAGtE;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandRunner.js","sources":["../../../../../packages/cli-common/src/npm/CommandRunner.ts"],"sourcesContent":["import { ChildProcessWithoutNullStreams, spawn } from 'node:child_process'\nimport { Readable, Writable } from 'node:stream'\nimport chalk from 'chalk'\n\nexport type RunningCommand = { child: ChildProcessWithoutNullStreams; output: Promise<string> }\n\nexport class CommandRunner {\n\trunCommand = (\n\t\tcommand: string,\n\t\targs: (string | undefined)[],\n\t\toptions: {\n\t\t\tcwd: string\n\t\t\tstdin?: Readable\n\t\t\tstdout?: Writable\n\t\t\tstderr?: Writable\n\t\t\tenv?: NodeJS.ProcessEnv\n\t\t\tdetached?: boolean\n\t\t},\n\t): RunningCommand => {\n\t\tconst args2 = args.filter((it): it is string => it !== undefined)\n\t\tif (!process.env.DISABLE_COMMAND_PRINTING) {\n\t\t\tconsole.error(chalk.gray(`$ ${command} ${args2.map(it => `'${it.replace(/'/g, `'\\\\''`)}'`).join(' ')}`))\n\t\t}\n\t\tconst child = spawn(command, args2, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: { ...process.env, ...(options.env || {}) },\n\t\t\tdetached: options.detached,\n\t\t})\n\t\tif (options.stdin) {\n\t\t\toptions.stdin.pipe(child.stdin)\n\t\t}\n\n\t\tlet stdout = ''\n\t\tlet stderr = ''\n\n\t\tchild.stdout.on('data', (chunk): void => {\n\t\t\tstdout += chunk.toString()\n\t\t})\n\n\t\tchild.stderr.on('data', (chunk): void => {\n\t\t\tstderr += chunk.toString()\n\t\t})\n\t\tif (options.stdout) {\n\t\t\tchild.stdout.pipe(options.stdout)\n\t\t}\n\t\tif (options.stderr) {\n\t\t\tchild.stderr.pipe(options.stderr)\n\t\t}\n\n\t\tconst output = new Promise<string>((resolve, reject) => {\n\t\t\tchild.on('exit', (exitCode): void => {\n\t\t\t\tif (exitCode === 0) {\n\t\t\t\t\tresolve(stdout)\n\t\t\t\t} else {\n\t\t\t\t\treject(new ChildProcessError(exitCode, stderr))\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\treturn { output, child }\n\t}\n}\n\n\nexport class ChildProcessError extends Error {\n\tconstructor(public readonly exitCode: number | null, public readonly stderr: string) {\n\t\tsuper(`Command has failed(${exitCode}): ${stderr} `)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAMO,MAAM,cAAc;AAAA,EAApB,cAAA;AACO,kBAAA,MAAA,cAAA,CACZ,SACA,MACA,YAQoB;AACpB,YAAM,QAAQ,KAAK,OAAO,CAAC,OAAqB,OAAO,MAAS;AAC5D,UAAA,CAAC,QAAQ,IAAI,0BAA0B;AAClC,gBAAA,MAAM,MAAM,KAAK,KAAK,OAAO,IAAI,MAAM,IAAI,CAAM,OAAA,IAAI,GAAG,QAAQ,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;AAAA,MACxG;AACM,YAAA,QAAQ,MAAM,SAAS,OAAO;AAAA,QACnC,KAAK,QAAQ;AAAA,QACb,KAAK,EAAE,GAAG,QAAQ,KAAK,GAAI,QAAQ,OAAO,GAAI;AAAA,QAC9C,UAAU,QAAQ;AAAA,MAAA,CAClB;AACD,UAAI,QAAQ,OAAO;AACV,gBAAA,MAAM,KAAK,MAAM,KAAK;AAAA,MAC/B;AAEA,UAAI,SAAS;AACb,UAAI,SAAS;AAEb,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM;MAAS,CACzB;AAED,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM;MAAS,CACzB;AACD,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MACjC;AACA,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MACjC;AAEA,YAAM,SAAS,IAAI,QAAgB,CAAC,SAAS,WAAW;AACjD,cAAA,GAAG,QAAQ,CAAC,aAAmB;AACpC,cAAI,aAAa,GAAG;AACnB,oBAAQ,MAAM;AAAA,UAAA,OACR;AACN,mBAAO,IAAI,kBAAkB,UAAU,MAAM,CAAC;AAAA,UAC/C;AAAA,QAAA,CACA;AAAA,MAAA,CACD;AAEM,aAAA,EAAE,QAAQ;IAAM,CACxB;AAAA,EAAA;AACD;AAGO,MAAM,0BAA0B,MAAM;AAAA,EAC5C,YAA4B,UAAyC,QAAgB;AACpF,UAAM,sBAAsB,QAAQ,MAAM,MAAM,GAAG;AADxB,SAAA,WAAA;AAAyC,SAAA,SAAA;AAAA,EAErE;AACD;"}
1
+ {"version":3,"file":"CommandRunner.js","sources":["../../../../../packages/cli-common/src/npm/CommandRunner.ts"],"sourcesContent":["import { ChildProcessWithoutNullStreams, spawn } from 'node:child_process'\nimport { Readable, Writable } from 'node:stream'\nimport chalk from 'chalk'\n\nexport type RunningCommand = { child: ChildProcessWithoutNullStreams; output: Promise<string> }\n\nexport class CommandRunner {\n\trunCommand = (\n\t\tcommand: string,\n\t\targs: (string | undefined)[],\n\t\toptions: {\n\t\t\tcwd: string\n\t\t\tstdin?: Readable\n\t\t\tstdout?: Writable\n\t\t\tstderr?: Writable\n\t\t\tenv?: NodeJS.ProcessEnv\n\t\t\tdetached?: boolean\n\t\t},\n\t): RunningCommand => {\n\t\tconst args2 = args.filter((it): it is string => it !== undefined)\n\t\tif (!process.env.DISABLE_COMMAND_PRINTING) {\n\t\t\tconsole.error(chalk.gray(`$ ${command} ${args2.map(it => `'${it.replace(/'/g, `'\\\\''`)}'`).join(' ')}`))\n\t\t}\n\t\tconst child = spawn(command, args2, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: { ...process.env, ...(options.env || {}) },\n\t\t\tdetached: options.detached,\n\t\t})\n\t\tif (options.stdin) {\n\t\t\toptions.stdin.pipe(child.stdin)\n\t\t}\n\n\t\tlet stdout = ''\n\t\tlet stderr = ''\n\n\t\tchild.stdout.on('data', (chunk): void => {\n\t\t\tstdout += chunk.toString()\n\t\t})\n\n\t\tchild.stderr.on('data', (chunk): void => {\n\t\t\tstderr += chunk.toString()\n\t\t})\n\t\tif (options.stdout) {\n\t\t\tchild.stdout.pipe(options.stdout)\n\t\t}\n\t\tif (options.stderr) {\n\t\t\tchild.stderr.pipe(options.stderr)\n\t\t}\n\n\t\tconst output = new Promise<string>((resolve, reject) => {\n\t\t\tchild.on('exit', (exitCode): void => {\n\t\t\t\tif (exitCode === 0) {\n\t\t\t\t\tresolve(stdout)\n\t\t\t\t} else {\n\t\t\t\t\treject(new ChildProcessError(exitCode, stderr))\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\treturn { output, child }\n\t}\n}\n\n\nexport class ChildProcessError extends Error {\n\tconstructor(public readonly exitCode: number | null, public readonly stderr: string) {\n\t\tsuper(`Command has failed(${exitCode}): ${stderr} `)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAMO,MAAM,cAAc;AAAA,EAApB,cAAA;AACO,kBAAA,MAAA,cAAA,CACZ,SACA,MACA,YAQoB;AACpB,YAAM,QAAQ,KAAK,OAAO,CAAC,OAAqB,OAAO,MAAS;AAC5D,UAAA,CAAC,QAAQ,IAAI,0BAA0B;AAClC,gBAAA,MAAM,MAAM,KAAK,KAAK,OAAO,IAAI,MAAM,IAAI,CAAM,OAAA,IAAI,GAAG,QAAQ,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;AAAA,MAAA;AAElG,YAAA,QAAQ,MAAM,SAAS,OAAO;AAAA,QACnC,KAAK,QAAQ;AAAA,QACb,KAAK,EAAE,GAAG,QAAQ,KAAK,GAAI,QAAQ,OAAO,GAAI;AAAA,QAC9C,UAAU,QAAQ;AAAA,MAAA,CAClB;AACD,UAAI,QAAQ,OAAO;AACV,gBAAA,MAAM,KAAK,MAAM,KAAK;AAAA,MAAA;AAG/B,UAAI,SAAS;AACb,UAAI,SAAS;AAEb,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM,SAAS;AAAA,MAAA,CACzB;AAED,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM,SAAS;AAAA,MAAA,CACzB;AACD,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MAAA;AAEjC,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MAAA;AAGjC,YAAM,SAAS,IAAI,QAAgB,CAAC,SAAS,WAAW;AACjD,cAAA,GAAG,QAAQ,CAAC,aAAmB;AACpC,cAAI,aAAa,GAAG;AACnB,oBAAQ,MAAM;AAAA,UAAA,OACR;AACN,mBAAO,IAAI,kBAAkB,UAAU,MAAM,CAAC;AAAA,UAAA;AAAA,QAC/C,CACA;AAAA,MAAA,CACD;AAEM,aAAA,EAAE,QAAQ,MAAM;AAAA,IAAA,CACxB;AAAA,EAAA;AACD;AAGO,MAAM,0BAA0B,MAAM;AAAA,EAC5C,YAA4B,UAAyC,QAAgB;AACpF,UAAM,sBAAsB,QAAQ,MAAM,MAAM,GAAG;AADxB,SAAA,WAAA;AAAyC,SAAA,SAAA;AAAA,EAAA;AAGtE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Package.cjs","sources":["../../../../../packages/cli-common/src/npm/Package.ts"],"sourcesContent":["import { PackageJson } from './PackageJson'\n\nexport class Package {\n\tconstructor(\n\t\tpublic readonly dir: string,\n\t\tpublic readonly isRoot: boolean,\n\t\tpublic readonly packageJson: PackageJson,\n\t) {\n\t}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,QAAQ;AAAA,EACpB,YACiB,KACA,QACA,aACf;AAHe,SAAA,MAAA;AACA,SAAA,SAAA;AACA,SAAA,cAAA;AAAA,EAEjB;AACD;;"}
1
+ {"version":3,"file":"Package.cjs","sources":["../../../../../packages/cli-common/src/npm/Package.ts"],"sourcesContent":["import { PackageJson } from './PackageJson'\n\nexport class Package {\n\tconstructor(\n\t\tpublic readonly dir: string,\n\t\tpublic readonly isRoot: boolean,\n\t\tpublic readonly packageJson: PackageJson,\n\t) {\n\t}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,QAAQ;AAAA,EACpB,YACiB,KACA,QACA,aACf;AAHe,SAAA,MAAA;AACA,SAAA,SAAA;AACA,SAAA,cAAA;AAAA,EAAA;AAGlB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Package.js","sources":["../../../../../packages/cli-common/src/npm/Package.ts"],"sourcesContent":["import { PackageJson } from './PackageJson'\n\nexport class Package {\n\tconstructor(\n\t\tpublic readonly dir: string,\n\t\tpublic readonly isRoot: boolean,\n\t\tpublic readonly packageJson: PackageJson,\n\t) {\n\t}\n}\n"],"names":[],"mappings":"AAEO,MAAM,QAAQ;AAAA,EACpB,YACiB,KACA,QACA,aACf;AAHe,SAAA,MAAA;AACA,SAAA,SAAA;AACA,SAAA,cAAA;AAAA,EAEjB;AACD;"}
1
+ {"version":3,"file":"Package.js","sources":["../../../../../packages/cli-common/src/npm/Package.ts"],"sourcesContent":["import { PackageJson } from './PackageJson'\n\nexport class Package {\n\tconstructor(\n\t\tpublic readonly dir: string,\n\t\tpublic readonly isRoot: boolean,\n\t\tpublic readonly packageJson: PackageJson,\n\t) {\n\t}\n}\n"],"names":[],"mappings":"AAEO,MAAM,QAAQ;AAAA,EACpB,YACiB,KACA,QACA,aACf;AAHe,SAAA,MAAA;AACA,SAAA,SAAA;AACA,SAAA,cAAA;AAAA,EAAA;AAGlB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PackageWorkspace.cjs","sources":["../../../../../packages/cli-common/src/npm/PackageWorkspace.ts"],"sourcesContent":["import { PackageManager } from './packageManagers/PackageManager'\nimport { Package } from './Package'\nimport { dirname, join } from 'node:path'\nimport { PackageJson } from './PackageJson'\nimport { FileSystem } from './FileSystem'\n\nexport type Dependency = {\n\tpckg: Package\n\tisDev: boolean\n\tversion: string\n\tname: string\n}\n\n\nexport class PackageWorkspace {\n\tconstructor(\n\t\tprivate readonly packageManager: PackageManager,\n\t\tprivate readonly fs: FileSystem,\n\t\tpublic readonly rootPackage: Package,\n\t\tpublic readonly packages: Package[],\n\t) {\n\t}\n\n\tget allPackages() {\n\t\treturn [this.rootPackage, ...this.packages]\n\t}\n\n\tpublic findDefinedDependencies(packageName: string): Dependency[] {\n\t\treturn this.allPackages.flatMap<Dependency>(it => {\n\t\t\tfor (const type of ['dependencies', 'devDependencies'] as const) {\n\t\t\t\tconst version = it.packageJson[type]?.[packageName]\n\t\t\t\tif (version) {\n\t\t\t\t\treturn [{ pckg: it, isDev: type === 'devDependencies', version: version, name: packageName }]\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn []\n\t\t})\n\t}\n\n\tpublic async findInstalledDependencies(packageName: string): Promise<{ installed?: Dependency; defined: Dependency }[]> {\n\t\tconst definedDependencies = this.findDefinedDependencies(packageName)\n\n\t\tconst deps: { installed?: Dependency; defined: Dependency }[] = []\n\t\tfor (const defined of definedDependencies) {\n\t\t\tconst packageJsonPath = await this.resolvePackageJson(defined.pckg.dir, packageName)\n\t\t\tif (!packageJsonPath) {\n\t\t\t\tdeps.push({ defined })\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst packageJson = JSON.parse(await this.fs.readFile(packageJsonPath, 'utf-8'))\n\t\t\tdeps.push({ defined, installed: { ...defined, version: packageJson?.version ?? '' } })\n\t\t}\n\t\treturn deps\n\t}\n\n\tprivate async resolvePackageJson(dir: string, packageName: string) {\n\t\twhile (true) {\n\t\t\tconst fullPath = join(dir, 'node_modules', packageName, 'package.json')\n\t\t\tif (await this.fs.pathExists(fullPath)) {\n\t\t\t\treturn fullPath\n\t\t\t}\n\t\t\tif (dir === '/') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tdir = dirname(dir)\n\t\t}\n\t}\n\n\tasync updateEverywhere(updates: Record<string, string>): Promise<Dependency[]> {\n\t\tconst defined = Object.keys(updates).flatMap(it => this.findDefinedDependencies(it))\n\t\tconst byPckg = new Map<Package, Dependency[]>()\n\t\tfor (const it of defined) {\n\t\t\tconst arr = byPckg.get(it.pckg) ?? []\n\t\t\tbyPckg.set(it.pckg, arr)\n\t\t\tarr.push(it)\n\t\t}\n\n\t\tconst updated: Dependency[] = []\n\t\tfor (const [pckg, deps] of byPckg.entries()) {\n\t\t\tconst prod = deps.filter(it => !it.isDev)\n\t\t\tconst dev = deps.filter(it => it.isDev)\n\t\t\tfor (const [isDev, deps] of [[false, prod], [true, dev]] as const) {\n\t\t\t\tif (deps.length === 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tawait this.packageManager.install({\n\t\t\t\t\tpckg,\n\t\t\t\t\tisDev,\n\t\t\t\t\tdependencies: Object.fromEntries(deps.map(it => [it.name, updates[it.name]])),\n\t\t\t\t})\n\t\t\t\tupdated.push(...deps)\n\t\t\t}\n\t\t}\n\t\treturn updated\n\t}\n}\n\n"],"names":["join","dirname","deps"],"mappings":";;;AAcO,MAAM,iBAAiB;AAAA,EAC7B,YACkB,gBACA,IACD,aACA,UACf;AAJgB,SAAA,iBAAA;AACA,SAAA,KAAA;AACD,SAAA,cAAA;AACA,SAAA,WAAA;AAAA,EAEjB;AAAA,EAEA,IAAI,cAAc;AACjB,WAAO,CAAC,KAAK,aAAa,GAAG,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEO,wBAAwB,aAAmC;AAC1D,WAAA,KAAK,YAAY,QAAoB,CAAM,OAAA;AACjD,iBAAW,QAAQ,CAAC,gBAAgB,iBAAiB,GAAY;AAChE,cAAM,UAAU,GAAG,YAAY,IAAI,IAAI,WAAW;AAClD,YAAI,SAAS;AACL,iBAAA,CAAC,EAAE,MAAM,IAAI,OAAO,SAAS,mBAAmB,SAAkB,MAAM,YAAA,CAAa;AAAA,QAC7F;AAAA,MACD;AACA,aAAO;IAAC,CACR;AAAA,EACF;AAAA,EAEA,MAAa,0BAA0B,aAAiF;AACjH,UAAA,sBAAsB,KAAK,wBAAwB,WAAW;AAEpE,UAAM,OAA0D,CAAA;AAChE,eAAW,WAAW,qBAAqB;AAC1C,YAAM,kBAAkB,MAAM,KAAK,mBAAmB,QAAQ,KAAK,KAAK,WAAW;AACnF,UAAI,CAAC,iBAAiB;AAChB,aAAA,KAAK,EAAE,QAAA,CAAS;AACrB;AAAA,MACD;AACM,YAAA,cAAc,KAAK,MAAM,MAAM,KAAK,GAAG,SAAS,iBAAiB,OAAO,CAAC;AAC/E,WAAK,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,SAAS,aAAa,WAAW,GAAG,EAAG,CAAA;AAAA,IACtF;AACO,WAAA;AAAA,EACR;AAAA,EAEA,MAAc,mBAAmB,KAAa,aAAqB;AAClE,WAAO,MAAM;AACZ,YAAM,WAAWA,UAAAA,KAAK,KAAK,gBAAgB,aAAa,cAAc;AACtE,UAAI,MAAM,KAAK,GAAG,WAAW,QAAQ,GAAG;AAChC,eAAA;AAAA,MACR;AACA,UAAI,QAAQ,KAAK;AACT,eAAA;AAAA,MACR;AACA,YAAMC,UAAAA,QAAQ,GAAG;AAAA,IAClB;AAAA,EACD;AAAA,EAEA,MAAM,iBAAiB,SAAwD;AACxE,UAAA,UAAU,OAAO,KAAK,OAAO,EAAE,QAAQ,CAAM,OAAA,KAAK,wBAAwB,EAAE,CAAC;AAC7E,UAAA,6BAAa;AACnB,eAAW,MAAM,SAAS;AACzB,YAAM,MAAM,OAAO,IAAI,GAAG,IAAI,KAAK;AAC5B,aAAA,IAAI,GAAG,MAAM,GAAG;AACvB,UAAI,KAAK,EAAE;AAAA,IACZ;AAEA,UAAM,UAAwB,CAAA;AAC9B,eAAW,CAAC,MAAM,IAAI,KAAK,OAAO,WAAW;AAC5C,YAAM,OAAO,KAAK,OAAO,CAAM,OAAA,CAAC,GAAG,KAAK;AACxC,YAAM,MAAM,KAAK,OAAO,CAAA,OAAM,GAAG,KAAK;AACtC,iBAAW,CAAC,OAAOC,KAAI,KAAK,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAY;AAC9DA,YAAAA,MAAK,WAAW,GAAG;AACtB;AAAA,QACD;AACM,cAAA,KAAK,eAAe,QAAQ;AAAA,UACjC;AAAA,UACA;AAAA,UACA,cAAc,OAAO,YAAYA,MAAK,IAAI,CAAM,OAAA,CAAC,GAAG,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAAA,QAAA,CAC5E;AACO,gBAAA,KAAK,GAAGA,KAAI;AAAA,MACrB;AAAA,IACD;AACO,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"PackageWorkspace.cjs","sources":["../../../../../packages/cli-common/src/npm/PackageWorkspace.ts"],"sourcesContent":["import { PackageManager } from './packageManagers/PackageManager'\nimport { Package } from './Package'\nimport { dirname, join } from 'node:path'\nimport { PackageJson } from './PackageJson'\nimport { FileSystem } from './FileSystem'\n\nexport type Dependency = {\n\tpckg: Package\n\tisDev: boolean\n\tversion: string\n\tname: string\n}\n\n\nexport class PackageWorkspace {\n\tconstructor(\n\t\tprivate readonly packageManager: PackageManager,\n\t\tprivate readonly fs: FileSystem,\n\t\tpublic readonly rootPackage: Package,\n\t\tpublic readonly packages: Package[],\n\t) {\n\t}\n\n\tget allPackages() {\n\t\treturn [this.rootPackage, ...this.packages]\n\t}\n\n\tpublic findDefinedDependencies(packageName: string): Dependency[] {\n\t\treturn this.allPackages.flatMap<Dependency>(it => {\n\t\t\tfor (const type of ['dependencies', 'devDependencies'] as const) {\n\t\t\t\tconst version = it.packageJson[type]?.[packageName]\n\t\t\t\tif (version) {\n\t\t\t\t\treturn [{ pckg: it, isDev: type === 'devDependencies', version: version, name: packageName }]\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn []\n\t\t})\n\t}\n\n\tpublic async findInstalledDependencies(packageName: string): Promise<{ installed?: Dependency; defined: Dependency }[]> {\n\t\tconst definedDependencies = this.findDefinedDependencies(packageName)\n\n\t\tconst deps: { installed?: Dependency; defined: Dependency }[] = []\n\t\tfor (const defined of definedDependencies) {\n\t\t\tconst packageJsonPath = await this.resolvePackageJson(defined.pckg.dir, packageName)\n\t\t\tif (!packageJsonPath) {\n\t\t\t\tdeps.push({ defined })\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst packageJson = JSON.parse(await this.fs.readFile(packageJsonPath, 'utf-8'))\n\t\t\tdeps.push({ defined, installed: { ...defined, version: packageJson?.version ?? '' } })\n\t\t}\n\t\treturn deps\n\t}\n\n\tprivate async resolvePackageJson(dir: string, packageName: string) {\n\t\twhile (true) {\n\t\t\tconst fullPath = join(dir, 'node_modules', packageName, 'package.json')\n\t\t\tif (await this.fs.pathExists(fullPath)) {\n\t\t\t\treturn fullPath\n\t\t\t}\n\t\t\tif (dir === '/') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tdir = dirname(dir)\n\t\t}\n\t}\n\n\tasync updateEverywhere(updates: Record<string, string>): Promise<Dependency[]> {\n\t\tconst defined = Object.keys(updates).flatMap(it => this.findDefinedDependencies(it))\n\t\tconst byPckg = new Map<Package, Dependency[]>()\n\t\tfor (const it of defined) {\n\t\t\tconst arr = byPckg.get(it.pckg) ?? []\n\t\t\tbyPckg.set(it.pckg, arr)\n\t\t\tarr.push(it)\n\t\t}\n\n\t\tconst updated: Dependency[] = []\n\t\tfor (const [pckg, deps] of byPckg.entries()) {\n\t\t\tconst prod = deps.filter(it => !it.isDev)\n\t\t\tconst dev = deps.filter(it => it.isDev)\n\t\t\tfor (const [isDev, deps] of [[false, prod], [true, dev]] as const) {\n\t\t\t\tif (deps.length === 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tawait this.packageManager.install({\n\t\t\t\t\tpckg,\n\t\t\t\t\tisDev,\n\t\t\t\t\tdependencies: Object.fromEntries(deps.map(it => [it.name, updates[it.name]])),\n\t\t\t\t})\n\t\t\t\tupdated.push(...deps)\n\t\t\t}\n\t\t}\n\t\treturn updated\n\t}\n}\n\n"],"names":["join","dirname","deps"],"mappings":";;;AAcO,MAAM,iBAAiB;AAAA,EAC7B,YACkB,gBACA,IACD,aACA,UACf;AAJgB,SAAA,iBAAA;AACA,SAAA,KAAA;AACD,SAAA,cAAA;AACA,SAAA,WAAA;AAAA,EAAA;AAAA,EAIjB,IAAI,cAAc;AACjB,WAAO,CAAC,KAAK,aAAa,GAAG,KAAK,QAAQ;AAAA,EAAA;AAAA,EAGpC,wBAAwB,aAAmC;AAC1D,WAAA,KAAK,YAAY,QAAoB,CAAM,OAAA;AACjD,iBAAW,QAAQ,CAAC,gBAAgB,iBAAiB,GAAY;AAChE,cAAM,UAAU,GAAG,YAAY,IAAI,IAAI,WAAW;AAClD,YAAI,SAAS;AACL,iBAAA,CAAC,EAAE,MAAM,IAAI,OAAO,SAAS,mBAAmB,SAAkB,MAAM,aAAa;AAAA,QAAA;AAAA,MAC7F;AAED,aAAO,CAAC;AAAA,IAAA,CACR;AAAA,EAAA;AAAA,EAGF,MAAa,0BAA0B,aAAiF;AACjH,UAAA,sBAAsB,KAAK,wBAAwB,WAAW;AAEpE,UAAM,OAA0D,CAAC;AACjE,eAAW,WAAW,qBAAqB;AAC1C,YAAM,kBAAkB,MAAM,KAAK,mBAAmB,QAAQ,KAAK,KAAK,WAAW;AACnF,UAAI,CAAC,iBAAiB;AAChB,aAAA,KAAK,EAAE,SAAS;AACrB;AAAA,MAAA;AAEK,YAAA,cAAc,KAAK,MAAM,MAAM,KAAK,GAAG,SAAS,iBAAiB,OAAO,CAAC;AAC/E,WAAK,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,SAAS,aAAa,WAAW,GAAG,EAAA,CAAG;AAAA,IAAA;AAE/E,WAAA;AAAA,EAAA;AAAA,EAGR,MAAc,mBAAmB,KAAa,aAAqB;AAClE,WAAO,MAAM;AACZ,YAAM,WAAWA,UAAAA,KAAK,KAAK,gBAAgB,aAAa,cAAc;AACtE,UAAI,MAAM,KAAK,GAAG,WAAW,QAAQ,GAAG;AAChC,eAAA;AAAA,MAAA;AAER,UAAI,QAAQ,KAAK;AACT,eAAA;AAAA,MAAA;AAER,YAAMC,kBAAQ,GAAG;AAAA,IAAA;AAAA,EAClB;AAAA,EAGD,MAAM,iBAAiB,SAAwD;AACxE,UAAA,UAAU,OAAO,KAAK,OAAO,EAAE,QAAQ,CAAM,OAAA,KAAK,wBAAwB,EAAE,CAAC;AAC7E,UAAA,6BAAa,IAA2B;AAC9C,eAAW,MAAM,SAAS;AACzB,YAAM,MAAM,OAAO,IAAI,GAAG,IAAI,KAAK,CAAC;AAC7B,aAAA,IAAI,GAAG,MAAM,GAAG;AACvB,UAAI,KAAK,EAAE;AAAA,IAAA;AAGZ,UAAM,UAAwB,CAAC;AAC/B,eAAW,CAAC,MAAM,IAAI,KAAK,OAAO,WAAW;AAC5C,YAAM,OAAO,KAAK,OAAO,CAAM,OAAA,CAAC,GAAG,KAAK;AACxC,YAAM,MAAM,KAAK,OAAO,CAAA,OAAM,GAAG,KAAK;AACtC,iBAAW,CAAC,OAAOC,KAAI,KAAK,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAY;AAC9DA,YAAAA,MAAK,WAAW,GAAG;AACtB;AAAA,QAAA;AAEK,cAAA,KAAK,eAAe,QAAQ;AAAA,UACjC;AAAA,UACA;AAAA,UACA,cAAc,OAAO,YAAYA,MAAK,IAAI,CAAM,OAAA,CAAC,GAAG,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAAA,QAAA,CAC5E;AACO,gBAAA,KAAK,GAAGA,KAAI;AAAA,MAAA;AAAA,IACrB;AAEM,WAAA;AAAA,EAAA;AAET;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PackageWorkspace.js","sources":["../../../../../packages/cli-common/src/npm/PackageWorkspace.ts"],"sourcesContent":["import { PackageManager } from './packageManagers/PackageManager'\nimport { Package } from './Package'\nimport { dirname, join } from 'node:path'\nimport { PackageJson } from './PackageJson'\nimport { FileSystem } from './FileSystem'\n\nexport type Dependency = {\n\tpckg: Package\n\tisDev: boolean\n\tversion: string\n\tname: string\n}\n\n\nexport class PackageWorkspace {\n\tconstructor(\n\t\tprivate readonly packageManager: PackageManager,\n\t\tprivate readonly fs: FileSystem,\n\t\tpublic readonly rootPackage: Package,\n\t\tpublic readonly packages: Package[],\n\t) {\n\t}\n\n\tget allPackages() {\n\t\treturn [this.rootPackage, ...this.packages]\n\t}\n\n\tpublic findDefinedDependencies(packageName: string): Dependency[] {\n\t\treturn this.allPackages.flatMap<Dependency>(it => {\n\t\t\tfor (const type of ['dependencies', 'devDependencies'] as const) {\n\t\t\t\tconst version = it.packageJson[type]?.[packageName]\n\t\t\t\tif (version) {\n\t\t\t\t\treturn [{ pckg: it, isDev: type === 'devDependencies', version: version, name: packageName }]\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn []\n\t\t})\n\t}\n\n\tpublic async findInstalledDependencies(packageName: string): Promise<{ installed?: Dependency; defined: Dependency }[]> {\n\t\tconst definedDependencies = this.findDefinedDependencies(packageName)\n\n\t\tconst deps: { installed?: Dependency; defined: Dependency }[] = []\n\t\tfor (const defined of definedDependencies) {\n\t\t\tconst packageJsonPath = await this.resolvePackageJson(defined.pckg.dir, packageName)\n\t\t\tif (!packageJsonPath) {\n\t\t\t\tdeps.push({ defined })\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst packageJson = JSON.parse(await this.fs.readFile(packageJsonPath, 'utf-8'))\n\t\t\tdeps.push({ defined, installed: { ...defined, version: packageJson?.version ?? '' } })\n\t\t}\n\t\treturn deps\n\t}\n\n\tprivate async resolvePackageJson(dir: string, packageName: string) {\n\t\twhile (true) {\n\t\t\tconst fullPath = join(dir, 'node_modules', packageName, 'package.json')\n\t\t\tif (await this.fs.pathExists(fullPath)) {\n\t\t\t\treturn fullPath\n\t\t\t}\n\t\t\tif (dir === '/') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tdir = dirname(dir)\n\t\t}\n\t}\n\n\tasync updateEverywhere(updates: Record<string, string>): Promise<Dependency[]> {\n\t\tconst defined = Object.keys(updates).flatMap(it => this.findDefinedDependencies(it))\n\t\tconst byPckg = new Map<Package, Dependency[]>()\n\t\tfor (const it of defined) {\n\t\t\tconst arr = byPckg.get(it.pckg) ?? []\n\t\t\tbyPckg.set(it.pckg, arr)\n\t\t\tarr.push(it)\n\t\t}\n\n\t\tconst updated: Dependency[] = []\n\t\tfor (const [pckg, deps] of byPckg.entries()) {\n\t\t\tconst prod = deps.filter(it => !it.isDev)\n\t\t\tconst dev = deps.filter(it => it.isDev)\n\t\t\tfor (const [isDev, deps] of [[false, prod], [true, dev]] as const) {\n\t\t\t\tif (deps.length === 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tawait this.packageManager.install({\n\t\t\t\t\tpckg,\n\t\t\t\t\tisDev,\n\t\t\t\t\tdependencies: Object.fromEntries(deps.map(it => [it.name, updates[it.name]])),\n\t\t\t\t})\n\t\t\t\tupdated.push(...deps)\n\t\t\t}\n\t\t}\n\t\treturn updated\n\t}\n}\n\n"],"names":["deps"],"mappings":";AAcO,MAAM,iBAAiB;AAAA,EAC7B,YACkB,gBACA,IACD,aACA,UACf;AAJgB,SAAA,iBAAA;AACA,SAAA,KAAA;AACD,SAAA,cAAA;AACA,SAAA,WAAA;AAAA,EAEjB;AAAA,EAEA,IAAI,cAAc;AACjB,WAAO,CAAC,KAAK,aAAa,GAAG,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEO,wBAAwB,aAAmC;AAC1D,WAAA,KAAK,YAAY,QAAoB,CAAM,OAAA;AACjD,iBAAW,QAAQ,CAAC,gBAAgB,iBAAiB,GAAY;AAChE,cAAM,UAAU,GAAG,YAAY,IAAI,IAAI,WAAW;AAClD,YAAI,SAAS;AACL,iBAAA,CAAC,EAAE,MAAM,IAAI,OAAO,SAAS,mBAAmB,SAAkB,MAAM,YAAA,CAAa;AAAA,QAC7F;AAAA,MACD;AACA,aAAO;IAAC,CACR;AAAA,EACF;AAAA,EAEA,MAAa,0BAA0B,aAAiF;AACjH,UAAA,sBAAsB,KAAK,wBAAwB,WAAW;AAEpE,UAAM,OAA0D,CAAA;AAChE,eAAW,WAAW,qBAAqB;AAC1C,YAAM,kBAAkB,MAAM,KAAK,mBAAmB,QAAQ,KAAK,KAAK,WAAW;AACnF,UAAI,CAAC,iBAAiB;AAChB,aAAA,KAAK,EAAE,QAAA,CAAS;AACrB;AAAA,MACD;AACM,YAAA,cAAc,KAAK,MAAM,MAAM,KAAK,GAAG,SAAS,iBAAiB,OAAO,CAAC;AAC/E,WAAK,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,SAAS,aAAa,WAAW,GAAG,EAAG,CAAA;AAAA,IACtF;AACO,WAAA;AAAA,EACR;AAAA,EAEA,MAAc,mBAAmB,KAAa,aAAqB;AAClE,WAAO,MAAM;AACZ,YAAM,WAAW,KAAK,KAAK,gBAAgB,aAAa,cAAc;AACtE,UAAI,MAAM,KAAK,GAAG,WAAW,QAAQ,GAAG;AAChC,eAAA;AAAA,MACR;AACA,UAAI,QAAQ,KAAK;AACT,eAAA;AAAA,MACR;AACA,YAAM,QAAQ,GAAG;AAAA,IAClB;AAAA,EACD;AAAA,EAEA,MAAM,iBAAiB,SAAwD;AACxE,UAAA,UAAU,OAAO,KAAK,OAAO,EAAE,QAAQ,CAAM,OAAA,KAAK,wBAAwB,EAAE,CAAC;AAC7E,UAAA,6BAAa;AACnB,eAAW,MAAM,SAAS;AACzB,YAAM,MAAM,OAAO,IAAI,GAAG,IAAI,KAAK;AAC5B,aAAA,IAAI,GAAG,MAAM,GAAG;AACvB,UAAI,KAAK,EAAE;AAAA,IACZ;AAEA,UAAM,UAAwB,CAAA;AAC9B,eAAW,CAAC,MAAM,IAAI,KAAK,OAAO,WAAW;AAC5C,YAAM,OAAO,KAAK,OAAO,CAAM,OAAA,CAAC,GAAG,KAAK;AACxC,YAAM,MAAM,KAAK,OAAO,CAAA,OAAM,GAAG,KAAK;AACtC,iBAAW,CAAC,OAAOA,KAAI,KAAK,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAY;AAC9DA,YAAAA,MAAK,WAAW,GAAG;AACtB;AAAA,QACD;AACM,cAAA,KAAK,eAAe,QAAQ;AAAA,UACjC;AAAA,UACA;AAAA,UACA,cAAc,OAAO,YAAYA,MAAK,IAAI,CAAM,OAAA,CAAC,GAAG,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAAA,QAAA,CAC5E;AACO,gBAAA,KAAK,GAAGA,KAAI;AAAA,MACrB;AAAA,IACD;AACO,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"PackageWorkspace.js","sources":["../../../../../packages/cli-common/src/npm/PackageWorkspace.ts"],"sourcesContent":["import { PackageManager } from './packageManagers/PackageManager'\nimport { Package } from './Package'\nimport { dirname, join } from 'node:path'\nimport { PackageJson } from './PackageJson'\nimport { FileSystem } from './FileSystem'\n\nexport type Dependency = {\n\tpckg: Package\n\tisDev: boolean\n\tversion: string\n\tname: string\n}\n\n\nexport class PackageWorkspace {\n\tconstructor(\n\t\tprivate readonly packageManager: PackageManager,\n\t\tprivate readonly fs: FileSystem,\n\t\tpublic readonly rootPackage: Package,\n\t\tpublic readonly packages: Package[],\n\t) {\n\t}\n\n\tget allPackages() {\n\t\treturn [this.rootPackage, ...this.packages]\n\t}\n\n\tpublic findDefinedDependencies(packageName: string): Dependency[] {\n\t\treturn this.allPackages.flatMap<Dependency>(it => {\n\t\t\tfor (const type of ['dependencies', 'devDependencies'] as const) {\n\t\t\t\tconst version = it.packageJson[type]?.[packageName]\n\t\t\t\tif (version) {\n\t\t\t\t\treturn [{ pckg: it, isDev: type === 'devDependencies', version: version, name: packageName }]\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn []\n\t\t})\n\t}\n\n\tpublic async findInstalledDependencies(packageName: string): Promise<{ installed?: Dependency; defined: Dependency }[]> {\n\t\tconst definedDependencies = this.findDefinedDependencies(packageName)\n\n\t\tconst deps: { installed?: Dependency; defined: Dependency }[] = []\n\t\tfor (const defined of definedDependencies) {\n\t\t\tconst packageJsonPath = await this.resolvePackageJson(defined.pckg.dir, packageName)\n\t\t\tif (!packageJsonPath) {\n\t\t\t\tdeps.push({ defined })\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst packageJson = JSON.parse(await this.fs.readFile(packageJsonPath, 'utf-8'))\n\t\t\tdeps.push({ defined, installed: { ...defined, version: packageJson?.version ?? '' } })\n\t\t}\n\t\treturn deps\n\t}\n\n\tprivate async resolvePackageJson(dir: string, packageName: string) {\n\t\twhile (true) {\n\t\t\tconst fullPath = join(dir, 'node_modules', packageName, 'package.json')\n\t\t\tif (await this.fs.pathExists(fullPath)) {\n\t\t\t\treturn fullPath\n\t\t\t}\n\t\t\tif (dir === '/') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tdir = dirname(dir)\n\t\t}\n\t}\n\n\tasync updateEverywhere(updates: Record<string, string>): Promise<Dependency[]> {\n\t\tconst defined = Object.keys(updates).flatMap(it => this.findDefinedDependencies(it))\n\t\tconst byPckg = new Map<Package, Dependency[]>()\n\t\tfor (const it of defined) {\n\t\t\tconst arr = byPckg.get(it.pckg) ?? []\n\t\t\tbyPckg.set(it.pckg, arr)\n\t\t\tarr.push(it)\n\t\t}\n\n\t\tconst updated: Dependency[] = []\n\t\tfor (const [pckg, deps] of byPckg.entries()) {\n\t\t\tconst prod = deps.filter(it => !it.isDev)\n\t\t\tconst dev = deps.filter(it => it.isDev)\n\t\t\tfor (const [isDev, deps] of [[false, prod], [true, dev]] as const) {\n\t\t\t\tif (deps.length === 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tawait this.packageManager.install({\n\t\t\t\t\tpckg,\n\t\t\t\t\tisDev,\n\t\t\t\t\tdependencies: Object.fromEntries(deps.map(it => [it.name, updates[it.name]])),\n\t\t\t\t})\n\t\t\t\tupdated.push(...deps)\n\t\t\t}\n\t\t}\n\t\treturn updated\n\t}\n}\n\n"],"names":["deps"],"mappings":";AAcO,MAAM,iBAAiB;AAAA,EAC7B,YACkB,gBACA,IACD,aACA,UACf;AAJgB,SAAA,iBAAA;AACA,SAAA,KAAA;AACD,SAAA,cAAA;AACA,SAAA,WAAA;AAAA,EAAA;AAAA,EAIjB,IAAI,cAAc;AACjB,WAAO,CAAC,KAAK,aAAa,GAAG,KAAK,QAAQ;AAAA,EAAA;AAAA,EAGpC,wBAAwB,aAAmC;AAC1D,WAAA,KAAK,YAAY,QAAoB,CAAM,OAAA;AACjD,iBAAW,QAAQ,CAAC,gBAAgB,iBAAiB,GAAY;AAChE,cAAM,UAAU,GAAG,YAAY,IAAI,IAAI,WAAW;AAClD,YAAI,SAAS;AACL,iBAAA,CAAC,EAAE,MAAM,IAAI,OAAO,SAAS,mBAAmB,SAAkB,MAAM,aAAa;AAAA,QAAA;AAAA,MAC7F;AAED,aAAO,CAAC;AAAA,IAAA,CACR;AAAA,EAAA;AAAA,EAGF,MAAa,0BAA0B,aAAiF;AACjH,UAAA,sBAAsB,KAAK,wBAAwB,WAAW;AAEpE,UAAM,OAA0D,CAAC;AACjE,eAAW,WAAW,qBAAqB;AAC1C,YAAM,kBAAkB,MAAM,KAAK,mBAAmB,QAAQ,KAAK,KAAK,WAAW;AACnF,UAAI,CAAC,iBAAiB;AAChB,aAAA,KAAK,EAAE,SAAS;AACrB;AAAA,MAAA;AAEK,YAAA,cAAc,KAAK,MAAM,MAAM,KAAK,GAAG,SAAS,iBAAiB,OAAO,CAAC;AAC/E,WAAK,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,SAAS,aAAa,WAAW,GAAG,EAAA,CAAG;AAAA,IAAA;AAE/E,WAAA;AAAA,EAAA;AAAA,EAGR,MAAc,mBAAmB,KAAa,aAAqB;AAClE,WAAO,MAAM;AACZ,YAAM,WAAW,KAAK,KAAK,gBAAgB,aAAa,cAAc;AACtE,UAAI,MAAM,KAAK,GAAG,WAAW,QAAQ,GAAG;AAChC,eAAA;AAAA,MAAA;AAER,UAAI,QAAQ,KAAK;AACT,eAAA;AAAA,MAAA;AAER,YAAM,QAAQ,GAAG;AAAA,IAAA;AAAA,EAClB;AAAA,EAGD,MAAM,iBAAiB,SAAwD;AACxE,UAAA,UAAU,OAAO,KAAK,OAAO,EAAE,QAAQ,CAAM,OAAA,KAAK,wBAAwB,EAAE,CAAC;AAC7E,UAAA,6BAAa,IAA2B;AAC9C,eAAW,MAAM,SAAS;AACzB,YAAM,MAAM,OAAO,IAAI,GAAG,IAAI,KAAK,CAAC;AAC7B,aAAA,IAAI,GAAG,MAAM,GAAG;AACvB,UAAI,KAAK,EAAE;AAAA,IAAA;AAGZ,UAAM,UAAwB,CAAC;AAC/B,eAAW,CAAC,MAAM,IAAI,KAAK,OAAO,WAAW;AAC5C,YAAM,OAAO,KAAK,OAAO,CAAM,OAAA,CAAC,GAAG,KAAK;AACxC,YAAM,MAAM,KAAK,OAAO,CAAA,OAAM,GAAG,KAAK;AACtC,iBAAW,CAAC,OAAOA,KAAI,KAAK,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAY;AAC9DA,YAAAA,MAAK,WAAW,GAAG;AACtB;AAAA,QAAA;AAEK,cAAA,KAAK,eAAe,QAAQ;AAAA,UACjC;AAAA,UACA;AAAA,UACA,cAAc,OAAO,YAAYA,MAAK,IAAI,CAAM,OAAA,CAAC,GAAG,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAAA,QAAA,CAC5E;AACO,gBAAA,KAAK,GAAGA,KAAI;AAAA,MAAA;AAAA,IACrB;AAEM,WAAA;AAAA,EAAA;AAET;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PackageWorkspaceResolver.cjs","sources":["../../../../../packages/cli-common/src/npm/PackageWorkspaceResolver.ts"],"sourcesContent":["import { PackageManager } from './packageManagers/PackageManager'\nimport { Yarn } from './packageManagers/Yarn'\nimport { YarnClassic } from './packageManagers/YarnClassic'\nimport { Pnpm } from './packageManagers/Pnpm'\nimport { Npm } from './packageManagers/Npm'\nimport { PackageJson } from './PackageJson'\nimport { dirname, join } from 'node:path'\nimport { Package } from './Package'\nimport { PackageWorkspace } from './PackageWorkspace'\nimport { FileSystem } from './FileSystem'\n\nexport class PackageWorkspaceResolver {\n\tconstructor(\n\t\tprivate readonly dir: string,\n\t\tprivate fs: FileSystem,\n\t\tprivate packageManagers: PackageManager[],\n\t) {\n\t}\n\n\tpublic async resolve(): Promise<PackageWorkspace> {\n\t\treturn await this.resolveInternal(this.dir)\n\t}\n\n\tpublic async resolveInternal(dir: string, packageJsonFound: boolean = false): Promise<PackageWorkspace> {\n\t\tif (!(await this.fs.pathExists(join(dir, 'package.json')))) {\n\t\t\tif (dir === '/') {\n\t\t\t\tif (packageJsonFound) {\n\t\t\t\t\tthrow `No lockfile found. Please install dependencies using package manager of your choice.`\n\t\t\t\t} else {\n\t\t\t\t\tthrow `package.json not found.`\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn await this.resolveInternal(dirname(dir), packageJsonFound)\n\t\t}\n\n\t\tconst packageJson = JSON.parse(await this.fs.readFile(join(dir, 'package.json'), 'utf-8')) as PackageJson\n\n\t\tconst pm = await this.resolvePackageManager({ dir, packageJson })\n\t\tif (!pm) {\n\t\t\tif (dir === '/') {\n\t\t\t\tthrow `No lockfile found. Please install dependencies using package manager of your choice.`\n\t\t\t}\n\t\t\treturn await this.resolveInternal(dirname(dir), true)\n\t\t}\n\n\t\tconst rootPackage = new Package(dir, true, packageJson)\n\t\tconst workspacePackages = await pm.readWorkspacePackages({ dir, packageJson })\n\n\t\treturn new PackageWorkspace(pm, this.fs, rootPackage, workspacePackages)\n\t}\n\n\tprivate async resolvePackageManager(args: { dir: string; packageJson: PackageJson }): Promise<PackageManager | null> {\n\t\tfor (const pm of this.packageManagers) {\n\t\t\tif (await pm.isActive(args)) {\n\t\t\t\treturn pm\n\t\t\t}\n\t\t}\n\t\treturn null\n\t}\n}\n"],"names":["join","dirname","Package","PackageWorkspace"],"mappings":";;;;;AAWO,MAAM,yBAAyB;AAAA,EACrC,YACkB,KACT,IACA,iBACP;AAHgB,SAAA,MAAA;AACT,SAAA,KAAA;AACA,SAAA,kBAAA;AAAA,EAET;AAAA,EAEA,MAAa,UAAqC;AACjD,WAAO,MAAM,KAAK,gBAAgB,KAAK,GAAG;AAAA,EAC3C;AAAA,EAEA,MAAa,gBAAgB,KAAa,mBAA4B,OAAkC;AACnG,QAAA,CAAE,MAAM,KAAK,GAAG,WAAWA,UAAAA,KAAK,KAAK,cAAc,CAAC,GAAI;AAC3D,UAAI,QAAQ,KAAK;AAChB,YAAI,kBAAkB;AACf,gBAAA;AAAA,QAAA,OACA;AACA,gBAAA;AAAA,QACP;AAAA,MACD;AACA,aAAO,MAAM,KAAK,gBAAgBC,UAAQ,QAAA,GAAG,GAAG,gBAAgB;AAAA,IACjE;AAEA,UAAM,cAAc,KAAK,MAAM,MAAM,KAAK,GAAG,SAASD,UAAAA,KAAK,KAAK,cAAc,GAAG,OAAO,CAAC;AAEzF,UAAM,KAAK,MAAM,KAAK,sBAAsB,EAAE,KAAK,aAAa;AAChE,QAAI,CAAC,IAAI;AACR,UAAI,QAAQ,KAAK;AACV,cAAA;AAAA,MACP;AACA,aAAO,MAAM,KAAK,gBAAgBC,UAAQ,QAAA,GAAG,GAAG,IAAI;AAAA,IACrD;AAEA,UAAM,cAAc,IAAIC,QAAQ,QAAA,KAAK,MAAM,WAAW;AACtD,UAAM,oBAAoB,MAAM,GAAG,sBAAsB,EAAE,KAAK,aAAa;AAE7E,WAAO,IAAIC,iBAAiB,iBAAA,IAAI,KAAK,IAAI,aAAa,iBAAiB;AAAA,EACxE;AAAA,EAEA,MAAc,sBAAsB,MAAiF;AACzG,eAAA,MAAM,KAAK,iBAAiB;AACtC,UAAI,MAAM,GAAG,SAAS,IAAI,GAAG;AACrB,eAAA;AAAA,MACR;AAAA,IACD;AACO,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"PackageWorkspaceResolver.cjs","sources":["../../../../../packages/cli-common/src/npm/PackageWorkspaceResolver.ts"],"sourcesContent":["import { PackageManager } from './packageManagers/PackageManager'\nimport { Yarn } from './packageManagers/Yarn'\nimport { YarnClassic } from './packageManagers/YarnClassic'\nimport { Pnpm } from './packageManagers/Pnpm'\nimport { Npm } from './packageManagers/Npm'\nimport { PackageJson } from './PackageJson'\nimport { dirname, join } from 'node:path'\nimport { Package } from './Package'\nimport { PackageWorkspace } from './PackageWorkspace'\nimport { FileSystem } from './FileSystem'\n\nexport class PackageWorkspaceResolver {\n\tconstructor(\n\t\tprivate readonly dir: string,\n\t\tprivate fs: FileSystem,\n\t\tprivate packageManagers: PackageManager[],\n\t) {\n\t}\n\n\tpublic async resolve(): Promise<PackageWorkspace> {\n\t\treturn await this.resolveInternal(this.dir)\n\t}\n\n\tpublic async resolveInternal(dir: string, packageJsonFound: boolean = false): Promise<PackageWorkspace> {\n\t\tif (!(await this.fs.pathExists(join(dir, 'package.json')))) {\n\t\t\tif (dir === '/') {\n\t\t\t\tif (packageJsonFound) {\n\t\t\t\t\tthrow `No lockfile found. Please install dependencies using package manager of your choice.`\n\t\t\t\t} else {\n\t\t\t\t\tthrow `package.json not found.`\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn await this.resolveInternal(dirname(dir), packageJsonFound)\n\t\t}\n\n\t\tconst packageJson = JSON.parse(await this.fs.readFile(join(dir, 'package.json'), 'utf-8')) as PackageJson\n\n\t\tconst pm = await this.resolvePackageManager({ dir, packageJson })\n\t\tif (!pm) {\n\t\t\tif (dir === '/') {\n\t\t\t\tthrow `No lockfile found. Please install dependencies using package manager of your choice.`\n\t\t\t}\n\t\t\treturn await this.resolveInternal(dirname(dir), true)\n\t\t}\n\n\t\tconst rootPackage = new Package(dir, true, packageJson)\n\t\tconst workspacePackages = await pm.readWorkspacePackages({ dir, packageJson })\n\n\t\treturn new PackageWorkspace(pm, this.fs, rootPackage, workspacePackages)\n\t}\n\n\tprivate async resolvePackageManager(args: { dir: string; packageJson: PackageJson }): Promise<PackageManager | null> {\n\t\tfor (const pm of this.packageManagers) {\n\t\t\tif (await pm.isActive(args)) {\n\t\t\t\treturn pm\n\t\t\t}\n\t\t}\n\t\treturn null\n\t}\n}\n"],"names":["join","dirname","Package","PackageWorkspace"],"mappings":";;;;;AAWO,MAAM,yBAAyB;AAAA,EACrC,YACkB,KACT,IACA,iBACP;AAHgB,SAAA,MAAA;AACT,SAAA,KAAA;AACA,SAAA,kBAAA;AAAA,EAAA;AAAA,EAIT,MAAa,UAAqC;AACjD,WAAO,MAAM,KAAK,gBAAgB,KAAK,GAAG;AAAA,EAAA;AAAA,EAG3C,MAAa,gBAAgB,KAAa,mBAA4B,OAAkC;AACnG,QAAA,CAAE,MAAM,KAAK,GAAG,WAAWA,UAAAA,KAAK,KAAK,cAAc,CAAC,GAAI;AAC3D,UAAI,QAAQ,KAAK;AAChB,YAAI,kBAAkB;AACf,gBAAA;AAAA,QAAA,OACA;AACA,gBAAA;AAAA,QAAA;AAAA,MACP;AAED,aAAO,MAAM,KAAK,gBAAgBC,UAAQ,QAAA,GAAG,GAAG,gBAAgB;AAAA,IAAA;AAGjE,UAAM,cAAc,KAAK,MAAM,MAAM,KAAK,GAAG,SAASD,UAAA,KAAK,KAAK,cAAc,GAAG,OAAO,CAAC;AAEzF,UAAM,KAAK,MAAM,KAAK,sBAAsB,EAAE,KAAK,aAAa;AAChE,QAAI,CAAC,IAAI;AACR,UAAI,QAAQ,KAAK;AACV,cAAA;AAAA,MAAA;AAEP,aAAO,MAAM,KAAK,gBAAgBC,UAAQ,QAAA,GAAG,GAAG,IAAI;AAAA,IAAA;AAGrD,UAAM,cAAc,IAAIC,QAAAA,QAAQ,KAAK,MAAM,WAAW;AACtD,UAAM,oBAAoB,MAAM,GAAG,sBAAsB,EAAE,KAAK,aAAa;AAE7E,WAAO,IAAIC,iBAAiB,iBAAA,IAAI,KAAK,IAAI,aAAa,iBAAiB;AAAA,EAAA;AAAA,EAGxE,MAAc,sBAAsB,MAAiF;AACzG,eAAA,MAAM,KAAK,iBAAiB;AACtC,UAAI,MAAM,GAAG,SAAS,IAAI,GAAG;AACrB,eAAA;AAAA,MAAA;AAAA,IACR;AAEM,WAAA;AAAA,EAAA;AAET;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PackageWorkspaceResolver.js","sources":["../../../../../packages/cli-common/src/npm/PackageWorkspaceResolver.ts"],"sourcesContent":["import { PackageManager } from './packageManagers/PackageManager'\nimport { Yarn } from './packageManagers/Yarn'\nimport { YarnClassic } from './packageManagers/YarnClassic'\nimport { Pnpm } from './packageManagers/Pnpm'\nimport { Npm } from './packageManagers/Npm'\nimport { PackageJson } from './PackageJson'\nimport { dirname, join } from 'node:path'\nimport { Package } from './Package'\nimport { PackageWorkspace } from './PackageWorkspace'\nimport { FileSystem } from './FileSystem'\n\nexport class PackageWorkspaceResolver {\n\tconstructor(\n\t\tprivate readonly dir: string,\n\t\tprivate fs: FileSystem,\n\t\tprivate packageManagers: PackageManager[],\n\t) {\n\t}\n\n\tpublic async resolve(): Promise<PackageWorkspace> {\n\t\treturn await this.resolveInternal(this.dir)\n\t}\n\n\tpublic async resolveInternal(dir: string, packageJsonFound: boolean = false): Promise<PackageWorkspace> {\n\t\tif (!(await this.fs.pathExists(join(dir, 'package.json')))) {\n\t\t\tif (dir === '/') {\n\t\t\t\tif (packageJsonFound) {\n\t\t\t\t\tthrow `No lockfile found. Please install dependencies using package manager of your choice.`\n\t\t\t\t} else {\n\t\t\t\t\tthrow `package.json not found.`\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn await this.resolveInternal(dirname(dir), packageJsonFound)\n\t\t}\n\n\t\tconst packageJson = JSON.parse(await this.fs.readFile(join(dir, 'package.json'), 'utf-8')) as PackageJson\n\n\t\tconst pm = await this.resolvePackageManager({ dir, packageJson })\n\t\tif (!pm) {\n\t\t\tif (dir === '/') {\n\t\t\t\tthrow `No lockfile found. Please install dependencies using package manager of your choice.`\n\t\t\t}\n\t\t\treturn await this.resolveInternal(dirname(dir), true)\n\t\t}\n\n\t\tconst rootPackage = new Package(dir, true, packageJson)\n\t\tconst workspacePackages = await pm.readWorkspacePackages({ dir, packageJson })\n\n\t\treturn new PackageWorkspace(pm, this.fs, rootPackage, workspacePackages)\n\t}\n\n\tprivate async resolvePackageManager(args: { dir: string; packageJson: PackageJson }): Promise<PackageManager | null> {\n\t\tfor (const pm of this.packageManagers) {\n\t\t\tif (await pm.isActive(args)) {\n\t\t\t\treturn pm\n\t\t\t}\n\t\t}\n\t\treturn null\n\t}\n}\n"],"names":[],"mappings":";;;AAWO,MAAM,yBAAyB;AAAA,EACrC,YACkB,KACT,IACA,iBACP;AAHgB,SAAA,MAAA;AACT,SAAA,KAAA;AACA,SAAA,kBAAA;AAAA,EAET;AAAA,EAEA,MAAa,UAAqC;AACjD,WAAO,MAAM,KAAK,gBAAgB,KAAK,GAAG;AAAA,EAC3C;AAAA,EAEA,MAAa,gBAAgB,KAAa,mBAA4B,OAAkC;AACnG,QAAA,CAAE,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,cAAc,CAAC,GAAI;AAC3D,UAAI,QAAQ,KAAK;AAChB,YAAI,kBAAkB;AACf,gBAAA;AAAA,QAAA,OACA;AACA,gBAAA;AAAA,QACP;AAAA,MACD;AACA,aAAO,MAAM,KAAK,gBAAgB,QAAQ,GAAG,GAAG,gBAAgB;AAAA,IACjE;AAEA,UAAM,cAAc,KAAK,MAAM,MAAM,KAAK,GAAG,SAAS,KAAK,KAAK,cAAc,GAAG,OAAO,CAAC;AAEzF,UAAM,KAAK,MAAM,KAAK,sBAAsB,EAAE,KAAK,aAAa;AAChE,QAAI,CAAC,IAAI;AACR,UAAI,QAAQ,KAAK;AACV,cAAA;AAAA,MACP;AACA,aAAO,MAAM,KAAK,gBAAgB,QAAQ,GAAG,GAAG,IAAI;AAAA,IACrD;AAEA,UAAM,cAAc,IAAI,QAAQ,KAAK,MAAM,WAAW;AACtD,UAAM,oBAAoB,MAAM,GAAG,sBAAsB,EAAE,KAAK,aAAa;AAE7E,WAAO,IAAI,iBAAiB,IAAI,KAAK,IAAI,aAAa,iBAAiB;AAAA,EACxE;AAAA,EAEA,MAAc,sBAAsB,MAAiF;AACzG,eAAA,MAAM,KAAK,iBAAiB;AACtC,UAAI,MAAM,GAAG,SAAS,IAAI,GAAG;AACrB,eAAA;AAAA,MACR;AAAA,IACD;AACO,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"PackageWorkspaceResolver.js","sources":["../../../../../packages/cli-common/src/npm/PackageWorkspaceResolver.ts"],"sourcesContent":["import { PackageManager } from './packageManagers/PackageManager'\nimport { Yarn } from './packageManagers/Yarn'\nimport { YarnClassic } from './packageManagers/YarnClassic'\nimport { Pnpm } from './packageManagers/Pnpm'\nimport { Npm } from './packageManagers/Npm'\nimport { PackageJson } from './PackageJson'\nimport { dirname, join } from 'node:path'\nimport { Package } from './Package'\nimport { PackageWorkspace } from './PackageWorkspace'\nimport { FileSystem } from './FileSystem'\n\nexport class PackageWorkspaceResolver {\n\tconstructor(\n\t\tprivate readonly dir: string,\n\t\tprivate fs: FileSystem,\n\t\tprivate packageManagers: PackageManager[],\n\t) {\n\t}\n\n\tpublic async resolve(): Promise<PackageWorkspace> {\n\t\treturn await this.resolveInternal(this.dir)\n\t}\n\n\tpublic async resolveInternal(dir: string, packageJsonFound: boolean = false): Promise<PackageWorkspace> {\n\t\tif (!(await this.fs.pathExists(join(dir, 'package.json')))) {\n\t\t\tif (dir === '/') {\n\t\t\t\tif (packageJsonFound) {\n\t\t\t\t\tthrow `No lockfile found. Please install dependencies using package manager of your choice.`\n\t\t\t\t} else {\n\t\t\t\t\tthrow `package.json not found.`\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn await this.resolveInternal(dirname(dir), packageJsonFound)\n\t\t}\n\n\t\tconst packageJson = JSON.parse(await this.fs.readFile(join(dir, 'package.json'), 'utf-8')) as PackageJson\n\n\t\tconst pm = await this.resolvePackageManager({ dir, packageJson })\n\t\tif (!pm) {\n\t\t\tif (dir === '/') {\n\t\t\t\tthrow `No lockfile found. Please install dependencies using package manager of your choice.`\n\t\t\t}\n\t\t\treturn await this.resolveInternal(dirname(dir), true)\n\t\t}\n\n\t\tconst rootPackage = new Package(dir, true, packageJson)\n\t\tconst workspacePackages = await pm.readWorkspacePackages({ dir, packageJson })\n\n\t\treturn new PackageWorkspace(pm, this.fs, rootPackage, workspacePackages)\n\t}\n\n\tprivate async resolvePackageManager(args: { dir: string; packageJson: PackageJson }): Promise<PackageManager | null> {\n\t\tfor (const pm of this.packageManagers) {\n\t\t\tif (await pm.isActive(args)) {\n\t\t\t\treturn pm\n\t\t\t}\n\t\t}\n\t\treturn null\n\t}\n}\n"],"names":[],"mappings":";;;AAWO,MAAM,yBAAyB;AAAA,EACrC,YACkB,KACT,IACA,iBACP;AAHgB,SAAA,MAAA;AACT,SAAA,KAAA;AACA,SAAA,kBAAA;AAAA,EAAA;AAAA,EAIT,MAAa,UAAqC;AACjD,WAAO,MAAM,KAAK,gBAAgB,KAAK,GAAG;AAAA,EAAA;AAAA,EAG3C,MAAa,gBAAgB,KAAa,mBAA4B,OAAkC;AACnG,QAAA,CAAE,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,cAAc,CAAC,GAAI;AAC3D,UAAI,QAAQ,KAAK;AAChB,YAAI,kBAAkB;AACf,gBAAA;AAAA,QAAA,OACA;AACA,gBAAA;AAAA,QAAA;AAAA,MACP;AAED,aAAO,MAAM,KAAK,gBAAgB,QAAQ,GAAG,GAAG,gBAAgB;AAAA,IAAA;AAGjE,UAAM,cAAc,KAAK,MAAM,MAAM,KAAK,GAAG,SAAS,KAAK,KAAK,cAAc,GAAG,OAAO,CAAC;AAEzF,UAAM,KAAK,MAAM,KAAK,sBAAsB,EAAE,KAAK,aAAa;AAChE,QAAI,CAAC,IAAI;AACR,UAAI,QAAQ,KAAK;AACV,cAAA;AAAA,MAAA;AAEP,aAAO,MAAM,KAAK,gBAAgB,QAAQ,GAAG,GAAG,IAAI;AAAA,IAAA;AAGrD,UAAM,cAAc,IAAI,QAAQ,KAAK,MAAM,WAAW;AACtD,UAAM,oBAAoB,MAAM,GAAG,sBAAsB,EAAE,KAAK,aAAa;AAE7E,WAAO,IAAI,iBAAiB,IAAI,KAAK,IAAI,aAAa,iBAAiB;AAAA,EAAA;AAAA,EAGxE,MAAc,sBAAsB,MAAiF;AACzG,eAAA,MAAM,KAAK,iBAAiB;AACtC,UAAI,MAAM,GAAG,SAAS,IAAI,GAAG;AACrB,eAAA;AAAA,MAAA;AAAA,IACR;AAEM,WAAA;AAAA,EAAA;AAET;"}