@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
@@ -1 +1 @@
1
- {"version":3,"file":"Npm.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Npm.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Npm implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('npm', [\n\t\t\t'install',\n\t\t\tisDev ? '--save-dev' : '--save',\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'package-lock.json'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":["PackageManagerHelpers","join"],"mappings":";;;;AAQO,MAAM,IAA8B;AAAA,EAC1C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,OAAO;AAAA,MACvD;AAAA,MACA,QAAQ,eAAe;AAAA,MACvB,GAAGA,sBAAsB,sBAAA,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAWC,UAAAA,KAAK,KAAK,mBAAmB,CAAC;AAAA,EAC/D;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAMD,4CAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAYA,sBAAA,sBAAsB,6BAA6B,EAAE,aAAa;AAAA,IAAA,CAC9E;AAAA,EACF;AACD;;"}
1
+ {"version":3,"file":"Npm.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Npm.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Npm implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('npm', [\n\t\t\t'install',\n\t\t\tisDev ? '--save-dev' : '--save',\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'package-lock.json'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":["PackageManagerHelpers","join"],"mappings":";;;;AAQO,MAAM,IAA8B;AAAA,EAC1C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,OAAO;AAAA,MACvD;AAAA,MACA,QAAQ,eAAe;AAAA,MACvB,GAAGA,sBAAAA,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EAAA;AAAA,EAGP,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAWC,UAAAA,KAAK,KAAK,mBAAmB,CAAC;AAAA,EAAA;AAAA,EAG/D,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAMD,4CAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAYA,sBAAA,sBAAsB,6BAA6B,EAAE,YAAa,CAAA;AAAA,IAAA,CAC9E;AAAA,EAAA;AAEH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Npm.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Npm.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Npm implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('npm', [\n\t\t\t'install',\n\t\t\tisDev ? '--save-dev' : '--save',\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'package-lock.json'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,IAA8B;AAAA,EAC1C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,OAAO;AAAA,MACvD;AAAA,MACA,QAAQ,eAAe;AAAA,MACvB,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,mBAAmB,CAAC;AAAA,EAC/D;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,sBAAsB,6BAA6B,EAAE,aAAa;AAAA,IAAA,CAC9E;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"Npm.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Npm.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Npm implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('npm', [\n\t\t\t'install',\n\t\t\tisDev ? '--save-dev' : '--save',\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'package-lock.json'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,IAA8B;AAAA,EAC1C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,OAAO;AAAA,MACvD;AAAA,MACA,QAAQ,eAAe;AAAA,MACvB,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EAAA;AAAA,EAGP,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,mBAAmB,CAAC;AAAA,EAAA;AAAA,EAG/D,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,sBAAsB,6BAA6B,EAAE,YAAa,CAAA;AAAA,IAAA,CAC9E;AAAA,EAAA;AAEH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PackageManagerHelpers.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/PackageManagerHelpers.ts"],"sourcesContent":["import { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { FileSystem } from '../FileSystem'\n\nexport class PackageManagerHelpers {\n\tstatic async readWorkspacePackages({ fs, dir, workspaces }: {\n\t\tfs: FileSystem\n\t\tdir: string\n\t\tworkspaces: string[]\n\t}): Promise<Package[]> {\n\t\tconst dirs = await fs.listDirectories(dir, workspaces)\n\n\t\tconst packageJson = await Promise.all(dirs.map(async it => {\n\t\t\tconst packageJsonPath = join(dir, it, 'package.json')\n\t\t\tif (!(await fs.pathExists(packageJsonPath))) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tconst packageJson: PackageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'))\n\t\t\treturn [packageJson, it] as const\n\t\t}))\n\n\t\treturn packageJson.filter(<T>(it: T | null): it is T => it !== null).map(([packageJson, subDir]) => new Package(join(dir, subDir), false, packageJson))\n\t}\n\n\tstatic getWorkspacesFromPackageJson({ packageJson }: { packageJson: PackageJson }): string[] {\n\t\tif (!packageJson.workspaces) {\n\t\t\treturn []\n\t\t}\n\t\tif (Array.isArray(packageJson.workspaces)) {\n\t\t\treturn packageJson.workspaces\n\t\t}\n\t\treturn [...packageJson.workspaces?.packages ?? [], ...packageJson.workspaces?.nohoist ?? []]\n\t}\n\n\tstatic formatPackagesToInstall(packages: Record<string, string>): string[] {\n\t\treturn Object.entries(packages).map(([name, version]) => `${name}@${version}`)\n\t}\n}\n"],"names":["join","packageJson","Package"],"mappings":";;;;AAKO,MAAM,sBAAsB;AAAA,EAClC,aAAa,sBAAsB,EAAE,IAAI,KAAK,cAIvB;AACtB,UAAM,OAAO,MAAM,GAAG,gBAAgB,KAAK,UAAU;AAErD,UAAM,cAAc,MAAM,QAAQ,IAAI,KAAK,IAAI,OAAM,OAAM;AAC1D,YAAM,kBAAkBA,UAAA,KAAK,KAAK,IAAI,cAAc;AACpD,UAAI,CAAE,MAAM,GAAG,WAAW,eAAe,GAAI;AACrC,eAAA;AAAA,MACR;AACMC,YAAAA,eAA2B,KAAK,MAAM,MAAM,GAAG,SAAS,iBAAiB,OAAO,CAAC;AAChF,aAAA,CAACA,cAAa,EAAE;AAAA,IACvB,CAAA,CAAC;AAEK,WAAA,YAAY,OAAO,CAAI,OAA0B,OAAO,IAAI,EAAE,IAAI,CAAC,CAACA,cAAa,MAAM,MAAM,IAAIC,QAAQ,QAAAF,eAAK,KAAK,MAAM,GAAG,OAAOC,YAAW,CAAC;AAAA,EACvJ;AAAA,EAEA,OAAO,6BAA6B,EAAE,eAAuD;AACxF,QAAA,CAAC,YAAY,YAAY;AAC5B,aAAO;IACR;AACA,QAAI,MAAM,QAAQ,YAAY,UAAU,GAAG;AAC1C,aAAO,YAAY;AAAA,IACpB;AACA,WAAO,CAAC,GAAG,YAAY,YAAY,YAAY,CAAA,GAAI,GAAG,YAAY,YAAY,WAAW,CAAA,CAAE;AAAA,EAC5F;AAAA,EAEA,OAAO,wBAAwB,UAA4C;AAC1E,WAAO,OAAO,QAAQ,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM,GAAG,IAAI,IAAI,OAAO,EAAE;AAAA,EAC9E;AACD;;"}
1
+ {"version":3,"file":"PackageManagerHelpers.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/PackageManagerHelpers.ts"],"sourcesContent":["import { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { FileSystem } from '../FileSystem'\n\nexport class PackageManagerHelpers {\n\tstatic async readWorkspacePackages({ fs, dir, workspaces }: {\n\t\tfs: FileSystem\n\t\tdir: string\n\t\tworkspaces: string[]\n\t}): Promise<Package[]> {\n\t\tconst dirs = await fs.listDirectories(dir, workspaces)\n\n\t\tconst packageJson = await Promise.all(dirs.map(async it => {\n\t\t\tconst packageJsonPath = join(dir, it, 'package.json')\n\t\t\tif (!(await fs.pathExists(packageJsonPath))) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tconst packageJson: PackageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'))\n\t\t\treturn [packageJson, it] as const\n\t\t}))\n\n\t\treturn packageJson.filter(<T>(it: T | null): it is T => it !== null).map(([packageJson, subDir]) => new Package(join(dir, subDir), false, packageJson))\n\t}\n\n\tstatic getWorkspacesFromPackageJson({ packageJson }: { packageJson: PackageJson }): string[] {\n\t\tif (!packageJson.workspaces) {\n\t\t\treturn []\n\t\t}\n\t\tif (Array.isArray(packageJson.workspaces)) {\n\t\t\treturn packageJson.workspaces\n\t\t}\n\t\treturn [...packageJson.workspaces?.packages ?? [], ...packageJson.workspaces?.nohoist ?? []]\n\t}\n\n\tstatic formatPackagesToInstall(packages: Record<string, string>): string[] {\n\t\treturn Object.entries(packages).map(([name, version]) => `${name}@${version}`)\n\t}\n}\n"],"names":["join","packageJson","Package"],"mappings":";;;;AAKO,MAAM,sBAAsB;AAAA,EAClC,aAAa,sBAAsB,EAAE,IAAI,KAAK,cAIvB;AACtB,UAAM,OAAO,MAAM,GAAG,gBAAgB,KAAK,UAAU;AAErD,UAAM,cAAc,MAAM,QAAQ,IAAI,KAAK,IAAI,OAAM,OAAM;AAC1D,YAAM,kBAAkBA,UAAA,KAAK,KAAK,IAAI,cAAc;AACpD,UAAI,CAAE,MAAM,GAAG,WAAW,eAAe,GAAI;AACrC,eAAA;AAAA,MAAA;AAEFC,YAAAA,eAA2B,KAAK,MAAM,MAAM,GAAG,SAAS,iBAAiB,OAAO,CAAC;AAChF,aAAA,CAACA,cAAa,EAAE;AAAA,IAAA,CACvB,CAAC;AAEK,WAAA,YAAY,OAAO,CAAI,OAA0B,OAAO,IAAI,EAAE,IAAI,CAAC,CAACA,cAAa,MAAM,MAAM,IAAIC,QAAQ,QAAAF,eAAK,KAAK,MAAM,GAAG,OAAOC,YAAW,CAAC;AAAA,EAAA;AAAA,EAGvJ,OAAO,6BAA6B,EAAE,eAAuD;AACxF,QAAA,CAAC,YAAY,YAAY;AAC5B,aAAO,CAAC;AAAA,IAAA;AAET,QAAI,MAAM,QAAQ,YAAY,UAAU,GAAG;AAC1C,aAAO,YAAY;AAAA,IAAA;AAEpB,WAAO,CAAC,GAAG,YAAY,YAAY,YAAY,IAAI,GAAG,YAAY,YAAY,WAAW,EAAE;AAAA,EAAA;AAAA,EAG5F,OAAO,wBAAwB,UAA4C;AAC1E,WAAO,OAAO,QAAQ,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM,GAAG,IAAI,IAAI,OAAO,EAAE;AAAA,EAAA;AAE/E;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PackageManagerHelpers.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/PackageManagerHelpers.ts"],"sourcesContent":["import { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { FileSystem } from '../FileSystem'\n\nexport class PackageManagerHelpers {\n\tstatic async readWorkspacePackages({ fs, dir, workspaces }: {\n\t\tfs: FileSystem\n\t\tdir: string\n\t\tworkspaces: string[]\n\t}): Promise<Package[]> {\n\t\tconst dirs = await fs.listDirectories(dir, workspaces)\n\n\t\tconst packageJson = await Promise.all(dirs.map(async it => {\n\t\t\tconst packageJsonPath = join(dir, it, 'package.json')\n\t\t\tif (!(await fs.pathExists(packageJsonPath))) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tconst packageJson: PackageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'))\n\t\t\treturn [packageJson, it] as const\n\t\t}))\n\n\t\treturn packageJson.filter(<T>(it: T | null): it is T => it !== null).map(([packageJson, subDir]) => new Package(join(dir, subDir), false, packageJson))\n\t}\n\n\tstatic getWorkspacesFromPackageJson({ packageJson }: { packageJson: PackageJson }): string[] {\n\t\tif (!packageJson.workspaces) {\n\t\t\treturn []\n\t\t}\n\t\tif (Array.isArray(packageJson.workspaces)) {\n\t\t\treturn packageJson.workspaces\n\t\t}\n\t\treturn [...packageJson.workspaces?.packages ?? [], ...packageJson.workspaces?.nohoist ?? []]\n\t}\n\n\tstatic formatPackagesToInstall(packages: Record<string, string>): string[] {\n\t\treturn Object.entries(packages).map(([name, version]) => `${name}@${version}`)\n\t}\n}\n"],"names":["packageJson"],"mappings":";;AAKO,MAAM,sBAAsB;AAAA,EAClC,aAAa,sBAAsB,EAAE,IAAI,KAAK,cAIvB;AACtB,UAAM,OAAO,MAAM,GAAG,gBAAgB,KAAK,UAAU;AAErD,UAAM,cAAc,MAAM,QAAQ,IAAI,KAAK,IAAI,OAAM,OAAM;AAC1D,YAAM,kBAAkB,KAAK,KAAK,IAAI,cAAc;AACpD,UAAI,CAAE,MAAM,GAAG,WAAW,eAAe,GAAI;AACrC,eAAA;AAAA,MACR;AACMA,YAAAA,eAA2B,KAAK,MAAM,MAAM,GAAG,SAAS,iBAAiB,OAAO,CAAC;AAChF,aAAA,CAACA,cAAa,EAAE;AAAA,IACvB,CAAA,CAAC;AAEK,WAAA,YAAY,OAAO,CAAI,OAA0B,OAAO,IAAI,EAAE,IAAI,CAAC,CAACA,cAAa,MAAM,MAAM,IAAI,QAAQ,KAAK,KAAK,MAAM,GAAG,OAAOA,YAAW,CAAC;AAAA,EACvJ;AAAA,EAEA,OAAO,6BAA6B,EAAE,eAAuD;AACxF,QAAA,CAAC,YAAY,YAAY;AAC5B,aAAO;IACR;AACA,QAAI,MAAM,QAAQ,YAAY,UAAU,GAAG;AAC1C,aAAO,YAAY;AAAA,IACpB;AACA,WAAO,CAAC,GAAG,YAAY,YAAY,YAAY,CAAA,GAAI,GAAG,YAAY,YAAY,WAAW,CAAA,CAAE;AAAA,EAC5F;AAAA,EAEA,OAAO,wBAAwB,UAA4C;AAC1E,WAAO,OAAO,QAAQ,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM,GAAG,IAAI,IAAI,OAAO,EAAE;AAAA,EAC9E;AACD;"}
1
+ {"version":3,"file":"PackageManagerHelpers.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/PackageManagerHelpers.ts"],"sourcesContent":["import { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { FileSystem } from '../FileSystem'\n\nexport class PackageManagerHelpers {\n\tstatic async readWorkspacePackages({ fs, dir, workspaces }: {\n\t\tfs: FileSystem\n\t\tdir: string\n\t\tworkspaces: string[]\n\t}): Promise<Package[]> {\n\t\tconst dirs = await fs.listDirectories(dir, workspaces)\n\n\t\tconst packageJson = await Promise.all(dirs.map(async it => {\n\t\t\tconst packageJsonPath = join(dir, it, 'package.json')\n\t\t\tif (!(await fs.pathExists(packageJsonPath))) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tconst packageJson: PackageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'))\n\t\t\treturn [packageJson, it] as const\n\t\t}))\n\n\t\treturn packageJson.filter(<T>(it: T | null): it is T => it !== null).map(([packageJson, subDir]) => new Package(join(dir, subDir), false, packageJson))\n\t}\n\n\tstatic getWorkspacesFromPackageJson({ packageJson }: { packageJson: PackageJson }): string[] {\n\t\tif (!packageJson.workspaces) {\n\t\t\treturn []\n\t\t}\n\t\tif (Array.isArray(packageJson.workspaces)) {\n\t\t\treturn packageJson.workspaces\n\t\t}\n\t\treturn [...packageJson.workspaces?.packages ?? [], ...packageJson.workspaces?.nohoist ?? []]\n\t}\n\n\tstatic formatPackagesToInstall(packages: Record<string, string>): string[] {\n\t\treturn Object.entries(packages).map(([name, version]) => `${name}@${version}`)\n\t}\n}\n"],"names":["packageJson"],"mappings":";;AAKO,MAAM,sBAAsB;AAAA,EAClC,aAAa,sBAAsB,EAAE,IAAI,KAAK,cAIvB;AACtB,UAAM,OAAO,MAAM,GAAG,gBAAgB,KAAK,UAAU;AAErD,UAAM,cAAc,MAAM,QAAQ,IAAI,KAAK,IAAI,OAAM,OAAM;AAC1D,YAAM,kBAAkB,KAAK,KAAK,IAAI,cAAc;AACpD,UAAI,CAAE,MAAM,GAAG,WAAW,eAAe,GAAI;AACrC,eAAA;AAAA,MAAA;AAEFA,YAAAA,eAA2B,KAAK,MAAM,MAAM,GAAG,SAAS,iBAAiB,OAAO,CAAC;AAChF,aAAA,CAACA,cAAa,EAAE;AAAA,IAAA,CACvB,CAAC;AAEK,WAAA,YAAY,OAAO,CAAI,OAA0B,OAAO,IAAI,EAAE,IAAI,CAAC,CAACA,cAAa,MAAM,MAAM,IAAI,QAAQ,KAAK,KAAK,MAAM,GAAG,OAAOA,YAAW,CAAC;AAAA,EAAA;AAAA,EAGvJ,OAAO,6BAA6B,EAAE,eAAuD;AACxF,QAAA,CAAC,YAAY,YAAY;AAC5B,aAAO,CAAC;AAAA,IAAA;AAET,QAAI,MAAM,QAAQ,YAAY,UAAU,GAAG;AAC1C,aAAO,YAAY;AAAA,IAAA;AAEpB,WAAO,CAAC,GAAG,YAAY,YAAY,YAAY,IAAI,GAAG,YAAY,YAAY,WAAW,EAAE;AAAA,EAAA;AAAA,EAG5F,OAAO,wBAAwB,UAA4C;AAC1E,WAAO,OAAO,QAAQ,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM,GAAG,IAAI,IAAI,OAAO,EAAE;AAAA,EAAA;AAE/E;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pnpm.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Pnpm.ts"],"sourcesContent":["import { FileSystem } from '../FileSystem'\nimport { join } from 'node:path'\n\nimport { PackageJson } from '../PackageJson'\nimport { PackageManager } from './PackageManager'\nimport { Package } from '../Package'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Pnpm implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('pnpm', [\n\t\t\t'add',\n\t\t\tisDev ? '--save-dev' : '--save',\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'pnpm-lock.yaml'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\tlet pnpmWorkspaces: any\n\t\tif (await this.fs.pathExists(join(dir, 'pnpm-workspace.yaml'))) {\n\t\t\tpnpmWorkspaces = JSON.parse(await this.fs.readFile(join(dir, 'pnpm-workspace.yaml'), 'utf-8'))\n\t\t}\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: pnpmWorkspaces.packages,\n\t\t})\n\t}\n}\n"],"names":["PackageManagerHelpers","join"],"mappings":";;;;AASO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,eAAe;AAAA,MACvB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAGA,sBAAsB,sBAAA,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAWC,UAAAA,KAAK,KAAK,gBAAgB,CAAC;AAAA,EAC5D;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AAC5G,QAAA;AACA,QAAA,MAAM,KAAK,GAAG,WAAWA,UAAAA,KAAK,KAAK,qBAAqB,CAAC,GAAG;AAC9C,uBAAA,KAAK,MAAM,MAAM,KAAK,GAAG,SAASA,UAAAA,KAAK,KAAK,qBAAqB,GAAG,OAAO,CAAC;AAAA,IAC9F;AACO,WAAA,MAAMD,4CAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,eAAe;AAAA,IAAA,CAC3B;AAAA,EACF;AACD;;"}
1
+ {"version":3,"file":"Pnpm.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Pnpm.ts"],"sourcesContent":["import { FileSystem } from '../FileSystem'\nimport { join } from 'node:path'\n\nimport { PackageJson } from '../PackageJson'\nimport { PackageManager } from './PackageManager'\nimport { Package } from '../Package'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Pnpm implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('pnpm', [\n\t\t\t'add',\n\t\t\tisDev ? '--save-dev' : '--save',\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'pnpm-lock.yaml'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\tlet pnpmWorkspaces: any\n\t\tif (await this.fs.pathExists(join(dir, 'pnpm-workspace.yaml'))) {\n\t\t\tpnpmWorkspaces = JSON.parse(await this.fs.readFile(join(dir, 'pnpm-workspace.yaml'), 'utf-8'))\n\t\t}\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: pnpmWorkspaces.packages,\n\t\t})\n\t}\n}\n"],"names":["PackageManagerHelpers","join"],"mappings":";;;;AASO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,eAAe;AAAA,MACvB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAGA,sBAAAA,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EAAA;AAAA,EAGP,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAWC,UAAAA,KAAK,KAAK,gBAAgB,CAAC;AAAA,EAAA;AAAA,EAG5D,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AAC5G,QAAA;AACA,QAAA,MAAM,KAAK,GAAG,WAAWA,UAAAA,KAAK,KAAK,qBAAqB,CAAC,GAAG;AAC9C,uBAAA,KAAK,MAAM,MAAM,KAAK,GAAG,SAASA,UAAAA,KAAK,KAAK,qBAAqB,GAAG,OAAO,CAAC;AAAA,IAAA;AAEvF,WAAA,MAAMD,4CAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,eAAe;AAAA,IAAA,CAC3B;AAAA,EAAA;AAEH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pnpm.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Pnpm.ts"],"sourcesContent":["import { FileSystem } from '../FileSystem'\nimport { join } from 'node:path'\n\nimport { PackageJson } from '../PackageJson'\nimport { PackageManager } from './PackageManager'\nimport { Package } from '../Package'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Pnpm implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('pnpm', [\n\t\t\t'add',\n\t\t\tisDev ? '--save-dev' : '--save',\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'pnpm-lock.yaml'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\tlet pnpmWorkspaces: any\n\t\tif (await this.fs.pathExists(join(dir, 'pnpm-workspace.yaml'))) {\n\t\t\tpnpmWorkspaces = JSON.parse(await this.fs.readFile(join(dir, 'pnpm-workspace.yaml'), 'utf-8'))\n\t\t}\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: pnpmWorkspaces.packages,\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AASO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,eAAe;AAAA,MACvB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,gBAAgB,CAAC;AAAA,EAC5D;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AAC5G,QAAA;AACA,QAAA,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,qBAAqB,CAAC,GAAG;AAC9C,uBAAA,KAAK,MAAM,MAAM,KAAK,GAAG,SAAS,KAAK,KAAK,qBAAqB,GAAG,OAAO,CAAC;AAAA,IAC9F;AACO,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,eAAe;AAAA,IAAA,CAC3B;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"Pnpm.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Pnpm.ts"],"sourcesContent":["import { FileSystem } from '../FileSystem'\nimport { join } from 'node:path'\n\nimport { PackageJson } from '../PackageJson'\nimport { PackageManager } from './PackageManager'\nimport { Package } from '../Package'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Pnpm implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('pnpm', [\n\t\t\t'add',\n\t\t\tisDev ? '--save-dev' : '--save',\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'pnpm-lock.yaml'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\tlet pnpmWorkspaces: any\n\t\tif (await this.fs.pathExists(join(dir, 'pnpm-workspace.yaml'))) {\n\t\t\tpnpmWorkspaces = JSON.parse(await this.fs.readFile(join(dir, 'pnpm-workspace.yaml'), 'utf-8'))\n\t\t}\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: pnpmWorkspaces.packages,\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AASO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,eAAe;AAAA,MACvB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EAAA;AAAA,EAGP,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,gBAAgB,CAAC;AAAA,EAAA;AAAA,EAG5D,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AAC5G,QAAA;AACA,QAAA,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,qBAAqB,CAAC,GAAG;AAC9C,uBAAA,KAAK,MAAM,MAAM,KAAK,GAAG,SAAS,KAAK,KAAK,qBAAqB,GAAG,OAAO,CAAC;AAAA,IAAA;AAEvF,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,eAAe;AAAA,IAAA,CAC3B;AAAA,EAAA;AAEH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Yarn.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Yarn.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Yarn implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t\t\t&& (!packageJson.packageManager || (packageJson.packageManager as string).startsWith('yarn@4') || (packageJson.packageManager as string).startsWith('yarn@3') || (packageJson.packageManager as string).startsWith('yarn@2'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":["PackageManagerHelpers","join"],"mappings":";;;;AAQO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,GAAGA,sBAAsB,sBAAA,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AAC1F,WAAA,MAAM,KAAK,GAAG,WAAWC,UAAAA,KAAK,KAAK,WAAW,CAAC,MACjD,CAAC,YAAY,kBAAmB,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ;AAAA,EAC7N;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAMD,4CAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAYA,sBAAA,sBAAsB,6BAA6B,EAAE,aAAa;AAAA,IAAA,CAC9E;AAAA,EACF;AACD;;"}
1
+ {"version":3,"file":"Yarn.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Yarn.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Yarn implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t\t\t&& (!packageJson.packageManager || (packageJson.packageManager as string).startsWith('yarn@4') || (packageJson.packageManager as string).startsWith('yarn@3') || (packageJson.packageManager as string).startsWith('yarn@2'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":["PackageManagerHelpers","join"],"mappings":";;;;AAQO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,GAAGA,sBAAAA,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EAAA;AAAA,EAGP,MAAM,SAAS,EAAE,KAAK,eAA4E;AAC1F,WAAA,MAAM,KAAK,GAAG,WAAWC,UAAA,KAAK,KAAK,WAAW,CAAC,MACjD,CAAC,YAAY,kBAAmB,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ;AAAA,EAAA;AAAA,EAG7N,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAMD,4CAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAYA,sBAAA,sBAAsB,6BAA6B,EAAE,YAAa,CAAA;AAAA,IAAA,CAC9E;AAAA,EAAA;AAEH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Yarn.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Yarn.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Yarn implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t\t\t&& (!packageJson.packageManager || (packageJson.packageManager as string).startsWith('yarn@4') || (packageJson.packageManager as string).startsWith('yarn@3') || (packageJson.packageManager as string).startsWith('yarn@2'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AAC1F,WAAA,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,WAAW,CAAC,MACjD,CAAC,YAAY,kBAAmB,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ;AAAA,EAC7N;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,sBAAsB,6BAA6B,EAAE,aAAa;AAAA,IAAA,CAC9E;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"Yarn.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Yarn.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Yarn implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t\t\t&& (!packageJson.packageManager || (packageJson.packageManager as string).startsWith('yarn@4') || (packageJson.packageManager as string).startsWith('yarn@3') || (packageJson.packageManager as string).startsWith('yarn@2'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EAAA;AAAA,EAGP,MAAM,SAAS,EAAE,KAAK,eAA4E;AAC1F,WAAA,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,WAAW,CAAC,MACjD,CAAC,YAAY,kBAAmB,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ;AAAA,EAAA;AAAA,EAG7N,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,sBAAsB,6BAA6B,EAAE,YAAa,CAAA;AAAA,IAAA,CAC9E;AAAA,EAAA;AAEH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"YarnClassic.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/YarnClassic.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class YarnClassic implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":["PackageManagerHelpers","join"],"mappings":";;;;AAQO,MAAM,YAAsC;AAAA,EAClD,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAGA,sBAAsB,sBAAA,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAWC,UAAAA,KAAK,KAAK,WAAW,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAMD,4CAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAYA,sBAAA,sBAAsB,6BAA6B,EAAE,aAAa;AAAA,IAAA,CAC9E;AAAA,EACF;AACD;;"}
1
+ {"version":3,"file":"YarnClassic.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/YarnClassic.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class YarnClassic implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":["PackageManagerHelpers","join"],"mappings":";;;;AAQO,MAAM,YAAsC;AAAA,EAClD,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAGA,sBAAAA,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EAAA;AAAA,EAGP,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAWC,UAAAA,KAAK,KAAK,WAAW,CAAC;AAAA,EAAA;AAAA,EAGvD,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAMD,4CAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAYA,sBAAA,sBAAsB,6BAA6B,EAAE,YAAa,CAAA;AAAA,IAAA,CAC9E;AAAA,EAAA;AAEH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"YarnClassic.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/YarnClassic.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class YarnClassic implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,YAAsC;AAAA,EAClD,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,WAAW,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,sBAAsB,6BAA6B,EAAE,aAAa;AAAA,IAAA,CAC9E;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"YarnClassic.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/YarnClassic.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class YarnClassic implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,YAAsC;AAAA,EAClD,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EAAA;AAAA,EAGP,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,WAAW,CAAC;AAAA,EAAA;AAAA,EAGvD,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,sBAAsB,6BAA6B,EAAE,YAAa,CAAA;AAAA,IAAA,CAC9E;AAAA,EAAA;AAEH;"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const node_fs = require("node:fs");
4
+ const node_path = require("node:path");
5
+ const findPackageRoot = (startPath) => {
6
+ let currentPath = startPath;
7
+ while (true) {
8
+ const packageJsonPath = node_path.join(currentPath, "package.json");
9
+ if (node_fs.existsSync(packageJsonPath)) {
10
+ return currentPath;
11
+ }
12
+ const parentPath = node_path.dirname(currentPath);
13
+ if (parentPath === currentPath) {
14
+ throw new Error("Package root not found");
15
+ }
16
+ currentPath = parentPath;
17
+ }
18
+ };
19
+ exports.findPackageRoot = findPackageRoot;
20
+ //# sourceMappingURL=findPackageRoot.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findPackageRoot.cjs","sources":["../../../../../packages/cli-common/src/utils/findPackageRoot.ts"],"sourcesContent":["import { existsSync } from 'node:fs'\nimport { dirname, join } from 'node:path'\n\nexport const findPackageRoot = (startPath: string) => {\n\tlet currentPath = startPath\n\n\twhile (true) {\n\t\tconst packageJsonPath = join(currentPath, 'package.json')\n\t\tif (existsSync(packageJsonPath)) {\n\t\t\treturn currentPath\n\t\t}\n\n\t\tconst parentPath = dirname(currentPath)\n\t\tif (parentPath === currentPath) {\n\t\t\tthrow new Error('Package root not found')\n\t\t}\n\n\t\tcurrentPath = parentPath\n\t}\n}\n"],"names":["join","existsSync","dirname"],"mappings":";;;;AAGa,MAAA,kBAAkB,CAAC,cAAsB;AACrD,MAAI,cAAc;AAElB,SAAO,MAAM;AACN,UAAA,kBAAkBA,UAAAA,KAAK,aAAa,cAAc;AACpD,QAAAC,QAAAA,WAAW,eAAe,GAAG;AACzB,aAAA;AAAA,IAAA;AAGF,UAAA,aAAaC,kBAAQ,WAAW;AACtC,QAAI,eAAe,aAAa;AACzB,YAAA,IAAI,MAAM,wBAAwB;AAAA,IAAA;AAG3B,kBAAA;AAAA,EAAA;AAEhB;;"}
@@ -0,0 +1,20 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join, dirname } from "node:path";
3
+ const findPackageRoot = (startPath) => {
4
+ let currentPath = startPath;
5
+ while (true) {
6
+ const packageJsonPath = join(currentPath, "package.json");
7
+ if (existsSync(packageJsonPath)) {
8
+ return currentPath;
9
+ }
10
+ const parentPath = dirname(currentPath);
11
+ if (parentPath === currentPath) {
12
+ throw new Error("Package root not found");
13
+ }
14
+ currentPath = parentPath;
15
+ }
16
+ };
17
+ export {
18
+ findPackageRoot
19
+ };
20
+ //# sourceMappingURL=findPackageRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findPackageRoot.js","sources":["../../../../../packages/cli-common/src/utils/findPackageRoot.ts"],"sourcesContent":["import { existsSync } from 'node:fs'\nimport { dirname, join } from 'node:path'\n\nexport const findPackageRoot = (startPath: string) => {\n\tlet currentPath = startPath\n\n\twhile (true) {\n\t\tconst packageJsonPath = join(currentPath, 'package.json')\n\t\tif (existsSync(packageJsonPath)) {\n\t\t\treturn currentPath\n\t\t}\n\n\t\tconst parentPath = dirname(currentPath)\n\t\tif (parentPath === currentPath) {\n\t\t\tthrow new Error('Package root not found')\n\t\t}\n\n\t\tcurrentPath = parentPath\n\t}\n}\n"],"names":[],"mappings":";;AAGa,MAAA,kBAAkB,CAAC,cAAsB;AACrD,MAAI,cAAc;AAElB,SAAO,MAAM;AACN,UAAA,kBAAkB,KAAK,aAAa,cAAc;AACpD,QAAA,WAAW,eAAe,GAAG;AACzB,aAAA;AAAA,IAAA;AAGF,UAAA,aAAa,QAAQ,WAAW;AACtC,QAAI,eAAe,aAAa;AACzB,YAAA,IAAI,MAAM,wBAAwB;AAAA,IAAA;AAG3B,kBAAA;AAAA,EAAA;AAEhB;"}
@@ -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":";;;;AAKO,MAAM,YAAY;AAAA,EACxB,YACkB,gBACA,wBACA,UAEb,CAAA,GACH;AALgB,SAAA,iBAAA;AACA,SAAA,yBAAA;AACA,SAAA,UAAA;AAAA,EAAA;AAAA,EAKlB,MAAM,IAAI,MAA+B;AACxC,UAAM,CAAC,MAAM,GAAG,IAAI,IAAI;AACpB,QAAA,CAAC,QAAQ,SAAS,UAAU;AACvB,cAAA,MAAM,KAAK,sBAAsB;AACzC,cAAQ,MAAM,iCAAiC;AAC/C,YAAM,WAAW,OAAO,QAAQ,KAAK,eAAe,QAAQ,EAC1D,OAAO,CAAC,CAACA,OAAM,OAAO,GAAG,OAAOC,cAAaA,UAAS,UAAU,CAAM,OAAA,GAAG,CAAC,MAAM,OAAO,MAAM,KAAK,EAClG,IAAI,CAAC,CAACD,KAAI,MAAMA,KAAI,EACpB,KAAK,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC,CAAC;AAE7B,YAAA,uBAAuB,KAAK,IAAI,GAAG,SAAS,IAAI,CAAA,OAAM,GAAG,MAAM,CAAC;AAEtE,eAAS,eAAe,UAAU;AACjC,cAAM,CAAA,EAAG,OAAO,IAAI,KAAK,eAAe,cAAc,WAAW;AAC3D,cAAA,gBAAgB,QAAQ,iBAAiB;AAC/C,cAAM,SAAS;AACP,gBAAA;AAAA,UACP,GAAG,MAAM,GAAG,MAAM;AAAA,YACjB,YAAY,OAAO,oBAAoB;AAAA,UACvC,CAAA,GAAG,MAAM,GAAG,cAAc,gBAAgB;AAAA,QAC5C;AACA,YAAI,SAAS,UAAU;AAChB,gBAAA,aAAa,GAAG,MAAM,GAAG,IAAI,OAAO,oBAAoB,CAAC,GAAG,MAAM;AAClE,gBAAA,QAAQ,cAAc,SAAS,EAAE,QAAQ,aAAa,QAAQ,YAAY;AAChF,cAAI,OAAO;AACV,oBAAQ,MAAM,MAAM,MAAM,KAAK,CAAC;AAAA,UAAA,OAC1B;AACE,oBAAA,MAAM,GAAG,UAAU,GAAG,MAAM,KAAK,YAAY,CAAC,EAAE;AAAA,UAAA;AAAA,QACzD;AAAA,MACD;AAGM,aAAA,QAAQ,KAAK,CAAC;AAAA,IAAA;AAEtB,WAAO,KAAK,mBAAmB,MAAM,MAAM,IAAI;AAAA,EAAA;AAAA,EAGhD,MAAa,WAAW,MAAc,MAAgB;AACrD,WAAO,KAAK,mBAAmB,MAAM,MAAM,KAAK;AAAA,EAAA;AAAA,EAGjD,MAAa,mBAAmB,MAAc,MAAgB,iBAA0B;AACvF,UAAM,CAAC,UAAU,OAAO,IAAI,KAAK,eAAe,cAAc,IAAI;AAElE,QAAI,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,MAAM,MAAM;AAC7C,UAAI,iBAAiB;AACpB,gBAAQ,MAAM,MAAM,YAAY,QAAQ,CAAC;AAAA,MAAA;AAEpC,YAAA,gBAAgB,QAAQ,iBAAiB;AACzC,YAAA,qBAAqB,cAAc,eAAe;AACxD,UAAI,oBAAoB;AACvB,gBAAQ,MAAM,kBAAkB;AAAA,MAAA;AAEjC,YAAM,aAAa,cAAc,SAAS,EAAE,QAAQ,SAAS;AAC7D,UAAI,YAAY;AACf,gBAAQ,MAAM,UAAU;AACxB,gBAAQ,MAAM,MAAM,MAAM,UAAU,CAAC;AACrC,gBAAQ,MAAM,0BAA0B;AACxC,gBAAQ,MAAM,cAAc,SAAS,EAAE,QAAQ,YAAA,CAAa,CAAC;AAAA,MAAA;AAGvD,aAAA,QAAQ,KAAK,CAAC;AAAA,IAAA;AAGlB,QAAA;AACG,YAAA,KAAK,QAAQ,YAAY,EAAE,SAAS,MAAM,MAAM,UAAU;AAEhE,YAAM,SAAS,MAAM,QAAQ,IAAI,IAAI;AAC9B,aAAA,QAAQ,KAAK,MAAM;AAAA,aAClB,GAAG;AACX,UAAI,aAAaE,YAAAA,mBAAmB;AACnC,gBAAQ,MAAM,MAAM,YAAY,MAAM,EAAE,OAAO,CAAC;AAC1C,cAAA,gBAAgB,QAAQ,iBAAiB;AACvC,gBAAA,MAAM,GAAG,kBAAkB,MAAM,YAAY,QAAQ,IAAI,MAAM,EAAE,GAAG,MAAM,MAAM,cAAc,SAAS,EAAE,QAAQ,QAAQ,CAAC,CAAC,EAAE;AAE9H,eAAA,QAAQ,KAAK,CAAC;AAAA,MAAA,OACf;AACN,gBAAQ,MAAM,CAAC;AACR,eAAA,QAAQ,KAAK,CAAC;AAAA,MAAA;AAAA,IACtB;AAAA,EACD;AAEF;;"}
@@ -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":";;;;AAIO,MAAM,YAAY;AAAA,EACxB,YAAoB,YAAgC,SAAmB;AAAnD,SAAA,aAAA;AAAgC,SAAA,UAAA;AAAA,EAAA;AAAA,EAEpD,MAAoD,MAAmC;AAC/E,WAAA,KAAK,OAAiB,CAAC,KAAK,QAAQ,CAAC,GAAG,KAAK,GAAI,IAAI,WAAW,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE;AAC7G,QAAI,UAAmB,CAAC;AACxB,QAAI,iBAA4B,CAAC;AAEjC,QAAI,IAAI;AACR,QAAI,iBAAiB;AACrB,UAAM,cAAc,KAAK,WAAW,KAAK,WAAW,SAAS,CAAC,GAAG,WAC9D,KAAK,WAAW,KAAK,WAAW,SAAS,CAAC,IAC1C;AACI,WAAA,IAAI,KAAK,QAAQ,KAAK;AAC5B,YAAM,QAAQ,KAAK,cAAc,KAAK,CAAC,CAAC;AACxC,UAAI,UAAU,QAAW;AACxB;AAAA,MAAA;AAED,YAAM,WAAW,KAAK,WAAW,cAAc,KAAK;AACpD,UAAI,CAAC,UAAU;AACd,cAAM,IAAI,kBAAkB,kCAAkC,KAAK,GAAG;AAAA,MAAA;AAEvE,UAAI,SAAS,aAAa,CAAC,SAAS,UAAU,KAAK,GAAG;AACrD,cAAM,IAAI,kBAAkB,kBAAkB,KAAK,kBAAkB,SAAS,IAAI,EAAE;AAAA,MAAA;AAErF,UAAI,SAAS,UAAU;AACtB,uBAAe,SAAS,IAAI,IAAI,eAAe,SAAS,IAAI,KAAK,CAAC;AAChE,uBAAe,SAAS,IAAI,EAAoB,KAAK,KAAK;AAAA,MAAA,OACtD;AACS,uBAAA,SAAS,IAAI,IAAI;AAAA,MAAA;AAEjC;AAAA,IAAA;AAED,WAAO,iBAAiB,KAAK,WAAW,QAAQ,kBAAkB;AACjE,UAAI,CAAC,KAAK,WAAW,cAAc,EAAE,UAAU;AACxC,cAAA,IAAI,kBAAkB,YAAY,KAAK,WAAW,cAAc,EAAE,IAAI,cAAc;AAAA,MAAA,OACpF;AACN,uBAAe,KAAK,WAAW,cAAc,EAAE,IAAI,IAAI;AAAA,MAAA;AAAA,IACxD;AAGM,WAAA,IAAI,KAAK,QAAQ,KAAK;AACxB,UAAA;AACJ,UAAI,KAAK,CAAC,EAAE,WAAW,IAAI,GAAG;AACpB,iBAAA,KAAK,QAAQ,KAAK,CAAM,OAAA,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7D,YAAI,CAAC,QAAQ;AACZ,gBAAM,IAAI,kBAAkB,oBAAoB,KAAK,CAAC,CAAC,EAAE;AAAA,QAAA;AAAA,iBAEhD,KAAK,CAAC,EAAE,WAAW,GAAG,GAAG;AAC1B,iBAAA,KAAK,QAAQ,KAAK,CAAM,OAAA,GAAG,aAAa,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;AACjE,YAAI,CAAC,QAAQ;AACZ,gBAAM,IAAI,kBAAkB,oBAAoB,KAAK,CAAC,CAAC,EAAE;AAAA,QAAA;AAAA,MAC1D;AAED,UAAI,CAAC,QAAQ;AACZ,cAAM,IAAI,kBAAkB,qBAAqB,KAAK,CAAC,CAAC,GAAG;AAAA,MAAA;AAE5D,UAAI,QAAQ;AACX,YAAI,OAAO,YAAY;AACtB,kBAAQ,KAAK,UAAU,OAAO,IAAI,iBAAiB;AAAA,QAAA;AAEhD,YAAA,OAAO,SAASA,OAAA,WAAW,YAAY;AAClC,kBAAA,OAAO,IAAI,IAAI;AACvB;AAAA,QAAA;AAED,cAAM,QAAQ,KAAK,cAAc,KAAK,IAAI,CAAC,CAAC;AAC5C,YAAI,UAAU,QAAW;AACxB;AAAA,QAAA;AAEG,YAAA,OAAO,SAASA,OAAA,WAAW,aAAa;AAC3C,cAAI,UAAU,QAAW;AACxB,kBAAM,IAAI,kBAAkB,gCAAgC,OAAO,IAAI,EAAE;AAAA,UAAA;AAE1E,kBAAQ,OAAO,IAAI,IAAI,QAAQ,OAAO,IAAI,KAAK,CAAC;AAC9C,kBAAQ,OAAO,IAAI,EAAoB,KAAK,KAAK;AAAA,QACzC,WAAA,OAAO,SAASA,OAAAA,WAAW,gBAAgB;AACrD,cAAI,UAAU,QAAW;AACxB,kBAAM,IAAI,kBAAkB,gCAAgC,OAAO,IAAI,EAAE;AAAA,UAAA;AAElE,kBAAA,OAAO,IAAI,IAAI;AAAA,QACb,WAAA,OAAO,SAASA,OAAAA,WAAW,gBAAgB;AACrD,kBAAQ,OAAO,IAAI,IAAI,UAAU,SAAY,OAAO;AAAA,QAAA;AAAA,MACrD;AAAA,IACD;AAGQ,aAAA,UAAU,KAAK,SAAS;AAChC,UAAI,QAAQ,OAAO,IAAI,MAAM,QAAW;AACvC;AAAA,MAAA;AAED,UAAI,OAAO,UAAU;AACpB,cAAM,IAAI,kBAAkB,YAAY,OAAO,IAAI,cAAc;AAAA,MAAA,OAC3D;AACE,gBAAA,OAAO,IAAI,IAAI;AAAA,MAAA;AAAA,IACxB;AAGM,WAAA,IAAIC,MAAAA,MAAkB,gBAAwB,OAAe;AAAA,EAAA;AAAA,EAG7D,cAAc,KAA6C;AAClE,QAAI,QAAQ,QAAW;AACf,aAAA;AAAA,IAAA;AAEJ,QAAA,IAAI,WAAW,GAAG,GAAG;AACjB,aAAA;AAAA,IAAA;AAEJ,QAAA,IAAI,WAAW,KAAK,GAAG;AACnB,aAAA,MAAM,IAAI,MAAM,CAAC;AAAA,IAAA;AAElB,WAAA;AAAA,EAAA;AAET;AAEO,MAAM,0BAA0B,MAAM;AAAC;;;"}
@@ -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":";;AAIO,MAAM,YAAY;AAAA,EACxB,YAAoB,YAAgC,SAAmB;AAAnD,SAAA,aAAA;AAAgC,SAAA,UAAA;AAAA,EAAoB;AAAA,EAExE,MAAoD,MAAmC;AAC/E,WAAA,KAAK,OAAiB,CAAC,KAAK,QAAQ,CAAC,GAAG,KAAK,GAAI,IAAI,WAAW,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAA,CAAE;AAC7G,QAAI,UAAmB,CAAA;AACvB,QAAI,iBAA4B,CAAA;AAEhC,QAAI,IAAI;AACR,QAAI,iBAAiB;AACrB,UAAM,cAAc,KAAK,WAAW,KAAK,WAAW,SAAS,CAAC,GAAG,WAC9D,KAAK,WAAW,KAAK,WAAW,SAAS,CAAC,IAC1C;AACI,WAAA,IAAI,KAAK,QAAQ,KAAK;AAC5B,YAAM,QAAQ,KAAK,cAAc,KAAK,CAAC,CAAC;AACxC,UAAI,UAAU,QAAW;AACxB;AAAA,MACD;AACA,YAAM,WAAW,KAAK,WAAW,cAAc,KAAK;AACpD,UAAI,CAAC,UAAU;AACd,cAAM,IAAI,kBAAkB,kCAAkC,KAAK,GAAG;AAAA,MACvE;AACA,UAAI,SAAS,aAAa,CAAC,SAAS,UAAU,KAAK,GAAG;AACrD,cAAM,IAAI,kBAAkB,kBAAkB,KAAK,kBAAkB,SAAS,IAAI,EAAE;AAAA,MACrF;AACA,UAAI,SAAS,UAAU;AACtB,uBAAe,SAAS,IAAI,IAAI,eAAe,SAAS,IAAI,KAAK;AAC/D,uBAAe,SAAS,IAAI,EAAoB,KAAK,KAAK;AAAA,MAAA,OACtD;AACS,uBAAA,SAAS,IAAI,IAAI;AAAA,MACjC;AACA;AAAA,IACD;AACA,WAAO,iBAAiB,KAAK,WAAW,QAAQ,kBAAkB;AACjE,UAAI,CAAC,KAAK,WAAW,cAAc,EAAE,UAAU;AACxC,cAAA,IAAI,kBAAkB,YAAY,KAAK,WAAW,cAAc,EAAE,IAAI,cAAc;AAAA,MAAA,OACpF;AACN,uBAAe,KAAK,WAAW,cAAc,EAAE,IAAI,IAAI;AAAA,MACxD;AAAA,IACD;AAEO,WAAA,IAAI,KAAK,QAAQ,KAAK;AACxB,UAAA;AACJ,UAAI,KAAK,CAAC,EAAE,WAAW,IAAI,GAAG;AACpB,iBAAA,KAAK,QAAQ,KAAK,CAAM,OAAA,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7D,YAAI,CAAC,QAAQ;AACZ,gBAAM,IAAI,kBAAkB,oBAAoB,KAAK,CAAC,CAAC,EAAE;AAAA,QAC1D;AAAA,iBACU,KAAK,CAAC,EAAE,WAAW,GAAG,GAAG;AAC1B,iBAAA,KAAK,QAAQ,KAAK,CAAM,OAAA,GAAG,aAAa,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;AACjE,YAAI,CAAC,QAAQ;AACZ,gBAAM,IAAI,kBAAkB,oBAAoB,KAAK,CAAC,CAAC,EAAE;AAAA,QAC1D;AAAA,MACD;AACA,UAAI,CAAC,QAAQ;AACZ,cAAM,IAAI,kBAAkB,qBAAqB,KAAK,CAAC,CAAC,GAAG;AAAA,MAC5D;AACA,UAAI,QAAQ;AACX,YAAI,OAAO,YAAY;AACtB,kBAAQ,KAAK,UAAU,OAAO,IAAI,iBAAiB;AAAA,QACpD;AACI,YAAA,OAAO,SAAS,WAAW,YAAY;AAClC,kBAAA,OAAO,IAAI,IAAI;AACvB;AAAA,QACD;AACA,cAAM,QAAQ,KAAK,cAAc,KAAK,IAAI,CAAC,CAAC;AAC5C,YAAI,UAAU,QAAW;AACxB;AAAA,QACD;AACI,YAAA,OAAO,SAAS,WAAW,aAAa;AAC3C,cAAI,UAAU,QAAW;AACxB,kBAAM,IAAI,kBAAkB,gCAAgC,OAAO,IAAI,EAAE;AAAA,UAC1E;AACA,kBAAQ,OAAO,IAAI,IAAI,QAAQ,OAAO,IAAI,KAAK;AAC7C,kBAAQ,OAAO,IAAI,EAAoB,KAAK,KAAK;AAAA,QACzC,WAAA,OAAO,SAAS,WAAW,gBAAgB;AACrD,cAAI,UAAU,QAAW;AACxB,kBAAM,IAAI,kBAAkB,gCAAgC,OAAO,IAAI,EAAE;AAAA,UAC1E;AACQ,kBAAA,OAAO,IAAI,IAAI;AAAA,QACb,WAAA,OAAO,SAAS,WAAW,gBAAgB;AACrD,kBAAQ,OAAO,IAAI,IAAI,UAAU,SAAY,OAAO;AAAA,QACrD;AAAA,MACD;AAAA,IACD;AAES,aAAA,UAAU,KAAK,SAAS;AAChC,UAAI,QAAQ,OAAO,IAAI,MAAM,QAAW;AACvC;AAAA,MACD;AACA,UAAI,OAAO,UAAU;AACpB,cAAM,IAAI,kBAAkB,YAAY,OAAO,IAAI,cAAc;AAAA,MAAA,OAC3D;AACE,gBAAA,OAAO,IAAI,IAAI;AAAA,MACxB;AAAA,IACD;AAEO,WAAA,IAAI,MAAkB,gBAAwB,OAAe;AAAA,EACrE;AAAA,EAEQ,cAAc,KAA6C;AAClE,QAAI,QAAQ,QAAW;AACf,aAAA;AAAA,IACR;AACI,QAAA,IAAI,WAAW,GAAG,GAAG;AACjB,aAAA;AAAA,IACR;AACI,QAAA,IAAI,WAAW,KAAK,GAAG;AACnB,aAAA,MAAM,IAAI,MAAM,CAAC;AAAA,IACzB;AACO,WAAA;AAAA,EACR;AACD;AAEO,MAAM,0BAA0B,MAAM;AAAC;"}
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;"}