@strapi/upgrade 0.0.0-next.fc9d26d995624dc886b29f563e1de655d47e6609 → 0.0.0-next.ffc36acb308febe288f1a31b62cbbb75b286585c

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 (247) hide show
  1. package/dist/cli.js +6 -203
  2. package/dist/cli.js.map +1 -1
  3. package/dist/cli.mjs +5 -202
  4. package/dist/cli.mjs.map +1 -1
  5. package/dist/index.js +4 -155
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +4 -157
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/modules/codemod-repository/constants.d.ts.map +1 -1
  10. package/dist/modules/npm/package.d.ts.map +1 -1
  11. package/dist/package.json.js +6 -0
  12. package/dist/package.json.js.map +1 -0
  13. package/dist/package.json.mjs +4 -0
  14. package/dist/package.json.mjs.map +1 -0
  15. package/dist/src/cli/commands/codemods.js +121 -0
  16. package/dist/src/cli/commands/codemods.js.map +1 -0
  17. package/dist/src/cli/commands/codemods.mjs +117 -0
  18. package/dist/src/cli/commands/codemods.mjs.map +1 -0
  19. package/dist/src/cli/commands/upgrade.js +99 -0
  20. package/dist/src/cli/commands/upgrade.js.map +1 -0
  21. package/dist/src/cli/commands/upgrade.mjs +96 -0
  22. package/dist/src/cli/commands/upgrade.mjs.map +1 -0
  23. package/dist/src/cli/errors.js +18 -0
  24. package/dist/src/cli/errors.js.map +1 -0
  25. package/dist/src/cli/errors.mjs +16 -0
  26. package/dist/src/cli/errors.mjs.map +1 -0
  27. package/dist/src/cli/options.js +26 -0
  28. package/dist/src/cli/options.js.map +1 -0
  29. package/dist/src/cli/options.mjs +19 -0
  30. package/dist/src/cli/options.mjs.map +1 -0
  31. package/dist/src/modules/codemod/codemod.js +44 -0
  32. package/dist/src/modules/codemod/codemod.js.map +1 -0
  33. package/dist/src/modules/codemod/codemod.mjs +41 -0
  34. package/dist/src/modules/codemod/codemod.mjs.map +1 -0
  35. package/dist/src/modules/codemod/constants.js +17 -0
  36. package/dist/src/modules/codemod/constants.js.map +1 -0
  37. package/dist/src/modules/codemod/constants.mjs +11 -0
  38. package/dist/src/modules/codemod/constants.mjs.map +1 -0
  39. package/dist/src/modules/codemod/index.js +10 -0
  40. package/dist/src/modules/codemod/index.js.map +1 -0
  41. package/dist/src/modules/codemod/index.mjs +4 -0
  42. package/dist/src/modules/codemod/index.mjs.map +1 -0
  43. package/dist/src/modules/codemod-repository/constants.js +9 -0
  44. package/dist/src/modules/codemod-repository/constants.js.map +1 -0
  45. package/dist/src/modules/codemod-repository/constants.mjs +7 -0
  46. package/dist/src/modules/codemod-repository/constants.mjs.map +1 -0
  47. package/dist/src/modules/codemod-repository/index.js +10 -0
  48. package/dist/src/modules/codemod-repository/index.js.map +1 -0
  49. package/dist/src/modules/codemod-repository/index.mjs +4 -0
  50. package/dist/src/modules/codemod-repository/index.mjs.map +1 -0
  51. package/dist/src/modules/codemod-repository/repository.js +127 -0
  52. package/dist/src/modules/codemod-repository/repository.js.map +1 -0
  53. package/dist/src/modules/codemod-repository/repository.mjs +123 -0
  54. package/dist/src/modules/codemod-repository/repository.mjs.map +1 -0
  55. package/dist/src/modules/codemod-runner/codemod-runner.js +113 -0
  56. package/dist/src/modules/codemod-runner/codemod-runner.js.map +1 -0
  57. package/dist/src/modules/codemod-runner/codemod-runner.mjs +110 -0
  58. package/dist/src/modules/codemod-runner/codemod-runner.mjs.map +1 -0
  59. package/dist/src/modules/error/index.js +11 -0
  60. package/dist/src/modules/error/index.js.map +1 -0
  61. package/dist/src/modules/error/index.mjs +2 -0
  62. package/dist/src/modules/error/index.mjs.map +1 -0
  63. package/dist/src/modules/error/utils.js +33 -0
  64. package/dist/src/modules/error/utils.js.map +1 -0
  65. package/dist/src/modules/error/utils.mjs +28 -0
  66. package/dist/src/modules/error/utils.mjs.map +1 -0
  67. package/dist/src/modules/file-scanner/index.js +8 -0
  68. package/dist/src/modules/file-scanner/index.js.map +1 -0
  69. package/dist/src/modules/file-scanner/index.mjs +2 -0
  70. package/dist/src/modules/file-scanner/index.mjs.map +1 -0
  71. package/dist/src/modules/file-scanner/scanner.js +23 -0
  72. package/dist/src/modules/file-scanner/scanner.js.map +1 -0
  73. package/dist/src/modules/file-scanner/scanner.mjs +20 -0
  74. package/dist/src/modules/file-scanner/scanner.mjs.map +1 -0
  75. package/dist/src/modules/format/formats.js +107 -0
  76. package/dist/src/modules/format/formats.js.map +1 -0
  77. package/dist/src/modules/format/formats.mjs +94 -0
  78. package/dist/src/modules/format/formats.mjs.map +1 -0
  79. package/dist/src/modules/format/index.js +19 -0
  80. package/dist/src/modules/format/index.js.map +1 -0
  81. package/dist/src/modules/format/index.mjs +2 -0
  82. package/dist/src/modules/format/index.mjs.map +1 -0
  83. package/dist/src/modules/index.js +32 -0
  84. package/dist/src/modules/index.js.map +1 -0
  85. package/dist/src/modules/index.mjs +27 -0
  86. package/dist/src/modules/index.mjs.map +1 -0
  87. package/dist/src/modules/json/file.js +16 -0
  88. package/dist/src/modules/json/file.js.map +1 -0
  89. package/dist/src/modules/json/file.mjs +13 -0
  90. package/dist/src/modules/json/file.mjs.map +1 -0
  91. package/dist/src/modules/json/transform-api.js +38 -0
  92. package/dist/src/modules/json/transform-api.js.map +1 -0
  93. package/dist/src/modules/json/transform-api.mjs +35 -0
  94. package/dist/src/modules/json/transform-api.mjs.map +1 -0
  95. package/dist/src/modules/logger/index.js +8 -0
  96. package/dist/src/modules/logger/index.js.map +1 -0
  97. package/dist/src/modules/logger/index.mjs +2 -0
  98. package/dist/src/modules/logger/index.mjs.map +1 -0
  99. package/dist/src/modules/logger/logger.js +76 -0
  100. package/dist/src/modules/logger/logger.js.map +1 -0
  101. package/dist/src/modules/logger/logger.mjs +73 -0
  102. package/dist/src/modules/logger/logger.mjs.map +1 -0
  103. package/dist/src/modules/npm/constants.js +6 -0
  104. package/dist/src/modules/npm/constants.js.map +1 -0
  105. package/dist/src/modules/npm/constants.mjs +4 -0
  106. package/dist/src/modules/npm/constants.mjs.map +1 -0
  107. package/dist/src/modules/npm/package.js +61 -0
  108. package/dist/src/modules/npm/package.js.map +1 -0
  109. package/dist/src/modules/npm/package.mjs +58 -0
  110. package/dist/src/modules/npm/package.mjs.map +1 -0
  111. package/dist/src/modules/project/constants.js +45 -0
  112. package/dist/src/modules/project/constants.js.map +1 -0
  113. package/dist/src/modules/project/constants.mjs +35 -0
  114. package/dist/src/modules/project/constants.mjs.map +1 -0
  115. package/dist/src/modules/project/index.js +15 -0
  116. package/dist/src/modules/project/index.js.map +1 -0
  117. package/dist/src/modules/project/index.mjs +5 -0
  118. package/dist/src/modules/project/index.mjs.map +1 -0
  119. package/dist/src/modules/project/project.js +208 -0
  120. package/dist/src/modules/project/project.js.map +1 -0
  121. package/dist/src/modules/project/project.mjs +203 -0
  122. package/dist/src/modules/project/project.mjs.map +1 -0
  123. package/dist/src/modules/project/utils.js +26 -0
  124. package/dist/src/modules/project/utils.js.map +1 -0
  125. package/dist/src/modules/project/utils.mjs +21 -0
  126. package/dist/src/modules/project/utils.mjs.map +1 -0
  127. package/dist/src/modules/report/index.js +9 -0
  128. package/dist/src/modules/report/index.js.map +1 -0
  129. package/dist/src/modules/report/index.mjs +2 -0
  130. package/dist/src/modules/report/index.mjs.map +1 -0
  131. package/dist/src/modules/report/report.js +13 -0
  132. package/dist/src/modules/report/report.js.map +1 -0
  133. package/dist/src/modules/report/report.mjs +10 -0
  134. package/dist/src/modules/report/report.mjs.map +1 -0
  135. package/dist/src/modules/requirement/index.js +8 -0
  136. package/dist/src/modules/requirement/index.js.map +1 -0
  137. package/dist/src/modules/requirement/index.mjs +2 -0
  138. package/dist/src/modules/requirement/index.mjs.map +1 -0
  139. package/dist/src/modules/requirement/requirement.js +55 -0
  140. package/dist/src/modules/requirement/requirement.js.map +1 -0
  141. package/dist/src/modules/requirement/requirement.mjs +52 -0
  142. package/dist/src/modules/requirement/requirement.mjs.map +1 -0
  143. package/dist/src/modules/runner/code/code.js +21 -0
  144. package/dist/src/modules/runner/code/code.js.map +1 -0
  145. package/dist/src/modules/runner/code/code.mjs +18 -0
  146. package/dist/src/modules/runner/code/code.mjs.map +1 -0
  147. package/dist/src/modules/runner/code/index.js +8 -0
  148. package/dist/src/modules/runner/code/index.js.map +1 -0
  149. package/dist/src/modules/runner/code/index.mjs +2 -0
  150. package/dist/src/modules/runner/code/index.mjs.map +1 -0
  151. package/dist/src/modules/runner/index.js +10 -0
  152. package/dist/src/modules/runner/index.js.map +1 -0
  153. package/dist/src/modules/runner/index.mjs +5 -0
  154. package/dist/src/modules/runner/index.mjs.map +1 -0
  155. package/dist/src/modules/runner/json/index.js +8 -0
  156. package/dist/src/modules/runner/json/index.js.map +1 -0
  157. package/dist/src/modules/runner/json/index.mjs +2 -0
  158. package/dist/src/modules/runner/json/index.mjs.map +1 -0
  159. package/dist/src/modules/runner/json/json.js +21 -0
  160. package/dist/src/modules/runner/json/json.js.map +1 -0
  161. package/dist/src/modules/runner/json/json.mjs +18 -0
  162. package/dist/src/modules/runner/json/json.mjs.map +1 -0
  163. package/dist/src/modules/runner/json/transform.js +85 -0
  164. package/dist/src/modules/runner/json/transform.js.map +1 -0
  165. package/dist/src/modules/runner/json/transform.mjs +83 -0
  166. package/dist/src/modules/runner/json/transform.mjs.map +1 -0
  167. package/dist/src/modules/runner/runner.js +22 -0
  168. package/dist/src/modules/runner/runner.js.map +1 -0
  169. package/dist/src/modules/runner/runner.mjs +20 -0
  170. package/dist/src/modules/runner/runner.mjs.map +1 -0
  171. package/dist/src/modules/timer/constants.js +6 -0
  172. package/dist/src/modules/timer/constants.js.map +1 -0
  173. package/dist/src/modules/timer/constants.mjs +4 -0
  174. package/dist/src/modules/timer/constants.mjs.map +1 -0
  175. package/dist/src/modules/timer/index.js +10 -0
  176. package/dist/src/modules/timer/index.js.map +1 -0
  177. package/dist/src/modules/timer/index.mjs +4 -0
  178. package/dist/src/modules/timer/index.mjs.map +1 -0
  179. package/dist/src/modules/timer/timer.js +33 -0
  180. package/dist/src/modules/timer/timer.js.map +1 -0
  181. package/dist/src/modules/timer/timer.mjs +30 -0
  182. package/dist/src/modules/timer/timer.mjs.map +1 -0
  183. package/dist/src/modules/upgrader/constants.js +6 -0
  184. package/dist/src/modules/upgrader/constants.js.map +1 -0
  185. package/dist/src/modules/upgrader/constants.mjs +4 -0
  186. package/dist/src/modules/upgrader/constants.mjs.map +1 -0
  187. package/dist/src/modules/upgrader/index.js +10 -0
  188. package/dist/src/modules/upgrader/index.js.map +1 -0
  189. package/dist/src/modules/upgrader/index.mjs +4 -0
  190. package/dist/src/modules/upgrader/index.mjs.map +1 -0
  191. package/dist/src/modules/upgrader/upgrader.js +266 -0
  192. package/dist/src/modules/upgrader/upgrader.js.map +1 -0
  193. package/dist/src/modules/upgrader/upgrader.mjs +263 -0
  194. package/dist/src/modules/upgrader/upgrader.mjs.map +1 -0
  195. package/dist/src/modules/version/index.js +20 -0
  196. package/dist/src/modules/version/index.js.map +1 -0
  197. package/dist/src/modules/version/index.mjs +5 -0
  198. package/dist/src/modules/version/index.mjs.map +1 -0
  199. package/dist/src/modules/version/range.js +81 -0
  200. package/dist/src/modules/version/range.js.map +1 -0
  201. package/dist/src/modules/version/range.mjs +75 -0
  202. package/dist/src/modules/version/range.mjs.map +1 -0
  203. package/dist/src/modules/version/semver.js +26 -0
  204. package/dist/src/modules/version/semver.js.map +1 -0
  205. package/dist/src/modules/version/semver.mjs +20 -0
  206. package/dist/src/modules/version/semver.mjs.map +1 -0
  207. package/dist/src/modules/version/types.js +12 -0
  208. package/dist/src/modules/version/types.js.map +1 -0
  209. package/dist/src/modules/version/types.mjs +12 -0
  210. package/dist/src/modules/version/types.mjs.map +1 -0
  211. package/dist/src/tasks/codemods/list-codemods.js +40 -0
  212. package/dist/src/tasks/codemods/list-codemods.js.map +1 -0
  213. package/dist/src/tasks/codemods/list-codemods.mjs +38 -0
  214. package/dist/src/tasks/codemods/list-codemods.mjs.map +1 -0
  215. package/dist/src/tasks/codemods/run-codemods.js +36 -0
  216. package/dist/src/tasks/codemods/run-codemods.js.map +1 -0
  217. package/dist/src/tasks/codemods/run-codemods.mjs +34 -0
  218. package/dist/src/tasks/codemods/run-codemods.mjs.map +1 -0
  219. package/dist/src/tasks/codemods/utils.js +54 -0
  220. package/dist/src/tasks/codemods/utils.js.map +1 -0
  221. package/dist/src/tasks/codemods/utils.mjs +50 -0
  222. package/dist/src/tasks/codemods/utils.mjs.map +1 -0
  223. package/dist/src/tasks/index.js +15 -0
  224. package/dist/src/tasks/index.js.map +1 -0
  225. package/dist/src/tasks/index.mjs +7 -0
  226. package/dist/src/tasks/index.mjs.map +1 -0
  227. package/dist/src/tasks/upgrade/prompts/latest.js +48 -0
  228. package/dist/src/tasks/upgrade/prompts/latest.js.map +1 -0
  229. package/dist/src/tasks/upgrade/prompts/latest.mjs +46 -0
  230. package/dist/src/tasks/upgrade/prompts/latest.mjs.map +1 -0
  231. package/dist/src/tasks/upgrade/requirements/common.js +40 -0
  232. package/dist/src/tasks/upgrade/requirements/common.js.map +1 -0
  233. package/dist/src/tasks/upgrade/requirements/common.mjs +35 -0
  234. package/dist/src/tasks/upgrade/requirements/common.mjs.map +1 -0
  235. package/dist/src/tasks/upgrade/requirements/major.js +29 -0
  236. package/dist/src/tasks/upgrade/requirements/major.js.map +1 -0
  237. package/dist/src/tasks/upgrade/requirements/major.mjs +26 -0
  238. package/dist/src/tasks/upgrade/requirements/major.mjs.map +1 -0
  239. package/dist/src/tasks/upgrade/upgrade.js +69 -0
  240. package/dist/src/tasks/upgrade/upgrade.js.map +1 -0
  241. package/dist/src/tasks/upgrade/upgrade.mjs +67 -0
  242. package/dist/src/tasks/upgrade/upgrade.mjs.map +1 -0
  243. package/package.json +6 -5
  244. package/dist/chunks/logger-B44ixHKE.js +0 -1649
  245. package/dist/chunks/logger-B44ixHKE.js.map +0 -1
  246. package/dist/chunks/logger-DLKyDz9F.mjs +0 -1599
  247. package/dist/chunks/logger-DLKyDz9F.mjs.map +0 -1
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var repository = require('../../modules/codemod-repository/repository.js');
4
+ require('../../modules/codemod-repository/constants.js');
5
+ var project = require('../../modules/project/project.js');
6
+ require('../../modules/project/constants.js');
7
+ var utils = require('./utils.js');
8
+ var formats = require('../../modules/format/formats.js');
9
+
10
+ const listCodemods = async (options)=>{
11
+ const { logger, target } = options;
12
+ const cwd = utils.resolvePath(options.cwd);
13
+ const project$1 = project.projectFactory(cwd);
14
+ const range = utils.findRangeFromTarget(project$1, target);
15
+ logger.debug(formats.projectDetails(project$1));
16
+ logger.debug(`Range: set to ${formats.versionRange(range)}`);
17
+ // Create a codemod repository targeting the default location of the codemods
18
+ const repo = repository.codemodRepositoryFactory();
19
+ // Make sure all the codemods are loaded
20
+ repo.refresh();
21
+ // Find groups of codemods matching the given range
22
+ const groups = repo.find({
23
+ range
24
+ });
25
+ // Flatten the groups into a simple codemod array
26
+ const codemods = groups.flatMap((collection)=>collection.codemods);
27
+ // Debug
28
+ logger.debug(`Found ${formats.highlight(codemods.length)} codemods`);
29
+ // Don't log an empty table
30
+ if (codemods.length === 0) {
31
+ logger.info(`Found no codemods matching ${formats.versionRange(range)}`);
32
+ return;
33
+ }
34
+ // Format the list to a pretty table
35
+ const fCodemods = formats.codemodList(codemods);
36
+ logger.raw(fCodemods);
37
+ };
38
+
39
+ exports.listCodemods = listCodemods;
40
+ //# sourceMappingURL=list-codemods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-codemods.js","sources":["../../../../src/tasks/codemods/list-codemods.ts"],"sourcesContent":["import { codemodRepositoryFactory } from '../../modules/codemod-repository';\nimport { projectFactory } from '../../modules/project';\nimport { findRangeFromTarget, resolvePath } from './utils';\n\nimport * as f from '../../modules/format';\n\nimport type { ListCodemodsOptions } from './types';\n\nexport const listCodemods = async (options: ListCodemodsOptions) => {\n const { logger, target } = options;\n\n const cwd = resolvePath(options.cwd);\n const project = projectFactory(cwd);\n const range = findRangeFromTarget(project, target);\n\n logger.debug(f.projectDetails(project));\n logger.debug(`Range: set to ${f.versionRange(range)}`);\n\n // Create a codemod repository targeting the default location of the codemods\n const repo = codemodRepositoryFactory();\n\n // Make sure all the codemods are loaded\n repo.refresh();\n\n // Find groups of codemods matching the given range\n const groups = repo.find({ range });\n\n // Flatten the groups into a simple codemod array\n const codemods = groups.flatMap((collection) => collection.codemods);\n\n // Debug\n logger.debug(`Found ${f.highlight(codemods.length)} codemods`);\n\n // Don't log an empty table\n if (codemods.length === 0) {\n logger.info(`Found no codemods matching ${f.versionRange(range)}`);\n return;\n }\n\n // Format the list to a pretty table\n const fCodemods = f.codemodList(codemods);\n\n logger.raw(fCodemods);\n};\n"],"names":["listCodemods","options","logger","target","cwd","resolvePath","project","projectFactory","range","findRangeFromTarget","debug","f","repo","codemodRepositoryFactory","refresh","groups","find","codemods","flatMap","collection","length","info","fCodemods","raw"],"mappings":";;;;;;;;;AAQO,MAAMA,eAAe,OAAOC,OAAAA,GAAAA;AACjC,IAAA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;IAE3B,MAAMG,GAAAA,GAAMC,iBAAYJ,CAAAA,OAAAA,CAAQG,GAAG,CAAA;AACnC,IAAA,MAAME,YAAUC,sBAAeH,CAAAA,GAAAA,CAAAA;IAC/B,MAAMI,KAAAA,GAAQC,0BAAoBH,SAASH,EAAAA,MAAAA,CAAAA;AAE3CD,IAAAA,MAAAA,CAAOQ,KAAK,CAACC,sBAAgB,CAACL,SAAAA,CAAAA,CAAAA;IAC9BJ,MAAOQ,CAAAA,KAAK,CAAC,CAAC,cAAc,EAAEC,oBAAc,CAACH,KAAAA,CAAAA,CAAO,CAAC,CAAA;;AAGrD,IAAA,MAAMI,IAAOC,GAAAA,mCAAAA,EAAAA;;AAGbD,IAAAA,IAAAA,CAAKE,OAAO,EAAA;;IAGZ,MAAMC,MAAAA,GAASH,IAAKI,CAAAA,IAAI,CAAC;AAAER,QAAAA;AAAM,KAAA,CAAA;;AAGjC,IAAA,MAAMS,WAAWF,MAAOG,CAAAA,OAAO,CAAC,CAACC,UAAAA,GAAeA,WAAWF,QAAQ,CAAA;;AAGnEf,IAAAA,MAAAA,CAAOQ,KAAK,CAAC,CAAC,MAAM,EAAEC,iBAAW,CAACM,QAASG,CAAAA,MAAM,CAAE,CAAA,SAAS,CAAC,CAAA;;IAG7D,IAAIH,QAAAA,CAASG,MAAM,KAAK,CAAG,EAAA;QACzBlB,MAAOmB,CAAAA,IAAI,CAAC,CAAC,2BAA2B,EAAEV,oBAAc,CAACH,KAAAA,CAAAA,CAAO,CAAC,CAAA;AACjE,QAAA;AACF;;IAGA,MAAMc,SAAAA,GAAYX,mBAAa,CAACM,QAAAA,CAAAA;AAEhCf,IAAAA,MAAAA,CAAOqB,GAAG,CAACD,SAAAA,CAAAA;AACb;;;;"}
@@ -0,0 +1,38 @@
1
+ import { codemodRepositoryFactory } from '../../modules/codemod-repository/repository.mjs';
2
+ import '../../modules/codemod-repository/constants.mjs';
3
+ import { projectFactory } from '../../modules/project/project.mjs';
4
+ import '../../modules/project/constants.mjs';
5
+ import { resolvePath, findRangeFromTarget } from './utils.mjs';
6
+ import { projectDetails, versionRange, highlight, codemodList } from '../../modules/format/formats.mjs';
7
+
8
+ const listCodemods = async (options)=>{
9
+ const { logger, target } = options;
10
+ const cwd = resolvePath(options.cwd);
11
+ const project = projectFactory(cwd);
12
+ const range = findRangeFromTarget(project, target);
13
+ logger.debug(projectDetails(project));
14
+ logger.debug(`Range: set to ${versionRange(range)}`);
15
+ // Create a codemod repository targeting the default location of the codemods
16
+ const repo = codemodRepositoryFactory();
17
+ // Make sure all the codemods are loaded
18
+ repo.refresh();
19
+ // Find groups of codemods matching the given range
20
+ const groups = repo.find({
21
+ range
22
+ });
23
+ // Flatten the groups into a simple codemod array
24
+ const codemods = groups.flatMap((collection)=>collection.codemods);
25
+ // Debug
26
+ logger.debug(`Found ${highlight(codemods.length)} codemods`);
27
+ // Don't log an empty table
28
+ if (codemods.length === 0) {
29
+ logger.info(`Found no codemods matching ${versionRange(range)}`);
30
+ return;
31
+ }
32
+ // Format the list to a pretty table
33
+ const fCodemods = codemodList(codemods);
34
+ logger.raw(fCodemods);
35
+ };
36
+
37
+ export { listCodemods };
38
+ //# sourceMappingURL=list-codemods.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-codemods.mjs","sources":["../../../../src/tasks/codemods/list-codemods.ts"],"sourcesContent":["import { codemodRepositoryFactory } from '../../modules/codemod-repository';\nimport { projectFactory } from '../../modules/project';\nimport { findRangeFromTarget, resolvePath } from './utils';\n\nimport * as f from '../../modules/format';\n\nimport type { ListCodemodsOptions } from './types';\n\nexport const listCodemods = async (options: ListCodemodsOptions) => {\n const { logger, target } = options;\n\n const cwd = resolvePath(options.cwd);\n const project = projectFactory(cwd);\n const range = findRangeFromTarget(project, target);\n\n logger.debug(f.projectDetails(project));\n logger.debug(`Range: set to ${f.versionRange(range)}`);\n\n // Create a codemod repository targeting the default location of the codemods\n const repo = codemodRepositoryFactory();\n\n // Make sure all the codemods are loaded\n repo.refresh();\n\n // Find groups of codemods matching the given range\n const groups = repo.find({ range });\n\n // Flatten the groups into a simple codemod array\n const codemods = groups.flatMap((collection) => collection.codemods);\n\n // Debug\n logger.debug(`Found ${f.highlight(codemods.length)} codemods`);\n\n // Don't log an empty table\n if (codemods.length === 0) {\n logger.info(`Found no codemods matching ${f.versionRange(range)}`);\n return;\n }\n\n // Format the list to a pretty table\n const fCodemods = f.codemodList(codemods);\n\n logger.raw(fCodemods);\n};\n"],"names":["listCodemods","options","logger","target","cwd","resolvePath","project","projectFactory","range","findRangeFromTarget","debug","f","repo","codemodRepositoryFactory","refresh","groups","find","codemods","flatMap","collection","length","info","fCodemods","raw"],"mappings":";;;;;;;AAQO,MAAMA,eAAe,OAAOC,OAAAA,GAAAA;AACjC,IAAA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;IAE3B,MAAMG,GAAAA,GAAMC,WAAYJ,CAAAA,OAAAA,CAAQG,GAAG,CAAA;AACnC,IAAA,MAAME,UAAUC,cAAeH,CAAAA,GAAAA,CAAAA;IAC/B,MAAMI,KAAAA,GAAQC,oBAAoBH,OAASH,EAAAA,MAAAA,CAAAA;AAE3CD,IAAAA,MAAAA,CAAOQ,KAAK,CAACC,cAAgB,CAACL,OAAAA,CAAAA,CAAAA;IAC9BJ,MAAOQ,CAAAA,KAAK,CAAC,CAAC,cAAc,EAAEC,YAAc,CAACH,KAAAA,CAAAA,CAAO,CAAC,CAAA;;AAGrD,IAAA,MAAMI,IAAOC,GAAAA,wBAAAA,EAAAA;;AAGbD,IAAAA,IAAAA,CAAKE,OAAO,EAAA;;IAGZ,MAAMC,MAAAA,GAASH,IAAKI,CAAAA,IAAI,CAAC;AAAER,QAAAA;AAAM,KAAA,CAAA;;AAGjC,IAAA,MAAMS,WAAWF,MAAOG,CAAAA,OAAO,CAAC,CAACC,UAAAA,GAAeA,WAAWF,QAAQ,CAAA;;AAGnEf,IAAAA,MAAAA,CAAOQ,KAAK,CAAC,CAAC,MAAM,EAAEC,SAAW,CAACM,QAASG,CAAAA,MAAM,CAAE,CAAA,SAAS,CAAC,CAAA;;IAG7D,IAAIH,QAAAA,CAASG,MAAM,KAAK,CAAG,EAAA;QACzBlB,MAAOmB,CAAAA,IAAI,CAAC,CAAC,2BAA2B,EAAEV,YAAc,CAACH,KAAAA,CAAAA,CAAO,CAAC,CAAA;AACjE,QAAA;AACF;;IAGA,MAAMc,SAAAA,GAAYX,WAAa,CAACM,QAAAA,CAAAA;AAEhCf,IAAAA,MAAAA,CAAOqB,GAAG,CAACD,SAAAA,CAAAA;AACb;;;;"}
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ var formats = require('../../modules/format/formats.js');
4
+ var timer = require('../../modules/timer/timer.js');
5
+ var project = require('../../modules/project/project.js');
6
+ require('../../modules/project/constants.js');
7
+ var codemodRunner = require('../../modules/codemod-runner/codemod-runner.js');
8
+ var utils = require('./utils.js');
9
+
10
+ const runCodemods = async (options)=>{
11
+ const timer$1 = timer.timerFactory();
12
+ const { logger, uid } = options;
13
+ // Make sure we're resolving the correct working directory based on the given input
14
+ const cwd = utils.resolvePath(options.cwd);
15
+ const project$1 = project.projectFactory(cwd);
16
+ const range = utils.findRangeFromTarget(project$1, options.target);
17
+ logger.debug(formats.projectDetails(project$1));
18
+ logger.debug(`Range: set to ${formats.versionRange(range)}`);
19
+ const codemodRunner$1 = codemodRunner.codemodRunnerFactory(project$1, range).dry(options.dry ?? false).onSelectCodemods(options.selectCodemods ?? null).setLogger(logger);
20
+ let report;
21
+ // If uid is defined, only run the selected codemod
22
+ if (uid !== undefined) {
23
+ logger.debug(`Running a single codemod: ${formats.codemodUID(uid)}`);
24
+ report = await codemodRunner$1.runByUID(uid);
25
+ } else {
26
+ report = await codemodRunner$1.run();
27
+ }
28
+ if (!report.success) {
29
+ throw report.error;
30
+ }
31
+ timer$1.stop();
32
+ logger.info(`Completed in ${timer$1.elapsedMs}`);
33
+ };
34
+
35
+ exports.runCodemods = runCodemods;
36
+ //# sourceMappingURL=run-codemods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-codemods.js","sources":["../../../../src/tasks/codemods/run-codemods.ts"],"sourcesContent":["import * as f from '../../modules/format';\nimport { timerFactory } from '../../modules/timer';\nimport { projectFactory } from '../../modules/project';\nimport { codemodRunnerFactory } from '../../modules/codemod-runner';\nimport { findRangeFromTarget, resolvePath } from './utils';\n\nimport type { RunCodemodsOptions } from './types';\nimport type { CodemodRunnerReport } from '../../modules/codemod-runner';\n\nexport const runCodemods = async (options: RunCodemodsOptions) => {\n const timer = timerFactory();\n const { logger, uid } = options;\n\n // Make sure we're resolving the correct working directory based on the given input\n const cwd = resolvePath(options.cwd);\n\n const project = projectFactory(cwd);\n const range = findRangeFromTarget(project, options.target);\n\n logger.debug(f.projectDetails(project));\n logger.debug(`Range: set to ${f.versionRange(range)}`);\n\n const codemodRunner = codemodRunnerFactory(project, range)\n .dry(options.dry ?? false)\n .onSelectCodemods(options.selectCodemods ?? null)\n .setLogger(logger);\n\n let report: CodemodRunnerReport;\n\n // If uid is defined, only run the selected codemod\n if (uid !== undefined) {\n logger.debug(`Running a single codemod: ${f.codemodUID(uid)}`);\n report = await codemodRunner.runByUID(uid);\n }\n\n // By default, only filter using the specified range\n else {\n report = await codemodRunner.run();\n }\n\n if (!report.success) {\n throw report.error;\n }\n\n timer.stop();\n\n logger.info(`Completed in ${timer.elapsedMs}`);\n};\n"],"names":["runCodemods","options","timer","timerFactory","logger","uid","cwd","resolvePath","project","projectFactory","range","findRangeFromTarget","target","debug","f","codemodRunner","codemodRunnerFactory","dry","onSelectCodemods","selectCodemods","setLogger","report","undefined","runByUID","run","success","error","stop","info","elapsedMs"],"mappings":";;;;;;;;;AASO,MAAMA,cAAc,OAAOC,OAAAA,GAAAA;AAChC,IAAA,MAAMC,OAAQC,GAAAA,kBAAAA,EAAAA;AACd,IAAA,MAAM,EAAEC,MAAM,EAAEC,GAAG,EAAE,GAAGJ,OAAAA;;IAGxB,MAAMK,GAAAA,GAAMC,iBAAYN,CAAAA,OAAAA,CAAQK,GAAG,CAAA;AAEnC,IAAA,MAAME,YAAUC,sBAAeH,CAAAA,GAAAA,CAAAA;AAC/B,IAAA,MAAMI,KAAQC,GAAAA,yBAAAA,CAAoBH,SAASP,EAAAA,OAAAA,CAAQW,MAAM,CAAA;AAEzDR,IAAAA,MAAAA,CAAOS,KAAK,CAACC,sBAAgB,CAACN,SAAAA,CAAAA,CAAAA;IAC9BJ,MAAOS,CAAAA,KAAK,CAAC,CAAC,cAAc,EAAEC,oBAAc,CAACJ,KAAAA,CAAAA,CAAO,CAAC,CAAA;AAErD,IAAA,MAAMK,kBAAgBC,kCAAqBR,CAAAA,SAAAA,EAASE,KACjDO,CAAAA,CAAAA,GAAG,CAAChB,OAAQgB,CAAAA,GAAG,IAAI,KAAA,CAAA,CACnBC,gBAAgB,CAACjB,OAAAA,CAAQkB,cAAc,IAAI,IAAA,CAAA,CAC3CC,SAAS,CAAChB,MAAAA,CAAAA;IAEb,IAAIiB,MAAAA;;AAGJ,IAAA,IAAIhB,QAAQiB,SAAW,EAAA;QACrBlB,MAAOS,CAAAA,KAAK,CAAC,CAAC,0BAA0B,EAAEC,kBAAY,CAACT,GAAAA,CAAAA,CAAK,CAAC,CAAA;QAC7DgB,MAAS,GAAA,MAAMN,eAAcQ,CAAAA,QAAQ,CAAClB,GAAAA,CAAAA;KAInC,MAAA;QACHgB,MAAS,GAAA,MAAMN,gBAAcS,GAAG,EAAA;AAClC;IAEA,IAAI,CAACH,MAAOI,CAAAA,OAAO,EAAE;AACnB,QAAA,MAAMJ,OAAOK,KAAK;AACpB;AAEAxB,IAAAA,OAAAA,CAAMyB,IAAI,EAAA;IAEVvB,MAAOwB,CAAAA,IAAI,CAAC,CAAC,aAAa,EAAE1B,OAAM2B,CAAAA,SAAS,CAAC,CAAC,CAAA;AAC/C;;;;"}
@@ -0,0 +1,34 @@
1
+ import { projectDetails, versionRange, codemodUID } from '../../modules/format/formats.mjs';
2
+ import { timerFactory } from '../../modules/timer/timer.mjs';
3
+ import { projectFactory } from '../../modules/project/project.mjs';
4
+ import '../../modules/project/constants.mjs';
5
+ import { codemodRunnerFactory } from '../../modules/codemod-runner/codemod-runner.mjs';
6
+ import { resolvePath, findRangeFromTarget } from './utils.mjs';
7
+
8
+ const runCodemods = async (options)=>{
9
+ const timer = timerFactory();
10
+ const { logger, uid } = options;
11
+ // Make sure we're resolving the correct working directory based on the given input
12
+ const cwd = resolvePath(options.cwd);
13
+ const project = projectFactory(cwd);
14
+ const range = findRangeFromTarget(project, options.target);
15
+ logger.debug(projectDetails(project));
16
+ logger.debug(`Range: set to ${versionRange(range)}`);
17
+ const codemodRunner = codemodRunnerFactory(project, range).dry(options.dry ?? false).onSelectCodemods(options.selectCodemods ?? null).setLogger(logger);
18
+ let report;
19
+ // If uid is defined, only run the selected codemod
20
+ if (uid !== undefined) {
21
+ logger.debug(`Running a single codemod: ${codemodUID(uid)}`);
22
+ report = await codemodRunner.runByUID(uid);
23
+ } else {
24
+ report = await codemodRunner.run();
25
+ }
26
+ if (!report.success) {
27
+ throw report.error;
28
+ }
29
+ timer.stop();
30
+ logger.info(`Completed in ${timer.elapsedMs}`);
31
+ };
32
+
33
+ export { runCodemods };
34
+ //# sourceMappingURL=run-codemods.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-codemods.mjs","sources":["../../../../src/tasks/codemods/run-codemods.ts"],"sourcesContent":["import * as f from '../../modules/format';\nimport { timerFactory } from '../../modules/timer';\nimport { projectFactory } from '../../modules/project';\nimport { codemodRunnerFactory } from '../../modules/codemod-runner';\nimport { findRangeFromTarget, resolvePath } from './utils';\n\nimport type { RunCodemodsOptions } from './types';\nimport type { CodemodRunnerReport } from '../../modules/codemod-runner';\n\nexport const runCodemods = async (options: RunCodemodsOptions) => {\n const timer = timerFactory();\n const { logger, uid } = options;\n\n // Make sure we're resolving the correct working directory based on the given input\n const cwd = resolvePath(options.cwd);\n\n const project = projectFactory(cwd);\n const range = findRangeFromTarget(project, options.target);\n\n logger.debug(f.projectDetails(project));\n logger.debug(`Range: set to ${f.versionRange(range)}`);\n\n const codemodRunner = codemodRunnerFactory(project, range)\n .dry(options.dry ?? false)\n .onSelectCodemods(options.selectCodemods ?? null)\n .setLogger(logger);\n\n let report: CodemodRunnerReport;\n\n // If uid is defined, only run the selected codemod\n if (uid !== undefined) {\n logger.debug(`Running a single codemod: ${f.codemodUID(uid)}`);\n report = await codemodRunner.runByUID(uid);\n }\n\n // By default, only filter using the specified range\n else {\n report = await codemodRunner.run();\n }\n\n if (!report.success) {\n throw report.error;\n }\n\n timer.stop();\n\n logger.info(`Completed in ${timer.elapsedMs}`);\n};\n"],"names":["runCodemods","options","timer","timerFactory","logger","uid","cwd","resolvePath","project","projectFactory","range","findRangeFromTarget","target","debug","f","codemodRunner","codemodRunnerFactory","dry","onSelectCodemods","selectCodemods","setLogger","report","undefined","runByUID","run","success","error","stop","info","elapsedMs"],"mappings":";;;;;;;AASO,MAAMA,cAAc,OAAOC,OAAAA,GAAAA;AAChC,IAAA,MAAMC,KAAQC,GAAAA,YAAAA,EAAAA;AACd,IAAA,MAAM,EAAEC,MAAM,EAAEC,GAAG,EAAE,GAAGJ,OAAAA;;IAGxB,MAAMK,GAAAA,GAAMC,WAAYN,CAAAA,OAAAA,CAAQK,GAAG,CAAA;AAEnC,IAAA,MAAME,UAAUC,cAAeH,CAAAA,GAAAA,CAAAA;AAC/B,IAAA,MAAMI,KAAQC,GAAAA,mBAAAA,CAAoBH,OAASP,EAAAA,OAAAA,CAAQW,MAAM,CAAA;AAEzDR,IAAAA,MAAAA,CAAOS,KAAK,CAACC,cAAgB,CAACN,OAAAA,CAAAA,CAAAA;IAC9BJ,MAAOS,CAAAA,KAAK,CAAC,CAAC,cAAc,EAAEC,YAAc,CAACJ,KAAAA,CAAAA,CAAO,CAAC,CAAA;AAErD,IAAA,MAAMK,gBAAgBC,oBAAqBR,CAAAA,OAAAA,EAASE,KACjDO,CAAAA,CAAAA,GAAG,CAAChB,OAAQgB,CAAAA,GAAG,IAAI,KAAA,CAAA,CACnBC,gBAAgB,CAACjB,OAAAA,CAAQkB,cAAc,IAAI,IAAA,CAAA,CAC3CC,SAAS,CAAChB,MAAAA,CAAAA;IAEb,IAAIiB,MAAAA;;AAGJ,IAAA,IAAIhB,QAAQiB,SAAW,EAAA;QACrBlB,MAAOS,CAAAA,KAAK,CAAC,CAAC,0BAA0B,EAAEC,UAAY,CAACT,GAAAA,CAAAA,CAAK,CAAC,CAAA;QAC7DgB,MAAS,GAAA,MAAMN,aAAcQ,CAAAA,QAAQ,CAAClB,GAAAA,CAAAA;KAInC,MAAA;QACHgB,MAAS,GAAA,MAAMN,cAAcS,GAAG,EAAA;AAClC;IAEA,IAAI,CAACH,MAAOI,CAAAA,OAAO,EAAE;AACnB,QAAA,MAAMJ,OAAOK,KAAK;AACpB;AAEAxB,IAAAA,KAAAA,CAAMyB,IAAI,EAAA;IAEVvB,MAAOwB,CAAAA,IAAI,CAAC,CAAC,aAAa,EAAE1B,KAAM2B,CAAAA,SAAS,CAAC,CAAC,CAAA;AAC/C;;;;"}
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ var path = require('node:path');
4
+ require('node:assert');
5
+ require('fs-extra');
6
+ require('semver');
7
+ var semver = require('../../modules/version/semver.js');
8
+ var range = require('../../modules/version/range.js');
9
+ var types = require('../../modules/version/types.js');
10
+ require('fast-glob');
11
+ require('jscodeshift/src/Runner');
12
+ require('lodash/fp');
13
+ require('esbuild-register/dist/node');
14
+ require('../../modules/project/constants.js');
15
+ var utils = require('../../modules/project/utils.js');
16
+
17
+ const resolvePath = (cwd)=>path.resolve(cwd ?? process.cwd());
18
+ const getRangeFromTarget = (currentVersion, target)=>{
19
+ if (semver.isSemverInstance(target)) {
20
+ return range.rangeFactory(target);
21
+ }
22
+ const { major, minor, patch } = currentVersion;
23
+ switch(target){
24
+ case types.ReleaseType.Latest:
25
+ throw new Error("Can't use <latest> to create a codemods range: not implemented");
26
+ case types.ReleaseType.Major:
27
+ return range.rangeFactory(`${major}`);
28
+ case types.ReleaseType.Minor:
29
+ return range.rangeFactory(`${major}.${minor}`);
30
+ case types.ReleaseType.Patch:
31
+ return range.rangeFactory(`${major}.${minor}.${patch}`);
32
+ default:
33
+ throw new Error(`Invalid target set: ${target}`);
34
+ }
35
+ };
36
+ const findRangeFromTarget = (project, target)=>{
37
+ // If a range is manually defined, use it
38
+ if (range.isRangeInstance(target)) {
39
+ return target;
40
+ }
41
+ // If the current project is a Strapi application
42
+ // Get the range from the given target
43
+ if (utils.isApplicationProject(project)) {
44
+ return getRangeFromTarget(project.strapiVersion, target);
45
+ }
46
+ // Else, if the project is a Strapi plugin or anything else
47
+ // Set the range to match any version
48
+ return range.rangeFactory('*');
49
+ };
50
+
51
+ exports.findRangeFromTarget = findRangeFromTarget;
52
+ exports.getRangeFromTarget = getRangeFromTarget;
53
+ exports.resolvePath = resolvePath;
54
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +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.ReleaseType.Latest:\n throw new Error(\"Can't use <latest> to create a codemods range: not implemented\");\n case Version.ReleaseType.Major:\n return rangeFactory(`${major}`);\n case Version.ReleaseType.Minor:\n return rangeFactory(`${major}.${minor}`);\n case Version.ReleaseType.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,WAAc,GAAA,CAACC,GAAiBC,GAAAA,IAAAA,CAAKC,OAAO,CAACF,GAAAA,IAAOG,OAAQH,CAAAA,GAAG,EAAI;AAEzE,MAAMI,kBAAqB,GAAA,CAChCC,cACAC,EAAAA,MAAAA,GAAAA;AAEA,IAAA,IAAIC,wBAAiBD,MAAS,CAAA,EAAA;AAC5B,QAAA,OAAOE,kBAAaF,CAAAA,MAAAA,CAAAA;AACtB;AAEA,IAAA,MAAM,EAAEG,KAAK,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGN,cAAAA;IAEhC,OAAQC,MAAAA;QACN,KAAKM,iBAAmB,CAACC,MAAM;AAC7B,YAAA,MAAM,IAAIC,KAAM,CAAA,gEAAA,CAAA;QAClB,KAAKF,iBAAmB,CAACG,KAAK;AAC5B,YAAA,OAAOP,kBAAa,CAAA,CAAC,EAAEC,KAAAA,CAAM,CAAC,CAAA;QAChC,KAAKG,iBAAmB,CAACI,KAAK;AAC5B,YAAA,OAAOR,mBAAa,CAAC,EAAEC,MAAM,CAAC,EAAEC,MAAM,CAAC,CAAA;QACzC,KAAKE,iBAAmB,CAACK,KAAK;YAC5B,OAAOT,kBAAAA,CAAa,CAAC,EAAEC,KAAM,CAAA,CAAC,EAAEC,KAAM,CAAA,CAAC,EAAEC,KAAAA,CAAM,CAAC,CAAA;AAClD,QAAA;AACE,YAAA,MAAM,IAAIG,KAAM,CAAA,CAAC,oBAAoB,EAAER,OAAO,CAAC,CAAA;AACnD;AACF;AAEO,MAAMY,mBAAsB,GAAA,CACjCC,OACAb,EAAAA,MAAAA,GAAAA;;AAGA,IAAA,IAAIc,sBAAgBd,MAAS,CAAA,EAAA;QAC3B,OAAOA,MAAAA;AACT;;;AAIA,IAAA,IAAIe,2BAAqBF,OAAU,CAAA,EAAA;QACjC,OAAOf,kBAAAA,CAAmBe,OAAQG,CAAAA,aAAa,EAAEhB,MAAAA,CAAAA;AACnD;;;AAIA,IAAA,OAAOE,kBAAa,CAAA,GAAA,CAAA;AACtB;;;;;;"}
@@ -0,0 +1,50 @@
1
+ import path from 'node:path';
2
+ import 'node:assert';
3
+ import 'fs-extra';
4
+ import 'semver';
5
+ import { isSemverInstance } from '../../modules/version/semver.mjs';
6
+ import { isRangeInstance, rangeFactory } from '../../modules/version/range.mjs';
7
+ import { ReleaseType } from '../../modules/version/types.mjs';
8
+ import 'fast-glob';
9
+ import 'jscodeshift/src/Runner';
10
+ import 'lodash/fp';
11
+ import 'esbuild-register/dist/node';
12
+ import '../../modules/project/constants.mjs';
13
+ import { isApplicationProject } from '../../modules/project/utils.mjs';
14
+
15
+ const resolvePath = (cwd)=>path.resolve(cwd ?? process.cwd());
16
+ const getRangeFromTarget = (currentVersion, target)=>{
17
+ if (isSemverInstance(target)) {
18
+ return rangeFactory(target);
19
+ }
20
+ const { major, minor, patch } = currentVersion;
21
+ switch(target){
22
+ case ReleaseType.Latest:
23
+ throw new Error("Can't use <latest> to create a codemods range: not implemented");
24
+ case ReleaseType.Major:
25
+ return rangeFactory(`${major}`);
26
+ case ReleaseType.Minor:
27
+ return rangeFactory(`${major}.${minor}`);
28
+ case ReleaseType.Patch:
29
+ return rangeFactory(`${major}.${minor}.${patch}`);
30
+ default:
31
+ throw new Error(`Invalid target set: ${target}`);
32
+ }
33
+ };
34
+ const findRangeFromTarget = (project, target)=>{
35
+ // If a range is manually defined, use it
36
+ if (isRangeInstance(target)) {
37
+ return target;
38
+ }
39
+ // If the current project is a Strapi application
40
+ // Get the range from the given target
41
+ if (isApplicationProject(project)) {
42
+ return getRangeFromTarget(project.strapiVersion, target);
43
+ }
44
+ // Else, if the project is a Strapi plugin or anything else
45
+ // Set the range to match any version
46
+ return rangeFactory('*');
47
+ };
48
+
49
+ export { findRangeFromTarget, getRangeFromTarget, resolvePath };
50
+ //# sourceMappingURL=utils.mjs.map
@@ -0,0 +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.ReleaseType.Latest:\n throw new Error(\"Can't use <latest> to create a codemods range: not implemented\");\n case Version.ReleaseType.Major:\n return rangeFactory(`${major}`);\n case Version.ReleaseType.Minor:\n return rangeFactory(`${major}.${minor}`);\n case Version.ReleaseType.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,WAAc,GAAA,CAACC,GAAiBC,GAAAA,IAAAA,CAAKC,OAAO,CAACF,GAAAA,IAAOG,OAAQH,CAAAA,GAAG,EAAI;AAEzE,MAAMI,kBAAqB,GAAA,CAChCC,cACAC,EAAAA,MAAAA,GAAAA;AAEA,IAAA,IAAIC,iBAAiBD,MAAS,CAAA,EAAA;AAC5B,QAAA,OAAOE,YAAaF,CAAAA,MAAAA,CAAAA;AACtB;AAEA,IAAA,MAAM,EAAEG,KAAK,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGN,cAAAA;IAEhC,OAAQC,MAAAA;QACN,KAAKM,WAAmB,CAACC,MAAM;AAC7B,YAAA,MAAM,IAAIC,KAAM,CAAA,gEAAA,CAAA;QAClB,KAAKF,WAAmB,CAACG,KAAK;AAC5B,YAAA,OAAOP,YAAa,CAAA,CAAC,EAAEC,KAAAA,CAAM,CAAC,CAAA;QAChC,KAAKG,WAAmB,CAACI,KAAK;AAC5B,YAAA,OAAOR,aAAa,CAAC,EAAEC,MAAM,CAAC,EAAEC,MAAM,CAAC,CAAA;QACzC,KAAKE,WAAmB,CAACK,KAAK;YAC5B,OAAOT,YAAAA,CAAa,CAAC,EAAEC,KAAM,CAAA,CAAC,EAAEC,KAAM,CAAA,CAAC,EAAEC,KAAAA,CAAM,CAAC,CAAA;AAClD,QAAA;AACE,YAAA,MAAM,IAAIG,KAAM,CAAA,CAAC,oBAAoB,EAAER,OAAO,CAAC,CAAA;AACnD;AACF;AAEO,MAAMY,mBAAsB,GAAA,CACjCC,OACAb,EAAAA,MAAAA,GAAAA;;AAGA,IAAA,IAAIc,gBAAgBd,MAAS,CAAA,EAAA;QAC3B,OAAOA,MAAAA;AACT;;;AAIA,IAAA,IAAIe,qBAAqBF,OAAU,CAAA,EAAA;QACjC,OAAOf,kBAAAA,CAAmBe,OAAQG,CAAAA,aAAa,EAAEhB,MAAAA,CAAAA;AACnD;;;AAIA,IAAA,OAAOE,YAAa,CAAA,GAAA,CAAA;AACtB;;;;"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var upgrade = require('./upgrade/upgrade.js');
4
+ require('semver');
5
+ require('../modules/version/types.js');
6
+ require('./upgrade/requirements/common.js');
7
+ var runCodemods = require('./codemods/run-codemods.js');
8
+ var listCodemods = require('./codemods/list-codemods.js');
9
+
10
+
11
+
12
+ exports.upgrade = upgrade.upgrade;
13
+ exports.runCodemods = runCodemods.runCodemods;
14
+ exports.listCodemods = listCodemods.listCodemods;
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -0,0 +1,7 @@
1
+ export { upgrade } from './upgrade/upgrade.mjs';
2
+ import 'semver';
3
+ import '../modules/version/types.mjs';
4
+ import './upgrade/requirements/common.mjs';
5
+ export { runCodemods } from './codemods/run-codemods.mjs';
6
+ export { listCodemods } from './codemods/list-codemods.mjs';
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var utils = require('../../../modules/error/utils.js');
4
+ var formats = require('../../../modules/format/formats.js');
5
+ var semver = require('../../../modules/version/semver.js');
6
+ var range = require('../../../modules/version/range.js');
7
+ var types = require('../../../modules/version/types.js');
8
+
9
+ /**
10
+ * Handles the upgrade prompts when using the latest tag.
11
+ *
12
+ * - checks if an upgrade involves a major bump, warning and asking for user confirmation before proceeding
13
+ */ const latest = async (upgrader, options)=>{
14
+ // Exit if the upgrade target isn't the latest tag
15
+ if (options.target !== types.ReleaseType.Latest) {
16
+ return;
17
+ }
18
+ // Retrieve utilities from the upgrader instance
19
+ const npmPackage = upgrader.getNPMPackage();
20
+ const target = upgrader.getTarget();
21
+ const project = upgrader.getProject();
22
+ const { strapiVersion: current } = project;
23
+ // Pre-formatted strings used in logs
24
+ const fTargetMajor = formats.highlight(`v${target.major}`);
25
+ const fCurrentMajor = formats.highlight(`v${current.major}`);
26
+ const fTarget = formats.version(target);
27
+ const fCurrent = formats.version(current);
28
+ // Flags
29
+ const isMajorUpgrade = target.major > current.major;
30
+ // Handle potential major upgrade, warns, and asks for confirmation to proceed
31
+ if (isMajorUpgrade) {
32
+ options.logger.warn(`Detected a major upgrade for the "${formats.highlight(types.ReleaseType.Latest)}" tag: ${fCurrent} > ${fTarget}`);
33
+ // Find the latest release in between the current one and the next major
34
+ const newerPackageRelease = npmPackage.findVersionsInRange(range.rangeFactory(`>${current.raw} <${target.major}`)).at(-1);
35
+ // If the project isn't on the latest version for the current major, emit a warning
36
+ if (newerPackageRelease) {
37
+ const fLatest = formats.version(semver.semVerFactory(newerPackageRelease.version));
38
+ options.logger.warn(`It's recommended to first upgrade to the latest version of ${fCurrentMajor} (${fLatest}) before upgrading to ${fTargetMajor}.`);
39
+ }
40
+ const proceedAnyway = await upgrader.confirm(`I know what I'm doing. Proceed anyway!`);
41
+ if (!proceedAnyway) {
42
+ throw new utils.AbortedError();
43
+ }
44
+ }
45
+ };
46
+
47
+ exports.latest = latest;
48
+ //# sourceMappingURL=latest.js.map
@@ -0,0 +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.ReleaseType.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.ReleaseType.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,MAAS,GAAA,OAAOC,QAAoBC,EAAAA,OAAAA,GAAAA;;AAE/C,IAAA,IAAIA,QAAQC,MAAM,KAAKC,iBAAmB,CAACC,MAAM,EAAE;AACjD,QAAA;AACF;;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,CAAC,CAAC,CAAA;IACnD,MAAMC,aAAAA,GAAgBF,iBAAW,CAAC,CAAC,CAAC,EAAEF,OAAAA,CAAQG,KAAK,CAAC,CAAC,CAAA;IAErD,MAAME,OAAAA,GAAUH,eAAS,CAACX,MAAAA,CAAAA;IAC1B,MAAMe,QAAAA,GAAWJ,eAAS,CAACF,OAAAA,CAAAA;;AAG3B,IAAA,MAAMO,cAAiBhB,GAAAA,MAAAA,CAAOY,KAAK,GAAGH,QAAQG,KAAK;;AAGnD,IAAA,IAAII,cAAgB,EAAA;QAClBjB,OAAQkB,CAAAA,MAAM,CAACC,IAAI,CACjB,CAAC,kCAAkC,EAAEP,iBAAW,CAACV,iBAAmB,CAACC,MAAM,CAAE,CAAA,OAAO,EAAEa,QAAS,CAAA,GAAG,EAAED,OAAAA,CAAQ,CAAC,CAAA;;QAI/G,MAAMK,mBAAAA,GAAsBhB,WACzBiB,mBAAmB,CAACC,mBAAa,CAAC,CAAC,EAAEZ,OAAQa,CAAAA,GAAG,CAAC,EAAE,EAAEtB,OAAOY,KAAK,CAAC,CAAC,CACnEW,CAAAA,CAAAA,EAAE,CAAC,CAAC,CAAA,CAAA;;AAGP,QAAA,IAAIJ,mBAAqB,EAAA;AACvB,YAAA,MAAMK,UAAUb,eAAS,CAACc,oBAAAA,CAAcN,oBAAoBO,OAAO,CAAA,CAAA;AACnE3B,YAAAA,OAAAA,CAAQkB,MAAM,CAACC,IAAI,CACjB,CAAC,2DAA2D,EAAEL,aAAc,CAAA,EAAE,EAAEW,OAAQ,CAAA,sBAAsB,EAAEd,YAAAA,CAAa,CAAC,CAAC,CAAA;AAEnI;AAEA,QAAA,MAAMiB,gBAAgB,MAAM7B,QAAAA,CAAS8B,OAAO,CAAC,CAAC,sCAAsC,CAAC,CAAA;AAErF,QAAA,IAAI,CAACD,aAAe,EAAA;AAClB,YAAA,MAAM,IAAIE,kBAAAA,EAAAA;AACZ;AACF;AACF;;;;"}
@@ -0,0 +1,46 @@
1
+ import { AbortedError } from '../../../modules/error/utils.mjs';
2
+ import { highlight, version } from '../../../modules/format/formats.mjs';
3
+ import { semVerFactory } from '../../../modules/version/semver.mjs';
4
+ import { rangeFactory } from '../../../modules/version/range.mjs';
5
+ import { ReleaseType } from '../../../modules/version/types.mjs';
6
+
7
+ /**
8
+ * Handles the upgrade prompts when using the latest tag.
9
+ *
10
+ * - checks if an upgrade involves a major bump, warning and asking for user confirmation before proceeding
11
+ */ const latest = async (upgrader, options)=>{
12
+ // Exit if the upgrade target isn't the latest tag
13
+ if (options.target !== ReleaseType.Latest) {
14
+ return;
15
+ }
16
+ // Retrieve utilities from the upgrader instance
17
+ const npmPackage = upgrader.getNPMPackage();
18
+ const target = upgrader.getTarget();
19
+ const project = upgrader.getProject();
20
+ const { strapiVersion: current } = project;
21
+ // Pre-formatted strings used in logs
22
+ const fTargetMajor = highlight(`v${target.major}`);
23
+ const fCurrentMajor = highlight(`v${current.major}`);
24
+ const fTarget = version(target);
25
+ const fCurrent = version(current);
26
+ // Flags
27
+ const isMajorUpgrade = target.major > current.major;
28
+ // Handle potential major upgrade, warns, and asks for confirmation to proceed
29
+ if (isMajorUpgrade) {
30
+ options.logger.warn(`Detected a major upgrade for the "${highlight(ReleaseType.Latest)}" tag: ${fCurrent} > ${fTarget}`);
31
+ // Find the latest release in between the current one and the next major
32
+ const newerPackageRelease = npmPackage.findVersionsInRange(rangeFactory(`>${current.raw} <${target.major}`)).at(-1);
33
+ // If the project isn't on the latest version for the current major, emit a warning
34
+ if (newerPackageRelease) {
35
+ const fLatest = version(semVerFactory(newerPackageRelease.version));
36
+ options.logger.warn(`It's recommended to first upgrade to the latest version of ${fCurrentMajor} (${fLatest}) before upgrading to ${fTargetMajor}.`);
37
+ }
38
+ const proceedAnyway = await upgrader.confirm(`I know what I'm doing. Proceed anyway!`);
39
+ if (!proceedAnyway) {
40
+ throw new AbortedError();
41
+ }
42
+ }
43
+ };
44
+
45
+ export { latest };
46
+ //# sourceMappingURL=latest.mjs.map
@@ -0,0 +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.ReleaseType.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.ReleaseType.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,MAAS,GAAA,OAAOC,QAAoBC,EAAAA,OAAAA,GAAAA;;AAE/C,IAAA,IAAIA,QAAQC,MAAM,KAAKC,WAAmB,CAACC,MAAM,EAAE;AACjD,QAAA;AACF;;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,CAAC,CAAC,CAAA;IACnD,MAAMC,aAAAA,GAAgBF,SAAW,CAAC,CAAC,CAAC,EAAEF,OAAAA,CAAQG,KAAK,CAAC,CAAC,CAAA;IAErD,MAAME,OAAAA,GAAUH,OAAS,CAACX,MAAAA,CAAAA;IAC1B,MAAMe,QAAAA,GAAWJ,OAAS,CAACF,OAAAA,CAAAA;;AAG3B,IAAA,MAAMO,cAAiBhB,GAAAA,MAAAA,CAAOY,KAAK,GAAGH,QAAQG,KAAK;;AAGnD,IAAA,IAAII,cAAgB,EAAA;QAClBjB,OAAQkB,CAAAA,MAAM,CAACC,IAAI,CACjB,CAAC,kCAAkC,EAAEP,SAAW,CAACV,WAAmB,CAACC,MAAM,CAAE,CAAA,OAAO,EAAEa,QAAS,CAAA,GAAG,EAAED,OAAAA,CAAQ,CAAC,CAAA;;QAI/G,MAAMK,mBAAAA,GAAsBhB,WACzBiB,mBAAmB,CAACC,aAAa,CAAC,CAAC,EAAEZ,OAAQa,CAAAA,GAAG,CAAC,EAAE,EAAEtB,OAAOY,KAAK,CAAC,CAAC,CACnEW,CAAAA,CAAAA,EAAE,CAAC,CAAC,CAAA,CAAA;;AAGP,QAAA,IAAIJ,mBAAqB,EAAA;AACvB,YAAA,MAAMK,UAAUb,OAAS,CAACc,aAAAA,CAAcN,oBAAoBO,OAAO,CAAA,CAAA;AACnE3B,YAAAA,OAAAA,CAAQkB,MAAM,CAACC,IAAI,CACjB,CAAC,2DAA2D,EAAEL,aAAc,CAAA,EAAE,EAAEW,OAAQ,CAAA,sBAAsB,EAAEd,YAAAA,CAAa,CAAC,CAAC,CAAA;AAEnI;AAEA,QAAA,MAAMiB,gBAAgB,MAAM7B,QAAAA,CAAS8B,OAAO,CAAC,CAAC,sCAAsC,CAAC,CAAA;AAErF,QAAA,IAAI,CAACD,aAAe,EAAA;AAClB,YAAA,MAAM,IAAIE,YAAAA,EAAAA;AACZ;AACF;AACF;;;;"}
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var simpleGit = require('simple-git');
4
+ var requirement = require('../../../modules/requirement/requirement.js');
5
+
6
+ const REQUIRE_GIT_CLEAN_REPOSITORY = requirement.requirementFactory('REQUIRE_GIT_CLEAN_REPOSITORY', async (context)=>{
7
+ const git = simpleGit({
8
+ baseDir: context.project.cwd
9
+ });
10
+ const status = await git.status();
11
+ if (!status.isClean()) {
12
+ throw new Error('Repository is not clean. Please commit or stash any changes before upgrading');
13
+ }
14
+ });
15
+ const REQUIRE_GIT_REPOSITORY = requirement.requirementFactory('REQUIRE_GIT_REPOSITORY', async (context)=>{
16
+ const git = simpleGit({
17
+ baseDir: context.project.cwd
18
+ });
19
+ const isRepo = await git.checkIsRepo();
20
+ if (!isRepo) {
21
+ throw new Error('Not a git repository (or any of the parent directories)');
22
+ }
23
+ }).addChild(REQUIRE_GIT_CLEAN_REPOSITORY.asOptional());
24
+ const REQUIRE_GIT_INSTALLED = requirement.requirementFactory('REQUIRE_GIT_INSTALLED', async (context)=>{
25
+ const git = simpleGit({
26
+ baseDir: context.project.cwd
27
+ });
28
+ try {
29
+ await git.version();
30
+ } catch {
31
+ throw new Error('Git is not installed');
32
+ }
33
+ }).addChild(REQUIRE_GIT_REPOSITORY.asOptional());
34
+ const REQUIRE_GIT = requirement.requirementFactory('REQUIRE_GIT', null).addChild(REQUIRE_GIT_INSTALLED.asOptional());
35
+
36
+ exports.REQUIRE_GIT = REQUIRE_GIT;
37
+ exports.REQUIRE_GIT_CLEAN_REPOSITORY = REQUIRE_GIT_CLEAN_REPOSITORY;
38
+ exports.REQUIRE_GIT_INSTALLED = REQUIRE_GIT_INSTALLED;
39
+ exports.REQUIRE_GIT_REPOSITORY = REQUIRE_GIT_REPOSITORY;
40
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sources":["../../../../../src/tasks/upgrade/requirements/common.ts"],"sourcesContent":["import simpleGit from 'simple-git';\n\nimport { requirementFactory } from '../../../modules/requirement';\n\nexport const REQUIRE_GIT_CLEAN_REPOSITORY = requirementFactory(\n 'REQUIRE_GIT_CLEAN_REPOSITORY',\n async (context) => {\n const git = simpleGit({ baseDir: context.project.cwd });\n\n const status = await git.status();\n\n if (!status.isClean()) {\n throw new Error(\n 'Repository is not clean. Please commit or stash any changes before upgrading'\n );\n }\n }\n);\n\nexport const REQUIRE_GIT_REPOSITORY = requirementFactory(\n 'REQUIRE_GIT_REPOSITORY',\n async (context) => {\n const git = simpleGit({ baseDir: context.project.cwd });\n\n const isRepo = await git.checkIsRepo();\n\n if (!isRepo) {\n throw new Error('Not a git repository (or any of the parent directories)');\n }\n }\n).addChild(REQUIRE_GIT_CLEAN_REPOSITORY.asOptional());\n\nexport const REQUIRE_GIT_INSTALLED = requirementFactory(\n 'REQUIRE_GIT_INSTALLED',\n async (context) => {\n const git = simpleGit({ baseDir: context.project.cwd });\n\n try {\n await git.version();\n } catch {\n throw new Error('Git is not installed');\n }\n }\n).addChild(REQUIRE_GIT_REPOSITORY.asOptional());\n\nexport const REQUIRE_GIT = requirementFactory('REQUIRE_GIT', null).addChild(\n REQUIRE_GIT_INSTALLED.asOptional()\n);\n"],"names":["REQUIRE_GIT_CLEAN_REPOSITORY","requirementFactory","context","git","simpleGit","baseDir","project","cwd","status","isClean","Error","REQUIRE_GIT_REPOSITORY","isRepo","checkIsRepo","addChild","asOptional","REQUIRE_GIT_INSTALLED","version","REQUIRE_GIT"],"mappings":";;;;;AAIaA,MAAAA,4BAAAA,GAA+BC,8BAC1C,CAAA,8BAAA,EACA,OAAOC,OAAAA,GAAAA;AACL,IAAA,MAAMC,MAAMC,SAAU,CAAA;QAAEC,OAASH,EAAAA,OAAAA,CAAQI,OAAO,CAACC;AAAI,KAAA,CAAA;IAErD,MAAMC,MAAAA,GAAS,MAAML,GAAAA,CAAIK,MAAM,EAAA;IAE/B,IAAI,CAACA,MAAOC,CAAAA,OAAO,EAAI,EAAA;AACrB,QAAA,MAAM,IAAIC,KACR,CAAA,8EAAA,CAAA;AAEJ;AACF,CACA;AAEWC,MAAAA,sBAAAA,GAAyBV,8BACpC,CAAA,wBAAA,EACA,OAAOC,OAAAA,GAAAA;AACL,IAAA,MAAMC,MAAMC,SAAU,CAAA;QAAEC,OAASH,EAAAA,OAAAA,CAAQI,OAAO,CAACC;AAAI,KAAA,CAAA;IAErD,MAAMK,MAAAA,GAAS,MAAMT,GAAAA,CAAIU,WAAW,EAAA;AAEpC,IAAA,IAAI,CAACD,MAAQ,EAAA;AACX,QAAA,MAAM,IAAIF,KAAM,CAAA,yDAAA,CAAA;AAClB;AACF,CAAA,CAAA,CACAI,QAAQ,CAACd,4BAA6Be,CAAAA,UAAU,EAAI;AAEzCC,MAAAA,qBAAAA,GAAwBf,8BACnC,CAAA,uBAAA,EACA,OAAOC,OAAAA,GAAAA;AACL,IAAA,MAAMC,MAAMC,SAAU,CAAA;QAAEC,OAASH,EAAAA,OAAAA,CAAQI,OAAO,CAACC;AAAI,KAAA,CAAA;IAErD,IAAI;AACF,QAAA,MAAMJ,IAAIc,OAAO,EAAA;AACnB,KAAA,CAAE,OAAM;AACN,QAAA,MAAM,IAAIP,KAAM,CAAA,sBAAA,CAAA;AAClB;AACF,CAAA,CAAA,CACAI,QAAQ,CAACH,sBAAuBI,CAAAA,UAAU,EAAI;AAEzC,MAAMG,cAAcjB,8BAAmB,CAAA,aAAA,EAAe,MAAMa,QAAQ,CACzEE,qBAAsBD,CAAAA,UAAU,EAChC;;;;;;;"}
@@ -0,0 +1,35 @@
1
+ import simpleGit from 'simple-git';
2
+ import { requirementFactory } from '../../../modules/requirement/requirement.mjs';
3
+
4
+ const REQUIRE_GIT_CLEAN_REPOSITORY = requirementFactory('REQUIRE_GIT_CLEAN_REPOSITORY', async (context)=>{
5
+ const git = simpleGit({
6
+ baseDir: context.project.cwd
7
+ });
8
+ const status = await git.status();
9
+ if (!status.isClean()) {
10
+ throw new Error('Repository is not clean. Please commit or stash any changes before upgrading');
11
+ }
12
+ });
13
+ const REQUIRE_GIT_REPOSITORY = requirementFactory('REQUIRE_GIT_REPOSITORY', async (context)=>{
14
+ const git = simpleGit({
15
+ baseDir: context.project.cwd
16
+ });
17
+ const isRepo = await git.checkIsRepo();
18
+ if (!isRepo) {
19
+ throw new Error('Not a git repository (or any of the parent directories)');
20
+ }
21
+ }).addChild(REQUIRE_GIT_CLEAN_REPOSITORY.asOptional());
22
+ const REQUIRE_GIT_INSTALLED = requirementFactory('REQUIRE_GIT_INSTALLED', async (context)=>{
23
+ const git = simpleGit({
24
+ baseDir: context.project.cwd
25
+ });
26
+ try {
27
+ await git.version();
28
+ } catch {
29
+ throw new Error('Git is not installed');
30
+ }
31
+ }).addChild(REQUIRE_GIT_REPOSITORY.asOptional());
32
+ const REQUIRE_GIT = requirementFactory('REQUIRE_GIT', null).addChild(REQUIRE_GIT_INSTALLED.asOptional());
33
+
34
+ export { REQUIRE_GIT, REQUIRE_GIT_CLEAN_REPOSITORY, REQUIRE_GIT_INSTALLED, REQUIRE_GIT_REPOSITORY };
35
+ //# sourceMappingURL=common.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.mjs","sources":["../../../../../src/tasks/upgrade/requirements/common.ts"],"sourcesContent":["import simpleGit from 'simple-git';\n\nimport { requirementFactory } from '../../../modules/requirement';\n\nexport const REQUIRE_GIT_CLEAN_REPOSITORY = requirementFactory(\n 'REQUIRE_GIT_CLEAN_REPOSITORY',\n async (context) => {\n const git = simpleGit({ baseDir: context.project.cwd });\n\n const status = await git.status();\n\n if (!status.isClean()) {\n throw new Error(\n 'Repository is not clean. Please commit or stash any changes before upgrading'\n );\n }\n }\n);\n\nexport const REQUIRE_GIT_REPOSITORY = requirementFactory(\n 'REQUIRE_GIT_REPOSITORY',\n async (context) => {\n const git = simpleGit({ baseDir: context.project.cwd });\n\n const isRepo = await git.checkIsRepo();\n\n if (!isRepo) {\n throw new Error('Not a git repository (or any of the parent directories)');\n }\n }\n).addChild(REQUIRE_GIT_CLEAN_REPOSITORY.asOptional());\n\nexport const REQUIRE_GIT_INSTALLED = requirementFactory(\n 'REQUIRE_GIT_INSTALLED',\n async (context) => {\n const git = simpleGit({ baseDir: context.project.cwd });\n\n try {\n await git.version();\n } catch {\n throw new Error('Git is not installed');\n }\n }\n).addChild(REQUIRE_GIT_REPOSITORY.asOptional());\n\nexport const REQUIRE_GIT = requirementFactory('REQUIRE_GIT', null).addChild(\n REQUIRE_GIT_INSTALLED.asOptional()\n);\n"],"names":["REQUIRE_GIT_CLEAN_REPOSITORY","requirementFactory","context","git","simpleGit","baseDir","project","cwd","status","isClean","Error","REQUIRE_GIT_REPOSITORY","isRepo","checkIsRepo","addChild","asOptional","REQUIRE_GIT_INSTALLED","version","REQUIRE_GIT"],"mappings":";;;AAIaA,MAAAA,4BAAAA,GAA+BC,kBAC1C,CAAA,8BAAA,EACA,OAAOC,OAAAA,GAAAA;AACL,IAAA,MAAMC,MAAMC,SAAU,CAAA;QAAEC,OAASH,EAAAA,OAAAA,CAAQI,OAAO,CAACC;AAAI,KAAA,CAAA;IAErD,MAAMC,MAAAA,GAAS,MAAML,GAAAA,CAAIK,MAAM,EAAA;IAE/B,IAAI,CAACA,MAAOC,CAAAA,OAAO,EAAI,EAAA;AACrB,QAAA,MAAM,IAAIC,KACR,CAAA,8EAAA,CAAA;AAEJ;AACF,CACA;AAEWC,MAAAA,sBAAAA,GAAyBV,kBACpC,CAAA,wBAAA,EACA,OAAOC,OAAAA,GAAAA;AACL,IAAA,MAAMC,MAAMC,SAAU,CAAA;QAAEC,OAASH,EAAAA,OAAAA,CAAQI,OAAO,CAACC;AAAI,KAAA,CAAA;IAErD,MAAMK,MAAAA,GAAS,MAAMT,GAAAA,CAAIU,WAAW,EAAA;AAEpC,IAAA,IAAI,CAACD,MAAQ,EAAA;AACX,QAAA,MAAM,IAAIF,KAAM,CAAA,yDAAA,CAAA;AAClB;AACF,CAAA,CAAA,CACAI,QAAQ,CAACd,4BAA6Be,CAAAA,UAAU,EAAI;AAEzCC,MAAAA,qBAAAA,GAAwBf,kBACnC,CAAA,uBAAA,EACA,OAAOC,OAAAA,GAAAA;AACL,IAAA,MAAMC,MAAMC,SAAU,CAAA;QAAEC,OAASH,EAAAA,OAAAA,CAAQI,OAAO,CAACC;AAAI,KAAA,CAAA;IAErD,IAAI;AACF,QAAA,MAAMJ,IAAIc,OAAO,EAAA;AACnB,KAAA,CAAE,OAAM;AACN,QAAA,MAAM,IAAIP,KAAM,CAAA,sBAAA,CAAA;AAClB;AACF,CAAA,CAAA,CACAI,QAAQ,CAACH,sBAAuBI,CAAAA,UAAU,EAAI;AAEzC,MAAMG,cAAcjB,kBAAmB,CAAA,aAAA,EAAe,MAAMa,QAAQ,CACzEE,qBAAsBD,CAAAA,UAAU,EAChC;;;;"}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var requirement = require('../../../modules/requirement/requirement.js');
4
+ var semver = require('../../../modules/version/semver.js');
5
+ require('semver');
6
+ require('../../../modules/version/types.js');
7
+
8
+ const REQUIRE_AVAILABLE_NEXT_MAJOR = requirement.requirementFactory('REQUIRE_AVAILABLE_NEXT_MAJOR', (context)=>{
9
+ const { project, target } = context;
10
+ const currentMajor = project.strapiVersion.major;
11
+ const targetedMajor = target.major;
12
+ if (targetedMajor === currentMajor) {
13
+ throw new Error(`You're already on the latest major version (v${currentMajor})`);
14
+ }
15
+ });
16
+ const REQUIRE_LATEST_FOR_CURRENT_MAJOR = requirement.requirementFactory('REQUIRE_LATEST_FOR_CURRENT_MAJOR', (context)=>{
17
+ const { project, target, npmVersionsMatches } = context;
18
+ const { major: currentMajor } = project.strapiVersion;
19
+ const invalidMatches = npmVersionsMatches.filter((match)=>semver.semVerFactory(match.version).major === currentMajor);
20
+ if (invalidMatches.length > 0) {
21
+ const invalidVersions = invalidMatches.map((match)=>match.version);
22
+ const invalidVersionsCount = invalidVersions.length;
23
+ throw new Error(`Doing a major upgrade requires to be on the latest v${currentMajor} version, but found ${invalidVersionsCount} versions between the current one and ${target}. Please upgrade to ${invalidVersions.at(-1)} and try again.`);
24
+ }
25
+ });
26
+
27
+ exports.REQUIRE_AVAILABLE_NEXT_MAJOR = REQUIRE_AVAILABLE_NEXT_MAJOR;
28
+ exports.REQUIRE_LATEST_FOR_CURRENT_MAJOR = REQUIRE_LATEST_FOR_CURRENT_MAJOR;
29
+ //# sourceMappingURL=major.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"major.js","sources":["../../../../../src/tasks/upgrade/requirements/major.ts"],"sourcesContent":["import { requirementFactory } from '../../../modules/requirement';\nimport { semVerFactory } from '../../../modules/version';\n\nexport const REQUIRE_AVAILABLE_NEXT_MAJOR = requirementFactory(\n 'REQUIRE_AVAILABLE_NEXT_MAJOR',\n (context) => {\n const { project, target } = context;\n\n const currentMajor = project.strapiVersion.major;\n const targetedMajor = target.major;\n\n if (targetedMajor === currentMajor) {\n throw new Error(`You're already on the latest major version (v${currentMajor})`);\n }\n }\n);\n\nexport const REQUIRE_LATEST_FOR_CURRENT_MAJOR = requirementFactory(\n 'REQUIRE_LATEST_FOR_CURRENT_MAJOR',\n (context) => {\n const { project, target, npmVersionsMatches } = context;\n const { major: currentMajor } = project.strapiVersion;\n\n const invalidMatches = npmVersionsMatches.filter(\n (match) => semVerFactory(match.version).major === currentMajor\n );\n\n if (invalidMatches.length > 0) {\n const invalidVersions = invalidMatches.map((match) => match.version);\n const invalidVersionsCount = invalidVersions.length;\n\n throw new Error(\n `Doing a major upgrade requires to be on the latest v${currentMajor} version, but found ${invalidVersionsCount} versions between the current one and ${target}. Please upgrade to ${invalidVersions.at(-1)} and try again.`\n );\n }\n }\n);\n"],"names":["REQUIRE_AVAILABLE_NEXT_MAJOR","requirementFactory","context","project","target","currentMajor","strapiVersion","major","targetedMajor","Error","REQUIRE_LATEST_FOR_CURRENT_MAJOR","npmVersionsMatches","invalidMatches","filter","match","semVerFactory","version","length","invalidVersions","map","invalidVersionsCount","at"],"mappings":";;;;;;;AAGaA,MAAAA,4BAAAA,GAA+BC,8BAC1C,CAAA,8BAAA,EACA,CAACC,OAAAA,GAAAA;AACC,IAAA,MAAM,EAAEC,OAAO,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAE5B,IAAA,MAAMG,YAAeF,GAAAA,OAAAA,CAAQG,aAAa,CAACC,KAAK;IAChD,MAAMC,aAAAA,GAAgBJ,OAAOG,KAAK;AAElC,IAAA,IAAIC,kBAAkBH,YAAc,EAAA;AAClC,QAAA,MAAM,IAAII,KAAM,CAAA,CAAC,6CAA6C,EAAEJ,YAAAA,CAAa,CAAC,CAAC,CAAA;AACjF;AACF,CACA;AAEWK,MAAAA,gCAAAA,GAAmCT,8BAC9C,CAAA,kCAAA,EACA,CAACC,OAAAA,GAAAA;AACC,IAAA,MAAM,EAAEC,OAAO,EAAEC,MAAM,EAAEO,kBAAkB,EAAE,GAAGT,OAAAA;AAChD,IAAA,MAAM,EAAEK,KAAOF,EAAAA,YAAY,EAAE,GAAGF,QAAQG,aAAa;IAErD,MAAMM,cAAAA,GAAiBD,kBAAmBE,CAAAA,MAAM,CAC9C,CAACC,KAAUC,GAAAA,oBAAAA,CAAcD,KAAME,CAAAA,OAAO,CAAET,CAAAA,KAAK,KAAKF,YAAAA,CAAAA;IAGpD,IAAIO,cAAAA,CAAeK,MAAM,GAAG,CAAG,EAAA;AAC7B,QAAA,MAAMC,kBAAkBN,cAAeO,CAAAA,GAAG,CAAC,CAACL,KAAAA,GAAUA,MAAME,OAAO,CAAA;QACnE,MAAMI,oBAAAA,GAAuBF,gBAAgBD,MAAM;QAEnD,MAAM,IAAIR,MACR,CAAC,oDAAoD,EAAEJ,YAAa,CAAA,oBAAoB,EAAEe,oBAAqB,CAAA,sCAAsC,EAAEhB,MAAO,CAAA,oBAAoB,EAAEc,eAAgBG,CAAAA,EAAE,CAAC,CAAC,CAAA,CAAA,CAAG,eAAe,CAAC,CAAA;AAE/N;AACF,CACA;;;;;"}