@tsed/cli-core 3.21.0-rc.3 → 3.21.0

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 (87) hide show
  1. package/lib/cjs/CliCore.js +2 -0
  2. package/lib/cjs/CliCore.js.map +1 -1
  3. package/lib/cjs/domains/CliError.js +3 -1
  4. package/lib/cjs/domains/CliError.js.map +1 -1
  5. package/lib/cjs/services/CliDockerComposeYaml.js +1 -0
  6. package/lib/cjs/services/CliDockerComposeYaml.js.map +1 -1
  7. package/lib/cjs/services/CliExeca.js +1 -3
  8. package/lib/cjs/services/CliExeca.js.map +1 -1
  9. package/lib/cjs/services/CliFs.js +1 -3
  10. package/lib/cjs/services/CliFs.js.map +1 -1
  11. package/lib/cjs/services/CliHooks.js +1 -0
  12. package/lib/cjs/services/CliHooks.js.map +1 -1
  13. package/lib/cjs/services/CliHttpClient.js +4 -2
  14. package/lib/cjs/services/CliHttpClient.js.map +1 -1
  15. package/lib/cjs/services/CliHttpLogClient.js +2 -0
  16. package/lib/cjs/services/CliHttpLogClient.js.map +1 -1
  17. package/lib/cjs/services/CliPlugins.js +5 -0
  18. package/lib/cjs/services/CliPlugins.js.map +1 -1
  19. package/lib/cjs/services/CliProxyAgent.js +2 -0
  20. package/lib/cjs/services/CliProxyAgent.js.map +1 -1
  21. package/lib/cjs/services/CliRunScript.js +3 -2
  22. package/lib/cjs/services/CliRunScript.js.map +1 -1
  23. package/lib/cjs/services/CliService.js +7 -5
  24. package/lib/cjs/services/CliService.js.map +1 -1
  25. package/lib/cjs/services/CliYaml.js +2 -0
  26. package/lib/cjs/services/CliYaml.js.map +1 -1
  27. package/lib/cjs/services/NpmRegistryClient.js +2 -1
  28. package/lib/cjs/services/NpmRegistryClient.js.map +1 -1
  29. package/lib/cjs/services/ProjectPackageJson.js +8 -4
  30. package/lib/cjs/services/ProjectPackageJson.js.map +1 -1
  31. package/lib/cjs/services/Renderer.js +12 -10
  32. package/lib/cjs/services/Renderer.js.map +1 -1
  33. package/lib/cjs/utils/createInjector.js +1 -2
  34. package/lib/cjs/utils/createInjector.js.map +1 -1
  35. package/lib/cjs/utils/createTasksRunner.js +8 -16
  36. package/lib/cjs/utils/createTasksRunner.js.map +1 -1
  37. package/lib/cjs/utils/getCommandMetadata.js +1 -2
  38. package/lib/cjs/utils/getCommandMetadata.js.map +1 -1
  39. package/lib/cjs/utils/getPackageJson.js +2 -4
  40. package/lib/cjs/utils/getPackageJson.js.map +1 -1
  41. package/lib/cjs/utils/loadPlugins.js +3 -5
  42. package/lib/cjs/utils/loadPlugins.js.map +1 -1
  43. package/lib/esm/CliCore.js +2 -0
  44. package/lib/esm/CliCore.js.map +1 -1
  45. package/lib/esm/domains/CliError.js +3 -1
  46. package/lib/esm/domains/CliError.js.map +1 -1
  47. package/lib/esm/services/CliDockerComposeYaml.js +1 -0
  48. package/lib/esm/services/CliDockerComposeYaml.js.map +1 -1
  49. package/lib/esm/services/CliExeca.js +1 -3
  50. package/lib/esm/services/CliExeca.js.map +1 -1
  51. package/lib/esm/services/CliFs.js +1 -3
  52. package/lib/esm/services/CliFs.js.map +1 -1
  53. package/lib/esm/services/CliHooks.js +1 -0
  54. package/lib/esm/services/CliHooks.js.map +1 -1
  55. package/lib/esm/services/CliHttpClient.js +4 -2
  56. package/lib/esm/services/CliHttpClient.js.map +1 -1
  57. package/lib/esm/services/CliHttpLogClient.js +2 -0
  58. package/lib/esm/services/CliHttpLogClient.js.map +1 -1
  59. package/lib/esm/services/CliPlugins.js +5 -0
  60. package/lib/esm/services/CliPlugins.js.map +1 -1
  61. package/lib/esm/services/CliProxyAgent.js +2 -0
  62. package/lib/esm/services/CliProxyAgent.js.map +1 -1
  63. package/lib/esm/services/CliRunScript.js +3 -2
  64. package/lib/esm/services/CliRunScript.js.map +1 -1
  65. package/lib/esm/services/CliService.js +7 -5
  66. package/lib/esm/services/CliService.js.map +1 -1
  67. package/lib/esm/services/CliYaml.js +2 -0
  68. package/lib/esm/services/CliYaml.js.map +1 -1
  69. package/lib/esm/services/NpmRegistryClient.js +2 -1
  70. package/lib/esm/services/NpmRegistryClient.js.map +1 -1
  71. package/lib/esm/services/ProjectPackageJson.js +8 -4
  72. package/lib/esm/services/ProjectPackageJson.js.map +1 -1
  73. package/lib/esm/services/Renderer.js +12 -10
  74. package/lib/esm/services/Renderer.js.map +1 -1
  75. package/lib/esm/utils/createInjector.js +1 -2
  76. package/lib/esm/utils/createInjector.js.map +1 -1
  77. package/lib/esm/utils/createTasksRunner.js +8 -16
  78. package/lib/esm/utils/createTasksRunner.js.map +1 -1
  79. package/lib/esm/utils/getCommandMetadata.js +1 -2
  80. package/lib/esm/utils/getCommandMetadata.js.map +1 -1
  81. package/lib/esm/utils/getPackageJson.js +2 -4
  82. package/lib/esm/utils/getPackageJson.js.map +1 -1
  83. package/lib/esm/utils/loadPlugins.js +3 -5
  84. package/lib/esm/utils/loadPlugins.js.map +1 -1
  85. package/lib/types/services/CliExeca.d.ts +20 -19
  86. package/lib/types/services/CliHttpClient.d.ts +1 -1
  87. package/package.json +18 -21
@@ -20,6 +20,8 @@ function isHelpManual(argv) {
20
20
  return argv.includes("-h") || argv.includes("--help");
21
21
  }
22
22
  let CliCore = CliCore_1 = class CliCore {
23
+ injector;
24
+ cliService;
23
25
  static checkNodeVersion(wanted, id) {
24
26
  if (!semver_1.default.satisfies(process.version, wanted)) {
25
27
  console.log(chalk_1.default.red("You are using Node " +
@@ -1 +1 @@
1
- {"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":"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","sourcesContent":["import {createContainer, Inject, InjectorService, Module} from \"@tsed/di\";\nimport {Type} from \"@tsed/core\";\nimport chalk from \"chalk\";\nimport {Command} from \"commander\";\nimport {join, resolve} from \"path\";\nimport updateNotifier from \"update-notifier\";\nimport {CliConfiguration} from \"./services/CliConfiguration\";\nimport {CliPackageJson} from \"./services/CliPackageJson\";\nimport {CliService} from \"./services/CliService\";\nimport {ProjectPackageJson} from \"./services/ProjectPackageJson\";\nimport {createInjector} from \"./utils/createInjector\";\nimport {loadPlugins} from \"./utils/loadPlugins\";\nimport {CliError} from \"./domains/CliError\";\nimport semver from \"semver\";\n\nfunction isHelpManual(argv: string[]) {\n return argv.includes(\"-h\") || argv.includes(\"--help\");\n}\n\n@Module({\n imports: [CliPackageJson, ProjectPackageJson, CliService, CliConfiguration]\n})\nexport class CliCore {\n @Inject()\n injector: InjectorService;\n\n @Inject()\n cliService: CliService;\n\n static checkNodeVersion(wanted: string, id: string) {\n if (!semver.satisfies(process.version, wanted)) {\n console.log(\n chalk.red(\n \"You are using Node \" +\n process.version +\n \", but this version of \" +\n id +\n \" requires Node \" +\n wanted +\n \".\\nPlease upgrade your Node version.\"\n )\n );\n process.exit(1);\n }\n\n return this;\n }\n\n static async bootstrap(settings: Partial<TsED.Configuration>, module: Type = CliCore): Promise<CliCore> {\n const injector = this.createInjector(settings);\n\n settings.plugins && (await loadPlugins(injector));\n\n await this.loadInjector(injector, module);\n\n await injector.emit(\"$onReady\");\n\n const cli = injector.get<CliCore>(CliCore)!;\n\n try {\n await cli.cliService.parseArgs(injector.settings.get(\"argv\")!);\n } catch (er) {\n throw new CliError({origin: er, cli});\n }\n\n return cli;\n }\n\n static async loadInjector(injector: InjectorService, module: Type = CliCore) {\n await injector.emit(\"$beforeInit\");\n\n const container = createContainer();\n\n await injector.load(container, module);\n\n await injector.emit(\"$afterInit\");\n\n injector.settings.set(\"loaded\", true);\n }\n\n static updateNotifier(pkg: any) {\n updateNotifier({pkg, updateCheckInterval: 0}).notify();\n return this;\n }\n\n protected static createInjector(settings: Partial<TsED.Configuration>) {\n const argv = settings.argv || process.argv;\n\n return createInjector({\n ...settings,\n name: settings.name || \"tsed\",\n argv,\n project: {\n rootDir: this.getProjectRoot(argv),\n srcDir: \"src\",\n scriptsDir: \"scripts\",\n ...(settings.project || {})\n }\n });\n }\n\n protected static getProjectRoot(argv: string[]) {\n if (!isHelpManual(argv)) {\n const projectRoot =\n new Command().option(\"-r, --root-dir <path>\", \"Project root directory\").allowUnknownOption(true).parse(argv).opts().rootDir || \"\";\n\n return resolve(join(process.cwd(), projectRoot));\n }\n\n return process.cwd();\n }\n}\n"]}
1
+ {"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":"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","sourcesContent":["import {createContainer, Inject, InjectorService, Module} from \"@tsed/di\";\nimport {Type} from \"@tsed/core\";\nimport chalk from \"chalk\";\nimport {Command} from \"commander\";\nimport {join, resolve} from \"path\";\nimport updateNotifier from \"update-notifier\";\nimport {CliConfiguration} from \"./services/CliConfiguration\";\nimport {CliPackageJson} from \"./services/CliPackageJson\";\nimport {CliService} from \"./services/CliService\";\nimport {ProjectPackageJson} from \"./services/ProjectPackageJson\";\nimport {createInjector} from \"./utils/createInjector\";\nimport {loadPlugins} from \"./utils/loadPlugins\";\nimport {CliError} from \"./domains/CliError\";\nimport semver from \"semver\";\n\nfunction isHelpManual(argv: string[]) {\n return argv.includes(\"-h\") || argv.includes(\"--help\");\n}\n\n@Module({\n imports: [CliPackageJson, ProjectPackageJson, CliService, CliConfiguration]\n})\nexport class CliCore {\n @Inject()\n injector: InjectorService;\n\n @Inject()\n cliService: CliService;\n\n static checkNodeVersion(wanted: string, id: string) {\n if (!semver.satisfies(process.version, wanted)) {\n console.log(\n chalk.red(\n \"You are using Node \" +\n process.version +\n \", but this version of \" +\n id +\n \" requires Node \" +\n wanted +\n \".\\nPlease upgrade your Node version.\"\n )\n );\n process.exit(1);\n }\n\n return this;\n }\n\n static async bootstrap(settings: Partial<TsED.Configuration>, module: Type = CliCore): Promise<CliCore> {\n const injector = this.createInjector(settings);\n\n settings.plugins && (await loadPlugins(injector));\n\n await this.loadInjector(injector, module);\n\n await injector.emit(\"$onReady\");\n\n const cli = injector.get<CliCore>(CliCore)!;\n\n try {\n await cli.cliService.parseArgs(injector.settings.get(\"argv\")!);\n } catch (er) {\n throw new CliError({origin: er, cli});\n }\n\n return cli;\n }\n\n static async loadInjector(injector: InjectorService, module: Type = CliCore) {\n await injector.emit(\"$beforeInit\");\n\n const container = createContainer();\n\n await injector.load(container, module);\n\n await injector.emit(\"$afterInit\");\n\n injector.settings.set(\"loaded\", true);\n }\n\n static updateNotifier(pkg: any) {\n updateNotifier({pkg, updateCheckInterval: 0}).notify();\n return this;\n }\n\n protected static createInjector(settings: Partial<TsED.Configuration>) {\n const argv = settings.argv || process.argv;\n\n return createInjector({\n ...settings,\n name: settings.name || \"tsed\",\n argv,\n project: {\n rootDir: this.getProjectRoot(argv),\n srcDir: \"src\",\n scriptsDir: \"scripts\",\n ...(settings.project || {})\n }\n });\n }\n\n protected static getProjectRoot(argv: string[]) {\n if (!isHelpManual(argv)) {\n const projectRoot =\n new Command().option(\"-r, --root-dir <path>\", \"Project root directory\").allowUnknownOption(true).parse(argv).opts().rootDir || \"\";\n\n return resolve(join(process.cwd(), projectRoot));\n }\n\n return process.cwd();\n }\n}\n"]}
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CliError = void 0;
4
4
  class CliError extends Error {
5
+ name = "CLI_ERROR";
6
+ cli;
7
+ origin;
5
8
  constructor({ cli, origin }) {
6
9
  super(origin.message);
7
- this.name = "CLI_ERROR";
8
10
  this.cli = cli;
9
11
  this.origin = origin;
10
12
  this.stack = origin.stack;
@@ -1 +1 @@
1
- {"version":3,"file":"CliError.js","sourceRoot":"","sources":["../../../src/domains/CliError.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAS,SAAQ,KAAK;IAMjC,YAAY,EAAC,GAAG,EAAE,MAAM,EAAgC;QACtD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QANxB,SAAI,GAAG,WAAW,CAAC;QAOjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;CACF;AAZD,4BAYC","sourcesContent":["import type {CliCore} from \"../CliCore\";\n\nexport class CliError extends Error {\n name = \"CLI_ERROR\";\n\n readonly cli: CliCore;\n readonly origin: Error;\n\n constructor({cli, origin}: {cli: CliCore; origin: Error}) {\n super(origin.message);\n this.cli = cli;\n this.origin = origin;\n this.stack = origin.stack;\n }\n}\n"]}
1
+ {"version":3,"file":"CliError.js","sourceRoot":"","sources":["../../../src/domains/CliError.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,GAAG,WAAW,CAAC;IAEV,GAAG,CAAU;IACb,MAAM,CAAQ;IAEvB,YAAY,EAAC,GAAG,EAAE,MAAM,EAAgC;QACtD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;CACF;AAZD,4BAYC","sourcesContent":["import type {CliCore} from \"../CliCore\";\n\nexport class CliError extends Error {\n name = \"CLI_ERROR\";\n\n readonly cli: CliCore;\n readonly origin: Error;\n\n constructor({cli, origin}: {cli: CliCore; origin: Error}) {\n super(origin.message);\n this.cli = cli;\n this.origin = origin;\n this.stack = origin.stack;\n }\n}\n"]}
@@ -7,6 +7,7 @@ const change_case_1 = require("change-case");
7
7
  const CliYaml_1 = require("./CliYaml");
8
8
  const core_1 = require("@tsed/core");
9
9
  let CliDockerComposeYaml = class CliDockerComposeYaml {
10
+ cliYaml;
10
11
  async read() {
11
12
  return this.cliYaml.read("docker-compose.yml");
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CliDockerComposeYaml.js","sourceRoot":"","sources":["../../../src/services/CliDockerComposeYaml.ts"],"names":[],"mappings":";;;;AAAA,iCAA4C;AAC5C,6CAAsC;AACtC,uCAAkC;AAClC,qCAAoC;AAGpC,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAI/B,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,QAAgB;QACrD,MAAM,aAAa,GAAQ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,aAAa,EAAE;YACjB,IAAI,KAAU,CAAC;YACf,QAAQ,QAAQ,EAAE;gBAChB,KAAK,OAAO,CAAC;gBACb,KAAK,SAAS;oBACZ,KAAK,GAAG;wBACN,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB;wBACtE,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,mBAAmB,EAAE,OAAO;4BAC5B,UAAU,EAAE,MAAM;4BAClB,cAAc,EAAE,MAAM;4BACtB,cAAc,EAAE,MAAM;yBACvB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,UAAU;oBACb,KAAK,GAAG;wBACN,KAAK,EAAE,gBAAgB;wBACvB,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,aAAa,EAAE,MAAM;4BACrB,iBAAiB,EAAE,MAAM;4BACzB,WAAW,EAAE,MAAM;yBACpB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,aAAa;oBAChB,KAAK,GAAG;wBACN,KAAK,EAAE,8BAA8B;wBACrC,OAAO,EAAE,kBAAkB;wBAC3B,KAAK,EAAE,CAAC,aAAa,CAAC;qBACvB,CAAC;oBACF,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,GAAG;wBACN,KAAK,EAAE,4CAA4C;wBACnD,OAAO,EAAE,kBAAkB;wBAC3B,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,WAAW,EAAE,YAAY;4BACzB,WAAW,EAAE,GAAG;yBACjB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,SAAS;oBACZ,KAAK,GAAG;wBACN,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE,CAAC,aAAa,CAAC;qBACvB,CAAC;oBACF,MAAM;aACT;YAED,IAAA,eAAQ,EAAC,aAAa,EAAE,YAAY,IAAA,uBAAS,EAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACjC;IACH,CAAC;CACF,CAAA;AArEC;IADC,IAAA,WAAM,GAAE;sCACU,iBAAO;qDAAC;AAFhB,oBAAoB;IADhC,IAAA,eAAU,GAAE;GACA,oBAAoB,CAuEhC;AAvEY,oDAAoB","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport {snakeCase} from \"change-case\";\nimport {CliYaml} from \"./CliYaml\";\nimport {setValue} from \"@tsed/core\";\n\n@Injectable()\nexport class CliDockerComposeYaml {\n @Inject()\n protected cliYaml: CliYaml;\n\n async read() {\n return this.cliYaml.read(\"docker-compose.yml\");\n }\n\n async write(obj: any) {\n return this.cliYaml.write(\"docker-compose.yml\", obj);\n }\n\n async addDatabaseService(name: string, database: string) {\n const dockerCompose: any = await this.read();\n if (dockerCompose) {\n let value: any;\n switch (database) {\n case \"mysql\":\n case \"mariadb\":\n value = {\n image: database === \"mysql\" ? \"mysql:8.0.28-oracle\" : \"mariadb:10.7.3\",\n ports: [\"3306:3306\"],\n environment: {\n MYSQL_ROOT_PASSWORD: \"admin\",\n MYSQL_USER: \"test\",\n MYSQL_PASSWORD: \"test\",\n MYSQL_DATABASE: \"test\"\n }\n };\n break;\n case \"postgres\":\n value = {\n image: \"postgres:9.6.1\",\n ports: [\"5432:5432\"],\n environment: {\n POSTGRES_USER: \"test\",\n POSTGRES_PASSWORD: \"test\",\n POSTGRES_DB: \"test\"\n }\n };\n break;\n case \"cockroachdb\":\n value = {\n image: \"cockroachdb/cockroach:v2.1.4\",\n command: \"start --insecure\",\n ports: [\"26257:26257\"]\n };\n break;\n case \"mssql\":\n value = {\n image: \"mcr.microsoft.com/mssql/server:2017-latest\",\n command: \"start --insecure\",\n ports: [\"1433:1433\"],\n environment: {\n SA_PASSWORD: \"Admin12345\",\n ACCEPT_EULA: \"Y\"\n }\n };\n break;\n case \"mongodb\":\n value = {\n image: \"mongo:4.1\",\n ports: [\"27017:27017\"]\n };\n break;\n }\n\n setValue(dockerCompose, `services.${snakeCase(name)}`, value);\n await this.write(dockerCompose);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"CliDockerComposeYaml.js","sourceRoot":"","sources":["../../../src/services/CliDockerComposeYaml.ts"],"names":[],"mappings":";;;;AAAA,iCAA4C;AAC5C,6CAAsC;AACtC,uCAAkC;AAClC,qCAAoC;AAGpC,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAErB,OAAO,CAAU;IAE3B,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,QAAgB;QACrD,MAAM,aAAa,GAAQ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,aAAa,EAAE;YACjB,IAAI,KAAU,CAAC;YACf,QAAQ,QAAQ,EAAE;gBAChB,KAAK,OAAO,CAAC;gBACb,KAAK,SAAS;oBACZ,KAAK,GAAG;wBACN,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB;wBACtE,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,mBAAmB,EAAE,OAAO;4BAC5B,UAAU,EAAE,MAAM;4BAClB,cAAc,EAAE,MAAM;4BACtB,cAAc,EAAE,MAAM;yBACvB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,UAAU;oBACb,KAAK,GAAG;wBACN,KAAK,EAAE,gBAAgB;wBACvB,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,aAAa,EAAE,MAAM;4BACrB,iBAAiB,EAAE,MAAM;4BACzB,WAAW,EAAE,MAAM;yBACpB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,aAAa;oBAChB,KAAK,GAAG;wBACN,KAAK,EAAE,8BAA8B;wBACrC,OAAO,EAAE,kBAAkB;wBAC3B,KAAK,EAAE,CAAC,aAAa,CAAC;qBACvB,CAAC;oBACF,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,GAAG;wBACN,KAAK,EAAE,4CAA4C;wBACnD,OAAO,EAAE,kBAAkB;wBAC3B,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,WAAW,EAAE,YAAY;4BACzB,WAAW,EAAE,GAAG;yBACjB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,SAAS;oBACZ,KAAK,GAAG;wBACN,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE,CAAC,aAAa,CAAC;qBACvB,CAAC;oBACF,MAAM;aACT;YAED,IAAA,eAAQ,EAAC,aAAa,EAAE,YAAY,IAAA,uBAAS,EAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACjC;IACH,CAAC;CACF,CAAA;AArEC;IADC,IAAA,WAAM,GAAE;sCACU,iBAAO;qDAAC;AAFhB,oBAAoB;IADhC,IAAA,eAAU,GAAE;GACA,oBAAoB,CAuEhC;AAvEY,oDAAoB","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport {snakeCase} from \"change-case\";\nimport {CliYaml} from \"./CliYaml\";\nimport {setValue} from \"@tsed/core\";\n\n@Injectable()\nexport class CliDockerComposeYaml {\n @Inject()\n protected cliYaml: CliYaml;\n\n async read() {\n return this.cliYaml.read(\"docker-compose.yml\");\n }\n\n async write(obj: any) {\n return this.cliYaml.write(\"docker-compose.yml\", obj);\n }\n\n async addDatabaseService(name: string, database: string) {\n const dockerCompose: any = await this.read();\n if (dockerCompose) {\n let value: any;\n switch (database) {\n case \"mysql\":\n case \"mariadb\":\n value = {\n image: database === \"mysql\" ? \"mysql:8.0.28-oracle\" : \"mariadb:10.7.3\",\n ports: [\"3306:3306\"],\n environment: {\n MYSQL_ROOT_PASSWORD: \"admin\",\n MYSQL_USER: \"test\",\n MYSQL_PASSWORD: \"test\",\n MYSQL_DATABASE: \"test\"\n }\n };\n break;\n case \"postgres\":\n value = {\n image: \"postgres:9.6.1\",\n ports: [\"5432:5432\"],\n environment: {\n POSTGRES_USER: \"test\",\n POSTGRES_PASSWORD: \"test\",\n POSTGRES_DB: \"test\"\n }\n };\n break;\n case \"cockroachdb\":\n value = {\n image: \"cockroachdb/cockroach:v2.1.4\",\n command: \"start --insecure\",\n ports: [\"26257:26257\"]\n };\n break;\n case \"mssql\":\n value = {\n image: \"mcr.microsoft.com/mssql/server:2017-latest\",\n command: \"start --insecure\",\n ports: [\"1433:1433\"],\n environment: {\n SA_PASSWORD: \"Admin12345\",\n ACCEPT_EULA: \"Y\"\n }\n };\n break;\n case \"mongodb\":\n value = {\n image: \"mongo:4.1\",\n ports: [\"27017:27017\"]\n };\n break;\n }\n\n setValue(dockerCompose, `services.${snakeCase(name)}`, value);\n await this.write(dockerCompose);\n }\n }\n}\n"]}
@@ -13,9 +13,7 @@ const stream_to_observable_1 = tslib_1.__importDefault(require("@samverschueren/
13
13
  // @ts-ignore
14
14
  const split_1 = tslib_1.__importDefault(require("split"));
15
15
  let CliExeca = class CliExeca {
16
- constructor() {
17
- this.raw = execa_1.default;
18
- }
16
+ raw = execa_1.default;
19
17
  /**
20
18
  *
21
19
  * @param cmd
@@ -1 +1 @@
1
- {"version":3,"file":"CliExeca.js","sourceRoot":"","sources":["../../../src/services/CliExeca.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;AACpC,0DAA0B;AAC1B,8CAA6C;AAC7C,4CAA0C;AAC1C,6DAA6D;AAC7D,aAAa;AACb,wGAAsE;AACtE,6DAA6D;AAC7D,aAAa;AACb,0DAA0B;AAG1B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAArB;QACW,QAAG,GAAG,eAAK,CAAC;IA2BvB,CAAC;IAzBC;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAoB;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,IAAA,eAAK,GAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,IAAA,eAAK,GAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QAEzE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,kBAAM,EAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAwB;QAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,IAAwB;QAClE,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAwB;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC;CACF,CAAA;AA5BY,QAAQ;IADpB,IAAA,eAAU,GAAE;GACA,QAAQ,CA4BpB;AA5BY,4BAAQ","sourcesContent":["import {Injectable} from \"@tsed/di\";\nimport execa from \"execa\";\nimport {filter, merge} from \"rxjs/operators\";\nimport \"any-observable/register/rxjs-all\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport streamToObservable from \"@samverschueren/stream-to-observable\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport split from \"split\";\n\n@Injectable()\nexport class CliExeca {\n readonly raw = execa;\n\n /**\n *\n * @param cmd\n * @param args\n * @param opts\n */\n run(cmd: string, args: string[], opts?: execa.Options) {\n const cp = this.raw(cmd, args, opts);\n const stdout = streamToObservable(cp.stdout!.pipe(split()), {await: cp});\n const stderr = streamToObservable(cp.stderr!.pipe(split()), {await: cp});\n\n return stdout.pipe(merge(stderr)).pipe(filter(Boolean));\n }\n\n runSync(cmd: string, args: string[], opts?: execa.SyncOptions) {\n return this.raw.sync(cmd, args, opts);\n }\n\n async getAsync(cmd: string, args: string[], opts?: execa.SyncOptions) {\n return (await this.raw(cmd, args, opts)).stdout;\n }\n\n get(cmd: string, args: string[], opts?: execa.SyncOptions) {\n return this.raw.sync(cmd, args, opts).stdout;\n }\n}\n"]}
1
+ {"version":3,"file":"CliExeca.js","sourceRoot":"","sources":["../../../src/services/CliExeca.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;AAEpC,0DAA0B;AAC1B,8CAA6C;AAC7C,4CAA0C;AAE1C,6DAA6D;AAC7D,aAAa;AACb,wGAAsE;AACtE,6DAA6D;AAC7D,aAAa;AACb,0DAA0B;AAG1B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IACV,GAAG,GAAG,eAAK,CAAC;IAErB;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAc;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,IAAA,eAAK,GAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,IAAA,eAAK,GAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QAEzE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,kBAAM,EAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAkB;QACrD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,IAAkB;QAC5D,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAkB;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC;CACF,CAAA;AA5BY,QAAQ;IADpB,IAAA,eAAU,GAAE;GACA,QAAQ,CA4BpB;AA5BY,4BAAQ","sourcesContent":["import {Injectable} from \"@tsed/di\";\nimport type {SyncOptions, Options} from \"execa\";\nimport execa from \"execa\";\nimport {filter, merge} from \"rxjs/operators\";\nimport \"any-observable/register/rxjs-all\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport streamToObservable from \"@samverschueren/stream-to-observable\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport split from \"split\";\n\n@Injectable()\nexport class CliExeca {\n readonly raw = execa;\n\n /**\n *\n * @param cmd\n * @param args\n * @param opts\n */\n run(cmd: string, args: string[], opts?: Options) {\n const cp = this.raw(cmd, args, opts);\n const stdout = streamToObservable(cp.stdout!.pipe(split()), {await: cp});\n const stderr = streamToObservable(cp.stderr!.pipe(split()), {await: cp});\n\n return stdout.pipe(merge(stderr)).pipe(filter(Boolean));\n }\n\n runSync(cmd: string, args: string[], opts?: SyncOptions) {\n return this.raw.sync(cmd, args, opts);\n }\n\n async getAsync(cmd: string, args: string[], opts?: SyncOptions) {\n return (await this.raw(cmd, args, opts)).stdout;\n }\n\n get(cmd: string, args: string[], opts?: SyncOptions) {\n return this.raw.sync(cmd, args, opts).stdout;\n }\n}\n"]}
@@ -7,9 +7,7 @@ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
7
7
  const path_1 = require("path");
8
8
  const normalizePath_1 = require("../utils/normalizePath");
9
9
  let CliFs = class CliFs {
10
- constructor() {
11
- this.raw = fs_extra_1.default;
12
- }
10
+ raw = fs_extra_1.default;
13
11
  exists(path) {
14
12
  return this.raw.existsSync(path);
15
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CliFs.js","sourceRoot":"","sources":["../../../src/services/CliFs.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;AAEpC,gEAA0B;AAE1B,+BAA0B;AAC1B,0DAAqD;AAGrD,IAAa,KAAK,GAAlB,MAAa,KAAK;IAAlB;QACE,QAAG,GAAG,kBAAE,CAAC;IAmDX,CAAC;IAjDC,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,GAAG,IAAc;QACpB,OAAO,IAAA,6BAAa,EAAC,IAAA,WAAI,EAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA8B,EAAE,QAAc;QAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAQ,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,IAAuB,EAAE,IAAS,EAAE,OAA0B;QAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,IAA8B,EAAE,IAAS,EAAE,OAAmC;QACtF,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAc,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,OAAgC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,OAAgC;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,IAAY;QACnC,OAAO,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAClB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,OAAe,OAAO,CAAC,GAAG,EAAE;QAC1D,IAAI;YACF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;gBAC1C,OAAO,gEAAa,GAAG,GAAC,CAAC;aAC1B;SACF;QAAC,OAAO,EAAE,EAAE,GAAE;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAA,WAAI,EAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;QAE9D,IAAI,IAAI,EAAE;YACR,iEAAc,IAAI,IAAE;SACrB;QAED,iEAAc,GAAG,IAAE;IACrB,CAAC;CACF,CAAA;AApDY,KAAK;IADjB,IAAA,eAAU,GAAE;GACA,KAAK,CAoDjB;AApDY,sBAAK","sourcesContent":["import {Injectable} from \"@tsed/di\";\nimport {PathLike, WriteFileOptions} from \"fs\";\nimport Fs from \"fs-extra\";\nimport {EnsureOptions} from \"fs-extra\";\nimport {join} from \"path\";\nimport {normalizePath} from \"../utils/normalizePath\";\n\n@Injectable()\nexport class CliFs {\n raw = Fs;\n\n exists(path: string) {\n return this.raw.existsSync(path);\n }\n\n join(...args: string[]) {\n return normalizePath(join(...args));\n }\n\n async readFile(file: string | Buffer | number, encoding?: any): Promise<string> {\n return this.raw.readFile(file, encoding) as any;\n }\n\n writeFileSync(path: PathLike | number, data: any, options?: WriteFileOptions) {\n return this.raw.writeFileSync(path, data, options);\n }\n\n writeFile(file: string | Buffer | number, data: any, options?: WriteFileOptions | string) {\n return this.raw.writeFile(file, data, options as any);\n }\n\n ensureDir(path: string, options?: EnsureOptions | number) {\n return this.raw.ensureDir(path, options);\n }\n\n ensureDirSync(path: string, options?: EnsureOptions | number): void {\n return this.raw.ensureDirSync(path, options);\n }\n\n findUpFile(root: string, file: string) {\n return [join(root, file), join(root, \"..\", file), join(root, \"..\", \"..\", file), join(root, \"..\", \"..\", \"..\", file)].find((path) =>\n this.exists(path)\n );\n }\n\n async importModule(mod: string, root: string = process.cwd()) {\n try {\n if (process.env.NODE_ENV === \"development\") {\n return await import(mod);\n }\n } catch (er) {}\n\n const path = this.findUpFile(root, join(\"node_modules\", mod));\n\n if (path) {\n return import(path);\n }\n\n return import(mod);\n }\n}\n"]}
1
+ {"version":3,"file":"CliFs.js","sourceRoot":"","sources":["../../../src/services/CliFs.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;AAEpC,gEAA0B;AAE1B,+BAA0B;AAC1B,0DAAqD;AAGrD,IAAa,KAAK,GAAlB,MAAa,KAAK;IAChB,GAAG,GAAG,kBAAE,CAAC;IAET,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,GAAG,IAAc;QACpB,OAAO,IAAA,6BAAa,EAAC,IAAA,WAAI,EAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA8B,EAAE,QAAc;QAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAQ,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,IAAuB,EAAE,IAAS,EAAE,OAA0B;QAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,IAA8B,EAAE,IAAS,EAAE,OAAmC;QACtF,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAc,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,OAAgC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,OAAgC;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,IAAY;QACnC,OAAO,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAClB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,OAAe,OAAO,CAAC,GAAG,EAAE;QAC1D,IAAI;YACF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;gBAC1C,OAAO,gEAAa,GAAG,GAAC,CAAC;aAC1B;SACF;QAAC,OAAO,EAAE,EAAE,GAAE;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAA,WAAI,EAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;QAE9D,IAAI,IAAI,EAAE;YACR,iEAAc,IAAI,IAAE;SACrB;QAED,iEAAc,GAAG,IAAE;IACrB,CAAC;CACF,CAAA;AApDY,KAAK;IADjB,IAAA,eAAU,GAAE;GACA,KAAK,CAoDjB;AApDY,sBAAK","sourcesContent":["import {Injectable} from \"@tsed/di\";\nimport {PathLike, WriteFileOptions} from \"fs\";\nimport Fs from \"fs-extra\";\nimport {EnsureOptions} from \"fs-extra\";\nimport {join} from \"path\";\nimport {normalizePath} from \"../utils/normalizePath\";\n\n@Injectable()\nexport class CliFs {\n raw = Fs;\n\n exists(path: string) {\n return this.raw.existsSync(path);\n }\n\n join(...args: string[]) {\n return normalizePath(join(...args));\n }\n\n async readFile(file: string | Buffer | number, encoding?: any): Promise<string> {\n return this.raw.readFile(file, encoding) as any;\n }\n\n writeFileSync(path: PathLike | number, data: any, options?: WriteFileOptions) {\n return this.raw.writeFileSync(path, data, options);\n }\n\n writeFile(file: string | Buffer | number, data: any, options?: WriteFileOptions | string) {\n return this.raw.writeFile(file, data, options as any);\n }\n\n ensureDir(path: string, options?: EnsureOptions | number) {\n return this.raw.ensureDir(path, options);\n }\n\n ensureDirSync(path: string, options?: EnsureOptions | number): void {\n return this.raw.ensureDirSync(path, options);\n }\n\n findUpFile(root: string, file: string) {\n return [join(root, file), join(root, \"..\", file), join(root, \"..\", \"..\", file), join(root, \"..\", \"..\", \"..\", file)].find((path) =>\n this.exists(path)\n );\n }\n\n async importModule(mod: string, root: string = process.cwd()) {\n try {\n if (process.env.NODE_ENV === \"development\") {\n return await import(mod);\n }\n } catch (er) {}\n\n const path = this.findUpFile(root, join(\"node_modules\", mod));\n\n if (path) {\n return import(path);\n }\n\n return import(mod);\n }\n}\n"]}
@@ -4,6 +4,7 @@ exports.CliHooks = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const di_1 = require("@tsed/di");
6
6
  let CliHooks = class CliHooks {
7
+ injector;
7
8
  async emit(hookName, cmd, ...args) {
8
9
  const providers = this.injector.getProviders();
9
10
  let results = [];
@@ -1 +1 @@
1
- {"version":3,"file":"CliHooks.js","sourceRoot":"","sources":["../../../src/services/CliHooks.ts"],"names":[],"mappings":";;;;AAAA,iCAA6D;AAG7D,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAInB,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,GAAW,EAAE,GAAG,IAAW;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC/C,IAAI,OAAO,GAAQ,EAAE,CAAC;QAEtB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,MAAM,QAAQ,GAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC;gBAEzD,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;oBAChD,IAAI,KAAK,EAAE;wBACT,KAAK,MAAM,WAAW,IAAI,KAAK,EAAE;4BAC/B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;yBAChE;qBACF;iBACF;aACF;SACF;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAvBC;IADC,IAAA,WAAM,GAAE;sCACC,oBAAe;0CAAC;AAFf,QAAQ;IADpB,IAAA,eAAU,GAAE;GACA,QAAQ,CAyBpB;AAzBY,4BAAQ","sourcesContent":["import {Inject, Injectable, InjectorService} from \"@tsed/di\";\n\n@Injectable()\nexport class CliHooks {\n @Inject()\n injector: InjectorService;\n\n async emit(hookName: string, cmd: string, ...args: any[]) {\n const providers = this.injector.getProviders();\n let results: any = [];\n\n for (const provider of providers) {\n if (provider.useClass) {\n const instance: any = this.injector.get(provider.token)!;\n\n if (provider.store.has(hookName)) {\n const props = provider.store.get(hookName)[cmd];\n if (props) {\n for (const propertyKey of props) {\n results = results.concat(await instance[propertyKey](...args));\n }\n }\n }\n }\n }\n\n return results.filter((o: any) => o !== undefined);\n }\n}\n"]}
1
+ {"version":3,"file":"CliHooks.js","sourceRoot":"","sources":["../../../src/services/CliHooks.ts"],"names":[],"mappings":";;;;AAAA,iCAA6D;AAG7D,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAEnB,QAAQ,CAAkB;IAE1B,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,GAAW,EAAE,GAAG,IAAW;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC/C,IAAI,OAAO,GAAQ,EAAE,CAAC;QAEtB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,MAAM,QAAQ,GAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC;gBAEzD,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;oBAChD,IAAI,KAAK,EAAE;wBACT,KAAK,MAAM,WAAW,IAAI,KAAK,EAAE;4BAC/B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;yBAChE;qBACF;iBACF;aACF;SACF;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAvBC;IADC,IAAA,WAAM,GAAE;sCACC,oBAAe;0CAAC;AAFf,QAAQ;IADpB,IAAA,eAAU,GAAE;GACA,QAAQ,CAyBpB;AAzBY,4BAAQ","sourcesContent":["import {Inject, Injectable, InjectorService} from \"@tsed/di\";\n\n@Injectable()\nexport class CliHooks {\n @Inject()\n injector: InjectorService;\n\n async emit(hookName: string, cmd: string, ...args: any[]) {\n const providers = this.injector.getProviders();\n let results: any = [];\n\n for (const provider of providers) {\n if (provider.useClass) {\n const instance: any = this.injector.get(provider.token)!;\n\n if (provider.store.has(hookName)) {\n const props = provider.store.get(hookName)[cmd];\n if (props) {\n for (const propertyKey of props) {\n results = results.concat(await instance[propertyKey](...args));\n }\n }\n }\n }\n }\n\n return results.filter((o: any) => o !== undefined);\n }\n}\n"]}
@@ -11,6 +11,8 @@ const CliProxyAgent_1 = require("./CliProxyAgent");
11
11
  const CliHttpLogClient_1 = require("./CliHttpLogClient");
12
12
  const url_1 = require("url");
13
13
  let CliHttpClient = CliHttpClient_1 = class CliHttpClient extends CliHttpLogClient_1.CliHttpLogClient {
14
+ cliProxyAgent;
15
+ host;
14
16
  static getParamsSerializer(params) {
15
17
  return (0, querystring_1.stringify)((0, core_1.cleanObject)(params));
16
18
  }
@@ -92,8 +94,8 @@ let CliHttpClient = CliHttpClient_1 = class CliHttpClient extends CliHttpLogClie
92
94
  }
93
95
  mapResponse(result, options) {
94
96
  const { withHeaders } = options;
95
- const data = !withHeaders ? result === null || result === void 0 ? void 0 : result.data : result;
96
- return withHeaders ? { data, headers: result === null || result === void 0 ? void 0 : result.headers } : data;
97
+ const data = !withHeaders ? result?.data : result;
98
+ return withHeaders ? { data, headers: result?.headers } : data;
97
99
  }
98
100
  };
99
101
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"CliHttpClient.js","sourceRoot":"","sources":["../../../src/services/CliHttpClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport axios, {AxiosRequestConfig, Method} from \"axios\";\nimport {cleanObject} from \"@tsed/core\";\nimport {stringify} from \"querystring\";\nimport {CliProxyAgent} from \"./CliProxyAgent\";\nimport {CliHttpLogClient} from \"./CliHttpLogClient\";\nimport {URL} from \"url\";\n\nexport interface CliHttpClientOptions extends AxiosRequestConfig, Record<string, unknown> {\n qs?: Record<string, unknown>;\n withHeaders?: boolean;\n}\n\n@Injectable()\nexport class CliHttpClient extends CliHttpLogClient {\n @Inject()\n protected cliProxyAgent: CliProxyAgent;\n\n protected host: string;\n\n static getParamsSerializer(params: any) {\n return stringify(cleanObject(params));\n }\n\n async $onInit() {\n await this.cliProxyAgent.resolveProxySettings();\n }\n\n async head<T = Record<string, any>>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const {headers} = await axios(this.getRequestParameters(\"HEAD\", endpoint, options));\n\n return headers as any;\n }\n\n async get<T = unknown>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const result = await this.send(this.getRequestParameters(\"GET\", endpoint, options));\n\n return this.mapResponse(result, options);\n }\n\n async post<T = unknown>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const result = await this.send(this.getRequestParameters(\"POST\", endpoint, options));\n\n return this.mapResponse(result, options);\n }\n\n async put<T = any>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const result = await this.send(this.getRequestParameters(\"PUT\", endpoint, options));\n\n return this.mapResponse(result, options);\n }\n\n async patch<T = any>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const result = await this.send(this.getRequestParameters(\"PATCH\", endpoint, options));\n\n return this.mapResponse(result, options);\n }\n\n async delete<T = any>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const result = await this.send(this.getRequestParameters(\"DELETE\", endpoint, options));\n\n return this.mapResponse(result, options);\n }\n\n protected getRequestParameters(method: Method, endpoint: string, options: CliHttpClientOptions) {\n options = {\n method,\n url: (this.host || \"\") + endpoint.replace(this.host || \"\", \"\"),\n ...options,\n params: options.params || options.qs,\n data: options.data,\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n ...(options.headers || {})\n }\n };\n\n this.configureProxy(endpoint, options);\n\n return options;\n }\n\n protected configureProxy(endpoint: string, options: CliHttpClientOptions) {\n const url = new URL(endpoint);\n\n if (this.cliProxyAgent.hasProxy()) {\n const protocol = url.protocol.replace(\":\", \"\");\n switch (protocol) {\n case \"https\":\n options.httpsAgent = this.cliProxyAgent.get(protocol);\n options.proxy = false;\n break;\n case \"http\":\n options.httpAgent = this.cliProxyAgent.get(protocol);\n options.proxy = false;\n break;\n default:\n break;\n }\n }\n }\n\n protected async send(options: AxiosRequestConfig) {\n const startTime = new Date().getTime();\n\n try {\n const response = await axios({\n paramsSerializer: CliHttpClient.getParamsSerializer,\n ...options\n });\n\n this.onSuccess({startTime, ...options});\n\n return response;\n } catch (error) {\n this.onError(error, {startTime, ...options});\n throw error;\n }\n }\n\n protected mapResponse(result: any, options: CliHttpClientOptions) {\n const {withHeaders} = options;\n\n const data = !withHeaders ? result?.data : result;\n\n return withHeaders ? {data, headers: result?.headers} : data;\n }\n}\n"]}
1
+ {"version":3,"file":"CliHttpClient.js","sourceRoot":"","sources":["../../../src/services/CliHttpClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport axios, {AxiosRequestConfig, Method} from \"axios\";\nimport {cleanObject} from \"@tsed/core\";\nimport {stringify} from \"querystring\";\nimport {CliProxyAgent} from \"./CliProxyAgent\";\nimport {CliHttpLogClient} from \"./CliHttpLogClient\";\nimport {URL} from \"url\";\n\nexport interface CliHttpClientOptions extends AxiosRequestConfig, Record<string, unknown> {\n qs?: Record<string, unknown>;\n withHeaders?: boolean;\n}\n\n@Injectable()\nexport class CliHttpClient extends CliHttpLogClient {\n @Inject()\n protected cliProxyAgent: CliProxyAgent;\n\n protected host: string;\n\n static getParamsSerializer(params: any) {\n return stringify(cleanObject(params));\n }\n\n async $onInit() {\n await this.cliProxyAgent.resolveProxySettings();\n }\n\n async head<T = Record<string, any>>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const {headers} = await axios(this.getRequestParameters(\"HEAD\", endpoint, options));\n\n return headers as any;\n }\n\n async get<T = unknown>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const result = await this.send(this.getRequestParameters(\"GET\", endpoint, options));\n\n return this.mapResponse(result, options);\n }\n\n async post<T = unknown>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const result = await this.send(this.getRequestParameters(\"POST\", endpoint, options));\n\n return this.mapResponse(result, options);\n }\n\n async put<T = any>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const result = await this.send(this.getRequestParameters(\"PUT\", endpoint, options));\n\n return this.mapResponse(result, options);\n }\n\n async patch<T = any>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const result = await this.send(this.getRequestParameters(\"PATCH\", endpoint, options));\n\n return this.mapResponse(result, options);\n }\n\n async delete<T = any>(endpoint: string, options: CliHttpClientOptions = {}): Promise<T> {\n const result = await this.send(this.getRequestParameters(\"DELETE\", endpoint, options));\n\n return this.mapResponse(result, options);\n }\n\n protected getRequestParameters(method: Method, endpoint: string, options: CliHttpClientOptions) {\n options = {\n method,\n url: (this.host || \"\") + endpoint.replace(this.host || \"\", \"\"),\n ...options,\n params: options.params || options.qs,\n data: options.data,\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n ...(options.headers || {})\n }\n };\n\n this.configureProxy(endpoint, options);\n\n return options;\n }\n\n protected configureProxy(endpoint: string, options: CliHttpClientOptions) {\n const url = new URL(endpoint);\n\n if (this.cliProxyAgent.hasProxy()) {\n const protocol = url.protocol.replace(\":\", \"\");\n switch (protocol) {\n case \"https\":\n options.httpsAgent = this.cliProxyAgent.get(protocol);\n options.proxy = false;\n break;\n case \"http\":\n options.httpAgent = this.cliProxyAgent.get(protocol);\n options.proxy = false;\n break;\n default:\n break;\n }\n }\n }\n\n protected async send(options: AxiosRequestConfig) {\n const startTime = new Date().getTime();\n\n try {\n const response = await axios({\n paramsSerializer: CliHttpClient.getParamsSerializer,\n ...options\n });\n\n this.onSuccess({startTime, ...options});\n\n return response;\n } catch (error) {\n this.onError(error, {startTime, ...options});\n throw error;\n }\n }\n\n protected mapResponse(result: any, options: CliHttpClientOptions) {\n const {withHeaders} = options;\n\n const data = !withHeaders ? result?.data : result;\n\n return withHeaders ? {data, headers: result?.headers} : data;\n }\n}\n"]}
@@ -9,6 +9,8 @@ const logger_1 = require("@tsed/logger");
9
9
  const core_1 = require("@tsed/core");
10
10
  const logToCurl_1 = require("../utils/logToCurl");
11
11
  let CliHttpLogClient = class CliHttpLogClient {
12
+ callee;
13
+ logger;
12
14
  constructor(options = {}) {
13
15
  this.callee = options.callee || "http";
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CliHttpLogClient.js","sourceRoot":"","sources":["../../../src/services/CliHttpLogClient.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport querystring from \"querystring\";\nimport {Inject, Opts} from \"@tsed/di\";\nimport {Logger} from \"@tsed/logger\";\nimport {getValue} from \"@tsed/core\";\nimport {logToCurl} from \"../utils/logToCurl\";\n\nexport interface BaseLogClientOptions {\n callee: string;\n}\n\nexport class CliHttpLogClient {\n callee: string;\n\n @Inject()\n protected logger: Logger;\n\n constructor(@Opts options: Partial<BaseLogClientOptions> = {}) {\n this.callee = options.callee || \"http\";\n }\n\n protected onSuccess(options: Record<string, unknown>) {\n return this.logger.debug({\n ...this.formatLog(options),\n status: \"OK\"\n });\n }\n\n protected onError(error: any, options: any) {\n const origin = this.errorMapper(error);\n this.logger.warn({\n ...this.formatLog(options),\n status: \"KO\",\n callee_code: origin.code,\n callee_error: origin.message,\n callee_request_qs: options.params && querystring.stringify(options.params),\n callee_request_headers: options.headers,\n callee_request_body: options.data && JSON.stringify(options.data),\n callee_response_headers: origin.headers,\n callee_response_body: origin.body && JSON.stringify(origin.body),\n callee_response_request_id: origin.x_request_id,\n curl: this.logToCurl(options)\n });\n }\n\n protected logToCurl(options: any) {\n return logToCurl(options);\n }\n\n protected getStatusCodeFromError(error: any) {\n return getValue(error, \"response.status\", getValue(error, \"response.statusCode\", getValue(error, \"status\")));\n }\n\n protected getHeadersFromError(error: any) {\n return getValue(error, \"response.headers\", getValue(error, \"headers\"));\n }\n\n protected getResponseBodyFromError(error: any) {\n return getValue(error, \"response.data\", getValue(error, \"data\"));\n }\n\n protected formatLog(options: Record<string, any>) {\n const {startTime, url, method} = options;\n const {callee} = this;\n const duration = new Date().getTime() - startTime;\n\n return {\n callee,\n url,\n method,\n callee_qs: options.params && querystring.stringify(options.params),\n duration: isNaN(duration) ? undefined : duration\n };\n }\n\n protected errorMapper(error: Error) {\n const statusCode = this.getStatusCodeFromError(error);\n const headers = this.getHeadersFromError(error);\n const body = this.getResponseBodyFromError(error);\n\n return {\n message: error.message || statusCode,\n code: statusCode,\n headers,\n body,\n x_request_id: getValue(error, \"response.headers.x-request-id\", getValue(error, \"headers.x-request-id\"))\n };\n }\n}\n"]}
1
+ {"version":3,"file":"CliHttpLogClient.js","sourceRoot":"","sources":["../../../src/services/CliHttpLogClient.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport querystring from \"querystring\";\nimport {Inject, Opts} from \"@tsed/di\";\nimport {Logger} from \"@tsed/logger\";\nimport {getValue} from \"@tsed/core\";\nimport {logToCurl} from \"../utils/logToCurl\";\n\nexport interface BaseLogClientOptions {\n callee: string;\n}\n\nexport class CliHttpLogClient {\n callee: string;\n\n @Inject()\n protected logger: Logger;\n\n constructor(@Opts options: Partial<BaseLogClientOptions> = {}) {\n this.callee = options.callee || \"http\";\n }\n\n protected onSuccess(options: Record<string, unknown>) {\n return this.logger.debug({\n ...this.formatLog(options),\n status: \"OK\"\n });\n }\n\n protected onError(error: any, options: any) {\n const origin = this.errorMapper(error);\n this.logger.warn({\n ...this.formatLog(options),\n status: \"KO\",\n callee_code: origin.code,\n callee_error: origin.message,\n callee_request_qs: options.params && querystring.stringify(options.params),\n callee_request_headers: options.headers,\n callee_request_body: options.data && JSON.stringify(options.data),\n callee_response_headers: origin.headers,\n callee_response_body: origin.body && JSON.stringify(origin.body),\n callee_response_request_id: origin.x_request_id,\n curl: this.logToCurl(options)\n });\n }\n\n protected logToCurl(options: any) {\n return logToCurl(options);\n }\n\n protected getStatusCodeFromError(error: any) {\n return getValue(error, \"response.status\", getValue(error, \"response.statusCode\", getValue(error, \"status\")));\n }\n\n protected getHeadersFromError(error: any) {\n return getValue(error, \"response.headers\", getValue(error, \"headers\"));\n }\n\n protected getResponseBodyFromError(error: any) {\n return getValue(error, \"response.data\", getValue(error, \"data\"));\n }\n\n protected formatLog(options: Record<string, any>) {\n const {startTime, url, method} = options;\n const {callee} = this;\n const duration = new Date().getTime() - startTime;\n\n return {\n callee,\n url,\n method,\n callee_qs: options.params && querystring.stringify(options.params),\n duration: isNaN(duration) ? undefined : duration\n };\n }\n\n protected errorMapper(error: Error) {\n const statusCode = this.getStatusCodeFromError(error);\n const headers = this.getHeadersFromError(error);\n const body = this.getResponseBodyFromError(error);\n\n return {\n message: error.message || statusCode,\n code: statusCode,\n headers,\n body,\n x_request_id: getValue(error, \"response.headers.x-request-id\", getValue(error, \"headers.x-request-id\"))\n };\n }\n}\n"]}
@@ -18,6 +18,11 @@ function mapPlugins({ package: { name, description = "", ...otherProps } }) {
18
18
  };
19
19
  }
20
20
  let CliPlugins = class CliPlugins {
21
+ name;
22
+ npmRegistryClient;
23
+ injector;
24
+ cliHooks;
25
+ packageJson;
21
26
  async searchPlugins(keyword = "", options = {}) {
22
27
  const result = await this.npmRegistryClient.search(this.getKeyword(keyword), options);
23
28
  return result.filter(({ package: { name } }) => this.isPlugin(name)).map(mapPlugins);
@@ -1 +1 @@
1
- {"version":3,"file":"CliPlugins.js","sourceRoot":"","sources":["../../../src/services/CliPlugins.ts"],"names":[],"mappings":"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","sourcesContent":["import {createSubTasks} from \"../utils/createTasksRunner\";\nimport chalk from \"chalk\";\nimport {Constant, Inject, Injectable, InjectorService} from \"@tsed/di\";\nimport {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {loadPlugins} from \"../utils/loadPlugins\";\nimport {CliHooks} from \"./CliHooks\";\nimport {NpmRegistryClient} from \"./NpmRegistryClient\";\nimport {ProjectPackageJson} from \"./ProjectPackageJson\";\n\nfunction mapPlugins({package: {name, description = \"\", ...otherProps}}: any) {\n return {\n name: `${name} ${description}`.trim(),\n value: name,\n ...otherProps\n };\n}\n\n@Injectable()\nexport class CliPlugins {\n @Constant(\"name\")\n name: string;\n\n @Inject()\n private npmRegistryClient: NpmRegistryClient;\n\n @Inject()\n private injector: InjectorService;\n\n @Inject()\n private cliHooks: CliHooks;\n\n @Inject()\n private packageJson: ProjectPackageJson;\n\n async searchPlugins(keyword = \"\", options: any = {}) {\n const result = await this.npmRegistryClient.search(this.getKeyword(keyword), options);\n\n return result.filter(({package: {name}}: any) => this.isPlugin(name)).map(mapPlugins);\n }\n\n async loadPlugins() {\n return loadPlugins(this.injector);\n }\n\n addPluginsDependencies(ctx: any) {\n const plugins = Object.keys(this.packageJson.devDependencies).filter((name) => this.isPlugin(name));\n\n const tasks = plugins.map((plugin) => {\n return {\n title: `Run plugin '${chalk.cyan(plugin)}'`,\n task: () => this.cliHooks.emit(CommandStoreKeys.ADD, plugin, ctx)\n };\n });\n\n return [\n ...tasks,\n {\n title: \"Install\",\n task: createSubTasks(() => this.packageJson.install(ctx), {...ctx, concurrent: false})\n }\n ];\n }\n\n protected getKeyword(keyword: string) {\n return `@${this.name}/cli-plugin-${this.cleanKeyword(keyword)}`;\n }\n\n protected cleanKeyword(keyword: string) {\n return keyword.replace(this.name, \"\").replace(\"@\", \"\").replace(\"/\", \"\").replace(\"cli-plugin-\", \"\");\n }\n\n private isPlugin(name: any) {\n return name.startsWith(`@${this.name}/cli-plugin`) || name.includes(`${this.name}-cli-plugin`);\n }\n}\n"]}
1
+ {"version":3,"file":"CliPlugins.js","sourceRoot":"","sources":["../../../src/services/CliPlugins.ts"],"names":[],"mappings":";;;;AAAA,kEAA0D;AAC1D,0DAA0B;AAC1B,iCAAuE;AACvE,kEAA6D;AAC7D,sDAAiD;AACjD,yCAAoC;AACpC,2DAAsD;AACtD,6DAAwD;AAExD,SAAS,UAAU,CAAC,EAAC,OAAO,EAAE,EAAC,IAAI,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,UAAU,EAAC,EAAM;IACzE,OAAO;QACL,IAAI,EAAE,GAAG,IAAI,IAAI,WAAW,EAAE,CAAC,IAAI,EAAE;QACrC,KAAK,EAAE,IAAI;QACX,GAAG,UAAU;KACd,CAAC;AACJ,CAAC;AAGD,IAAa,UAAU,GAAvB,MAAa,UAAU;IAErB,IAAI,CAAS;IAGL,iBAAiB,CAAoB;IAGrC,QAAQ,CAAkB;IAG1B,QAAQ,CAAW;IAGnB,WAAW,CAAqB;IAExC,KAAK,CAAC,aAAa,CAAC,OAAO,GAAG,EAAE,EAAE,UAAe,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QAEtF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAC,OAAO,EAAE,EAAC,IAAI,EAAC,EAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAA,yBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,sBAAsB,CAAC,GAAQ;QAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpG,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACnC,OAAO;gBACL,KAAK,EAAE,eAAe,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;gBAC3C,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC;aAClE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,KAAK;YACR;gBACE,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,IAAA,kCAAc,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAC,GAAG,GAAG,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;aACvF;SACF,CAAC;IACJ,CAAC;IAES,UAAU,CAAC,OAAe;QAClC,OAAO,IAAI,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;IAClE,CAAC;IAES,YAAY,CAAC,OAAe;QACpC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACrG,CAAC;IAEO,QAAQ,CAAC,IAAS;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC;IACjG,CAAC;CACF,CAAA;AAtDC;IADC,IAAA,aAAQ,EAAC,MAAM,CAAC;;wCACJ;AAGb;IADC,IAAA,WAAM,GAAE;sCACkB,qCAAiB;qDAAC;AAG7C;IADC,IAAA,WAAM,GAAE;sCACS,oBAAe;4CAAC;AAGlC;IADC,IAAA,WAAM,GAAE;sCACS,mBAAQ;4CAAC;AAG3B;IADC,IAAA,WAAM,GAAE;sCACY,uCAAkB;+CAAC;AAd7B,UAAU;IADtB,IAAA,eAAU,GAAE;GACA,UAAU,CAwDtB;AAxDY,gCAAU","sourcesContent":["import {createSubTasks} from \"../utils/createTasksRunner\";\nimport chalk from \"chalk\";\nimport {Constant, Inject, Injectable, InjectorService} from \"@tsed/di\";\nimport {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {loadPlugins} from \"../utils/loadPlugins\";\nimport {CliHooks} from \"./CliHooks\";\nimport {NpmRegistryClient} from \"./NpmRegistryClient\";\nimport {ProjectPackageJson} from \"./ProjectPackageJson\";\n\nfunction mapPlugins({package: {name, description = \"\", ...otherProps}}: any) {\n return {\n name: `${name} ${description}`.trim(),\n value: name,\n ...otherProps\n };\n}\n\n@Injectable()\nexport class CliPlugins {\n @Constant(\"name\")\n name: string;\n\n @Inject()\n private npmRegistryClient: NpmRegistryClient;\n\n @Inject()\n private injector: InjectorService;\n\n @Inject()\n private cliHooks: CliHooks;\n\n @Inject()\n private packageJson: ProjectPackageJson;\n\n async searchPlugins(keyword = \"\", options: any = {}) {\n const result = await this.npmRegistryClient.search(this.getKeyword(keyword), options);\n\n return result.filter(({package: {name}}: any) => this.isPlugin(name)).map(mapPlugins);\n }\n\n async loadPlugins() {\n return loadPlugins(this.injector);\n }\n\n addPluginsDependencies(ctx: any) {\n const plugins = Object.keys(this.packageJson.devDependencies).filter((name) => this.isPlugin(name));\n\n const tasks = plugins.map((plugin) => {\n return {\n title: `Run plugin '${chalk.cyan(plugin)}'`,\n task: () => this.cliHooks.emit(CommandStoreKeys.ADD, plugin, ctx)\n };\n });\n\n return [\n ...tasks,\n {\n title: \"Install\",\n task: createSubTasks(() => this.packageJson.install(ctx), {...ctx, concurrent: false})\n }\n ];\n }\n\n protected getKeyword(keyword: string) {\n return `@${this.name}/cli-plugin-${this.cleanKeyword(keyword)}`;\n }\n\n protected cleanKeyword(keyword: string) {\n return keyword.replace(this.name, \"\").replace(\"@\", \"\").replace(\"/\", \"\").replace(\"cli-plugin-\", \"\");\n }\n\n private isPlugin(name: any) {\n return name.startsWith(`@${this.name}/cli-plugin`) || name.includes(`${this.name}-cli-plugin`);\n }\n}\n"]}
@@ -23,6 +23,8 @@ function cast(value) {
23
23
  return value;
24
24
  }
25
25
  let CliProxyAgent = class CliProxyAgent {
26
+ proxySettings;
27
+ cliExeca;
26
28
  hasProxy() {
27
29
  return !!this.proxySettings.url;
28
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CliProxyAgent.js","sourceRoot":"","sources":["../../../src/services/CliProxyAgent.ts"],"names":[],"mappings":";;;;AAAA,4DAA4B;AAC5B,iCAAkE;AAClE,yCAAoC;AACpC,6CAAsC;AACtC,6BAAwB;AAOxB,SAAS,IAAI,CAAC,KAAU;IACtB,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACjC,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AASD,IAAa,aAAa,GAA1B,MAAa,aAAa;IAOxB,QAAQ;QACN,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,IAAsB;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,MAAM,EAAC,SAAS,GAAG,IAAI,EAAC,GAAG,IAAI,CAAC,aAAa,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAE/C,MAAM,OAAO,GAAG;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG,CAAC,QAAQ;oBAClB,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAQ;oBAC/C,SAAS,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;oBACvF,kBAAkB,EAAE,SAAS;iBAC9B;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,uBAAS,EAAC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAE7D,IAAK,gBAAc,CAAC,MAAM,CAAC,EAAE;gBAC3B,OAAQ,gBAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;aACzC;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,OAAO;SACR;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;SAC/D,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,UAAU,IAAI,SAAS,IAAI,KAAK,CAAC;QAE7C,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,aAAa,GAAG;gBACnB,GAAG;gBACH,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK;aACrC,CAAC;SACH;IACH,CAAC;CACF,CAAA;AAxDC;IADC,IAAA,UAAK,EAAC,OAAO,EAAE,EAAE,CAAC;;oDACa;AAGhC;IADC,IAAA,WAAM,GAAE;sCACW,mBAAQ;+CAAC;AALlB,aAAa;IAPzB,IAAA,eAAU,GAAE;IACZ,IAAA,kBAAa,EAAC;QACb,KAAK,EAAE;YACL,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;YACtD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI;SAC5H;KACF,CAAC;GACW,aAAa,CA0DzB;AA1DY,sCAAa","sourcesContent":["import tunnel from \"tunnel\";\nimport {Configuration, Inject, Injectable, Value} from \"@tsed/di\";\nimport {CliExeca} from \"./CliExeca\";\nimport {camelCase} from \"change-case\";\nimport {URL} from \"url\";\n\nexport interface CliProxySettings {\n url: string;\n strictSsl: boolean;\n}\n\nfunction cast(value: any) {\n if ([\"undefined\"].includes(value)) {\n return undefined;\n }\n if ([\"null\"].includes(value)) {\n return null;\n }\n\n if ([\"false\"].includes(value)) {\n return false;\n }\n\n if ([\"true\"].includes(value)) {\n return false;\n }\n\n return value;\n}\n\n@Injectable()\n@Configuration({\n proxy: {\n url: process.env.HTTPS_PROXY || process.env.HTTP_PROXY,\n strictSsl: process.env.NODE_TLS_REJECT_UNAUTHORIZED !== undefined ? process.env.NODE_TLS_REJECT_UNAUTHORIZED !== \"0\" : true\n }\n})\nexport class CliProxyAgent {\n @Value(\"proxy\", {})\n proxySettings: CliProxySettings;\n\n @Inject()\n protected cliExeca: CliExeca;\n\n hasProxy() {\n return !!this.proxySettings.url;\n }\n\n get(type: \"http\" | \"https\") {\n if (this.hasProxy()) {\n const {strictSsl = true} = this.proxySettings;\n const url = new URL(this.proxySettings.url);\n const protocol = url.protocol.replace(\":\", \"\");\n\n const options = {\n proxy: {\n host: url.hostname,\n port: (url.port ? +url.port : undefined) as any,\n proxyAuth: url.username && url.password ? `${url.username}:${url.password}` : undefined,\n rejectUnauthorized: strictSsl\n }\n };\n\n const method = camelCase([type, \"over\", protocol].join(\" \"));\n\n if ((tunnel as any)[method]) {\n return (tunnel as any)[method](options);\n }\n }\n\n return null;\n }\n\n async resolveProxySettings(): Promise<void> {\n if (this.hasProxy()) {\n return;\n }\n\n const result = await Promise.all([\n this.cliExeca.getAsync(\"npm\", [\"config\", \"get\", \"proxy\"]),\n this.cliExeca.getAsync(\"npm\", [\"config\", \"get\", \"http-proxy\"]),\n this.cliExeca.getAsync(\"npm\", [\"config\", \"get\", \"https-proxy\"]),\n this.cliExeca.getAsync(\"npm\", [\"config\", \"get\", \"strict-ssl\"])\n ]);\n\n const [proxy, httpProxy, httpsProxy, strictSsl] = result.map(cast);\n const url = httpsProxy || httpProxy || proxy;\n\n if (url) {\n this.proxySettings = {\n url,\n strictSsl: cast(strictSsl) !== false\n };\n }\n }\n}\n"]}
1
+ {"version":3,"file":"CliProxyAgent.js","sourceRoot":"","sources":["../../../src/services/CliProxyAgent.ts"],"names":[],"mappings":"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","sourcesContent":["import tunnel from \"tunnel\";\nimport {Configuration, Inject, Injectable, Value} from \"@tsed/di\";\nimport {CliExeca} from \"./CliExeca\";\nimport {camelCase} from \"change-case\";\nimport {URL} from \"url\";\n\nexport interface CliProxySettings {\n url: string;\n strictSsl: boolean;\n}\n\nfunction cast(value: any) {\n if ([\"undefined\"].includes(value)) {\n return undefined;\n }\n if ([\"null\"].includes(value)) {\n return null;\n }\n\n if ([\"false\"].includes(value)) {\n return false;\n }\n\n if ([\"true\"].includes(value)) {\n return false;\n }\n\n return value;\n}\n\n@Injectable()\n@Configuration({\n proxy: {\n url: process.env.HTTPS_PROXY || process.env.HTTP_PROXY,\n strictSsl: process.env.NODE_TLS_REJECT_UNAUTHORIZED !== undefined ? process.env.NODE_TLS_REJECT_UNAUTHORIZED !== \"0\" : true\n }\n})\nexport class CliProxyAgent {\n @Value(\"proxy\", {})\n proxySettings: CliProxySettings;\n\n @Inject()\n protected cliExeca: CliExeca;\n\n hasProxy() {\n return !!this.proxySettings.url;\n }\n\n get(type: \"http\" | \"https\") {\n if (this.hasProxy()) {\n const {strictSsl = true} = this.proxySettings;\n const url = new URL(this.proxySettings.url);\n const protocol = url.protocol.replace(\":\", \"\");\n\n const options = {\n proxy: {\n host: url.hostname,\n port: (url.port ? +url.port : undefined) as any,\n proxyAuth: url.username && url.password ? `${url.username}:${url.password}` : undefined,\n rejectUnauthorized: strictSsl\n }\n };\n\n const method = camelCase([type, \"over\", protocol].join(\" \"));\n\n if ((tunnel as any)[method]) {\n return (tunnel as any)[method](options);\n }\n }\n\n return null;\n }\n\n async resolveProxySettings(): Promise<void> {\n if (this.hasProxy()) {\n return;\n }\n\n const result = await Promise.all([\n this.cliExeca.getAsync(\"npm\", [\"config\", \"get\", \"proxy\"]),\n this.cliExeca.getAsync(\"npm\", [\"config\", \"get\", \"http-proxy\"]),\n this.cliExeca.getAsync(\"npm\", [\"config\", \"get\", \"https-proxy\"]),\n this.cliExeca.getAsync(\"npm\", [\"config\", \"get\", \"strict-ssl\"])\n ]);\n\n const [proxy, httpProxy, httpsProxy, strictSsl] = result.map(cast);\n const url = httpsProxy || httpProxy || proxy;\n\n if (url) {\n this.proxySettings = {\n url,\n strictSsl: cast(strictSsl) !== false\n };\n }\n }\n}\n"]}
@@ -2,12 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CliRunScript = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const di_1 = require("@tsed/di");
6
- const ProjectPackageJson_1 = require("./ProjectPackageJson");
7
5
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
8
6
  // @ts-ignore
9
7
  const run_script_1 = tslib_1.__importDefault(require("@npmcli/run-script"));
8
+ const di_1 = require("@tsed/di");
9
+ const ProjectPackageJson_1 = require("./ProjectPackageJson");
10
10
  let CliRunScript = class CliRunScript {
11
+ projectPackageJson;
11
12
  run(cmd, args, options = {}) {
12
13
  return (0, run_script_1.default)({
13
14
  event: "run",
@@ -1 +1 @@
1
- {"version":3,"file":"CliRunScript.js","sourceRoot":"","sources":["../../../src/services/CliRunScript.ts"],"names":[],"mappings":";;;;AAAA,iCAA4C;AAC5C,6DAAwD;AACxD,6DAA6D;AAC7D,aAAa;AACb,4EAA2C;AAG3C,IAAa,YAAY,GAAzB,MAAa,YAAY;IAIvB,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,UAAe,EAAE;QAChD,OAAO,IAAA,oBAAS,EAAC;YACf,KAAK,EAAE,KAAK;YACZ,GAAG,OAAO;YACV,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG;YAChD,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACjC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAbC;IADC,IAAA,WAAM,GAAE;sCACW,uCAAkB;wDAAC;AAF5B,YAAY;IADxB,IAAA,eAAU,GAAE;GACA,YAAY,CAexB;AAfY,oCAAY","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport {ProjectPackageJson} from \"./ProjectPackageJson\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport runScript from \"@npmcli/run-script\";\n\n@Injectable()\nexport class CliRunScript {\n @Inject()\n projectPackageJson: ProjectPackageJson;\n\n run(cmd: string, args: string[], options: any = {}) {\n return runScript({\n event: \"run\",\n ...options,\n cmd: `${cmd} ${args.join(\" \")}`,\n path: options.cwd || this.projectPackageJson.dir,\n env: options.env || {},\n stdio: options.stdio || \"inherit\",\n banner: false\n });\n }\n}\n"]}
1
+ {"version":3,"file":"CliRunScript.js","sourceRoot":"","sources":["../../../src/services/CliRunScript.ts"],"names":[],"mappings":";;;;AAAA,6DAA6D;AAC7D,aAAa;AACb,4EAA2C;AAC3C,iCAA4C;AAC5C,6DAAwD;AAGxD,IAAa,YAAY,GAAzB,MAAa,YAAY;IAEvB,kBAAkB,CAAqB;IAEvC,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,UAAe,EAAE;QAChD,OAAO,IAAA,oBAAS,EAAC;YACf,KAAK,EAAE,KAAK;YACZ,GAAG,OAAO;YACV,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG;YAChD,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACjC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAbC;IADC,IAAA,WAAM,GAAE;sCACW,uCAAkB;wDAAC;AAF5B,YAAY;IADxB,IAAA,eAAU,GAAE;GACA,YAAY,CAexB;AAfY,oCAAY","sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport runScript from \"@npmcli/run-script\";\nimport {Inject, Injectable} from \"@tsed/di\";\nimport {ProjectPackageJson} from \"./ProjectPackageJson\";\n\n@Injectable()\nexport class CliRunScript {\n @Inject()\n projectPackageJson: ProjectPackageJson;\n\n run(cmd: string, args: string[], options: any = {}) {\n return runScript({\n event: \"run\",\n ...options,\n cmd: `${cmd} ${args.join(\" \")}`,\n path: options.cwd || this.projectPackageJson.dir,\n env: options.env || {},\n stdio: options.stdio || \"inherit\",\n banner: false\n });\n }\n}\n"]}
@@ -20,11 +20,13 @@ const ProjectPackageJson_1 = require("./ProjectPackageJson");
20
20
  const inquirer_autocomplete_prompt_1 = tslib_1.__importDefault(require("inquirer-autocomplete-prompt"));
21
21
  inquirer_1.default.registerPrompt("autocomplete", inquirer_autocomplete_prompt_1.default);
22
22
  let CliService = class CliService {
23
- constructor() {
24
- this.program = new commander_1.Command();
25
- this.reinstallAfterRun = false;
26
- this.commands = new Map();
27
- }
23
+ program = new commander_1.Command();
24
+ reinstallAfterRun = false;
25
+ pkg;
26
+ injector;
27
+ hooks;
28
+ projectPkg;
29
+ commands = new Map();
28
30
  $onInit() {
29
31
  if (this.injector.logger.level !== "off") {
30
32
  this.injector.logger.appenders
@@ -1 +1 @@
1
- {"version":3,"file":"CliService.js","sourceRoot":"","sources":["../../../src/services/CliService.ts"],"names":[],"mappings":"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","sourcesContent":["import {classOf} from \"@tsed/core\";\nimport {Constant, Inject, Injectable, InjectorService, Provider} from \"@tsed/di\";\nimport {Argument, Command} from \"commander\";\nimport Inquirer from \"inquirer\";\nimport {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {CommandProvider} from \"../interfaces/CommandProvider\";\nimport {CommandMetadata} from \"../interfaces/CommandMetadata\";\nimport {CommandArg, CommandOptions} from \"../interfaces/CommandParameters\";\nimport {PROVIDER_TYPE_COMMAND} from \"../registries/CommandRegistry\";\nimport {createSubTasks, createTasksRunner} from \"../utils/createTasksRunner\";\nimport {getCommandMetadata} from \"../utils/getCommandMetadata\";\nimport {mapCommanderArgs} from \"../utils/mapCommanderArgs\";\nimport {mapCommanderOptions} from \"../utils/mapCommanderOptions\";\nimport {parseOption} from \"../utils/parseOption\";\nimport {CliHooks} from \"./CliHooks\";\nimport {ProjectPackageJson} from \"./ProjectPackageJson\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport inquirer_autocomplete_prompt from \"inquirer-autocomplete-prompt\";\n\nInquirer.registerPrompt(\"autocomplete\", inquirer_autocomplete_prompt);\n\n@Injectable()\nexport class CliService {\n readonly program = new Command();\n\n @Constant(\"project.reinstallAfterRun\", false)\n reinstallAfterRun = false;\n\n @Constant(\"pkg\", {version: \"1.0.0\"})\n protected pkg: any;\n\n @Inject()\n protected injector: InjectorService;\n\n @Inject()\n protected hooks: CliHooks;\n\n @Inject()\n protected projectPkg: ProjectPackageJson;\n\n private commands = new Map();\n\n $onInit() {\n if (this.injector.logger.level !== \"off\") {\n this.injector.logger.appenders\n .set(\"stdout\", {\n type: \"stdout\",\n layout: {\n type: \"pattern\",\n pattern: \"[%d{hh:mm:ss}] %m\"\n },\n levels: [\"info\", \"debug\"]\n })\n .set(\"stderr\", {\n type: \"stderr\",\n layout: {\n type: \"pattern\",\n pattern: \"[%d{hh:mm:ss}][%p] %m\"\n },\n levels: [\"trace\", \"fatal\", \"error\", \"warn\"]\n });\n }\n }\n\n /**\n * Parse process.argv and runLifecycle action\n * @param argv\n */\n async parseArgs(argv: string[]): Promise<void> {\n const {program} = this;\n\n program.version(this.pkg.version);\n\n this.load();\n\n await program.parseAsync(argv);\n }\n\n /**\n * Run lifecycle\n * @param cmdName\n * @param data\n */\n public async runLifecycle(cmdName: string, data: any = {}) {\n data = await this.beforePrompt(cmdName, data);\n data = await this.prompt(cmdName, data);\n\n try {\n await this.exec(cmdName, data);\n } catch (er) {\n await this.injector.emit(\"$onFinish\", er);\n await this.injector.destroy();\n throw er;\n }\n\n await this.injector.emit(\"$onFinish\");\n await this.injector.destroy();\n }\n\n public async exec(cmdName: string, ctx: any) {\n const initialTasks = await this.getTasks(cmdName, ctx);\n\n if (initialTasks.length) {\n const tasks = [\n ...initialTasks,\n {\n title: \"Install dependencies\",\n enabled: () => this.reinstallAfterRun && (this.projectPkg.rewrite || this.projectPkg.reinstall),\n task: createSubTasks(() => this.projectPkg.install(ctx), {...ctx, concurrent: false})\n },\n ...(await this.getPostInstallTasks(cmdName, ctx))\n ];\n\n return createTasksRunner(tasks, this.mapContext(cmdName, ctx));\n }\n }\n\n /**\n * Run prompt for a given command\n * @param cmdName\n * @param ctx Initial data\n */\n public async beforePrompt(cmdName: string, ctx: any = {}) {\n const provider = this.commands.get(cmdName);\n const instance = this.injector.get<CommandProvider>(provider.useClass)!;\n const verbose = ctx.verbose;\n\n if (instance.$beforePrompt) {\n ctx = await instance.$beforePrompt(JSON.parse(JSON.stringify(ctx)));\n ctx.verbose = verbose;\n }\n return ctx;\n }\n\n /**\n * Run prompt for a given command\n * @param cmdName\n * @param ctx Initial data\n */\n public async prompt(cmdName: string, ctx: any = {}) {\n const provider = this.commands.get(cmdName);\n const instance = this.injector.get<CommandProvider>(provider.useClass)!;\n\n if (instance.$prompt) {\n const questions = [\n ...((await instance.$prompt(ctx)) as any[]),\n ...(await this.hooks.emit(CommandStoreKeys.PROMPT_HOOKS, cmdName, ctx))\n ];\n\n if (questions.length) {\n ctx = {\n ...ctx,\n ...((await Inquirer.prompt(questions)) as any)\n };\n }\n }\n\n return ctx;\n }\n\n /**\n * Run lifecycle\n * @param cmdName\n * @param ctx\n */\n public async getTasks(cmdName: string, ctx: any) {\n const provider = this.commands.get(cmdName);\n const instance = this.injector.get<CommandProvider>(provider.token)!;\n\n ctx = this.mapContext(cmdName, ctx);\n\n if (instance.$beforeExec) {\n await instance.$beforeExec(ctx);\n }\n\n return [...(await instance.$exec(ctx)), ...(await this.hooks.emit(CommandStoreKeys.EXEC_HOOKS, cmdName, ctx))];\n }\n\n public async getPostInstallTasks(cmdName: string, ctx: any) {\n const provider = this.commands.get(cmdName);\n const instance = this.injector.get<CommandProvider>(provider.useClass)!;\n\n ctx = this.mapContext(cmdName, ctx);\n\n return [\n ...(instance.$postInstall ? await instance.$postInstall(ctx) : []),\n ...(await this.hooks.emit(CommandStoreKeys.POST_INSTALL_HOOKS, cmdName, ctx))\n ];\n }\n\n public createCommand(metadata: CommandMetadata) {\n const {args, name, options, description, alias, allowUnknownOption} = metadata;\n\n if (this.commands.has(name)) {\n return this.commands.get(name).command;\n }\n\n let cmd = this.program.command(name);\n\n const onAction = (...commanderArgs: any[]) => {\n const [, ...rawArgs] = cmd.args;\n const data = {\n verbose: !!this.program.opts().verbose,\n ...mapCommanderArgs(args, commanderArgs),\n ...mapCommanderOptions(this.program.commands),\n rawArgs\n };\n\n return this.runLifecycle(name, data);\n };\n\n if (alias) {\n cmd = cmd.alias(alias);\n }\n\n cmd = cmd.description(description);\n cmd = this.buildArguments(cmd, args);\n\n cmd = cmd.action(onAction);\n\n if (options) {\n cmd = this.buildOption(cmd, options, !!allowUnknownOption);\n }\n\n return cmd;\n }\n\n private load() {\n this.injector.getProviders(PROVIDER_TYPE_COMMAND).forEach((provider) => this.build(provider));\n }\n\n private mapContext(cmdName: string, ctx: any) {\n const provider = this.commands.get(cmdName);\n const instance = this.injector.get<CommandProvider>(provider.useClass)!;\n const verbose = ctx.verbose;\n\n if (instance.$mapContext) {\n ctx = instance.$mapContext(JSON.parse(JSON.stringify(ctx)));\n ctx.verbose = verbose;\n }\n\n if (ctx.verbose) {\n this.injector.logger.level = \"debug\";\n } else {\n this.injector.logger.level = \"info\";\n }\n\n return ctx;\n }\n\n /**\n * Build command and sub-commands\n * @param provider\n */\n private build(provider: Provider<any>) {\n const metadata = getCommandMetadata(provider.useClass);\n\n if (metadata.name) {\n if (this.commands.has(metadata.name)) {\n throw Error(\n `The ${metadata.name} command is already registered. Change your command name used by the class ${classOf(provider.useClass)}`\n );\n }\n\n provider.command = this.createCommand(metadata);\n\n this.commands.set(metadata.name, provider);\n }\n }\n\n /**\n * Build sub-command options\n * @param subCommand\n * @param options\n * @param allowUnknownOptions\n */\n private buildOption(subCommand: Command, options: {[key: string]: CommandOptions}, allowUnknownOptions: boolean) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(options).reduce((subCommand, [flags, {description, required, customParser, defaultValue, ...options}]) => {\n const fn = (v: any) => parseOption(v, options);\n\n if (options.type === Boolean) {\n defaultValue = false;\n }\n\n return required\n ? subCommand.requiredOption(flags, description, fn, defaultValue)\n : subCommand.option(flags, description, fn, defaultValue);\n }, subCommand);\n\n subCommand.option(\"-r, --root-dir <path>\", \"Project root directory\");\n subCommand.option(\"--verbose\", \"Verbose mode\", () => true);\n\n if (allowUnknownOptions) {\n subCommand.allowUnknownOption(true);\n }\n\n return subCommand;\n }\n\n private buildArguments(cmd: Command, args: Record<string, CommandArg>) {\n return Object.entries(args).reduce((cmd, [key, {description, required, defaultValue}]) => {\n const argument = new Argument(required ? `<${key}>` : `[${key}]`, description);\n\n if (defaultValue !== undefined) {\n argument.default(defaultValue);\n }\n\n return cmd.addArgument(argument);\n }, cmd);\n }\n}\n"]}
1
+ {"version":3,"file":"CliService.js","sourceRoot":"","sources":["../../../src/services/CliService.ts"],"names":[],"mappings":"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","sourcesContent":["import {classOf} from \"@tsed/core\";\nimport {Constant, Inject, Injectable, InjectorService, Provider} from \"@tsed/di\";\nimport {Argument, Command} from \"commander\";\nimport Inquirer from \"inquirer\";\nimport {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {CommandProvider} from \"../interfaces/CommandProvider\";\nimport {CommandMetadata} from \"../interfaces/CommandMetadata\";\nimport {CommandArg, CommandOptions} from \"../interfaces/CommandParameters\";\nimport {PROVIDER_TYPE_COMMAND} from \"../registries/CommandRegistry\";\nimport {createSubTasks, createTasksRunner} from \"../utils/createTasksRunner\";\nimport {getCommandMetadata} from \"../utils/getCommandMetadata\";\nimport {mapCommanderArgs} from \"../utils/mapCommanderArgs\";\nimport {mapCommanderOptions} from \"../utils/mapCommanderOptions\";\nimport {parseOption} from \"../utils/parseOption\";\nimport {CliHooks} from \"./CliHooks\";\nimport {ProjectPackageJson} from \"./ProjectPackageJson\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport inquirer_autocomplete_prompt from \"inquirer-autocomplete-prompt\";\n\nInquirer.registerPrompt(\"autocomplete\", inquirer_autocomplete_prompt);\n\n@Injectable()\nexport class CliService {\n readonly program = new Command();\n\n @Constant(\"project.reinstallAfterRun\", false)\n reinstallAfterRun = false;\n\n @Constant(\"pkg\", {version: \"1.0.0\"})\n protected pkg: any;\n\n @Inject()\n protected injector: InjectorService;\n\n @Inject()\n protected hooks: CliHooks;\n\n @Inject()\n protected projectPkg: ProjectPackageJson;\n\n private commands = new Map();\n\n $onInit() {\n if (this.injector.logger.level !== \"off\") {\n this.injector.logger.appenders\n .set(\"stdout\", {\n type: \"stdout\",\n layout: {\n type: \"pattern\",\n pattern: \"[%d{hh:mm:ss}] %m\"\n },\n levels: [\"info\", \"debug\"]\n })\n .set(\"stderr\", {\n type: \"stderr\",\n layout: {\n type: \"pattern\",\n pattern: \"[%d{hh:mm:ss}][%p] %m\"\n },\n levels: [\"trace\", \"fatal\", \"error\", \"warn\"]\n });\n }\n }\n\n /**\n * Parse process.argv and runLifecycle action\n * @param argv\n */\n async parseArgs(argv: string[]): Promise<void> {\n const {program} = this;\n\n program.version(this.pkg.version);\n\n this.load();\n\n await program.parseAsync(argv);\n }\n\n /**\n * Run lifecycle\n * @param cmdName\n * @param data\n */\n public async runLifecycle(cmdName: string, data: any = {}) {\n data = await this.beforePrompt(cmdName, data);\n data = await this.prompt(cmdName, data);\n\n try {\n await this.exec(cmdName, data);\n } catch (er) {\n await this.injector.emit(\"$onFinish\", er);\n await this.injector.destroy();\n throw er;\n }\n\n await this.injector.emit(\"$onFinish\");\n await this.injector.destroy();\n }\n\n public async exec(cmdName: string, ctx: any) {\n const initialTasks = await this.getTasks(cmdName, ctx);\n\n if (initialTasks.length) {\n const tasks = [\n ...initialTasks,\n {\n title: \"Install dependencies\",\n enabled: () => this.reinstallAfterRun && (this.projectPkg.rewrite || this.projectPkg.reinstall),\n task: createSubTasks(() => this.projectPkg.install(ctx), {...ctx, concurrent: false})\n },\n ...(await this.getPostInstallTasks(cmdName, ctx))\n ];\n\n return createTasksRunner(tasks, this.mapContext(cmdName, ctx));\n }\n }\n\n /**\n * Run prompt for a given command\n * @param cmdName\n * @param ctx Initial data\n */\n public async beforePrompt(cmdName: string, ctx: any = {}) {\n const provider = this.commands.get(cmdName);\n const instance = this.injector.get<CommandProvider>(provider.useClass)!;\n const verbose = ctx.verbose;\n\n if (instance.$beforePrompt) {\n ctx = await instance.$beforePrompt(JSON.parse(JSON.stringify(ctx)));\n ctx.verbose = verbose;\n }\n return ctx;\n }\n\n /**\n * Run prompt for a given command\n * @param cmdName\n * @param ctx Initial data\n */\n public async prompt(cmdName: string, ctx: any = {}) {\n const provider = this.commands.get(cmdName);\n const instance = this.injector.get<CommandProvider>(provider.useClass)!;\n\n if (instance.$prompt) {\n const questions = [\n ...((await instance.$prompt(ctx)) as any[]),\n ...(await this.hooks.emit(CommandStoreKeys.PROMPT_HOOKS, cmdName, ctx))\n ];\n\n if (questions.length) {\n ctx = {\n ...ctx,\n ...((await Inquirer.prompt(questions)) as any)\n };\n }\n }\n\n return ctx;\n }\n\n /**\n * Run lifecycle\n * @param cmdName\n * @param ctx\n */\n public async getTasks(cmdName: string, ctx: any) {\n const provider = this.commands.get(cmdName);\n const instance = this.injector.get<CommandProvider>(provider.token)!;\n\n ctx = this.mapContext(cmdName, ctx);\n\n if (instance.$beforeExec) {\n await instance.$beforeExec(ctx);\n }\n\n return [...(await instance.$exec(ctx)), ...(await this.hooks.emit(CommandStoreKeys.EXEC_HOOKS, cmdName, ctx))];\n }\n\n public async getPostInstallTasks(cmdName: string, ctx: any) {\n const provider = this.commands.get(cmdName);\n const instance = this.injector.get<CommandProvider>(provider.useClass)!;\n\n ctx = this.mapContext(cmdName, ctx);\n\n return [\n ...(instance.$postInstall ? await instance.$postInstall(ctx) : []),\n ...(await this.hooks.emit(CommandStoreKeys.POST_INSTALL_HOOKS, cmdName, ctx))\n ];\n }\n\n public createCommand(metadata: CommandMetadata) {\n const {args, name, options, description, alias, allowUnknownOption} = metadata;\n\n if (this.commands.has(name)) {\n return this.commands.get(name).command;\n }\n\n let cmd = this.program.command(name);\n\n const onAction = (...commanderArgs: any[]) => {\n const [, ...rawArgs] = cmd.args;\n const data = {\n verbose: !!this.program.opts().verbose,\n ...mapCommanderArgs(args, commanderArgs),\n ...mapCommanderOptions(this.program.commands),\n rawArgs\n };\n\n return this.runLifecycle(name, data);\n };\n\n if (alias) {\n cmd = cmd.alias(alias);\n }\n\n cmd = cmd.description(description);\n cmd = this.buildArguments(cmd, args);\n\n cmd = cmd.action(onAction);\n\n if (options) {\n cmd = this.buildOption(cmd, options, !!allowUnknownOption);\n }\n\n return cmd;\n }\n\n private load() {\n this.injector.getProviders(PROVIDER_TYPE_COMMAND).forEach((provider) => this.build(provider));\n }\n\n private mapContext(cmdName: string, ctx: any) {\n const provider = this.commands.get(cmdName);\n const instance = this.injector.get<CommandProvider>(provider.useClass)!;\n const verbose = ctx.verbose;\n\n if (instance.$mapContext) {\n ctx = instance.$mapContext(JSON.parse(JSON.stringify(ctx)));\n ctx.verbose = verbose;\n }\n\n if (ctx.verbose) {\n this.injector.logger.level = \"debug\";\n } else {\n this.injector.logger.level = \"info\";\n }\n\n return ctx;\n }\n\n /**\n * Build command and sub-commands\n * @param provider\n */\n private build(provider: Provider<any>) {\n const metadata = getCommandMetadata(provider.useClass);\n\n if (metadata.name) {\n if (this.commands.has(metadata.name)) {\n throw Error(\n `The ${metadata.name} command is already registered. Change your command name used by the class ${classOf(provider.useClass)}`\n );\n }\n\n provider.command = this.createCommand(metadata);\n\n this.commands.set(metadata.name, provider);\n }\n }\n\n /**\n * Build sub-command options\n * @param subCommand\n * @param options\n * @param allowUnknownOptions\n */\n private buildOption(subCommand: Command, options: {[key: string]: CommandOptions}, allowUnknownOptions: boolean) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(options).reduce((subCommand, [flags, {description, required, customParser, defaultValue, ...options}]) => {\n const fn = (v: any) => parseOption(v, options);\n\n if (options.type === Boolean) {\n defaultValue = false;\n }\n\n return required\n ? subCommand.requiredOption(flags, description, fn, defaultValue)\n : subCommand.option(flags, description, fn, defaultValue);\n }, subCommand);\n\n subCommand.option(\"-r, --root-dir <path>\", \"Project root directory\");\n subCommand.option(\"--verbose\", \"Verbose mode\", () => true);\n\n if (allowUnknownOptions) {\n subCommand.allowUnknownOption(true);\n }\n\n return subCommand;\n }\n\n private buildArguments(cmd: Command, args: Record<string, CommandArg>) {\n return Object.entries(args).reduce((cmd, [key, {description, required, defaultValue}]) => {\n const argument = new Argument(required ? `<${key}>` : `[${key}]`, description);\n\n if (defaultValue !== undefined) {\n argument.default(defaultValue);\n }\n\n return cmd.addArgument(argument);\n }, cmd);\n }\n}\n"]}
@@ -8,6 +8,8 @@ const path_1 = require("path");
8
8
  const CliFs_1 = require("./CliFs");
9
9
  const ProjectPackageJson_1 = require("./ProjectPackageJson");
10
10
  let CliYaml = class CliYaml {
11
+ projectPackageJson;
12
+ fs;
11
13
  async read(path) {
12
14
  const file = !this.fs.exists(path) ? this.fs.findUpFile(this.projectPackageJson.dir, path) : path;
13
15
  if (file) {
@@ -1 +1 @@
1
- {"version":3,"file":"CliYaml.js","sourceRoot":"","sources":["../../../src/services/CliYaml.ts"],"names":[],"mappings":";;;;AAAA,iCAA4C;AAC5C,8DAA6B;AAC7B,+BAA0B;AAC1B,mCAA8B;AAC9B,6DAAwD;AAGxD,IAAa,OAAO,GAApB,MAAa,OAAO;IAOlB,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAElG,IAAI,IAAI,EAAE;YACR,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;YAEjE,OAAO,iBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7B;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,GAAQ;QAChC,MAAM,OAAO,GAAG,iBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAA,WAAI,EAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9G,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;IAC9D,CAAC;CACF,CAAA;AAxBC;IADC,IAAA,WAAM,GAAE;sCACqB,uCAAkB;mDAAC;AAGjD;IADC,IAAA,WAAM,GAAE;sCACK,aAAK;mCAAC;AALT,OAAO;IADnB,IAAA,eAAU,GAAE;GACA,OAAO,CA0BnB;AA1BY,0BAAO","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport JsYaml from \"js-yaml\";\nimport {join} from \"path\";\nimport {CliFs} from \"./CliFs\";\nimport {ProjectPackageJson} from \"./ProjectPackageJson\";\n\n@Injectable()\nexport class CliYaml {\n @Inject()\n protected projectPackageJson: ProjectPackageJson;\n\n @Inject()\n protected fs: CliFs;\n\n async read(path: string) {\n const file = !this.fs.exists(path) ? this.fs.findUpFile(this.projectPackageJson.dir, path) : path;\n\n if (file) {\n const content = await this.fs.readFile(file, {encoding: \"utf8\"});\n\n return JsYaml.load(content);\n }\n\n return {};\n }\n\n async write(path: string, obj: any) {\n const content = JsYaml.dump(obj);\n\n const file = this.fs.findUpFile(this.projectPackageJson.dir, path) || join(this.projectPackageJson.dir, path);\n\n return this.fs.writeFile(file, content, {encoding: \"utf8\"});\n }\n}\n"]}
1
+ {"version":3,"file":"CliYaml.js","sourceRoot":"","sources":["../../../src/services/CliYaml.ts"],"names":[],"mappings":";;;;AAAA,iCAA4C;AAC5C,8DAA6B;AAC7B,+BAA0B;AAC1B,mCAA8B;AAC9B,6DAAwD;AAGxD,IAAa,OAAO,GAApB,MAAa,OAAO;IAER,kBAAkB,CAAqB;IAGvC,EAAE,CAAQ;IAEpB,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAElG,IAAI,IAAI,EAAE;YACR,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;YAEjE,OAAO,iBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7B;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,GAAQ;QAChC,MAAM,OAAO,GAAG,iBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAA,WAAI,EAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9G,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;IAC9D,CAAC;CACF,CAAA;AAxBC;IADC,IAAA,WAAM,GAAE;sCACqB,uCAAkB;mDAAC;AAGjD;IADC,IAAA,WAAM,GAAE;sCACK,aAAK;mCAAC;AALT,OAAO;IADnB,IAAA,eAAU,GAAE;GACA,OAAO,CA0BnB;AA1BY,0BAAO","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport JsYaml from \"js-yaml\";\nimport {join} from \"path\";\nimport {CliFs} from \"./CliFs\";\nimport {ProjectPackageJson} from \"./ProjectPackageJson\";\n\n@Injectable()\nexport class CliYaml {\n @Inject()\n protected projectPackageJson: ProjectPackageJson;\n\n @Inject()\n protected fs: CliFs;\n\n async read(path: string) {\n const file = !this.fs.exists(path) ? this.fs.findUpFile(this.projectPackageJson.dir, path) : path;\n\n if (file) {\n const content = await this.fs.readFile(file, {encoding: \"utf8\"});\n\n return JsYaml.load(content);\n }\n\n return {};\n }\n\n async write(path: string, obj: any) {\n const content = JsYaml.dump(obj);\n\n const file = this.fs.findUpFile(this.projectPackageJson.dir, path) || join(this.projectPackageJson.dir, path);\n\n return this.fs.writeFile(file, content, {encoding: \"utf8\"});\n }\n}\n"]}
@@ -5,8 +5,8 @@ exports.NpmRegistryClient = exports.SCOPE_SEPARATOR = exports.addSuffix = void 0
5
5
  const tslib_1 = require("tslib");
6
6
  const di_1 = require("@tsed/di");
7
7
  const url_1 = tslib_1.__importDefault(require("url"));
8
- const CliHttpClient_1 = require("./CliHttpClient");
9
8
  const registry_url_1 = tslib_1.__importDefault(require("registry-url"));
9
+ const CliHttpClient_1 = require("./CliHttpClient");
10
10
  const HOST = (0, registry_url_1.default)();
11
11
  const REGEX_REGISTRY_ENFORCED_HTTPS = /^https?:\/\/([^\/]+\.)?(yarnpkg\.com|npmjs\.(org|com))(\/|$)/;
12
12
  const REGEX_REGISTRY_PREFIX = /^(https?:)?\/\//i;
@@ -19,6 +19,7 @@ function addSuffix(pattern, suffix) {
19
19
  exports.addSuffix = addSuffix;
20
20
  exports.SCOPE_SEPARATOR = "%2f";
21
21
  let NpmRegistryClient = NpmRegistryClient_1 = class NpmRegistryClient {
22
+ httpClient;
22
23
  static escapeName(name) {
23
24
  // scoped packages contain slashes and the npm registry expects them to be escaped
24
25
  return name.replace("/", exports.SCOPE_SEPARATOR);
@@ -1 +1 @@
1
- {"version":3,"file":"NpmRegistryClient.js","sourceRoot":"","sources":["../../../src/services/NpmRegistryClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport url from \"url\";\nimport {PackageInfo} from \"../interfaces/PackageJson\";\nimport {CliHttpClient} from \"./CliHttpClient\";\nimport registry_url from \"registry-url\";\n\nconst HOST = registry_url();\nconst REGEX_REGISTRY_ENFORCED_HTTPS = /^https?:\\/\\/([^\\/]+\\.)?(yarnpkg\\.com|npmjs\\.(org|com))(\\/|$)/;\nconst REGEX_REGISTRY_PREFIX = /^(https?:)?\\/\\//i;\n\nexport function addSuffix(pattern: string, suffix: string): string {\n if (!pattern.endsWith(suffix)) {\n return pattern + suffix;\n }\n\n return pattern;\n}\n\nexport const SCOPE_SEPARATOR = \"%2f\";\n\n@Injectable()\nexport class NpmRegistryClient {\n @Inject(CliHttpClient)\n private httpClient: CliHttpClient;\n\n static escapeName(name: string): string {\n // scoped packages contain slashes and the npm registry expects them to be escaped\n return name.replace(\"/\", SCOPE_SEPARATOR);\n }\n\n async request(pathname: string, opts: any = {}): Promise<any> {\n const registry = opts.registry || HOST;\n const requestUrl = this.getRequestUrl(registry, pathname);\n\n const headers = {\n Accept: opts.unfiltered ? \"application/json\" : \"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*\",\n ...opts.headers\n };\n\n try {\n return await this.httpClient.get(requestUrl, {\n ...opts,\n headers\n });\n } catch (error) {\n if (opts.retry) {\n await new Promise((resolve: any) => setTimeout(resolve, 200));\n opts.retry -= 1;\n opts.unfiltered = true;\n\n return this.request(NpmRegistryClient.escapeName(pathname), opts);\n }\n\n throw error;\n }\n }\n\n getRequestUrl(registry: string, pathname: string): string {\n let resolved = pathname;\n\n if (!REGEX_REGISTRY_PREFIX.test(pathname)) {\n resolved = url.resolve(addSuffix(registry, \"/\"), pathname);\n }\n\n if (REGEX_REGISTRY_ENFORCED_HTTPS.test(resolved)) {\n resolved = resolved.replace(/^http:\\/\\//, \"https://\");\n }\n\n return resolved;\n }\n\n /**\n * Search a module on npm registry\n * @param text\n * @param options\n */\n async search(text: string, options: {size?: number; from?: number; quality?: number; popularity?: number; maintenance?: number} = {}) {\n const {objects: result} = await this.request(`-/v1/search`, {\n headers: {\n \"Accept-Encoding\": \"gzip\"\n },\n qs: {\n text,\n size: 100,\n from: 0,\n quality: 0.65,\n popularity: 0.98,\n maintenance: 0.5,\n ...options\n }\n });\n\n return result;\n }\n\n async info(packageName: string, retry = 0): Promise<PackageInfo> {\n try {\n return await this.request(packageName, {\n headers: {\n \"Accept-Encoding\": \"gzip\"\n },\n unfiltered: false,\n retry\n });\n } catch (er) {\n return retry == 0 ? this.fallback(packageName) : null;\n }\n }\n\n private async fallback(packageName: string) {\n const [{package: pkg}] = await this.search(packageName);\n\n return {\n ...pkg,\n \"dist-tags\": {\n latest: pkg.version\n },\n versions: {\n [pkg.version]: {\n name: packageName,\n version: pkg.version,\n dependencies: {},\n devDependencies: {}\n }\n }\n };\n }\n}\n"]}
1
+ {"version":3,"file":"NpmRegistryClient.js","sourceRoot":"","sources":["../../../src/services/NpmRegistryClient.ts"],"names":[],"mappings":";;;;;AAAA,iCAA4C;AAC5C,sDAAsB;AACtB,wEAAwC;AAExC,mDAA8C;AAE9C,MAAM,IAAI,GAAG,IAAA,sBAAY,GAAE,CAAC;AAC5B,MAAM,6BAA6B,GAAG,8DAA8D,CAAC;AACrG,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEjD,SAAgB,SAAS,CAAC,OAAe,EAAE,MAAc;IACvD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC7B,OAAO,OAAO,GAAG,MAAM,CAAC;KACzB;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAND,8BAMC;AAEY,QAAA,eAAe,GAAG,KAAK,CAAC;AAGrC,IAAa,iBAAiB,yBAA9B,MAAa,iBAAiB;IAEpB,UAAU,CAAgB;IAElC,MAAM,CAAC,UAAU,CAAC,IAAY;QAC5B,kFAAkF;QAClF,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,uBAAe,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,OAAY,EAAE;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,0EAA0E;YACzH,GAAG,IAAI,CAAC,OAAO;SAChB,CAAC;QAEF,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE;gBAC3C,GAAG,IAAI;gBACP,OAAO;aACR,CAAC,CAAC;SACJ;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,MAAM,IAAI,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;gBAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;aACnE;YAED,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAED,aAAa,CAAC,QAAgB,EAAE,QAAgB;QAC9C,IAAI,QAAQ,GAAG,QAAQ,CAAC;QAExB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACzC,QAAQ,GAAG,aAAG,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;SAC5D;QAED,IAAI,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAChD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;SACvD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,UAAuG,EAAE;QAClI,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC1D,OAAO,EAAE;gBACP,iBAAiB,EAAE,MAAM;aAC1B;YACD,EAAE,EAAE;gBACF,IAAI;gBACJ,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,GAAG;gBAChB,GAAG,OAAO;aACX;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,KAAK,GAAG,CAAC;QACvC,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBACrC,OAAO,EAAE;oBACP,iBAAiB,EAAE,MAAM;iBAC1B;gBACD,UAAU,EAAE,KAAK;gBACjB,KAAK;aACN,CAAC,CAAC;SACJ;QAAC,OAAO,EAAE,EAAE;YACX,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACvD;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,WAAmB;QACxC,MAAM,CAAC,EAAC,OAAO,EAAE,GAAG,EAAC,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAExD,OAAO;YACL,GAAG,GAAG;YACN,WAAW,EAAE;gBACX,MAAM,EAAE,GAAG,CAAC,OAAO;aACpB;YACD,QAAQ,EAAE;gBACR,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACb,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,YAAY,EAAE,EAAE;oBAChB,eAAe,EAAE,EAAE;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAxGC;IADC,IAAA,WAAM,EAAC,6BAAa,CAAC;sCACF,6BAAa;qDAAC;AAFvB,iBAAiB;IAD7B,IAAA,eAAU,GAAE;GACA,iBAAiB,CA0G7B;AA1GY,8CAAiB","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport url from \"url\";\nimport registry_url from \"registry-url\";\nimport {PackageInfo} from \"../interfaces/PackageJson\";\nimport {CliHttpClient} from \"./CliHttpClient\";\n\nconst HOST = registry_url();\nconst REGEX_REGISTRY_ENFORCED_HTTPS = /^https?:\\/\\/([^\\/]+\\.)?(yarnpkg\\.com|npmjs\\.(org|com))(\\/|$)/;\nconst REGEX_REGISTRY_PREFIX = /^(https?:)?\\/\\//i;\n\nexport function addSuffix(pattern: string, suffix: string): string {\n if (!pattern.endsWith(suffix)) {\n return pattern + suffix;\n }\n\n return pattern;\n}\n\nexport const SCOPE_SEPARATOR = \"%2f\";\n\n@Injectable()\nexport class NpmRegistryClient {\n @Inject(CliHttpClient)\n private httpClient: CliHttpClient;\n\n static escapeName(name: string): string {\n // scoped packages contain slashes and the npm registry expects them to be escaped\n return name.replace(\"/\", SCOPE_SEPARATOR);\n }\n\n async request(pathname: string, opts: any = {}): Promise<any> {\n const registry = opts.registry || HOST;\n const requestUrl = this.getRequestUrl(registry, pathname);\n\n const headers = {\n Accept: opts.unfiltered ? \"application/json\" : \"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*\",\n ...opts.headers\n };\n\n try {\n return await this.httpClient.get(requestUrl, {\n ...opts,\n headers\n });\n } catch (error) {\n if (opts.retry) {\n await new Promise((resolve: any) => setTimeout(resolve, 200));\n opts.retry -= 1;\n opts.unfiltered = true;\n\n return this.request(NpmRegistryClient.escapeName(pathname), opts);\n }\n\n throw error;\n }\n }\n\n getRequestUrl(registry: string, pathname: string): string {\n let resolved = pathname;\n\n if (!REGEX_REGISTRY_PREFIX.test(pathname)) {\n resolved = url.resolve(addSuffix(registry, \"/\"), pathname);\n }\n\n if (REGEX_REGISTRY_ENFORCED_HTTPS.test(resolved)) {\n resolved = resolved.replace(/^http:\\/\\//, \"https://\");\n }\n\n return resolved;\n }\n\n /**\n * Search a module on npm registry\n * @param text\n * @param options\n */\n async search(text: string, options: {size?: number; from?: number; quality?: number; popularity?: number; maintenance?: number} = {}) {\n const {objects: result} = await this.request(`-/v1/search`, {\n headers: {\n \"Accept-Encoding\": \"gzip\"\n },\n qs: {\n text,\n size: 100,\n from: 0,\n quality: 0.65,\n popularity: 0.98,\n maintenance: 0.5,\n ...options\n }\n });\n\n return result;\n }\n\n async info(packageName: string, retry = 0): Promise<PackageInfo> {\n try {\n return await this.request(packageName, {\n headers: {\n \"Accept-Encoding\": \"gzip\"\n },\n unfiltered: false,\n retry\n });\n } catch (er) {\n return retry == 0 ? this.fallback(packageName) : null;\n }\n }\n\n private async fallback(packageName: string) {\n const [{package: pkg}] = await this.search(packageName);\n\n return {\n ...pkg,\n \"dist-tags\": {\n latest: pkg.version\n },\n versions: {\n [pkg.version]: {\n name: packageName,\n version: pkg.version,\n dependencies: {},\n devDependencies: {}\n }\n }\n };\n }\n}\n"]}