@strapi/upgrade 5.49.0 → 5.50.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/codemod/codemod.d.ts.map +1 -1
- package/dist/modules/codemod-repository/repository.d.ts.map +1 -1
- package/dist/modules/codemod-runner/codemod-runner.d.ts.map +1 -1
- package/dist/modules/error/utils.d.ts.map +1 -1
- package/dist/modules/file-scanner/scanner.d.ts.map +1 -1
- package/dist/modules/format/formats.d.ts.map +1 -1
- package/dist/modules/json/file.d.ts.map +1 -1
- package/dist/modules/json/transform-api.d.ts.map +1 -1
- package/dist/modules/logger/logger.d.ts +0 -1
- package/dist/modules/logger/logger.d.ts.map +1 -1
- package/dist/modules/logger/types.d.ts +0 -1
- package/dist/modules/logger/types.d.ts.map +1 -1
- package/dist/modules/npm/package.d.ts.map +1 -1
- package/dist/modules/project/project.d.ts.map +1 -1
- package/dist/modules/project/utils.d.ts.map +1 -1
- package/dist/modules/report/report.d.ts.map +1 -1
- package/dist/modules/requirement/requirement.d.ts.map +1 -1
- package/dist/modules/runner/code/code.d.ts.map +1 -1
- package/dist/modules/runner/json/json.d.ts.map +1 -1
- package/dist/modules/runner/json/transform.d.ts.map +1 -1
- package/dist/modules/upgrader/upgrader.d.ts.map +1 -1
- package/dist/modules/version/range.d.ts.map +1 -1
- package/dist/modules/version/semver.d.ts +1 -1
- package/dist/modules/version/semver.d.ts.map +1 -1
- package/dist/modules/version/types.d.ts +7 -6
- package/dist/modules/version/types.d.ts.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/package.json.mjs +1 -1
- package/dist/src/cli/commands/codemods.js +1 -1
- package/dist/src/cli/commands/codemods.js.map +1 -1
- package/dist/src/cli/commands/codemods.mjs +2 -2
- package/dist/src/cli/commands/codemods.mjs.map +1 -1
- package/dist/src/cli/commands/upgrade.js +4 -4
- package/dist/src/cli/commands/upgrade.js.map +1 -1
- package/dist/src/cli/commands/upgrade.mjs +5 -5
- package/dist/src/cli/commands/upgrade.mjs.map +1 -1
- package/dist/src/modules/version/range.js +4 -4
- package/dist/src/modules/version/range.js.map +1 -1
- package/dist/src/modules/version/range.mjs +5 -5
- package/dist/src/modules/version/range.mjs.map +1 -1
- package/dist/src/modules/version/semver.js +1 -1
- package/dist/src/modules/version/semver.js.map +1 -1
- package/dist/src/modules/version/semver.mjs +2 -2
- package/dist/src/modules/version/semver.mjs.map +1 -1
- package/dist/src/modules/version/types.js +7 -8
- package/dist/src/modules/version/types.js.map +1 -1
- package/dist/src/modules/version/types.mjs +7 -8
- package/dist/src/modules/version/types.mjs.map +1 -1
- package/dist/src/tasks/codemods/utils.js +4 -4
- package/dist/src/tasks/codemods/utils.js.map +1 -1
- package/dist/src/tasks/codemods/utils.mjs +5 -5
- package/dist/src/tasks/codemods/utils.mjs.map +1 -1
- package/dist/src/tasks/upgrade/prompts/latest.js +2 -2
- package/dist/src/tasks/upgrade/prompts/latest.js.map +1 -1
- package/dist/src/tasks/upgrade/prompts/latest.mjs +3 -3
- package/dist/src/tasks/upgrade/prompts/latest.mjs.map +1 -1
- package/dist/src/tasks/upgrade/upgrade.js +2 -2
- package/dist/src/tasks/upgrade/upgrade.js.map +1 -1
- package/dist/src/tasks/upgrade/upgrade.mjs +3 -3
- package/dist/src/tasks/upgrade/upgrade.mjs.map +1 -1
- package/dist/tasks/codemods/list-codemods.d.ts.map +1 -1
- package/dist/tasks/codemods/run-codemods.d.ts.map +1 -1
- package/dist/tasks/codemods/utils.d.ts.map +1 -1
- package/dist/tasks/upgrade/prompts/latest.d.ts.map +1 -1
- package/dist/tasks/upgrade/upgrade.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.mjs","sources":["../../../../src/modules/version/range.ts"],"sourcesContent":["import semver from 'semver';\n\nimport * as Version from './types';\nimport { isSemverInstance, isSemVerReleaseType, semVerFactory } from './semver';\n\nexport const rangeFactory = (range: string): Version.Range => {\n return new semver.Range(range);\n};\n\nexport const rangeFromReleaseType = (current: Version.SemVer, identifier: Version.ReleaseType) => {\n switch (identifier) {\n case Version.
|
|
1
|
+
{"version":3,"file":"range.mjs","sources":["../../../../src/modules/version/range.ts"],"sourcesContent":["import semver from 'semver';\n\nimport * as Version from './types';\nimport { isSemverInstance, isSemVerReleaseType, semVerFactory } from './semver';\n\nexport const rangeFactory = (range: string): Version.Range => {\n return new semver.Range(range);\n};\n\nexport const rangeFromReleaseType = (current: Version.SemVer, identifier: Version.ReleaseType) => {\n switch (identifier) {\n case Version.RELEASE_TYPES.Latest: {\n // Match anything greater than the current version\n return rangeFactory(`>${current.raw}`);\n }\n case Version.RELEASE_TYPES.Major: {\n // For example, 4.15.4 returns 5.0.0\n const nextMajor = semVerFactory(current.raw).inc('major');\n\n // Using only the major version as the upper limit allows any minor,\n // patch, or build version to be taken in the range.\n //\n // For example, if the current version is \"4.15.4\", incrementing the\n // major version would result in \"5.0.0\".\n // The generated rule is \">4.15.4 <=5\", allowing any version\n // greater than \"4.15.4\" but less than \"6.0.0-0\".\n return rangeFactory(`>${current.raw} <=${nextMajor.major}`);\n }\n case Version.RELEASE_TYPES.Minor: {\n // For example, 4.15.4 returns 5.0.0\n const nextMajor = semVerFactory(current.raw).inc('major');\n\n // Using the <major>.<minor>.<patch> version as the upper limit allows any minor,\n // patch, or build versions to be taken in the range.\n //\n // For example, if the current version is \"4.15.4\", incrementing the\n // major version would result in \"5.0.0\".\n // The generated rule is \">4.15.4 <5.0.0\", allowing any version\n // greater than \"4.15.4\" but less than \"5.0.0\".\n return rangeFactory(`>${current.raw} <${nextMajor.raw}`);\n }\n case Version.RELEASE_TYPES.Patch: {\n // For example, 4.15.4 returns 4.16.0\n const nextMinor = semVerFactory(current.raw).inc('minor');\n\n // Using only the minor version as the upper limit allows any patch\n // or build versions to be taken in the range.\n //\n // For example, if the current version is \"4.15.4\", incrementing the\n // minor version would result in \"4.16.0\".\n // The generated rule is \">4.15.4 <4.16.0\", allowing any version\n // greater than \"4.15.4\" but less than \"4.16.0\".\n return rangeFactory(`>${current.raw} <${nextMinor.raw}`);\n }\n default: {\n throw new Error('Not implemented');\n }\n }\n};\n\nexport const rangeFromVersions = (\n currentVersion: Version.SemVer,\n target: Version.ReleaseType | Version.SemVer\n) => {\n if (isSemverInstance(target)) {\n return rangeFactory(`>${currentVersion.raw} <=${target.raw}`);\n }\n\n if (isSemVerReleaseType(target)) {\n return rangeFromReleaseType(currentVersion, target);\n }\n\n throw new Error(`Invalid target set: ${target}`); // TODO: better errors\n};\n\nexport const isValidStringifiedRange = (str: string) => semver.validRange(str) !== null;\n\nexport const isRangeInstance = (range: unknown): range is semver.Range => {\n return range instanceof semver.Range;\n};\n"],"names":["rangeFactory","range","semver","Range","rangeFromReleaseType","current","identifier","Version","Latest","raw","Major","nextMajor","semVerFactory","inc","major","Minor","Patch","nextMinor","Error","rangeFromVersions","currentVersion","target","isSemverInstance","isSemVerReleaseType","isValidStringifiedRange","str","validRange","isRangeInstance"],"mappings":";;;;AAKO,MAAMA,eAAe,CAACC,KAAAA,GAAAA;IAC3B,OAAO,IAAIC,MAAAA,CAAOC,KAAK,CAACF,KAAAA,CAAAA;AAC1B;AAEO,MAAMG,oBAAAA,GAAuB,CAACC,OAAAA,EAAyBC,UAAAA,GAAAA;IAC5D,OAAQA,UAAAA;QACN,KAAKC,aAAqB,CAACC,MAAM;AAAE,YAAA;;AAEjC,gBAAA,OAAOR,aAAa,CAAC,CAAC,EAAEK,OAAAA,CAAQI,GAAG,CAAA,CAAE,CAAA;AACvC,YAAA;QACA,KAAKF,aAAqB,CAACG,KAAK;AAAE,YAAA;;AAEhC,gBAAA,MAAMC,YAAYC,aAAAA,CAAcP,OAAAA,CAAQI,GAAG,CAAA,CAAEI,GAAG,CAAC,OAAA,CAAA;;;;;;;;gBASjD,OAAOb,YAAAA,CAAa,CAAC,CAAC,EAAEK,OAAAA,CAAQI,GAAG,CAAC,GAAG,EAAEE,SAAAA,CAAUG,KAAK,CAAA,CAAE,CAAA;AAC5D,YAAA;QACA,KAAKP,aAAqB,CAACQ,KAAK;AAAE,YAAA;;AAEhC,gBAAA,MAAMJ,YAAYC,aAAAA,CAAcP,OAAAA,CAAQI,GAAG,CAAA,CAAEI,GAAG,CAAC,OAAA,CAAA;;;;;;;;gBASjD,OAAOb,YAAAA,CAAa,CAAC,CAAC,EAAEK,OAAAA,CAAQI,GAAG,CAAC,EAAE,EAAEE,SAAAA,CAAUF,GAAG,CAAA,CAAE,CAAA;AACzD,YAAA;QACA,KAAKF,aAAqB,CAACS,KAAK;AAAE,YAAA;;AAEhC,gBAAA,MAAMC,YAAYL,aAAAA,CAAcP,OAAAA,CAAQI,GAAG,CAAA,CAAEI,GAAG,CAAC,OAAA,CAAA;;;;;;;;gBASjD,OAAOb,YAAAA,CAAa,CAAC,CAAC,EAAEK,OAAAA,CAAQI,GAAG,CAAC,EAAE,EAAEQ,SAAAA,CAAUR,GAAG,CAAA,CAAE,CAAA;AACzD,YAAA;AACA,QAAA;AAAS,YAAA;AACP,gBAAA,MAAM,IAAIS,KAAAA,CAAM,iBAAA,CAAA;AAClB,YAAA;AACF;AACF;AAEO,MAAMC,iBAAAA,GAAoB,CAC/BC,cAAAA,EACAC,MAAAA,GAAAA;AAEA,IAAA,IAAIC,iBAAiBD,MAAAA,CAAAA,EAAS;QAC5B,OAAOrB,YAAAA,CAAa,CAAC,CAAC,EAAEoB,cAAAA,CAAeX,GAAG,CAAC,GAAG,EAAEY,MAAAA,CAAOZ,GAAG,CAAA,CAAE,CAAA;AAC9D,IAAA;AAEA,IAAA,IAAIc,oBAAoBF,MAAAA,CAAAA,EAAS;AAC/B,QAAA,OAAOjB,qBAAqBgB,cAAAA,EAAgBC,MAAAA,CAAAA;AAC9C,IAAA;AAEA,IAAA,MAAM,IAAIH,KAAAA,CAAM,CAAC,oBAAoB,EAAEG,MAAAA,CAAAA,CAAQ;AACjD;AAEO,MAAMG,0BAA0B,CAACC,GAAAA,GAAgBvB,OAAOwB,UAAU,CAACD,SAAS;AAE5E,MAAME,kBAAkB,CAAC1B,KAAAA,GAAAA;IAC9B,OAAOA,KAAAA,YAAiBC,OAAOC,KAAK;AACtC;;;;"}
|
|
@@ -19,7 +19,7 @@ const isSemverInstance = (value)=>{
|
|
|
19
19
|
return value instanceof semver__default.default.SemVer;
|
|
20
20
|
};
|
|
21
21
|
const isSemVerReleaseType = (str)=>{
|
|
22
|
-
return Object.values(types.
|
|
22
|
+
return Object.values(types.RELEASE_TYPES).includes(str);
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
exports.isLiteralSemVer = isLiteralSemVer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semver.js","sources":["../../../../src/modules/version/semver.ts"],"sourcesContent":["import semver from 'semver';\n\nimport * as Version from './types';\n\nexport const semVerFactory = (version: string): Version.SemVer => {\n return new semver.SemVer(version);\n};\n\nexport const isLiteralSemVer = (str: string): str is Version.LiteralSemVer => {\n const tokens = str.split('.');\n\n return (\n tokens.length === 3 &&\n tokens.every((token) => !Number.isNaN(+token) && Number.isInteger(+token))\n );\n};\n\nexport const isValidSemVer = (str: string) => semver.valid(str) !== null;\n\nexport const isSemverInstance = (value: unknown): value is semver.SemVer => {\n return value instanceof semver.SemVer;\n};\n\nexport const isSemVerReleaseType = (str: string): str is Version.ReleaseType => {\n return Object.values(Version.
|
|
1
|
+
{"version":3,"file":"semver.js","sources":["../../../../src/modules/version/semver.ts"],"sourcesContent":["import semver from 'semver';\n\nimport * as Version from './types';\n\nexport const semVerFactory = (version: string): Version.SemVer => {\n return new semver.SemVer(version);\n};\n\nexport const isLiteralSemVer = (str: string): str is Version.LiteralSemVer => {\n const tokens = str.split('.');\n\n return (\n tokens.length === 3 &&\n tokens.every((token) => !Number.isNaN(+token) && Number.isInteger(+token))\n );\n};\n\nexport const isValidSemVer = (str: string) => semver.valid(str) !== null;\n\nexport const isSemverInstance = (value: unknown): value is semver.SemVer => {\n return value instanceof semver.SemVer;\n};\n\nexport const isSemVerReleaseType = (str: string): str is Version.ReleaseType => {\n return Object.values(Version.RELEASE_TYPES).includes(str as Version.ReleaseType);\n};\n"],"names":["semVerFactory","version","semver","SemVer","isLiteralSemVer","str","tokens","split","length","every","token","Number","isNaN","isInteger","isValidSemVer","valid","isSemverInstance","value","isSemVerReleaseType","Object","values","Version","includes"],"mappings":";;;;;;;;;AAIO,MAAMA,gBAAgB,CAACC,OAAAA,GAAAA;IAC5B,OAAO,IAAIC,uBAAAA,CAAOC,MAAM,CAACF,OAAAA,CAAAA;AAC3B;AAEO,MAAMG,kBAAkB,CAACC,GAAAA,GAAAA;IAC9B,MAAMC,MAAAA,GAASD,GAAAA,CAAIE,KAAK,CAAC,GAAA,CAAA;AAEzB,IAAA,OACED,OAAOE,MAAM,KAAK,KAClBF,MAAAA,CAAOG,KAAK,CAAC,CAACC,KAAAA,GAAU,CAACC,MAAAA,CAAOC,KAAK,CAAC,CAACF,UAAUC,MAAAA,CAAOE,SAAS,CAAC,CAACH,KAAAA,CAAAA,CAAAA;AAEvE;AAEO,MAAMI,gBAAgB,CAACT,GAAAA,GAAgBH,wBAAOa,KAAK,CAACV,SAAS;AAE7D,MAAMW,mBAAmB,CAACC,KAAAA,GAAAA;IAC/B,OAAOA,KAAAA,YAAiBf,wBAAOC,MAAM;AACvC;AAEO,MAAMe,sBAAsB,CAACb,GAAAA,GAAAA;AAClC,IAAA,OAAOc,OAAOC,MAAM,CAACC,mBAAqB,CAAA,CAAEC,QAAQ,CAACjB,GAAAA,CAAAA;AACvD;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
|
-
import {
|
|
2
|
+
import { RELEASE_TYPES } from './types.mjs';
|
|
3
3
|
|
|
4
4
|
const semVerFactory = (version)=>{
|
|
5
5
|
return new semver.SemVer(version);
|
|
@@ -13,7 +13,7 @@ const isSemverInstance = (value)=>{
|
|
|
13
13
|
return value instanceof semver.SemVer;
|
|
14
14
|
};
|
|
15
15
|
const isSemVerReleaseType = (str)=>{
|
|
16
|
-
return Object.values(
|
|
16
|
+
return Object.values(RELEASE_TYPES).includes(str);
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
export { isLiteralSemVer, isSemVerReleaseType, isSemverInstance, isValidSemVer, semVerFactory };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semver.mjs","sources":["../../../../src/modules/version/semver.ts"],"sourcesContent":["import semver from 'semver';\n\nimport * as Version from './types';\n\nexport const semVerFactory = (version: string): Version.SemVer => {\n return new semver.SemVer(version);\n};\n\nexport const isLiteralSemVer = (str: string): str is Version.LiteralSemVer => {\n const tokens = str.split('.');\n\n return (\n tokens.length === 3 &&\n tokens.every((token) => !Number.isNaN(+token) && Number.isInteger(+token))\n );\n};\n\nexport const isValidSemVer = (str: string) => semver.valid(str) !== null;\n\nexport const isSemverInstance = (value: unknown): value is semver.SemVer => {\n return value instanceof semver.SemVer;\n};\n\nexport const isSemVerReleaseType = (str: string): str is Version.ReleaseType => {\n return Object.values(Version.
|
|
1
|
+
{"version":3,"file":"semver.mjs","sources":["../../../../src/modules/version/semver.ts"],"sourcesContent":["import semver from 'semver';\n\nimport * as Version from './types';\n\nexport const semVerFactory = (version: string): Version.SemVer => {\n return new semver.SemVer(version);\n};\n\nexport const isLiteralSemVer = (str: string): str is Version.LiteralSemVer => {\n const tokens = str.split('.');\n\n return (\n tokens.length === 3 &&\n tokens.every((token) => !Number.isNaN(+token) && Number.isInteger(+token))\n );\n};\n\nexport const isValidSemVer = (str: string) => semver.valid(str) !== null;\n\nexport const isSemverInstance = (value: unknown): value is semver.SemVer => {\n return value instanceof semver.SemVer;\n};\n\nexport const isSemVerReleaseType = (str: string): str is Version.ReleaseType => {\n return Object.values(Version.RELEASE_TYPES).includes(str as Version.ReleaseType);\n};\n"],"names":["semVerFactory","version","semver","SemVer","isLiteralSemVer","str","tokens","split","length","every","token","Number","isNaN","isInteger","isValidSemVer","valid","isSemverInstance","value","isSemVerReleaseType","Object","values","Version","includes"],"mappings":";;;AAIO,MAAMA,gBAAgB,CAACC,OAAAA,GAAAA;IAC5B,OAAO,IAAIC,MAAAA,CAAOC,MAAM,CAACF,OAAAA,CAAAA;AAC3B;AAEO,MAAMG,kBAAkB,CAACC,GAAAA,GAAAA;IAC9B,MAAMC,MAAAA,GAASD,GAAAA,CAAIE,KAAK,CAAC,GAAA,CAAA;AAEzB,IAAA,OACED,OAAOE,MAAM,KAAK,KAClBF,MAAAA,CAAOG,KAAK,CAAC,CAACC,KAAAA,GAAU,CAACC,MAAAA,CAAOC,KAAK,CAAC,CAACF,UAAUC,MAAAA,CAAOE,SAAS,CAAC,CAACH,KAAAA,CAAAA,CAAAA;AAEvE;AAEO,MAAMI,gBAAgB,CAACT,GAAAA,GAAgBH,OAAOa,KAAK,CAACV,SAAS;AAE7D,MAAMW,mBAAmB,CAACC,KAAAA,GAAAA;IAC/B,OAAOA,KAAAA,YAAiBf,OAAOC,MAAM;AACvC;AAEO,MAAMe,sBAAsB,CAACb,GAAAA,GAAAA;AAClC,IAAA,OAAOc,OAAOC,MAAM,CAACC,aAAqB,CAAA,CAAEC,QAAQ,CAACjB,GAAAA,CAAAA;AACvD;;;;"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const RELEASE_TYPES = {
|
|
4
4
|
// Classic
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Major: 'major',
|
|
6
|
+
Minor: 'minor',
|
|
7
|
+
Patch: 'patch',
|
|
8
8
|
// Other
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}({});
|
|
9
|
+
Latest: 'latest'
|
|
10
|
+
};
|
|
12
11
|
|
|
13
|
-
exports.
|
|
12
|
+
exports.RELEASE_TYPES = RELEASE_TYPES;
|
|
14
13
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/modules/version/types.ts"],"sourcesContent":["export type Version = number;\n\nexport type LiteralVersion =\n | `${Version}`\n | `${Version}.${Version}`\n | `${Version}.${Version}.${Version}`;\n\nexport type LiteralSemVer = `${Version}.${Version}.${Version}`;\n\nexport type { SemVer, Range } from 'semver';\n\nexport
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/modules/version/types.ts"],"sourcesContent":["export type Version = number;\n\nexport type LiteralVersion =\n | `${Version}`\n | `${Version}.${Version}`\n | `${Version}.${Version}.${Version}`;\n\nexport type LiteralSemVer = `${Version}.${Version}.${Version}`;\n\nexport type { SemVer, Range } from 'semver';\n\nexport const RELEASE_TYPES = {\n // Classic\n Major: 'major',\n Minor: 'minor',\n Patch: 'patch',\n // Other\n Latest: 'latest',\n} as const;\n\nexport type ReleaseType = (typeof RELEASE_TYPES)[keyof typeof RELEASE_TYPES];\n"],"names":["RELEASE_TYPES","Major","Minor","Patch","Latest"],"mappings":";;MAWaA,aAAAA,GAAgB;;IAE3BC,KAAAA,EAAO,OAAA;IACPC,KAAAA,EAAO,OAAA;IACPC,KAAAA,EAAO,OAAA;;IAEPC,MAAAA,EAAQ;AACV;;;;"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
const RELEASE_TYPES = {
|
|
2
2
|
// Classic
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Major: 'major',
|
|
4
|
+
Minor: 'minor',
|
|
5
|
+
Patch: 'patch',
|
|
6
6
|
// Other
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}({});
|
|
7
|
+
Latest: 'latest'
|
|
8
|
+
};
|
|
10
9
|
|
|
11
|
-
export {
|
|
10
|
+
export { RELEASE_TYPES };
|
|
12
11
|
//# sourceMappingURL=types.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sources":["../../../../src/modules/version/types.ts"],"sourcesContent":["export type Version = number;\n\nexport type LiteralVersion =\n | `${Version}`\n | `${Version}.${Version}`\n | `${Version}.${Version}.${Version}`;\n\nexport type LiteralSemVer = `${Version}.${Version}.${Version}`;\n\nexport type { SemVer, Range } from 'semver';\n\nexport
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":["../../../../src/modules/version/types.ts"],"sourcesContent":["export type Version = number;\n\nexport type LiteralVersion =\n | `${Version}`\n | `${Version}.${Version}`\n | `${Version}.${Version}.${Version}`;\n\nexport type LiteralSemVer = `${Version}.${Version}.${Version}`;\n\nexport type { SemVer, Range } from 'semver';\n\nexport const RELEASE_TYPES = {\n // Classic\n Major: 'major',\n Minor: 'minor',\n Patch: 'patch',\n // Other\n Latest: 'latest',\n} as const;\n\nexport type ReleaseType = (typeof RELEASE_TYPES)[keyof typeof RELEASE_TYPES];\n"],"names":["RELEASE_TYPES","Major","Minor","Patch","Latest"],"mappings":"MAWaA,aAAAA,GAAgB;;IAE3BC,KAAAA,EAAO,OAAA;IACPC,KAAAA,EAAO,OAAA;IACPC,KAAAA,EAAO,OAAA;;IAEPC,MAAAA,EAAQ;AACV;;;;"}
|
|
@@ -25,13 +25,13 @@ const getRangeFromTarget = (currentVersion, target)=>{
|
|
|
25
25
|
}
|
|
26
26
|
const { major, minor, patch } = currentVersion;
|
|
27
27
|
switch(target){
|
|
28
|
-
case types.
|
|
28
|
+
case types.RELEASE_TYPES.Latest:
|
|
29
29
|
throw new Error("Can't use <latest> to create a codemods range: not implemented");
|
|
30
|
-
case types.
|
|
30
|
+
case types.RELEASE_TYPES.Major:
|
|
31
31
|
return range.rangeFactory(`${major}`);
|
|
32
|
-
case types.
|
|
32
|
+
case types.RELEASE_TYPES.Minor:
|
|
33
33
|
return range.rangeFactory(`${major}.${minor}`);
|
|
34
|
-
case types.
|
|
34
|
+
case types.RELEASE_TYPES.Patch:
|
|
35
35
|
return range.rangeFactory(`${major}.${minor}.${patch}`);
|
|
36
36
|
default:
|
|
37
37
|
throw new Error(`Invalid target set: ${target}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/tasks/codemods/utils.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { isApplicationProject } from '../../modules/project';\nimport { Version, isSemverInstance, rangeFactory, isRangeInstance } from '../../modules/version';\n\nimport type { Project } from '../../modules/project';\n\nexport const resolvePath = (cwd?: string) => path.resolve(cwd ?? process.cwd());\n\nexport const getRangeFromTarget = (\n currentVersion: Version.SemVer,\n target: Version.ReleaseType | Version.LiteralSemVer\n) => {\n if (isSemverInstance(target)) {\n return rangeFactory(target);\n }\n\n const { major, minor, patch } = currentVersion;\n\n switch (target) {\n case Version.
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/tasks/codemods/utils.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { isApplicationProject } from '../../modules/project';\nimport { Version, isSemverInstance, rangeFactory, isRangeInstance } from '../../modules/version';\n\nimport type { Project } from '../../modules/project';\n\nexport const resolvePath = (cwd?: string) => path.resolve(cwd ?? process.cwd());\n\nexport const getRangeFromTarget = (\n currentVersion: Version.SemVer,\n target: Version.ReleaseType | Version.LiteralSemVer\n) => {\n if (isSemverInstance(target)) {\n return rangeFactory(target);\n }\n\n const { major, minor, patch } = currentVersion;\n\n switch (target) {\n case Version.RELEASE_TYPES.Latest:\n throw new Error(\"Can't use <latest> to create a codemods range: not implemented\");\n case Version.RELEASE_TYPES.Major:\n return rangeFactory(`${major}`);\n case Version.RELEASE_TYPES.Minor:\n return rangeFactory(`${major}.${minor}`);\n case Version.RELEASE_TYPES.Patch:\n return rangeFactory(`${major}.${minor}.${patch}`);\n default:\n throw new Error(`Invalid target set: ${target}`);\n }\n};\n\nexport const findRangeFromTarget = (\n project: Project,\n target: Version.ReleaseType | Version.LiteralSemVer | Version.Range\n): Version.Range => {\n // If a range is manually defined, use it\n if (isRangeInstance(target)) {\n return target;\n }\n\n // If the current project is a Strapi application\n // Get the range from the given target\n if (isApplicationProject(project)) {\n return getRangeFromTarget(project.strapiVersion, target);\n }\n\n // Else, if the project is a Strapi plugin or anything else\n // Set the range to match any version\n return rangeFactory('*');\n};\n"],"names":["resolvePath","cwd","path","resolve","process","getRangeFromTarget","currentVersion","target","isSemverInstance","rangeFactory","major","minor","patch","Version","Latest","Error","Major","Minor","Patch","findRangeFromTarget","project","isRangeInstance","isApplicationProject","strapiVersion"],"mappings":";;;;;;;;;;;;;;;;;;;;AAOO,MAAMA,WAAAA,GAAc,CAACC,GAAAA,GAAiBC,qBAAAA,CAAKC,OAAO,CAACF,GAAAA,IAAOG,OAAAA,CAAQH,GAAG,EAAA;AAErE,MAAMI,kBAAAA,GAAqB,CAChCC,cAAAA,EACAC,MAAAA,GAAAA;AAEA,IAAA,IAAIC,wBAAiBD,MAAAA,CAAAA,EAAS;AAC5B,QAAA,OAAOE,kBAAAA,CAAaF,MAAAA,CAAAA;AACtB,IAAA;AAEA,IAAA,MAAM,EAAEG,KAAK,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGN,cAAAA;IAEhC,OAAQC,MAAAA;QACN,KAAKM,mBAAqB,CAACC,MAAM;AAC/B,YAAA,MAAM,IAAIC,KAAAA,CAAM,gEAAA,CAAA;QAClB,KAAKF,mBAAqB,CAACG,KAAK;YAC9B,OAAOP,kBAAAA,CAAa,GAAGC,KAAAA,CAAAA,CAAO,CAAA;QAChC,KAAKG,mBAAqB,CAACI,KAAK;AAC9B,YAAA,OAAOR,kBAAAA,CAAa,CAAA,EAAGC,KAAAA,CAAM,CAAC,EAAEC,KAAAA,CAAAA,CAAO,CAAA;QACzC,KAAKE,mBAAqB,CAACK,KAAK;YAC9B,OAAOT,kBAAAA,CAAa,GAAGC,KAAAA,CAAM,CAAC,EAAEC,KAAAA,CAAM,CAAC,EAAEC,KAAAA,CAAAA,CAAO,CAAA;AAClD,QAAA;AACE,YAAA,MAAM,IAAIG,KAAAA,CAAM,CAAC,oBAAoB,EAAER,MAAAA,CAAAA,CAAQ,CAAA;AACnD;AACF;AAEO,MAAMY,mBAAAA,GAAsB,CACjCC,OAAAA,EACAb,MAAAA,GAAAA;;AAGA,IAAA,IAAIc,sBAAgBd,MAAAA,CAAAA,EAAS;QAC3B,OAAOA,MAAAA;AACT,IAAA;;;AAIA,IAAA,IAAIe,2BAAqBF,OAAAA,CAAAA,EAAU;QACjC,OAAOf,kBAAAA,CAAmBe,OAAAA,CAAQG,aAAa,EAAEhB,MAAAA,CAAAA;AACnD,IAAA;;;AAIA,IAAA,OAAOE,kBAAAA,CAAa,GAAA,CAAA;AACtB;;;;;;"}
|
|
@@ -4,7 +4,7 @@ import 'fs-extra';
|
|
|
4
4
|
import 'semver';
|
|
5
5
|
import { isSemverInstance } from '../../modules/version/semver.mjs';
|
|
6
6
|
import { isRangeInstance, rangeFactory } from '../../modules/version/range.mjs';
|
|
7
|
-
import {
|
|
7
|
+
import { RELEASE_TYPES } from '../../modules/version/types.mjs';
|
|
8
8
|
import 'fast-glob';
|
|
9
9
|
import 'jscodeshift/src/Runner';
|
|
10
10
|
import 'lodash/fp';
|
|
@@ -19,13 +19,13 @@ const getRangeFromTarget = (currentVersion, target)=>{
|
|
|
19
19
|
}
|
|
20
20
|
const { major, minor, patch } = currentVersion;
|
|
21
21
|
switch(target){
|
|
22
|
-
case
|
|
22
|
+
case RELEASE_TYPES.Latest:
|
|
23
23
|
throw new Error("Can't use <latest> to create a codemods range: not implemented");
|
|
24
|
-
case
|
|
24
|
+
case RELEASE_TYPES.Major:
|
|
25
25
|
return rangeFactory(`${major}`);
|
|
26
|
-
case
|
|
26
|
+
case RELEASE_TYPES.Minor:
|
|
27
27
|
return rangeFactory(`${major}.${minor}`);
|
|
28
|
-
case
|
|
28
|
+
case RELEASE_TYPES.Patch:
|
|
29
29
|
return rangeFactory(`${major}.${minor}.${patch}`);
|
|
30
30
|
default:
|
|
31
31
|
throw new Error(`Invalid target set: ${target}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","sources":["../../../../src/tasks/codemods/utils.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { isApplicationProject } from '../../modules/project';\nimport { Version, isSemverInstance, rangeFactory, isRangeInstance } from '../../modules/version';\n\nimport type { Project } from '../../modules/project';\n\nexport const resolvePath = (cwd?: string) => path.resolve(cwd ?? process.cwd());\n\nexport const getRangeFromTarget = (\n currentVersion: Version.SemVer,\n target: Version.ReleaseType | Version.LiteralSemVer\n) => {\n if (isSemverInstance(target)) {\n return rangeFactory(target);\n }\n\n const { major, minor, patch } = currentVersion;\n\n switch (target) {\n case Version.
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../../../../src/tasks/codemods/utils.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { isApplicationProject } from '../../modules/project';\nimport { Version, isSemverInstance, rangeFactory, isRangeInstance } from '../../modules/version';\n\nimport type { Project } from '../../modules/project';\n\nexport const resolvePath = (cwd?: string) => path.resolve(cwd ?? process.cwd());\n\nexport const getRangeFromTarget = (\n currentVersion: Version.SemVer,\n target: Version.ReleaseType | Version.LiteralSemVer\n) => {\n if (isSemverInstance(target)) {\n return rangeFactory(target);\n }\n\n const { major, minor, patch } = currentVersion;\n\n switch (target) {\n case Version.RELEASE_TYPES.Latest:\n throw new Error(\"Can't use <latest> to create a codemods range: not implemented\");\n case Version.RELEASE_TYPES.Major:\n return rangeFactory(`${major}`);\n case Version.RELEASE_TYPES.Minor:\n return rangeFactory(`${major}.${minor}`);\n case Version.RELEASE_TYPES.Patch:\n return rangeFactory(`${major}.${minor}.${patch}`);\n default:\n throw new Error(`Invalid target set: ${target}`);\n }\n};\n\nexport const findRangeFromTarget = (\n project: Project,\n target: Version.ReleaseType | Version.LiteralSemVer | Version.Range\n): Version.Range => {\n // If a range is manually defined, use it\n if (isRangeInstance(target)) {\n return target;\n }\n\n // If the current project is a Strapi application\n // Get the range from the given target\n if (isApplicationProject(project)) {\n return getRangeFromTarget(project.strapiVersion, target);\n }\n\n // Else, if the project is a Strapi plugin or anything else\n // Set the range to match any version\n return rangeFactory('*');\n};\n"],"names":["resolvePath","cwd","path","resolve","process","getRangeFromTarget","currentVersion","target","isSemverInstance","rangeFactory","major","minor","patch","Version","Latest","Error","Major","Minor","Patch","findRangeFromTarget","project","isRangeInstance","isApplicationProject","strapiVersion"],"mappings":";;;;;;;;;;;;;;AAOO,MAAMA,WAAAA,GAAc,CAACC,GAAAA,GAAiBC,IAAAA,CAAKC,OAAO,CAACF,GAAAA,IAAOG,OAAAA,CAAQH,GAAG,EAAA;AAErE,MAAMI,kBAAAA,GAAqB,CAChCC,cAAAA,EACAC,MAAAA,GAAAA;AAEA,IAAA,IAAIC,iBAAiBD,MAAAA,CAAAA,EAAS;AAC5B,QAAA,OAAOE,YAAAA,CAAaF,MAAAA,CAAAA;AACtB,IAAA;AAEA,IAAA,MAAM,EAAEG,KAAK,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGN,cAAAA;IAEhC,OAAQC,MAAAA;QACN,KAAKM,aAAqB,CAACC,MAAM;AAC/B,YAAA,MAAM,IAAIC,KAAAA,CAAM,gEAAA,CAAA;QAClB,KAAKF,aAAqB,CAACG,KAAK;YAC9B,OAAOP,YAAAA,CAAa,GAAGC,KAAAA,CAAAA,CAAO,CAAA;QAChC,KAAKG,aAAqB,CAACI,KAAK;AAC9B,YAAA,OAAOR,YAAAA,CAAa,CAAA,EAAGC,KAAAA,CAAM,CAAC,EAAEC,KAAAA,CAAAA,CAAO,CAAA;QACzC,KAAKE,aAAqB,CAACK,KAAK;YAC9B,OAAOT,YAAAA,CAAa,GAAGC,KAAAA,CAAM,CAAC,EAAEC,KAAAA,CAAM,CAAC,EAAEC,KAAAA,CAAAA,CAAO,CAAA;AAClD,QAAA;AACE,YAAA,MAAM,IAAIG,KAAAA,CAAM,CAAC,oBAAoB,EAAER,MAAAA,CAAAA,CAAQ,CAAA;AACnD;AACF;AAEO,MAAMY,mBAAAA,GAAsB,CACjCC,OAAAA,EACAb,MAAAA,GAAAA;;AAGA,IAAA,IAAIc,gBAAgBd,MAAAA,CAAAA,EAAS;QAC3B,OAAOA,MAAAA;AACT,IAAA;;;AAIA,IAAA,IAAIe,qBAAqBF,OAAAA,CAAAA,EAAU;QACjC,OAAOf,kBAAAA,CAAmBe,OAAAA,CAAQG,aAAa,EAAEhB,MAAAA,CAAAA;AACnD,IAAA;;;AAIA,IAAA,OAAOE,YAAAA,CAAa,GAAA,CAAA;AACtB;;;;"}
|
|
@@ -12,7 +12,7 @@ var types = require('../../../modules/version/types.js');
|
|
|
12
12
|
* - checks if an upgrade involves a major bump, warning and asking for user confirmation before proceeding
|
|
13
13
|
*/ const latest = async (upgrader, options)=>{
|
|
14
14
|
// Exit if the upgrade target isn't the latest tag
|
|
15
|
-
if (options.target !== types.
|
|
15
|
+
if (options.target !== types.RELEASE_TYPES.Latest) {
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
18
18
|
// Retrieve utilities from the upgrader instance
|
|
@@ -29,7 +29,7 @@ var types = require('../../../modules/version/types.js');
|
|
|
29
29
|
const isMajorUpgrade = target.major > current.major;
|
|
30
30
|
// Handle potential major upgrade, warns, and asks for confirmation to proceed
|
|
31
31
|
if (isMajorUpgrade) {
|
|
32
|
-
options.logger.warn(`Detected a major upgrade for the "${formats.highlight(types.
|
|
32
|
+
options.logger.warn(`Detected a major upgrade for the "${formats.highlight(types.RELEASE_TYPES.Latest)}" tag: ${fCurrent} > ${fTarget}`);
|
|
33
33
|
// Find the latest release in between the current one and the next major
|
|
34
34
|
const newerPackageRelease = npmPackage.findVersionsInRange(range.rangeFactory(`>${current.raw} <${target.major}`)).at(-1);
|
|
35
35
|
// If the project isn't on the latest version for the current major, emit a warning
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latest.js","sources":["../../../../../src/tasks/upgrade/prompts/latest.ts"],"sourcesContent":["import { AbortedError } from '../../../modules/error';\nimport * as f from '../../../modules/format';\n\nimport { rangeFactory, semVerFactory, Version } from '../../../modules/version';\n\nimport type { Upgrader } from '../../../modules/upgrader';\nimport type { UpgradeOptions } from '../types';\n\n/**\n * Handles the upgrade prompts when using the latest tag.\n *\n * - checks if an upgrade involves a major bump, warning and asking for user confirmation before proceeding\n */\nexport const latest = async (upgrader: Upgrader, options: UpgradeOptions) => {\n // Exit if the upgrade target isn't the latest tag\n if (options.target !== Version.
|
|
1
|
+
{"version":3,"file":"latest.js","sources":["../../../../../src/tasks/upgrade/prompts/latest.ts"],"sourcesContent":["import { AbortedError } from '../../../modules/error';\nimport * as f from '../../../modules/format';\n\nimport { rangeFactory, semVerFactory, Version } from '../../../modules/version';\n\nimport type { Upgrader } from '../../../modules/upgrader';\nimport type { UpgradeOptions } from '../types';\n\n/**\n * Handles the upgrade prompts when using the latest tag.\n *\n * - checks if an upgrade involves a major bump, warning and asking for user confirmation before proceeding\n */\nexport const latest = async (upgrader: Upgrader, options: UpgradeOptions) => {\n // Exit if the upgrade target isn't the latest tag\n if (options.target !== Version.RELEASE_TYPES.Latest) {\n return;\n }\n\n // Retrieve utilities from the upgrader instance\n const npmPackage = upgrader.getNPMPackage();\n const target = upgrader.getTarget();\n const project = upgrader.getProject();\n\n const { strapiVersion: current } = project;\n\n // Pre-formatted strings used in logs\n const fTargetMajor = f.highlight(`v${target.major}`);\n const fCurrentMajor = f.highlight(`v${current.major}`);\n\n const fTarget = f.version(target);\n const fCurrent = f.version(current);\n\n // Flags\n const isMajorUpgrade = target.major > current.major;\n\n // Handle potential major upgrade, warns, and asks for confirmation to proceed\n if (isMajorUpgrade) {\n options.logger.warn(\n `Detected a major upgrade for the \"${f.highlight(Version.RELEASE_TYPES.Latest)}\" tag: ${fCurrent} > ${fTarget}`\n );\n\n // Find the latest release in between the current one and the next major\n const newerPackageRelease = npmPackage\n .findVersionsInRange(rangeFactory(`>${current.raw} <${target.major}`))\n .at(-1);\n\n // If the project isn't on the latest version for the current major, emit a warning\n if (newerPackageRelease) {\n const fLatest = f.version(semVerFactory(newerPackageRelease.version));\n options.logger.warn(\n `It's recommended to first upgrade to the latest version of ${fCurrentMajor} (${fLatest}) before upgrading to ${fTargetMajor}.`\n );\n }\n\n const proceedAnyway = await upgrader.confirm(`I know what I'm doing. Proceed anyway!`);\n\n if (!proceedAnyway) {\n throw new AbortedError();\n }\n }\n};\n"],"names":["latest","upgrader","options","target","Version","Latest","npmPackage","getNPMPackage","getTarget","project","getProject","strapiVersion","current","fTargetMajor","f","major","fCurrentMajor","fTarget","fCurrent","isMajorUpgrade","logger","warn","newerPackageRelease","findVersionsInRange","rangeFactory","raw","at","fLatest","semVerFactory","version","proceedAnyway","confirm","AbortedError"],"mappings":";;;;;;;;AAQA;;;;AAIC,IACM,MAAMA,MAAAA,GAAS,OAAOC,QAAAA,EAAoBC,OAAAA,GAAAA;;AAE/C,IAAA,IAAIA,QAAQC,MAAM,KAAKC,mBAAqB,CAACC,MAAM,EAAE;AACnD,QAAA;AACF,IAAA;;IAGA,MAAMC,UAAAA,GAAaL,SAASM,aAAa,EAAA;IACzC,MAAMJ,MAAAA,GAASF,SAASO,SAAS,EAAA;IACjC,MAAMC,OAAAA,GAAUR,SAASS,UAAU,EAAA;AAEnC,IAAA,MAAM,EAAEC,aAAAA,EAAeC,OAAO,EAAE,GAAGH,OAAAA;;IAGnC,MAAMI,YAAAA,GAAeC,iBAAW,CAAC,CAAC,CAAC,EAAEX,MAAAA,CAAOY,KAAK,CAAA,CAAE,CAAA;IACnD,MAAMC,aAAAA,GAAgBF,iBAAW,CAAC,CAAC,CAAC,EAAEF,OAAAA,CAAQG,KAAK,CAAA,CAAE,CAAA;IAErD,MAAME,OAAAA,GAAUH,eAAS,CAACX,MAAAA,CAAAA;IAC1B,MAAMe,QAAAA,GAAWJ,eAAS,CAACF,OAAAA,CAAAA;;AAG3B,IAAA,MAAMO,cAAAA,GAAiBhB,MAAAA,CAAOY,KAAK,GAAGH,QAAQG,KAAK;;AAGnD,IAAA,IAAII,cAAAA,EAAgB;QAClBjB,OAAAA,CAAQkB,MAAM,CAACC,IAAI,CACjB,CAAC,kCAAkC,EAAEP,iBAAW,CAACV,mBAAqB,CAACC,MAAM,CAAA,CAAE,OAAO,EAAEa,QAAAA,CAAS,GAAG,EAAED,OAAAA,CAAAA,CAAS,CAAA;;AAIjH,QAAA,MAAMK,sBAAsBhB,UAAAA,CACzBiB,mBAAmB,CAACC,kBAAAA,CAAa,CAAC,CAAC,EAAEZ,OAAAA,CAAQa,GAAG,CAAC,EAAE,EAAEtB,MAAAA,CAAOY,KAAK,EAAE,CAAA,CAAA,CACnEW,EAAE,CAAC,EAAC,CAAA;;AAGP,QAAA,IAAIJ,mBAAAA,EAAqB;AACvB,YAAA,MAAMK,UAAUb,eAAS,CAACc,oBAAAA,CAAcN,oBAAoBO,OAAO,CAAA,CAAA;AACnE3B,YAAAA,OAAAA,CAAQkB,MAAM,CAACC,IAAI,CACjB,CAAC,2DAA2D,EAAEL,aAAAA,CAAc,EAAE,EAAEW,OAAAA,CAAQ,sBAAsB,EAAEd,YAAAA,CAAa,CAAC,CAAC,CAAA;AAEnI,QAAA;AAEA,QAAA,MAAMiB,gBAAgB,MAAM7B,QAAAA,CAAS8B,OAAO,CAAC,CAAC,sCAAsC,CAAC,CAAA;AAErF,QAAA,IAAI,CAACD,aAAAA,EAAe;AAClB,YAAA,MAAM,IAAIE,kBAAAA,EAAAA;AACZ,QAAA;AACF,IAAA;AACF;;;;"}
|
|
@@ -2,7 +2,7 @@ import { AbortedError } from '../../../modules/error/utils.mjs';
|
|
|
2
2
|
import { highlight, version } from '../../../modules/format/formats.mjs';
|
|
3
3
|
import { semVerFactory } from '../../../modules/version/semver.mjs';
|
|
4
4
|
import { rangeFactory } from '../../../modules/version/range.mjs';
|
|
5
|
-
import {
|
|
5
|
+
import { RELEASE_TYPES } from '../../../modules/version/types.mjs';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Handles the upgrade prompts when using the latest tag.
|
|
@@ -10,7 +10,7 @@ import { ReleaseType } from '../../../modules/version/types.mjs';
|
|
|
10
10
|
* - checks if an upgrade involves a major bump, warning and asking for user confirmation before proceeding
|
|
11
11
|
*/ const latest = async (upgrader, options)=>{
|
|
12
12
|
// Exit if the upgrade target isn't the latest tag
|
|
13
|
-
if (options.target !==
|
|
13
|
+
if (options.target !== RELEASE_TYPES.Latest) {
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
// Retrieve utilities from the upgrader instance
|
|
@@ -27,7 +27,7 @@ import { ReleaseType } from '../../../modules/version/types.mjs';
|
|
|
27
27
|
const isMajorUpgrade = target.major > current.major;
|
|
28
28
|
// Handle potential major upgrade, warns, and asks for confirmation to proceed
|
|
29
29
|
if (isMajorUpgrade) {
|
|
30
|
-
options.logger.warn(`Detected a major upgrade for the "${highlight(
|
|
30
|
+
options.logger.warn(`Detected a major upgrade for the "${highlight(RELEASE_TYPES.Latest)}" tag: ${fCurrent} > ${fTarget}`);
|
|
31
31
|
// Find the latest release in between the current one and the next major
|
|
32
32
|
const newerPackageRelease = npmPackage.findVersionsInRange(rangeFactory(`>${current.raw} <${target.major}`)).at(-1);
|
|
33
33
|
// If the project isn't on the latest version for the current major, emit a warning
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latest.mjs","sources":["../../../../../src/tasks/upgrade/prompts/latest.ts"],"sourcesContent":["import { AbortedError } from '../../../modules/error';\nimport * as f from '../../../modules/format';\n\nimport { rangeFactory, semVerFactory, Version } from '../../../modules/version';\n\nimport type { Upgrader } from '../../../modules/upgrader';\nimport type { UpgradeOptions } from '../types';\n\n/**\n * Handles the upgrade prompts when using the latest tag.\n *\n * - checks if an upgrade involves a major bump, warning and asking for user confirmation before proceeding\n */\nexport const latest = async (upgrader: Upgrader, options: UpgradeOptions) => {\n // Exit if the upgrade target isn't the latest tag\n if (options.target !== Version.
|
|
1
|
+
{"version":3,"file":"latest.mjs","sources":["../../../../../src/tasks/upgrade/prompts/latest.ts"],"sourcesContent":["import { AbortedError } from '../../../modules/error';\nimport * as f from '../../../modules/format';\n\nimport { rangeFactory, semVerFactory, Version } from '../../../modules/version';\n\nimport type { Upgrader } from '../../../modules/upgrader';\nimport type { UpgradeOptions } from '../types';\n\n/**\n * Handles the upgrade prompts when using the latest tag.\n *\n * - checks if an upgrade involves a major bump, warning and asking for user confirmation before proceeding\n */\nexport const latest = async (upgrader: Upgrader, options: UpgradeOptions) => {\n // Exit if the upgrade target isn't the latest tag\n if (options.target !== Version.RELEASE_TYPES.Latest) {\n return;\n }\n\n // Retrieve utilities from the upgrader instance\n const npmPackage = upgrader.getNPMPackage();\n const target = upgrader.getTarget();\n const project = upgrader.getProject();\n\n const { strapiVersion: current } = project;\n\n // Pre-formatted strings used in logs\n const fTargetMajor = f.highlight(`v${target.major}`);\n const fCurrentMajor = f.highlight(`v${current.major}`);\n\n const fTarget = f.version(target);\n const fCurrent = f.version(current);\n\n // Flags\n const isMajorUpgrade = target.major > current.major;\n\n // Handle potential major upgrade, warns, and asks for confirmation to proceed\n if (isMajorUpgrade) {\n options.logger.warn(\n `Detected a major upgrade for the \"${f.highlight(Version.RELEASE_TYPES.Latest)}\" tag: ${fCurrent} > ${fTarget}`\n );\n\n // Find the latest release in between the current one and the next major\n const newerPackageRelease = npmPackage\n .findVersionsInRange(rangeFactory(`>${current.raw} <${target.major}`))\n .at(-1);\n\n // If the project isn't on the latest version for the current major, emit a warning\n if (newerPackageRelease) {\n const fLatest = f.version(semVerFactory(newerPackageRelease.version));\n options.logger.warn(\n `It's recommended to first upgrade to the latest version of ${fCurrentMajor} (${fLatest}) before upgrading to ${fTargetMajor}.`\n );\n }\n\n const proceedAnyway = await upgrader.confirm(`I know what I'm doing. Proceed anyway!`);\n\n if (!proceedAnyway) {\n throw new AbortedError();\n }\n }\n};\n"],"names":["latest","upgrader","options","target","Version","Latest","npmPackage","getNPMPackage","getTarget","project","getProject","strapiVersion","current","fTargetMajor","f","major","fCurrentMajor","fTarget","fCurrent","isMajorUpgrade","logger","warn","newerPackageRelease","findVersionsInRange","rangeFactory","raw","at","fLatest","semVerFactory","version","proceedAnyway","confirm","AbortedError"],"mappings":";;;;;;AAQA;;;;AAIC,IACM,MAAMA,MAAAA,GAAS,OAAOC,QAAAA,EAAoBC,OAAAA,GAAAA;;AAE/C,IAAA,IAAIA,QAAQC,MAAM,KAAKC,aAAqB,CAACC,MAAM,EAAE;AACnD,QAAA;AACF,IAAA;;IAGA,MAAMC,UAAAA,GAAaL,SAASM,aAAa,EAAA;IACzC,MAAMJ,MAAAA,GAASF,SAASO,SAAS,EAAA;IACjC,MAAMC,OAAAA,GAAUR,SAASS,UAAU,EAAA;AAEnC,IAAA,MAAM,EAAEC,aAAAA,EAAeC,OAAO,EAAE,GAAGH,OAAAA;;IAGnC,MAAMI,YAAAA,GAAeC,SAAW,CAAC,CAAC,CAAC,EAAEX,MAAAA,CAAOY,KAAK,CAAA,CAAE,CAAA;IACnD,MAAMC,aAAAA,GAAgBF,SAAW,CAAC,CAAC,CAAC,EAAEF,OAAAA,CAAQG,KAAK,CAAA,CAAE,CAAA;IAErD,MAAME,OAAAA,GAAUH,OAAS,CAACX,MAAAA,CAAAA;IAC1B,MAAMe,QAAAA,GAAWJ,OAAS,CAACF,OAAAA,CAAAA;;AAG3B,IAAA,MAAMO,cAAAA,GAAiBhB,MAAAA,CAAOY,KAAK,GAAGH,QAAQG,KAAK;;AAGnD,IAAA,IAAII,cAAAA,EAAgB;QAClBjB,OAAAA,CAAQkB,MAAM,CAACC,IAAI,CACjB,CAAC,kCAAkC,EAAEP,SAAW,CAACV,aAAqB,CAACC,MAAM,CAAA,CAAE,OAAO,EAAEa,QAAAA,CAAS,GAAG,EAAED,OAAAA,CAAAA,CAAS,CAAA;;AAIjH,QAAA,MAAMK,sBAAsBhB,UAAAA,CACzBiB,mBAAmB,CAACC,YAAAA,CAAa,CAAC,CAAC,EAAEZ,OAAAA,CAAQa,GAAG,CAAC,EAAE,EAAEtB,MAAAA,CAAOY,KAAK,EAAE,CAAA,CAAA,CACnEW,EAAE,CAAC,EAAC,CAAA;;AAGP,QAAA,IAAIJ,mBAAAA,EAAqB;AACvB,YAAA,MAAMK,UAAUb,OAAS,CAACc,aAAAA,CAAcN,oBAAoBO,OAAO,CAAA,CAAA;AACnE3B,YAAAA,OAAAA,CAAQkB,MAAM,CAACC,IAAI,CACjB,CAAC,2DAA2D,EAAEL,aAAAA,CAAc,EAAE,EAAEW,OAAAA,CAAQ,sBAAsB,EAAEd,YAAAA,CAAa,CAAC,CAAC,CAAA;AAEnI,QAAA;AAEA,QAAA,MAAMiB,gBAAgB,MAAM7B,QAAAA,CAAS8B,OAAO,CAAC,CAAC,sCAAsC,CAAC,CAAA;AAErF,QAAA,IAAI,CAACD,aAAAA,EAAe;AAClB,YAAA,MAAM,IAAIE,YAAAA,EAAAA;AACZ,QAAA;AACF,IAAA;AACF;;;;"}
|
|
@@ -54,14 +54,14 @@ const upgrade = async (options)=>{
|
|
|
54
54
|
logger.info(`Completed in ${formats.durationMs(timer$1.elapsedMs)}ms`);
|
|
55
55
|
};
|
|
56
56
|
const runUpgradePrompts = async (upgrader, options)=>{
|
|
57
|
-
if (options.target === types.
|
|
57
|
+
if (options.target === types.RELEASE_TYPES.Latest) {
|
|
58
58
|
await latest.latest(upgrader, options);
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
61
|
const addUpgradeRequirements = (upgrader, options)=>{
|
|
62
62
|
// Major release upgrades enforce stepping through the latest patch for the current major.
|
|
63
63
|
// Semver targets (via the "to" command) skip these checks intentionally.
|
|
64
|
-
if (options.target === types.
|
|
64
|
+
if (options.target === types.RELEASE_TYPES.Major) {
|
|
65
65
|
upgrader.addRequirement(major.REQUIRE_AVAILABLE_NEXT_MAJOR).addRequirement(major.REQUIRE_LATEST_FOR_CURRENT_MAJOR);
|
|
66
66
|
}
|
|
67
67
|
// Make sure the git repository is in an optimal state before running the upgrade
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sources":["../../../../src/tasks/upgrade/upgrade.ts"],"sourcesContent":["import path from 'node:path';\n\nimport * as f from '../../modules/format';\nimport { npmPackageFactory } from '../../modules/npm';\nimport { isApplicationProject, projectFactory } from '../../modules/project';\nimport { timerFactory } from '../../modules/timer';\nimport { constants as upgraderConstants, upgraderFactory } from '../../modules/upgrader';\nimport { Version } from '../../modules/version';\n\nimport * as requirements from './requirements';\nimport * as prompts from './prompts';\n\nimport type { UpgradeOptions } from './types';\nimport type { Upgrader } from '../../modules/upgrader';\n\nexport const upgrade = async (options: UpgradeOptions) => {\n const timer = timerFactory();\n const { logger, codemodsTarget } = options;\n\n // Resolves the correct working directory based on the given input\n const cwd = path.resolve(options.cwd ?? process.cwd());\n\n const project = projectFactory(cwd);\n\n logger.debug(f.projectDetails(project));\n\n if (!isApplicationProject(project)) {\n throw new Error(\n `The \"${options.target}\" upgrade can only be run on a Strapi project; for plugins, please use \"codemods\".`\n );\n }\n\n logger.debug(\n `Application: VERSION=${f.version(project.packageJSON.version as Version.LiteralVersion)}; STRAPI_VERSION=${f.version(project.strapiVersion)}`\n );\n\n const npmPackage = npmPackageFactory(upgraderConstants.STRAPI_PACKAGE_NAME, project.cwd, logger);\n\n // Load all available versions from the NPM registry\n await npmPackage.refresh();\n\n // Initialize the upgrade instance\n // Throws during initialization if the provided target is incompatible with the current version\n const upgrader = upgraderFactory(project, options.target, npmPackage)\n .dry(options.dry ?? false)\n .onConfirm(options.confirm ?? null)\n .setLogger(logger);\n\n // Manually override the target version for codemods if it's explicitly provided\n if (codemodsTarget !== undefined) {\n upgrader.overrideCodemodsTarget(codemodsTarget);\n }\n\n // Prompt user for confirmation details before upgrading\n await runUpgradePrompts(upgrader, options);\n\n // Add specific requirements before upgrading\n addUpgradeRequirements(upgrader, options);\n\n // Actually run the upgrade process once configured,\n // The response contains information about the final status: success/error\n const upgradeReport = await upgrader.upgrade();\n\n if (!upgradeReport.success) {\n throw upgradeReport.error;\n }\n\n timer.stop();\n\n logger.info(`Completed in ${f.durationMs(timer.elapsedMs)}ms`);\n};\n\nconst runUpgradePrompts = async (upgrader: Upgrader, options: UpgradeOptions) => {\n if (options.target === Version.
|
|
1
|
+
{"version":3,"file":"upgrade.js","sources":["../../../../src/tasks/upgrade/upgrade.ts"],"sourcesContent":["import path from 'node:path';\n\nimport * as f from '../../modules/format';\nimport { npmPackageFactory } from '../../modules/npm';\nimport { isApplicationProject, projectFactory } from '../../modules/project';\nimport { timerFactory } from '../../modules/timer';\nimport { constants as upgraderConstants, upgraderFactory } from '../../modules/upgrader';\nimport { Version } from '../../modules/version';\n\nimport * as requirements from './requirements';\nimport * as prompts from './prompts';\n\nimport type { UpgradeOptions } from './types';\nimport type { Upgrader } from '../../modules/upgrader';\n\nexport const upgrade = async (options: UpgradeOptions) => {\n const timer = timerFactory();\n const { logger, codemodsTarget } = options;\n\n // Resolves the correct working directory based on the given input\n const cwd = path.resolve(options.cwd ?? process.cwd());\n\n const project = projectFactory(cwd);\n\n logger.debug(f.projectDetails(project));\n\n if (!isApplicationProject(project)) {\n throw new Error(\n `The \"${options.target}\" upgrade can only be run on a Strapi project; for plugins, please use \"codemods\".`\n );\n }\n\n logger.debug(\n `Application: VERSION=${f.version(project.packageJSON.version as Version.LiteralVersion)}; STRAPI_VERSION=${f.version(project.strapiVersion)}`\n );\n\n const npmPackage = npmPackageFactory(upgraderConstants.STRAPI_PACKAGE_NAME, project.cwd, logger);\n\n // Load all available versions from the NPM registry\n await npmPackage.refresh();\n\n // Initialize the upgrade instance\n // Throws during initialization if the provided target is incompatible with the current version\n const upgrader = upgraderFactory(project, options.target, npmPackage)\n .dry(options.dry ?? false)\n .onConfirm(options.confirm ?? null)\n .setLogger(logger);\n\n // Manually override the target version for codemods if it's explicitly provided\n if (codemodsTarget !== undefined) {\n upgrader.overrideCodemodsTarget(codemodsTarget);\n }\n\n // Prompt user for confirmation details before upgrading\n await runUpgradePrompts(upgrader, options);\n\n // Add specific requirements before upgrading\n addUpgradeRequirements(upgrader, options);\n\n // Actually run the upgrade process once configured,\n // The response contains information about the final status: success/error\n const upgradeReport = await upgrader.upgrade();\n\n if (!upgradeReport.success) {\n throw upgradeReport.error;\n }\n\n timer.stop();\n\n logger.info(`Completed in ${f.durationMs(timer.elapsedMs)}ms`);\n};\n\nconst runUpgradePrompts = async (upgrader: Upgrader, options: UpgradeOptions) => {\n if (options.target === Version.RELEASE_TYPES.Latest) {\n await prompts.latest(upgrader, options);\n }\n};\n\nconst addUpgradeRequirements = (upgrader: Upgrader, options: UpgradeOptions): void => {\n // Major release upgrades enforce stepping through the latest patch for the current major.\n // Semver targets (via the \"to\" command) skip these checks intentionally.\n if (options.target === Version.RELEASE_TYPES.Major) {\n upgrader\n .addRequirement(requirements.major.REQUIRE_AVAILABLE_NEXT_MAJOR)\n .addRequirement(requirements.major.REQUIRE_LATEST_FOR_CURRENT_MAJOR);\n }\n\n // Make sure the git repository is in an optimal state before running the upgrade\n // Mainly used to ease rollbacks in case the upgrade is corrupted\n upgrader.addRequirement(requirements.common.REQUIRE_GIT.asOptional());\n};\n"],"names":["upgrade","options","timer","timerFactory","logger","codemodsTarget","cwd","path","resolve","process","project","projectFactory","debug","f","isApplicationProject","Error","target","packageJSON","version","strapiVersion","npmPackage","npmPackageFactory","upgraderConstants","refresh","upgrader","upgraderFactory","dry","onConfirm","confirm","setLogger","undefined","overrideCodemodsTarget","runUpgradePrompts","addUpgradeRequirements","upgradeReport","success","error","stop","info","elapsedMs","Version","Latest","prompts","Major","addRequirement","requirements","asOptional"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAeO,MAAMA,UAAU,OAAOC,OAAAA,GAAAA;AAC5B,IAAA,MAAMC,OAAAA,GAAQC,kBAAAA,EAAAA;AACd,IAAA,MAAM,EAAEC,MAAM,EAAEC,cAAc,EAAE,GAAGJ,OAAAA;;IAGnC,MAAMK,GAAAA,GAAMC,sBAAKC,OAAO,CAACP,QAAQK,GAAG,IAAIG,QAAQH,GAAG,EAAA,CAAA;AAEnD,IAAA,MAAMI,YAAUC,sBAAAA,CAAeL,GAAAA,CAAAA;AAE/BF,IAAAA,MAAAA,CAAOQ,KAAK,CAACC,sBAAgB,CAACH,SAAAA,CAAAA,CAAAA;IAE9B,IAAI,CAACI,2BAAqBJ,SAAAA,CAAAA,EAAU;QAClC,MAAM,IAAIK,MACR,CAAC,KAAK,EAAEd,OAAAA,CAAQe,MAAM,CAAC,kFAAkF,CAAC,CAAA;AAE9G,IAAA;IAEAZ,MAAAA,CAAOQ,KAAK,CACV,CAAC,qBAAqB,EAAEC,eAAS,CAACH,SAAAA,CAAQO,WAAW,CAACC,OAAO,CAAA,CAA4B,iBAAiB,EAAEL,eAAS,CAACH,SAAAA,CAAQS,aAAa,CAAA,CAAA,CAAG,CAAA;AAGhJ,IAAA,MAAMC,aAAaC,0BAAAA,CAAkBC,6BAAqC,EAAEZ,SAAAA,CAAQJ,GAAG,EAAEF,MAAAA,CAAAA;;AAGzF,IAAA,MAAMgB,WAAWG,OAAO,EAAA;;;IAIxB,MAAMC,UAAAA,GAAWC,yBAAgBf,SAAAA,EAAST,OAAAA,CAAQe,MAAM,EAAEI,UAAAA,CAAAA,CACvDM,GAAG,CAACzB,OAAAA,CAAQyB,GAAG,IAAI,KAAA,CAAA,CACnBC,SAAS,CAAC1B,OAAAA,CAAQ2B,OAAO,IAAI,IAAA,CAAA,CAC7BC,SAAS,CAACzB,MAAAA,CAAAA;;AAGb,IAAA,IAAIC,mBAAmByB,SAAAA,EAAW;AAChCN,QAAAA,UAAAA,CAASO,sBAAsB,CAAC1B,cAAAA,CAAAA;AAClC,IAAA;;AAGA,IAAA,MAAM2B,kBAAkBR,UAAAA,EAAUvB,OAAAA,CAAAA;;AAGlCgC,IAAAA,sBAAAA,CAAuBT,UAAAA,EAAUvB,OAAAA,CAAAA;;;IAIjC,MAAMiC,aAAAA,GAAgB,MAAMV,UAAAA,CAASxB,OAAO,EAAA;IAE5C,IAAI,CAACkC,aAAAA,CAAcC,OAAO,EAAE;AAC1B,QAAA,MAAMD,cAAcE,KAAK;AAC3B,IAAA;AAEAlC,IAAAA,OAAAA,CAAMmC,IAAI,EAAA;AAEVjC,IAAAA,MAAAA,CAAOkC,IAAI,CAAC,CAAC,aAAa,EAAEzB,kBAAY,CAACX,OAAAA,CAAMqC,SAAS,CAAA,CAAE,EAAE,CAAC,CAAA;AAC/D;AAEA,MAAMP,iBAAAA,GAAoB,OAAOR,QAAAA,EAAoBvB,OAAAA,GAAAA;AACnD,IAAA,IAAIA,QAAQe,MAAM,KAAKwB,mBAAqB,CAACC,MAAM,EAAE;QACnD,MAAMC,aAAc,CAAClB,QAAAA,EAAUvB,OAAAA,CAAAA;AACjC,IAAA;AACF,CAAA;AAEA,MAAMgC,sBAAAA,GAAyB,CAACT,QAAAA,EAAoBvB,OAAAA,GAAAA;;;AAGlD,IAAA,IAAIA,QAAQe,MAAM,KAAKwB,mBAAqB,CAACG,KAAK,EAAE;AAClDnB,QAAAA,QAAAA,CACGoB,cAAc,CAACC,kCAA+C,CAAA,CAC9DD,cAAc,CAACC,sCAAmD,CAAA;AACvE,IAAA;;;AAIArB,IAAAA,QAAAA,CAASoB,cAAc,CAACC,kBAA+B,CAACC,UAAU,EAAA,CAAA;AACpE,CAAA;;;;"}
|
|
@@ -8,7 +8,7 @@ import { timerFactory } from '../../modules/timer/timer.mjs';
|
|
|
8
8
|
import { upgraderFactory } from '../../modules/upgrader/upgrader.mjs';
|
|
9
9
|
import { STRAPI_PACKAGE_NAME } from '../../modules/upgrader/constants.mjs';
|
|
10
10
|
import 'semver';
|
|
11
|
-
import {
|
|
11
|
+
import { RELEASE_TYPES } from '../../modules/version/types.mjs';
|
|
12
12
|
import { REQUIRE_AVAILABLE_NEXT_MAJOR, REQUIRE_LATEST_FOR_CURRENT_MAJOR } from './requirements/major.mjs';
|
|
13
13
|
import { REQUIRE_GIT } from './requirements/common.mjs';
|
|
14
14
|
import { latest } from './prompts/latest.mjs';
|
|
@@ -48,14 +48,14 @@ const upgrade = async (options)=>{
|
|
|
48
48
|
logger.info(`Completed in ${durationMs(timer.elapsedMs)}ms`);
|
|
49
49
|
};
|
|
50
50
|
const runUpgradePrompts = async (upgrader, options)=>{
|
|
51
|
-
if (options.target ===
|
|
51
|
+
if (options.target === RELEASE_TYPES.Latest) {
|
|
52
52
|
await latest(upgrader, options);
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
55
|
const addUpgradeRequirements = (upgrader, options)=>{
|
|
56
56
|
// Major release upgrades enforce stepping through the latest patch for the current major.
|
|
57
57
|
// Semver targets (via the "to" command) skip these checks intentionally.
|
|
58
|
-
if (options.target ===
|
|
58
|
+
if (options.target === RELEASE_TYPES.Major) {
|
|
59
59
|
upgrader.addRequirement(REQUIRE_AVAILABLE_NEXT_MAJOR).addRequirement(REQUIRE_LATEST_FOR_CURRENT_MAJOR);
|
|
60
60
|
}
|
|
61
61
|
// Make sure the git repository is in an optimal state before running the upgrade
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.mjs","sources":["../../../../src/tasks/upgrade/upgrade.ts"],"sourcesContent":["import path from 'node:path';\n\nimport * as f from '../../modules/format';\nimport { npmPackageFactory } from '../../modules/npm';\nimport { isApplicationProject, projectFactory } from '../../modules/project';\nimport { timerFactory } from '../../modules/timer';\nimport { constants as upgraderConstants, upgraderFactory } from '../../modules/upgrader';\nimport { Version } from '../../modules/version';\n\nimport * as requirements from './requirements';\nimport * as prompts from './prompts';\n\nimport type { UpgradeOptions } from './types';\nimport type { Upgrader } from '../../modules/upgrader';\n\nexport const upgrade = async (options: UpgradeOptions) => {\n const timer = timerFactory();\n const { logger, codemodsTarget } = options;\n\n // Resolves the correct working directory based on the given input\n const cwd = path.resolve(options.cwd ?? process.cwd());\n\n const project = projectFactory(cwd);\n\n logger.debug(f.projectDetails(project));\n\n if (!isApplicationProject(project)) {\n throw new Error(\n `The \"${options.target}\" upgrade can only be run on a Strapi project; for plugins, please use \"codemods\".`\n );\n }\n\n logger.debug(\n `Application: VERSION=${f.version(project.packageJSON.version as Version.LiteralVersion)}; STRAPI_VERSION=${f.version(project.strapiVersion)}`\n );\n\n const npmPackage = npmPackageFactory(upgraderConstants.STRAPI_PACKAGE_NAME, project.cwd, logger);\n\n // Load all available versions from the NPM registry\n await npmPackage.refresh();\n\n // Initialize the upgrade instance\n // Throws during initialization if the provided target is incompatible with the current version\n const upgrader = upgraderFactory(project, options.target, npmPackage)\n .dry(options.dry ?? false)\n .onConfirm(options.confirm ?? null)\n .setLogger(logger);\n\n // Manually override the target version for codemods if it's explicitly provided\n if (codemodsTarget !== undefined) {\n upgrader.overrideCodemodsTarget(codemodsTarget);\n }\n\n // Prompt user for confirmation details before upgrading\n await runUpgradePrompts(upgrader, options);\n\n // Add specific requirements before upgrading\n addUpgradeRequirements(upgrader, options);\n\n // Actually run the upgrade process once configured,\n // The response contains information about the final status: success/error\n const upgradeReport = await upgrader.upgrade();\n\n if (!upgradeReport.success) {\n throw upgradeReport.error;\n }\n\n timer.stop();\n\n logger.info(`Completed in ${f.durationMs(timer.elapsedMs)}ms`);\n};\n\nconst runUpgradePrompts = async (upgrader: Upgrader, options: UpgradeOptions) => {\n if (options.target === Version.
|
|
1
|
+
{"version":3,"file":"upgrade.mjs","sources":["../../../../src/tasks/upgrade/upgrade.ts"],"sourcesContent":["import path from 'node:path';\n\nimport * as f from '../../modules/format';\nimport { npmPackageFactory } from '../../modules/npm';\nimport { isApplicationProject, projectFactory } from '../../modules/project';\nimport { timerFactory } from '../../modules/timer';\nimport { constants as upgraderConstants, upgraderFactory } from '../../modules/upgrader';\nimport { Version } from '../../modules/version';\n\nimport * as requirements from './requirements';\nimport * as prompts from './prompts';\n\nimport type { UpgradeOptions } from './types';\nimport type { Upgrader } from '../../modules/upgrader';\n\nexport const upgrade = async (options: UpgradeOptions) => {\n const timer = timerFactory();\n const { logger, codemodsTarget } = options;\n\n // Resolves the correct working directory based on the given input\n const cwd = path.resolve(options.cwd ?? process.cwd());\n\n const project = projectFactory(cwd);\n\n logger.debug(f.projectDetails(project));\n\n if (!isApplicationProject(project)) {\n throw new Error(\n `The \"${options.target}\" upgrade can only be run on a Strapi project; for plugins, please use \"codemods\".`\n );\n }\n\n logger.debug(\n `Application: VERSION=${f.version(project.packageJSON.version as Version.LiteralVersion)}; STRAPI_VERSION=${f.version(project.strapiVersion)}`\n );\n\n const npmPackage = npmPackageFactory(upgraderConstants.STRAPI_PACKAGE_NAME, project.cwd, logger);\n\n // Load all available versions from the NPM registry\n await npmPackage.refresh();\n\n // Initialize the upgrade instance\n // Throws during initialization if the provided target is incompatible with the current version\n const upgrader = upgraderFactory(project, options.target, npmPackage)\n .dry(options.dry ?? false)\n .onConfirm(options.confirm ?? null)\n .setLogger(logger);\n\n // Manually override the target version for codemods if it's explicitly provided\n if (codemodsTarget !== undefined) {\n upgrader.overrideCodemodsTarget(codemodsTarget);\n }\n\n // Prompt user for confirmation details before upgrading\n await runUpgradePrompts(upgrader, options);\n\n // Add specific requirements before upgrading\n addUpgradeRequirements(upgrader, options);\n\n // Actually run the upgrade process once configured,\n // The response contains information about the final status: success/error\n const upgradeReport = await upgrader.upgrade();\n\n if (!upgradeReport.success) {\n throw upgradeReport.error;\n }\n\n timer.stop();\n\n logger.info(`Completed in ${f.durationMs(timer.elapsedMs)}ms`);\n};\n\nconst runUpgradePrompts = async (upgrader: Upgrader, options: UpgradeOptions) => {\n if (options.target === Version.RELEASE_TYPES.Latest) {\n await prompts.latest(upgrader, options);\n }\n};\n\nconst addUpgradeRequirements = (upgrader: Upgrader, options: UpgradeOptions): void => {\n // Major release upgrades enforce stepping through the latest patch for the current major.\n // Semver targets (via the \"to\" command) skip these checks intentionally.\n if (options.target === Version.RELEASE_TYPES.Major) {\n upgrader\n .addRequirement(requirements.major.REQUIRE_AVAILABLE_NEXT_MAJOR)\n .addRequirement(requirements.major.REQUIRE_LATEST_FOR_CURRENT_MAJOR);\n }\n\n // Make sure the git repository is in an optimal state before running the upgrade\n // Mainly used to ease rollbacks in case the upgrade is corrupted\n upgrader.addRequirement(requirements.common.REQUIRE_GIT.asOptional());\n};\n"],"names":["upgrade","options","timer","timerFactory","logger","codemodsTarget","cwd","path","resolve","process","project","projectFactory","debug","f","isApplicationProject","Error","target","packageJSON","version","strapiVersion","npmPackage","npmPackageFactory","upgraderConstants","refresh","upgrader","upgraderFactory","dry","onConfirm","confirm","setLogger","undefined","overrideCodemodsTarget","runUpgradePrompts","addUpgradeRequirements","upgradeReport","success","error","stop","info","elapsedMs","Version","Latest","prompts","Major","addRequirement","requirements","asOptional"],"mappings":";;;;;;;;;;;;;;;AAeO,MAAMA,UAAU,OAAOC,OAAAA,GAAAA;AAC5B,IAAA,MAAMC,KAAAA,GAAQC,YAAAA,EAAAA;AACd,IAAA,MAAM,EAAEC,MAAM,EAAEC,cAAc,EAAE,GAAGJ,OAAAA;;IAGnC,MAAMK,GAAAA,GAAMC,KAAKC,OAAO,CAACP,QAAQK,GAAG,IAAIG,QAAQH,GAAG,EAAA,CAAA;AAEnD,IAAA,MAAMI,UAAUC,cAAAA,CAAeL,GAAAA,CAAAA;AAE/BF,IAAAA,MAAAA,CAAOQ,KAAK,CAACC,cAAgB,CAACH,OAAAA,CAAAA,CAAAA;IAE9B,IAAI,CAACI,qBAAqBJ,OAAAA,CAAAA,EAAU;QAClC,MAAM,IAAIK,MACR,CAAC,KAAK,EAAEd,OAAAA,CAAQe,MAAM,CAAC,kFAAkF,CAAC,CAAA;AAE9G,IAAA;IAEAZ,MAAAA,CAAOQ,KAAK,CACV,CAAC,qBAAqB,EAAEC,OAAS,CAACH,OAAAA,CAAQO,WAAW,CAACC,OAAO,CAAA,CAA4B,iBAAiB,EAAEL,OAAS,CAACH,OAAAA,CAAQS,aAAa,CAAA,CAAA,CAAG,CAAA;AAGhJ,IAAA,MAAMC,aAAaC,iBAAAA,CAAkBC,mBAAqC,EAAEZ,OAAAA,CAAQJ,GAAG,EAAEF,MAAAA,CAAAA;;AAGzF,IAAA,MAAMgB,WAAWG,OAAO,EAAA;;;IAIxB,MAAMC,QAAAA,GAAWC,gBAAgBf,OAAAA,EAAST,OAAAA,CAAQe,MAAM,EAAEI,UAAAA,CAAAA,CACvDM,GAAG,CAACzB,OAAAA,CAAQyB,GAAG,IAAI,KAAA,CAAA,CACnBC,SAAS,CAAC1B,OAAAA,CAAQ2B,OAAO,IAAI,IAAA,CAAA,CAC7BC,SAAS,CAACzB,MAAAA,CAAAA;;AAGb,IAAA,IAAIC,mBAAmByB,SAAAA,EAAW;AAChCN,QAAAA,QAAAA,CAASO,sBAAsB,CAAC1B,cAAAA,CAAAA;AAClC,IAAA;;AAGA,IAAA,MAAM2B,kBAAkBR,QAAAA,EAAUvB,OAAAA,CAAAA;;AAGlCgC,IAAAA,sBAAAA,CAAuBT,QAAAA,EAAUvB,OAAAA,CAAAA;;;IAIjC,MAAMiC,aAAAA,GAAgB,MAAMV,QAAAA,CAASxB,OAAO,EAAA;IAE5C,IAAI,CAACkC,aAAAA,CAAcC,OAAO,EAAE;AAC1B,QAAA,MAAMD,cAAcE,KAAK;AAC3B,IAAA;AAEAlC,IAAAA,KAAAA,CAAMmC,IAAI,EAAA;AAEVjC,IAAAA,MAAAA,CAAOkC,IAAI,CAAC,CAAC,aAAa,EAAEzB,UAAY,CAACX,KAAAA,CAAMqC,SAAS,CAAA,CAAE,EAAE,CAAC,CAAA;AAC/D;AAEA,MAAMP,iBAAAA,GAAoB,OAAOR,QAAAA,EAAoBvB,OAAAA,GAAAA;AACnD,IAAA,IAAIA,QAAQe,MAAM,KAAKwB,aAAqB,CAACC,MAAM,EAAE;QACnD,MAAMC,MAAc,CAAClB,QAAAA,EAAUvB,OAAAA,CAAAA;AACjC,IAAA;AACF,CAAA;AAEA,MAAMgC,sBAAAA,GAAyB,CAACT,QAAAA,EAAoBvB,OAAAA,GAAAA;;;AAGlD,IAAA,IAAIA,QAAQe,MAAM,KAAKwB,aAAqB,CAACG,KAAK,EAAE;AAClDnB,QAAAA,QAAAA,CACGoB,cAAc,CAACC,4BAA+C,CAAA,CAC9DD,cAAc,CAACC,gCAAmD,CAAA;AACvE,IAAA;;;AAIArB,IAAAA,QAAAA,CAASoB,cAAc,CAACC,WAA+B,CAACC,UAAU,EAAA,CAAA;AACpE,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-codemods.d.ts","sourceRoot":"","sources":["../../../src/tasks/codemods/list-codemods.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"list-codemods.d.ts","sourceRoot":"","sources":["../../../src/tasks/codemods/list-codemods.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,YAAY,GAAU,SAAS,mBAAmB,kBAmC9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-codemods.d.ts","sourceRoot":"","sources":["../../../src/tasks/codemods/run-codemods.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"run-codemods.d.ts","sourceRoot":"","sources":["../../../src/tasks/codemods/run-codemods.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,eAAO,MAAM,WAAW,GAAU,SAAS,kBAAkB,kBAsC5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tasks/codemods/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAmD,MAAM,uBAAuB,CAAC;AAEjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tasks/codemods/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAmD,MAAM,uBAAuB,CAAC;AAEjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,WAAuC,CAAC;AAEhF,eAAO,MAAM,kBAAkB,GAC7B,gBAAgB,OAAO,CAAC,MAAM,EAC9B,QAAQ,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,kBAoBpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,OAAO,EAChB,QAAQ,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,KAClE,OAAO,CAAC,KAeV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latest.d.ts","sourceRoot":"","sources":["../../../../src/tasks/upgrade/prompts/latest.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"latest.d.ts","sourceRoot":"","sources":["../../../../src/tasks/upgrade/prompts/latest.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAU,UAAU,QAAQ,EAAE,SAAS,cAAc,kBAgDvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/tasks/upgrade/upgrade.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/tasks/upgrade/upgrade.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,OAAO,GAAU,SAAS,cAAc,kBAuDpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/upgrade",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.50.1",
|
|
4
4
|
"description": "CLI to upgrade Strapi applications effortless",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"strapi",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"watch": "run -T rollup -c -w"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@strapi/utils": "5.
|
|
68
|
+
"@strapi/utils": "5.50.1",
|
|
69
69
|
"chalk": "4.1.2",
|
|
70
70
|
"cli-table3": "0.6.5",
|
|
71
71
|
"commander": "8.3.0",
|
|
@@ -83,10 +83,10 @@
|
|
|
83
83
|
"undici": "6.27.0"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
|
-
"@strapi/types": "5.
|
|
86
|
+
"@strapi/types": "5.50.1",
|
|
87
87
|
"@types/fs-extra": "11.0.4",
|
|
88
88
|
"@types/jscodeshift": "17.3.0",
|
|
89
|
-
"eslint-config-custom": "5.
|
|
89
|
+
"eslint-config-custom": "5.50.1",
|
|
90
90
|
"rimraf": "6.1.3"
|
|
91
91
|
},
|
|
92
92
|
"engines": {
|