@strapi/upgrade 0.0.0-experimental.fc1ac2acd58c8a5a858679956b6d102ac5ee4011 → 0.0.0-next.ce84fada19d58a7dfbdd553035e6558f8befcba4

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 (83) hide show
  1. package/LICENSE +19 -4
  2. package/dist/cli.js +1489 -5
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.js +375 -107
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +375 -108
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/modules/codemod/codemod.d.ts +4 -2
  9. package/dist/modules/codemod/codemod.d.ts.map +1 -1
  10. package/dist/modules/codemod/types.d.ts +8 -1
  11. package/dist/modules/codemod/types.d.ts.map +1 -1
  12. package/dist/modules/codemod-repository/constants.d.ts.map +1 -1
  13. package/dist/modules/codemod-repository/repository.d.ts +6 -5
  14. package/dist/modules/codemod-repository/repository.d.ts.map +1 -1
  15. package/dist/modules/codemod-repository/types.d.ts +7 -3
  16. package/dist/modules/codemod-repository/types.d.ts.map +1 -1
  17. package/dist/modules/codemod-runner/codemod-runner.d.ts +3 -0
  18. package/dist/modules/codemod-runner/codemod-runner.d.ts.map +1 -1
  19. package/dist/modules/codemod-runner/index.d.ts +1 -0
  20. package/dist/modules/codemod-runner/index.d.ts.map +1 -1
  21. package/dist/modules/codemod-runner/types.d.ts +1 -0
  22. package/dist/modules/codemod-runner/types.d.ts.map +1 -1
  23. package/dist/modules/file-scanner/scanner.d.ts.map +1 -1
  24. package/dist/modules/format/formats.d.ts +6 -0
  25. package/dist/modules/format/formats.d.ts.map +1 -1
  26. package/dist/modules/project/constants.d.ts +6 -3
  27. package/dist/modules/project/constants.d.ts.map +1 -1
  28. package/dist/modules/project/index.d.ts +2 -0
  29. package/dist/modules/project/index.d.ts.map +1 -1
  30. package/dist/modules/project/project.d.ts +27 -5
  31. package/dist/modules/project/project.d.ts.map +1 -1
  32. package/dist/modules/project/types.d.ts +3 -10
  33. package/dist/modules/project/types.d.ts.map +1 -1
  34. package/dist/modules/project/utils.d.ts +6 -0
  35. package/dist/modules/project/utils.d.ts.map +1 -0
  36. package/dist/modules/report/report.d.ts.map +1 -1
  37. package/dist/modules/requirement/types.d.ts +2 -2
  38. package/dist/modules/requirement/types.d.ts.map +1 -1
  39. package/dist/modules/runner/json/transform.d.ts.map +1 -1
  40. package/dist/modules/upgrader/upgrader.d.ts +3 -3
  41. package/dist/modules/upgrader/upgrader.d.ts.map +1 -1
  42. package/dist/modules/version/range.d.ts +2 -0
  43. package/dist/modules/version/range.d.ts.map +1 -1
  44. package/dist/tasks/codemods/index.d.ts +2 -1
  45. package/dist/tasks/codemods/index.d.ts.map +1 -1
  46. package/dist/tasks/codemods/list-codemods.d.ts +3 -0
  47. package/dist/tasks/codemods/list-codemods.d.ts.map +1 -0
  48. package/dist/tasks/codemods/run-codemods.d.ts +3 -0
  49. package/dist/tasks/codemods/run-codemods.d.ts.map +1 -0
  50. package/dist/tasks/codemods/types.d.ts +9 -3
  51. package/dist/tasks/codemods/types.d.ts.map +1 -1
  52. package/dist/tasks/codemods/utils.d.ts +6 -0
  53. package/dist/tasks/codemods/utils.d.ts.map +1 -0
  54. package/dist/tasks/index.d.ts +1 -1
  55. package/dist/tasks/index.d.ts.map +1 -1
  56. package/dist/tasks/upgrade/upgrade.d.ts.map +1 -1
  57. package/package.json +10 -9
  58. package/resources/codemods/5.0.0/comment-out-lifecycle-files.code.ts +63 -0
  59. package/resources/codemods/5.0.0/dependency-remove-strapi-plugin-i18n.json.ts +31 -0
  60. package/resources/codemods/5.0.0/dependency-upgrade-react-and-react-dom.json.ts +67 -0
  61. package/resources/codemods/5.0.0/dependency-upgrade-react-router-dom.json.ts +59 -0
  62. package/resources/codemods/5.0.0/dependency-upgrade-styled-components.json.ts +49 -0
  63. package/resources/codemods/5.0.0/deprecate-helper-plugin.code.ts +186 -0
  64. package/resources/codemods/5.0.0/entity-service-document-service.code.ts +437 -0
  65. package/resources/codemods/5.0.0/s3-keys-wrapped-in-credentials.code.ts +1 -1
  66. package/resources/codemods/5.0.0/sqlite3-to-better-sqlite3.json.ts +5 -2
  67. package/resources/codemods/5.0.0/strapi-public-interface.code.ts +126 -0
  68. package/resources/codemods/5.0.0/use-uid-for-config-namespace.code.ts +1 -1
  69. package/resources/codemods/5.0.0/utils-public-interface.code.ts +320 -0
  70. package/resources/examples/console.log-to-console.info.code.ts +1 -1
  71. package/resources/examples/disable-jsx-buttons.code.ts +42 -0
  72. package/resources/utils/change-import.ts +118 -0
  73. package/resources/utils/replace-jsx.ts +49 -0
  74. package/dist/_chunks/codemod-runner-oPpELfwO.js +0 -730
  75. package/dist/_chunks/codemod-runner-oPpELfwO.js.map +0 -1
  76. package/dist/_chunks/codemods-qc8_QMWD.js +0 -108
  77. package/dist/_chunks/codemods-qc8_QMWD.js.map +0 -1
  78. package/dist/_chunks/index-GHKaxdhJ.js +0 -103
  79. package/dist/_chunks/index-GHKaxdhJ.js.map +0 -1
  80. package/dist/_chunks/upgrade-4SxXG3Oe.js +0 -357
  81. package/dist/_chunks/upgrade-4SxXG3Oe.js.map +0 -1
  82. package/dist/tasks/codemods/codemods.d.ts +0 -3
  83. package/dist/tasks/codemods/codemods.d.ts.map +0 -1
@@ -15,5 +15,6 @@ export interface CodemodRunnerInterface {
15
15
  dry(enabled?: boolean): this;
16
16
  onSelectCodemods(callback: SelectCodemodsCallback | null): this;
17
17
  run(codemodsDirectory?: string): Promise<CodemodRunnerReport>;
18
+ runByUID(uid: string, codemodsDirectory?: string): Promise<CodemodRunnerReport>;
18
19
  }
19
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/codemod-runner/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,MAAM,sBAAsB,GAAG,CACnC,QAAQ,EAAE,OAAO,CAAC,mBAAmB,EAAE,KACpC,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAC3B;IACE,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;CACb,GACD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAErC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACrC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAC;IAEhE,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC/D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/codemod-runner/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,MAAM,sBAAsB,GAAG,CACnC,QAAQ,EAAE,OAAO,CAAC,mBAAmB,EAAE,KACpC,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAC3B;IACE,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;CACb,GACD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAErC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACrC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAC;IAEhE,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/modules/file-scanner/scanner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEnE,qBAAa,WAAY,YAAW,oBAAoB;IAC/C,GAAG,EAAE,MAAM,CAAC;gBAEP,GAAG,EAAE,MAAM;IAIvB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;CAMxB;AAED,eAAO,MAAM,kBAAkB,QAAS,MAAM,gBAAyB,CAAC"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/modules/file-scanner/scanner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEnE,qBAAa,WAAY,YAAW,oBAAoB;IAC/C,GAAG,EAAE,MAAM,CAAC;gBAEP,GAAG,EAAE,MAAM;IAIvB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;CASxB;AAED,eAAO,MAAM,kBAAkB,QAAS,MAAM,gBAAyB,CAAC"}
@@ -1,11 +1,17 @@
1
+ import type { AppProject, PluginProject, ProjectType } from '../project';
2
+ import type { Codemod } from '../codemod';
1
3
  import type { Version } from '../version';
2
4
  import type { Report } from '../report';
3
5
  export declare const path: (path: string) => string;
4
6
  export declare const version: (version: Version.LiteralVersion | Version.SemVer) => string;
7
+ export declare const codemodUID: (uid: string) => string;
8
+ export declare const projectDetails: (project: AppProject | PluginProject) => string;
9
+ export declare const projectType: (type: ProjectType) => string;
5
10
  export declare const versionRange: (range: Version.Range) => string;
6
11
  export declare const transform: (transformFilePath: string) => string;
7
12
  export declare const highlight: (arg: unknown) => string;
8
13
  export declare const upgradeStep: (text: string, step: [current: number, total: number]) => string;
9
14
  export declare const reports: (reports: Report.CodemodReport[]) => string;
15
+ export declare const codemodList: (codemods: Codemod.List) => string;
10
16
  export declare const durationMs: (elapsedMs: number) => string;
11
17
  //# sourceMappingURL=formats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../../src/modules/format/formats.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,eAAO,MAAM,IAAI,SAAU,MAAM,WAAqB,CAAC;AAEvD,eAAO,MAAM,OAAO,YAAa,QAAQ,cAAc,GAAG,QAAQ,MAAM,WAEvE,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,aAAa,WAA+B,CAAC;AAEjF,eAAO,MAAM,SAAS,sBAAuB,MAAM,WAAkC,CAAC;AAEtF,eAAO,MAAM,SAAS,QAAS,OAAO,WAA8B,CAAC;AAErE,eAAO,MAAM,WAAW,SAAU,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,WAE/E,CAAC;AAEF,eAAO,MAAM,OAAO,YAAa,OAAO,aAAa,EAAE,WAgCtD,CAAC;AAEF,eAAO,MAAM,UAAU,cAAe,MAAM,WAI3C,CAAC"}
1
+ {"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../../src/modules/format/formats.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,eAAO,MAAM,IAAI,SAAU,MAAM,WAAqB,CAAC;AAEvD,eAAO,MAAM,OAAO,YAAa,QAAQ,cAAc,GAAG,QAAQ,MAAM,WAEvE,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,MAAM,WAErC,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,UAAU,GAAG,aAAa,WAEjE,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,WAAW,WAAqB,CAAC;AAEnE,eAAO,MAAM,YAAY,UAAW,aAAa,WAAmC,CAAC;AAErF,eAAO,MAAM,SAAS,sBAAuB,MAAM,WAAkC,CAAC;AAEtF,eAAO,MAAM,SAAS,QAAS,OAAO,WAA8B,CAAC;AAErE,eAAO,MAAM,WAAW,SAAU,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,WAE/E,CAAC;AAEF,eAAO,MAAM,OAAO,YAAa,OAAO,aAAa,EAAE,WAgCtD,CAAC;AAEF,eAAO,MAAM,WAAW,oCA2BvB,CAAC;AAEF,eAAO,MAAM,UAAU,cAAe,MAAM,WAI3C,CAAC"}
@@ -1,7 +1,10 @@
1
1
  export declare const PROJECT_PACKAGE_JSON = "package.json";
2
- export declare const PROJECT_DEFAULT_ALLOWED_ROOT_PATHS: string[];
3
- export declare const PROJECT_DEFAULT_ALLOWED_EXTENSIONS: string[];
4
- export declare const PROJECT_DEFAULT_PATTERNS: string[];
2
+ export declare const PROJECT_APP_ALLOWED_ROOT_PATHS: string[];
3
+ export declare const PROJECT_PLUGIN_ALLOWED_ROOT_PATHS: string[];
4
+ export declare const PROJECT_PLUGIN_ROOT_FILES: string[];
5
+ export declare const PROJECT_CODE_EXTENSIONS: string[];
6
+ export declare const PROJECT_JSON_EXTENSIONS: string[];
7
+ export declare const PROJECT_ALLOWED_EXTENSIONS: string[];
5
8
  export declare const SCOPED_STRAPI_PACKAGE_PREFIX = "@strapi/";
6
9
  export declare const STRAPI_DEPENDENCY_NAME = "@strapi/strapi";
7
10
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/modules/project/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,eAAO,MAAM,kCAAkC,UAA8B,CAAC;AAE9E,eAAO,MAAM,kCAAkC,UAAuB,CAAC;AAEvE,eAAO,MAAM,wBAAwB,UAAmB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,aAAa,CAAC;AAEvD,eAAO,MAAM,sBAAsB,mBAA0C,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/modules/project/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,eAAO,MAAM,8BAA8B,UAA8B,CAAC;AAE1E,eAAO,MAAM,iCAAiC,UAAsB,CAAC;AAErE,eAAO,MAAM,yBAAyB,UAA0C,CAAC;AAEjF,eAAO,MAAM,uBAAuB,UAQnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAAW,CAAC;AAEhD,eAAO,MAAM,0BAA0B,UAA2D,CAAC;AAEnG,eAAO,MAAM,4BAA4B,aAAa,CAAC;AAEvD,eAAO,MAAM,sBAAsB,mBAA0C,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export type * from './types';
2
+ export type { Project, AppProject, PluginProject } from './project';
2
3
  export { projectFactory } from './project';
3
4
  export * as constants from './constants';
5
+ export * from './utils';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/project/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,SAAS,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/project/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,SAAS,CAAC;AAC7B,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,cAAc,SAAS,CAAC"}
@@ -1,23 +1,45 @@
1
1
  import type { Version } from '../version';
2
2
  import type { Codemod } from '../codemod';
3
3
  import type { Report } from '../report';
4
- import type { Project as ProjectInterface, FileExtension, MinimalPackageJSON, RunCodemodsOptions } from './types';
5
- export declare class Project implements ProjectInterface {
4
+ import type { FileExtension, MinimalPackageJSON, ProjectConfig, RunCodemodsOptions } from './types';
5
+ export declare class Project {
6
6
  cwd: string;
7
7
  files: string[];
8
8
  packageJSONPath: string;
9
9
  packageJSON: MinimalPackageJSON;
10
- strapiVersion: Version.SemVer;
11
- constructor(cwd: string);
10
+ readonly paths: string[];
11
+ constructor(cwd: string, config: ProjectConfig);
12
12
  getFilesByExtensions(extensions: FileExtension[]): string[];
13
13
  refresh(): this;
14
14
  runCodemods(codemods: Codemod.List, options: RunCodemodsOptions): Promise<Report.CodemodReport[]>;
15
15
  private createProjectCodemodsRunners;
16
16
  private refreshPackageJSON;
17
17
  private refreshProjectFiles;
18
+ }
19
+ export declare class AppProject extends Project {
20
+ strapiVersion: Version.SemVer;
21
+ readonly type: "application";
22
+ /**
23
+ * Returns an array of allowed file paths for a Strapi application
24
+ *
25
+ * The resulting paths include app default files and the root package.json file.
26
+ */
27
+ private static get paths();
28
+ constructor(cwd: string);
29
+ refresh(): this;
18
30
  private refreshStrapiVersion;
19
31
  private findStrapiVersionFromProjectPackageJSON;
20
32
  private findLocallyInstalledStrapiVersion;
21
33
  }
22
- export declare const projectFactory: (cwd: string) => Project;
34
+ export declare class PluginProject extends Project {
35
+ readonly type: "plugin";
36
+ /**
37
+ * Returns an array of allowed file paths for a Strapi plugin
38
+ *
39
+ * The resulting paths include plugin default files, the root package.json file, and plugin-specific files.
40
+ */
41
+ private static get paths();
42
+ constructor(cwd: string);
43
+ }
44
+ export declare const projectFactory: (cwd: string) => AppProject | PluginProject;
23
45
  //# sourceMappingURL=project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/modules/project/project.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EACV,OAAO,IAAI,gBAAgB,EAC3B,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,qBAAa,OAAQ,YAAW,gBAAgB;IACvC,GAAG,EAAE,MAAM,CAAC;IAIZ,KAAK,EAAG,MAAM,EAAE,CAAC;IAEjB,eAAe,EAAG,MAAM,CAAC;IAEzB,WAAW,EAAG,kBAAkB,CAAC;IAEjC,aAAa,EAAG,OAAO,CAAC,MAAM,CAAC;gBAE1B,GAAG,EAAE,MAAM;IAUvB,oBAAoB,CAAC,UAAU,EAAE,aAAa,EAAE;IAQhD,OAAO;IAQD,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,kBAAkB;IAgBrE,OAAO,CAAC,4BAA4B;IAmBpC,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,uCAAuC;IAgB/C,OAAO,CAAC,iCAAiC;CA2B1C;AAWD,eAAO,MAAM,cAAc,QAAS,MAAM,YAAqB,CAAC"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/modules/project/project.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,aAAa,EAEb,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,qBAAa,OAAO;IACX,GAAG,EAAE,MAAM,CAAC;IAIZ,KAAK,EAAG,MAAM,EAAE,CAAC;IAEjB,eAAe,EAAG,MAAM,CAAC;IAEzB,WAAW,EAAG,kBAAkB,CAAC;IAExC,SAAgB,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEpB,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAW9C,oBAAoB,CAAC,UAAU,EAAE,aAAa,EAAE;IAQhD,OAAO;IAOD,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,kBAAkB;IAgBrE,OAAO,CAAC,4BAA4B;IAuBpC,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;CAK5B;AAED,qBAAa,UAAW,SAAQ,OAAO;IAC9B,aAAa,EAAG,OAAO,CAAC,MAAM,CAAC;IAEtC,QAAQ,CAAC,IAAI,gBAAgD;IAE7D;;;;OAIG;IACH,OAAO,CAAC,MAAM,KAAK,KAAK,GAYvB;gBAEW,GAAG,EAAE,MAAM;IAKvB,OAAO;IAMP,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,uCAAuC;IAgB/C,OAAO,CAAC,iCAAiC;CA2B1C;AAWD,qBAAa,aAAc,SAAQ,OAAO;IACxC,QAAQ,CAAC,IAAI,WAA2C;IAExD;;;;OAIG;IACH,OAAO,CAAC,MAAM,KAAK,KAAK,GAgBvB;gBAEW,GAAG,EAAE,MAAM;CAGxB;AAmBD,eAAO,MAAM,cAAc,QAAS,MAAM,+BAIzC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { Utils } from '@strapi/types';
2
- import type { Version } from '../version';
3
2
  import type { Codemod } from '../codemod';
4
3
  import type { Report } from '../report';
5
4
  export type FileExtension = `.${string}`;
5
+ export type ProjectType = 'plugin' | 'application';
6
6
  export interface RunCodemodsOptions {
7
7
  dry?: boolean;
8
8
  onCodemodStartRunning?(codemod: Codemod.Codemod, index: number): Promise<void> | void;
@@ -13,14 +13,7 @@ export type MinimalPackageJSON = {
13
13
  version: string;
14
14
  dependencies?: Record<string, string>;
15
15
  } & Utils.JSONObject;
16
- export interface Project {
17
- cwd: string;
18
- files: string[];
19
- packageJSONPath: string;
20
- packageJSON: MinimalPackageJSON;
21
- strapiVersion: Version.SemVer;
22
- getFilesByExtensions(extensions: FileExtension[]): string[];
23
- runCodemods(codemods: Codemod.List, options: RunCodemodsOptions): Promise<Report.CodemodReport[]>;
24
- refresh(): this;
16
+ export interface ProjectConfig {
17
+ paths: string[];
25
18
  }
26
19
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/project/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,MAAM,aAAa,GAAG,IAAI,MAAM,EAAE,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,qBAAqB,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtF,sBAAsB,CAAC,CACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,GAAG,KAAK,CAAC,UAAU,CAAC;AAErB,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,kBAAkB,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;IAE9B,oBAAoB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAC5D,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IAElG,OAAO,IAAI,IAAI,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/project/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,MAAM,aAAa,GAAG,IAAI,MAAM,EAAE,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,qBAAqB,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtF,sBAAsB,CAAC,CACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,GAAG,KAAK,CAAC,UAAU,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB"}
@@ -0,0 +1,6 @@
1
+ import { AppProject, PluginProject } from './project';
2
+ export declare const isPluginProject: (project: unknown) => project is PluginProject;
3
+ export declare function assertPluginProject(project: unknown): asserts project is PluginProject;
4
+ export declare const isApplicationProject: (project: unknown) => project is AppProject;
5
+ export declare function assertAppProject(project: unknown): asserts project is AppProject;
6
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/modules/project/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEtD,eAAO,MAAM,eAAe,YAAa,OAAO,6BAE/C,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,aAAa,CAItF;AAED,eAAO,MAAM,oBAAoB,YAAa,OAAO,0BAEpD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,CAIhF"}
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/modules/report/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,oBAAoB,YAAa,eAAe,UAAU,MAAM,KAAG,aAG9E,CAAC;AAEH,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,MAAyB,CAAC"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/modules/report/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,oBAAoB,YAAa,QAAQ,OAAO,UAAU,MAAM,KAAG,aAG9E,CAAC;AAEH,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,MAAyB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Project } from '../project';
1
+ import type { AppProject } from '../project';
2
2
  import type { MaybePromise } from '../../types';
3
3
  import type { Version } from '../version';
4
4
  import type { NPMPackageVersion } from '../npm/types';
@@ -23,7 +23,7 @@ export interface Requirement {
23
23
  export interface TestContext {
24
24
  target: Version.SemVer;
25
25
  npmVersionsMatches: NPMPackageVersion[];
26
- project: Project;
26
+ project: AppProject;
27
27
  }
28
28
  export type RequirementTestCallback = (context: TestContext) => MaybePromise<void>;
29
29
  export interface RequirementInformation {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/requirement/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAErF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC7C,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAEnC,UAAU,IAAI,WAAW,CAAC;IAC1B,UAAU,IAAI,WAAW,CAAC;IAE1B,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;IACvB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;AAEnF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,WAAW,EAAE,sBAAsB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,WAAW,EAAE,sBAAsB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC,WAAW,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;CACvF;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,KAAK;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B,EAAE,CAAC,UAAU,SAAS,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAElG,IAAI,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;CAClC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/requirement/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAErF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC7C,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAEnC,UAAU,IAAI,WAAW,CAAC;IAC1B,UAAU,IAAI,WAAW,CAAC;IAE1B,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;IACvB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;AAEnF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,WAAW,EAAE,sBAAsB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,WAAW,EAAE,sBAAsB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC,WAAW,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;CACvF;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,KAAK;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B,EAAE,CAAC,UAAU,SAAS,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAElG,IAAI,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;CAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../src/modules/runner/json/transform.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,uBAAuB,EAAuC,MAAM,SAAS,CAAC;AAE5F,eAAO,MAAM,aAAa,gBACX,MAAM,SACZ,MAAM,EAAE,UACP,uBAAuB,KAC9B,QAAQ,aAAa,CA4DvB,CAAC"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../src/modules/runner/json/transform.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,uBAAuB,EAAuC,MAAM,SAAS,CAAC;AAE5F,eAAO,MAAM,aAAa,gBACX,MAAM,SACZ,MAAM,EAAE,UACP,uBAAuB,KAC9B,QAAQ,aAAa,CAiFvB,CAAC"}
@@ -3,7 +3,7 @@ import type { Version } from '../version';
3
3
  import type { Logger } from '../logger';
4
4
  import type { Requirement } from '../requirement';
5
5
  import type { NPM } from '../npm';
6
- import type { Project } from '../project';
6
+ import type { AppProject } from '../project';
7
7
  import type { ConfirmationCallback } from '../common/types';
8
8
  export declare class Upgrader implements UpgraderInterface {
9
9
  private readonly project;
@@ -14,7 +14,7 @@ export declare class Upgrader implements UpgraderInterface {
14
14
  private logger;
15
15
  private requirements;
16
16
  private confirmationCallback;
17
- constructor(project: Project, target: Version.SemVer, npmPackage: NPM.Package);
17
+ constructor(project: AppProject, target: Version.SemVer, npmPackage: NPM.Package);
18
18
  setRequirements(requirements: Requirement.Requirement[]): this;
19
19
  setTarget(target: Version.SemVer): this;
20
20
  syncCodemodsTarget(): this;
@@ -32,5 +32,5 @@ export declare class Upgrader implements UpgraderInterface {
32
32
  private installDependencies;
33
33
  private runCodemods;
34
34
  }
35
- export declare const upgraderFactory: (project: Project, target: Version.ReleaseType | Version.SemVer, npmPackage: NPM.Package) => Upgrader;
35
+ export declare const upgraderFactory: (project: AppProject, target: Version.ReleaseType | Version.SemVer, npmPackage: NPM.Package) => Upgrader;
36
36
  //# sourceMappingURL=upgrader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../../src/modules/upgrader/upgrader.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,IAAI,iBAAiB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAI5D,qBAAa,QAAS,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAElC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEzC,OAAO,CAAC,MAAM,CAAiB;IAE/B,OAAO,CAAC,cAAc,CAAkB;IAExC,OAAO,CAAC,KAAK,CAAU;IAEvB,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,YAAY,CAA4B;IAEhD,OAAO,CAAC,oBAAoB,CAA8B;gBAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO;IAe7E,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,EAAE;IAKvD,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM;IAKhC,kBAAkB;IAqBlB,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM;IAU7C,SAAS,CAAC,MAAM,EAAE,MAAM;IAKxB,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAK/C,GAAG,CAAC,OAAO,GAAE,OAAc;IAK3B,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW;IAW7C,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;YA2CzB,iBAAiB;YAejB,uBAAuB;YAWvB,mBAAmB;YAyBnB,kBAAkB;IA6BhC,OAAO,CAAC,2BAA2B;YAkBrB,mBAAmB;YAkBnB,WAAW;CAQ1B;AA6BD,eAAO,MAAM,eAAe,YACjB,OAAO,UACR,QAAQ,WAAW,GAAG,QAAQ,MAAM,cAChC,IAAI,OAAO,aAcxB,CAAC"}
1
+ {"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../../src/modules/upgrader/upgrader.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,IAAI,iBAAiB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAI5D,qBAAa,QAAS,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IAErC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEzC,OAAO,CAAC,MAAM,CAAiB;IAE/B,OAAO,CAAC,cAAc,CAAkB;IAExC,OAAO,CAAC,KAAK,CAAU;IAEvB,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,YAAY,CAA4B;IAEhD,OAAO,CAAC,oBAAoB,CAA8B;gBAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO;IAehF,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,EAAE;IAKvD,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM;IAKhC,kBAAkB;IAqBlB,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM;IAU7C,SAAS,CAAC,MAAM,EAAE,MAAM;IAKxB,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAK/C,GAAG,CAAC,OAAO,GAAE,OAAc;IAK3B,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW;IAW7C,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;YAgDzB,iBAAiB;YAejB,uBAAuB;YAWvB,mBAAmB;YAyBnB,kBAAkB;IA+BhC,OAAO,CAAC,2BAA2B;YAkBrB,mBAAmB;YAkBnB,WAAW;CAQ1B;AA6BD,eAAO,MAAM,eAAe,YACjB,UAAU,UACX,QAAQ,WAAW,GAAG,QAAQ,MAAM,cAChC,IAAI,OAAO,aAcxB,CAAC"}
@@ -3,4 +3,6 @@ import * as Version from './types';
3
3
  export declare const rangeFactory: (range: string) => Version.Range;
4
4
  export declare const rangeFromReleaseType: (current: Version.SemVer, identifier: Version.ReleaseType) => semver.Range;
5
5
  export declare const rangeFromVersions: (currentVersion: Version.SemVer, target: Version.ReleaseType | Version.SemVer) => semver.Range;
6
+ export declare const isValidStringifiedRange: (str: string) => boolean;
7
+ export declare const isRangeInstance: (range: unknown) => range is semver.Range;
6
8
  //# sourceMappingURL=range.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/modules/version/range.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,aAE5C,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,QAAQ,MAAM,cAAc,QAAQ,WAAW,iBAwB5F,CAAC;AAEF,eAAO,MAAM,iBAAiB,mBACZ,QAAQ,MAAM,UACtB,QAAQ,WAAW,GAAG,QAAQ,MAAM,iBAW7C,CAAC"}
1
+ {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/modules/version/range.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,aAE5C,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,QAAQ,MAAM,cAAc,QAAQ,WAAW,iBAwB5F,CAAC;AAEF,eAAO,MAAM,iBAAiB,mBACZ,QAAQ,MAAM,UACtB,QAAQ,WAAW,GAAG,QAAQ,MAAM,iBAW7C,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,MAAM,YAAoC,CAAC;AAExF,eAAO,MAAM,eAAe,UAAW,OAAO,0BAE7C,CAAC"}
@@ -1,2 +1,3 @@
1
- export * from './codemods';
1
+ export * from './run-codemods';
2
+ export * from './list-codemods';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tasks/codemods/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tasks/codemods/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ListCodemodsOptions } from './types';
2
+ export declare const listCodemods: (options: ListCodemodsOptions) => Promise<void>;
3
+ //# sourceMappingURL=list-codemods.d.ts.map
@@ -0,0 +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,YAAmB,mBAAmB,kBAmC9D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { RunCodemodsOptions } from './types';
2
+ export declare const runCodemods: (options: RunCodemodsOptions) => Promise<void>;
3
+ //# sourceMappingURL=run-codemods.d.ts.map
@@ -0,0 +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,YAAmB,kBAAkB,kBAsC5D,CAAC"}
@@ -1,5 +1,5 @@
1
- import { SelectCodemodsCallback } from '../../modules/codemod-runner/types';
2
- import { ConfirmationCallback } from '../../modules/common/types';
1
+ import type { SelectCodemodsCallback } from '../../modules/codemod-runner';
2
+ import type { ConfirmationCallback } from '../../modules/common/types';
3
3
  import type { Logger } from '../../modules/logger';
4
4
  import type { Version } from '../../modules/version';
5
5
  export interface RunCodemodsOptions {
@@ -8,6 +8,12 @@ export interface RunCodemodsOptions {
8
8
  selectCodemods: SelectCodemodsCallback;
9
9
  cwd?: string;
10
10
  dry?: boolean;
11
- target: Version.ReleaseType | Version.LiteralSemVer;
11
+ target: Version.ReleaseType | Version.LiteralSemVer | Version.Range;
12
+ uid?: string;
13
+ }
14
+ export interface ListCodemodsOptions {
15
+ logger: Logger;
16
+ cwd?: string;
17
+ target: Version.ReleaseType | Version.LiteralSemVer | Version.Range;
12
18
  }
13
19
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tasks/codemods/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,cAAc,EAAE,sBAAsB,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CACrD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tasks/codemods/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,cAAc,EAAE,sBAAsB,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;CACrE"}
@@ -0,0 +1,6 @@
1
+ import { Version } from '../../modules/version';
2
+ import type { Project } from '../../modules/project';
3
+ export declare const resolvePath: (cwd?: string) => string;
4
+ export declare const getRangeFromTarget: (currentVersion: Version.SemVer, target: Version.ReleaseType | Version.LiteralSemVer) => Version.Range;
5
+ export declare const findRangeFromTarget: (project: Project, target: Version.ReleaseType | Version.LiteralSemVer | Version.Range) => Version.Range;
6
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +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,SAAU,MAAM,WAAuC,CAAC;AAEhF,eAAO,MAAM,kBAAkB,mBACb,QAAQ,MAAM,UACtB,QAAQ,WAAW,GAAG,QAAQ,aAAa,kBAkBpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,YACrB,OAAO,UACR,QAAQ,WAAW,GAAG,QAAQ,aAAa,GAAG,aAAa,KAClE,aAeF,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export type { Upgrade } from './upgrade';
2
2
  export { upgrade } from './upgrade';
3
- export { codemods } from './codemods';
3
+ export { runCodemods, listCodemods } from './codemods';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/tasks/upgrade/upgrade.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,OAAO,YAAmB,cAAc,kBA6CpD,CAAC"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/tasks/upgrade/upgrade.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,OAAO,YAAmB,cAAc,kBAuDpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/upgrade",
3
- "version": "0.0.0-experimental.fc1ac2acd58c8a5a858679956b6d102ac5ee4011",
3
+ "version": "0.0.0-next.ce84fada19d58a7dfbdd553035e6558f8befcba4",
4
4
  "description": "CLI to upgrade Strapi applications effortless",
5
5
  "keywords": [
6
6
  "strapi",
@@ -59,13 +59,13 @@
59
59
  "watch": "pack-up watch"
60
60
  },
61
61
  "dependencies": {
62
- "@strapi/utils": "0.0.0-experimental.fc1ac2acd58c8a5a858679956b6d102ac5ee4011",
62
+ "@strapi/utils": "0.0.0-next.ce84fada19d58a7dfbdd553035e6558f8befcba4",
63
63
  "chalk": "4.1.2",
64
64
  "cli-table3": "0.6.2",
65
65
  "commander": "8.3.0",
66
66
  "esbuild-register": "3.5.0",
67
- "fs-extra": "10.1.0",
68
- "glob": "10.3.10",
67
+ "fast-glob": "3.3.2",
68
+ "fs-extra": "11.2.0",
69
69
  "jscodeshift": "0.15.1",
70
70
  "lodash": "4.17.21",
71
71
  "memfs": "4.6.0",
@@ -75,15 +75,16 @@
75
75
  "simple-git": "3.21.0"
76
76
  },
77
77
  "devDependencies": {
78
- "@strapi/pack-up": "0.0.0-experimental.fc1ac2acd58c8a5a858679956b6d102ac5ee4011",
79
- "@strapi/types": "0.0.0-experimental.fc1ac2acd58c8a5a858679956b6d102ac5ee4011",
78
+ "@strapi/pack-up": "5.0.0",
79
+ "@strapi/types": "0.0.0-next.ce84fada19d58a7dfbdd553035e6558f8befcba4",
80
+ "@types/fs-extra": "11.0.4",
80
81
  "@types/jscodeshift": "0.11.10",
81
- "eslint-config-custom": "0.0.0-experimental.fc1ac2acd58c8a5a858679956b6d102ac5ee4011",
82
- "rimraf": "3.0.2"
82
+ "eslint-config-custom": "0.0.0-next.ce84fada19d58a7dfbdd553035e6558f8befcba4",
83
+ "rimraf": "5.0.5"
83
84
  },
84
85
  "engines": {
85
86
  "node": ">=18.0.0 <=20.x.x",
86
87
  "npm": ">=6.0.0"
87
88
  },
88
- "gitHead": "fc1ac2acd58c8a5a858679956b6d102ac5ee4011"
89
+ "gitHead": "ce84fada19d58a7dfbdd553035e6558f8befcba4"
89
90
  }
@@ -0,0 +1,63 @@
1
+ import { Transform } from 'jscodeshift';
2
+
3
+ /**
4
+ * comments out lifecycles.js/ts files and adds a description for the reason at the top
5
+ */
6
+ const transform: Transform = (file, api) => {
7
+ const j = api.jscodeshift;
8
+ const root = j(file.source);
9
+
10
+ // check if file path follows this pattern `content-types/[content-type-name]/lifecycles`
11
+ if (/content-types\/[^/]+\/lifecycles\.(js|ts)$/.test(file.path)) {
12
+ // Get the entire source code as a string
13
+ const sourceCode = root.toSource();
14
+
15
+ // Split the source code into lines and prepend // to each line
16
+ // we are using line comments instead of block comments so we don't face issues with existing block comments
17
+ const commentedCode = sourceCode
18
+ .split('\n')
19
+ .map((line) => `// ${line}`)
20
+ .join('\n');
21
+
22
+ // Add a header comment at the top to explain why the file is commented out
23
+ const headerComment = `
24
+ /*
25
+ *
26
+ * ============================================================
27
+ * WARNING: THIS FILE HAS BEEN COMMENTED OUT
28
+ * ============================================================
29
+ *
30
+ * CONTEXT:
31
+ *
32
+ * The lifecycles.js file has been commented out to prevent unintended side effects when starting Strapi 5 for the first time after migrating to the document service.
33
+ *
34
+ * STRAPI 5 introduces a new document service that handles lifecycles differently compared to previous versions. Without migrating your lifecycles to document service middlewares, you may experience issues such as:
35
+ *
36
+ * - \`unpublish\` actions triggering \`delete\` lifecycles for every locale with a published entity, which differs from the expected behavior in v4.
37
+ * - \`discardDraft\` actions triggering both \`create\` and \`delete\` lifecycles, leading to potential confusion.
38
+ *
39
+ * MIGRATION GUIDE:
40
+ *
41
+ * For a thorough guide on migrating your lifecycles to document service middlewares, please refer to the following link:
42
+ * [Document Services Middlewares Migration Guide](https://docs.strapi.io/dev-docs/migration/v4-to-v5/breaking-changes/lifecycle-hooks-document-service)
43
+ *
44
+ * IMPORTANT:
45
+ *
46
+ * Simply uncommenting this file without following the migration guide may result in unexpected behavior and inconsistencies. Ensure that you have completed the migration process before re-enabling this file.
47
+ *
48
+ * ============================================================
49
+ */
50
+ `;
51
+
52
+ // Combine the header comment with the commented-out code
53
+ const finalCode = `${headerComment}\n${commentedCode}`;
54
+
55
+ return finalCode;
56
+ }
57
+
58
+ return root.toSource();
59
+ };
60
+
61
+ export const parser = 'tsx';
62
+
63
+ export default transform;
@@ -0,0 +1,31 @@
1
+ import path from 'node:path';
2
+
3
+ import type { modules } from '../../../dist';
4
+
5
+ const STRAPI_I18N_DEP_NAME = '@strapi/plugin-i18n';
6
+ const STRAPI_I18N_DEP_PATH = `dependencies.${STRAPI_I18N_DEP_NAME}`;
7
+
8
+ /**
9
+ * Specifically targets the root package.json and removes the @strapi/plugin-i18n dependency.
10
+ *
11
+ * Why? The i18n plugin is now a hard dependency of @strapi/strapi and isn't needed in the package.json anymore.
12
+ */
13
+ const transform: modules.runner.json.JSONTransform = (file, params) => {
14
+ const { cwd, json } = params;
15
+
16
+ const rootPackageJsonPath = path.join(cwd, 'package.json');
17
+
18
+ if (file.path !== rootPackageJsonPath) {
19
+ return file.json;
20
+ }
21
+
22
+ const j = json(file.json);
23
+
24
+ if (j.has(STRAPI_I18N_DEP_PATH)) {
25
+ j.remove(STRAPI_I18N_DEP_PATH);
26
+ }
27
+
28
+ return j.root();
29
+ };
30
+
31
+ export default transform;
@@ -0,0 +1,67 @@
1
+ import path from 'node:path';
2
+ import semver from 'semver';
3
+
4
+ import type { modules } from '../../../dist';
5
+
6
+ const REACT_DEP_NAME = 'react';
7
+ const REACT_DEP_PATH = `dependencies.${REACT_DEP_NAME}`;
8
+
9
+ const REACT_DOM_DEP_NAME = 'react-dom';
10
+ const REACT_DOM_DEP_PATH = `dependencies.${REACT_DOM_DEP_NAME}`;
11
+
12
+ const DEP_NEW_VERSION_RANGE = '^18.0.0';
13
+
14
+ /**
15
+ * Specifically targets the root package.json and updates the react and react-dom dependency version.
16
+ *
17
+ * We first check if the react and react-dom dependency is listed in the package.json. If the dependency is
18
+ * found, we verify its version.
19
+ *
20
+ * If the detected version does not satisfy the new version range, we replace it with the new one.
21
+ *
22
+ * Conversely, if no react or react-dom dependency is listed, we add it with the new version range.
23
+ */
24
+ const transform: modules.runner.json.JSONTransform = (file, params) => {
25
+ const { cwd, json } = params;
26
+
27
+ const rootPackageJsonPath = path.join(cwd, 'package.json');
28
+
29
+ if (file.path !== rootPackageJsonPath) {
30
+ return file.json;
31
+ }
32
+
33
+ const j = json(file.json);
34
+
35
+ if (j.has(REACT_DEP_PATH) && j.has(REACT_DOM_DEP_PATH)) {
36
+ const currentReactVersion = j.get(REACT_DEP_PATH);
37
+ const currentReactDOMVersion = j.get(REACT_DOM_DEP_PATH);
38
+
39
+ // If the current version is not a string, then something is wrong, abort
40
+ if (typeof currentReactVersion !== 'string' || typeof currentReactDOMVersion !== 'string') {
41
+ return j.root();
42
+ }
43
+
44
+ const currentSatisfiesNew =
45
+ semver.satisfies(currentReactVersion, DEP_NEW_VERSION_RANGE) &&
46
+ semver.satisfies(currentReactDOMVersion, DEP_NEW_VERSION_RANGE);
47
+
48
+ // if the current version satisfies the new range, keep it as is and abort
49
+ if (currentSatisfiesNew) {
50
+ return j.root();
51
+ }
52
+
53
+ // else, update the version with the new one
54
+ j.set(REACT_DEP_PATH, DEP_NEW_VERSION_RANGE);
55
+ j.set(REACT_DOM_DEP_PATH, DEP_NEW_VERSION_RANGE);
56
+ }
57
+
58
+ // If the dependency is not listed yet, add it
59
+ else {
60
+ j.set(REACT_DEP_PATH, DEP_NEW_VERSION_RANGE);
61
+ j.set(REACT_DOM_DEP_PATH, DEP_NEW_VERSION_RANGE);
62
+ }
63
+
64
+ return j.root();
65
+ };
66
+
67
+ export default transform;