@tsed/cli 3.20.6 → 3.20.9

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.
@@ -7,7 +7,7 @@ const core_1 = require("@tsed/core");
7
7
  const semver_1 = tslib_1.__importDefault(require("semver"));
8
8
  const constants_1 = require("../../constants");
9
9
  function cleanVersion(version = "") {
10
- return version.replace(/[\^~]/, "");
10
+ return version.replace(/[\^~>=]/gi, "");
11
11
  }
12
12
  function isGreaterThan(a, b) {
13
13
  a = cleanVersion(a);
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateCmd.js","sourceRoot":"","sources":["../../../src/commands/update/UpdateCmd.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CliDefaultOptions,\n CliPackageJson,\n Command,\n CommandProvider,\n createSubTasks,\n Inject,\n NpmRegistryClient,\n ProjectPackageJson,\n QuestionOptions\n} from \"@tsed/cli-core\";\nimport {getValue} from \"@tsed/core\";\nimport semver from \"semver\";\nimport {IGNORE_TAGS, IGNORE_VERSIONS, MINIMAL_TSED_VERSION} from \"../../constants\";\n\nexport interface UpdateCmdContext extends CliDefaultOptions {\n version: string;\n\n [key: string]: any;\n}\n\nfunction cleanVersion(version = \"\") {\n return version.replace(/[\\^~]/, \"\");\n}\n\nfunction isGreaterThan(a: any, b: string) {\n a = cleanVersion(a);\n b = cleanVersion(b);\n return semver.gt(a, b) || a === b;\n}\n\nfunction shouldUpdate(pkg: string) {\n return pkg.includes(\"@tsed\") && !pkg.includes(\"@tsed/cli\") && !pkg.includes(\"@tsed/logger\");\n}\n\n@Command({\n name: \"update\",\n description: \"Update all Ts.ED packages used by your project\",\n args: {},\n options: {}\n})\nexport class UpdateCmd implements CommandProvider {\n @Inject()\n npmRegistryClient: NpmRegistryClient;\n\n @Inject()\n projectPackage: ProjectPackageJson;\n\n @CliPackageJson()\n cliPackage: CliPackageJson;\n\n private versions: any;\n\n async $prompt(initialOptions: Partial<UpdateCmdContext>): Promise<QuestionOptions> {\n const versions = await this.getAvailableVersions();\n\n return [\n {\n type: \"list\",\n name: \"version\",\n message: \"Select a Ts.ED version\",\n default: initialOptions.version,\n when: !initialOptions.version,\n choices: versions\n }\n ];\n }\n\n async $exec(ctx: UpdateCmdContext) {\n Object.keys(this.projectPackage.dependencies).forEach((pkg: string) => {\n if (shouldUpdate(pkg)) {\n this.projectPackage.addDependency(pkg, ctx.version);\n }\n });\n\n Object.keys(this.projectPackage.devDependencies).forEach((pkg: string) => {\n if (shouldUpdate(pkg)) {\n this.projectPackage.addDevDependency(pkg, ctx.version);\n }\n });\n\n const projectLoggerVersion = this.projectPackage.dependencies[\"@tsed/logger\"];\n\n if (projectLoggerVersion) {\n const loggerVersion = getValue(\"dependencies.@tsed/logger\", this.versions[ctx.version], \"\");\n\n if (loggerVersion && isGreaterThan(loggerVersion, projectLoggerVersion)) {\n this.projectPackage.addDependency(\"@tsed/logger\", loggerVersion);\n }\n }\n\n const cliVersion = await this.getEligibleCliVersion(ctx.version);\n\n if (cliVersion) {\n Object.entries(this.projectPackage.devDependencies).forEach(([pkg, version]) => {\n if (pkg.includes(\"@tsed/cli-plugin\") && isGreaterThan(cliVersion, version)) {\n this.projectPackage.addDevDependency(pkg, cliVersion);\n }\n });\n }\n\n return [\n {\n title: \"Update packages\",\n task: createSubTasks(() => this.projectPackage.install(), {...ctx, concurrent: false})\n }\n ];\n }\n\n private async getAvailableVersions() {\n const {versions} = await this.npmRegistryClient.info(\"@tsed/common\", 10);\n this.versions = versions;\n\n return Object.keys(versions)\n .filter((version) => version.split(\".\")[0] >= MINIMAL_TSED_VERSION)\n .sort((a, b) => (isGreaterThan(a, b) ? -1 : 1))\n .filter((version) => !IGNORE_VERSIONS.includes(version))\n .filter((version) => (IGNORE_TAGS ? !version.match(IGNORE_TAGS) : true))\n .splice(0, 30);\n }\n\n private async getEligibleCliVersion(tsedVersion: string) {\n let result: any;\n\n result = await this.npmRegistryClient.info(\"@tsed/cli-core\", 10);\n\n if (!result) {\n result = await this.npmRegistryClient.info(\"@tsed/cli\", 10);\n }\n\n let version: string | undefined;\n\n if (result) {\n const {versions} = result;\n\n version = Object.keys(versions)\n .sort((a, b) => (isGreaterThan(a, b) ? -1 : 1))\n .find((pkg) => {\n const tsedCore = versions[pkg].devDependencies[\"@tsed/core\"] || versions[pkg].dependencies[\"@tsed/core\"];\n\n if (tsedCore) {\n return isGreaterThan(tsedVersion, tsedCore);\n }\n });\n }\n\n return version && isGreaterThan(version, this.cliPackage.version) ? version : this.cliPackage.version;\n }\n}\n"]}
1
+ {"version":3,"file":"UpdateCmd.js","sourceRoot":"","sources":["../../../src/commands/update/UpdateCmd.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CliDefaultOptions,\n CliPackageJson,\n Command,\n CommandProvider,\n createSubTasks,\n Inject,\n NpmRegistryClient,\n ProjectPackageJson,\n QuestionOptions\n} from \"@tsed/cli-core\";\nimport {getValue} from \"@tsed/core\";\nimport semver from \"semver\";\nimport {IGNORE_TAGS, IGNORE_VERSIONS, MINIMAL_TSED_VERSION} from \"../../constants\";\n\nexport interface UpdateCmdContext extends CliDefaultOptions {\n version: string;\n\n [key: string]: any;\n}\n\nfunction cleanVersion(version = \"\") {\n return version.replace(/[\\^~>=]/gi, \"\");\n}\n\nfunction isGreaterThan(a: any, b: string) {\n a = cleanVersion(a);\n b = cleanVersion(b);\n return semver.gt(a, b) || a === b;\n}\n\nfunction shouldUpdate(pkg: string) {\n return pkg.includes(\"@tsed\") && !pkg.includes(\"@tsed/cli\") && !pkg.includes(\"@tsed/logger\");\n}\n\n@Command({\n name: \"update\",\n description: \"Update all Ts.ED packages used by your project\",\n args: {},\n options: {}\n})\nexport class UpdateCmd implements CommandProvider {\n @Inject()\n npmRegistryClient: NpmRegistryClient;\n\n @Inject()\n projectPackage: ProjectPackageJson;\n\n @CliPackageJson()\n cliPackage: CliPackageJson;\n\n private versions: any;\n\n async $prompt(initialOptions: Partial<UpdateCmdContext>): Promise<QuestionOptions> {\n const versions = await this.getAvailableVersions();\n\n return [\n {\n type: \"list\",\n name: \"version\",\n message: \"Select a Ts.ED version\",\n default: initialOptions.version,\n when: !initialOptions.version,\n choices: versions\n }\n ];\n }\n\n async $exec(ctx: UpdateCmdContext) {\n Object.keys(this.projectPackage.dependencies).forEach((pkg: string) => {\n if (shouldUpdate(pkg)) {\n this.projectPackage.addDependency(pkg, ctx.version);\n }\n });\n\n Object.keys(this.projectPackage.devDependencies).forEach((pkg: string) => {\n if (shouldUpdate(pkg)) {\n this.projectPackage.addDevDependency(pkg, ctx.version);\n }\n });\n\n const projectLoggerVersion = this.projectPackage.dependencies[\"@tsed/logger\"];\n\n if (projectLoggerVersion) {\n const loggerVersion = getValue(\"dependencies.@tsed/logger\", this.versions[ctx.version], \"\");\n\n if (loggerVersion && isGreaterThan(loggerVersion, projectLoggerVersion)) {\n this.projectPackage.addDependency(\"@tsed/logger\", loggerVersion);\n }\n }\n\n const cliVersion = await this.getEligibleCliVersion(ctx.version);\n\n if (cliVersion) {\n Object.entries(this.projectPackage.devDependencies).forEach(([pkg, version]) => {\n if (pkg.includes(\"@tsed/cli-plugin\") && isGreaterThan(cliVersion, version)) {\n this.projectPackage.addDevDependency(pkg, cliVersion);\n }\n });\n }\n\n return [\n {\n title: \"Update packages\",\n task: createSubTasks(() => this.projectPackage.install(), {...ctx, concurrent: false})\n }\n ];\n }\n\n private async getAvailableVersions() {\n const {versions} = await this.npmRegistryClient.info(\"@tsed/common\", 10);\n this.versions = versions;\n\n return Object.keys(versions)\n .filter((version) => version.split(\".\")[0] >= MINIMAL_TSED_VERSION)\n .sort((a, b) => (isGreaterThan(a, b) ? -1 : 1))\n .filter((version) => !IGNORE_VERSIONS.includes(version))\n .filter((version) => (IGNORE_TAGS ? !version.match(IGNORE_TAGS) : true))\n .splice(0, 30);\n }\n\n private async getEligibleCliVersion(tsedVersion: string) {\n let result: any;\n\n result = await this.npmRegistryClient.info(\"@tsed/cli-core\", 10);\n\n if (!result) {\n result = await this.npmRegistryClient.info(\"@tsed/cli\", 10);\n }\n\n let version: string | undefined;\n\n if (result) {\n const {versions} = result;\n\n version = Object.keys(versions)\n .sort((a, b) => (isGreaterThan(a, b) ? -1 : 1))\n .find((pkg) => {\n const tsedCore = versions[pkg].devDependencies[\"@tsed/core\"] || versions[pkg].dependencies[\"@tsed/core\"];\n\n if (tsedCore) {\n return isGreaterThan(tsedVersion, tsedCore);\n }\n });\n }\n\n return version && isGreaterThan(version, this.cliPackage.version) ? version : this.cliPackage.version;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsed/cli",
3
- "version": "3.20.6",
3
+ "version": "3.20.9",
4
4
  "main": "./lib/index.js",
5
5
  "typings": "./lib/index.d.ts",
6
6
  "bin": {
@@ -24,7 +24,7 @@
24
24
  "decorators"
25
25
  ],
26
26
  "dependencies": {
27
- "@tsed/cli-core": "3.20.6",
27
+ "@tsed/cli-core": "3.20.9",
28
28
  "@tsed/core": ">=6.95.1",
29
29
  "@tsed/di": ">=6.95.1",
30
30
  "@tsed/logger": ">=6.0.0",
@@ -34,7 +34,7 @@
34
34
  "tslib": "2.3.1"
35
35
  },
36
36
  "devDependencies": {
37
- "@tsed/cli-testing": "3.20.6",
37
+ "@tsed/cli-testing": "3.20.9",
38
38
  "@types/change-case": "^2.3.1"
39
39
  },
40
40
  "scripts": {