@strapi/upgrade 0.0.0-experimental.fc1ac2acd58c8a5a858679956b6d102ac5ee4011 → 0.0.0-experimental.fca58d9b01ba89012d84a58a20556a6fd716cb92

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 (330) hide show
  1. package/LICENSE +19 -4
  2. package/README.md +1 -1
  3. package/dist/cli.js +15 -6
  4. package/dist/cli.js.map +1 -1
  5. package/dist/cli.mjs +14 -0
  6. package/dist/cli.mjs.map +1 -0
  7. package/dist/index.js +9 -1199
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +4 -1191
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/modules/codemod/codemod.d.ts +4 -2
  12. package/dist/modules/codemod/codemod.d.ts.map +1 -1
  13. package/dist/modules/codemod/types.d.ts +8 -1
  14. package/dist/modules/codemod/types.d.ts.map +1 -1
  15. package/dist/modules/codemod-repository/constants.d.ts.map +1 -1
  16. package/dist/modules/codemod-repository/repository.d.ts +6 -5
  17. package/dist/modules/codemod-repository/repository.d.ts.map +1 -1
  18. package/dist/modules/codemod-repository/types.d.ts +7 -3
  19. package/dist/modules/codemod-repository/types.d.ts.map +1 -1
  20. package/dist/modules/codemod-runner/codemod-runner.d.ts +3 -0
  21. package/dist/modules/codemod-runner/codemod-runner.d.ts.map +1 -1
  22. package/dist/modules/codemod-runner/index.d.ts +1 -0
  23. package/dist/modules/codemod-runner/index.d.ts.map +1 -1
  24. package/dist/modules/codemod-runner/types.d.ts +1 -0
  25. package/dist/modules/codemod-runner/types.d.ts.map +1 -1
  26. package/dist/modules/error/utils.d.ts +8 -0
  27. package/dist/modules/error/utils.d.ts.map +1 -1
  28. package/dist/modules/file-scanner/scanner.d.ts.map +1 -1
  29. package/dist/modules/format/formats.d.ts +6 -0
  30. package/dist/modules/format/formats.d.ts.map +1 -1
  31. package/dist/modules/project/constants.d.ts +6 -3
  32. package/dist/modules/project/constants.d.ts.map +1 -1
  33. package/dist/modules/project/index.d.ts +2 -0
  34. package/dist/modules/project/index.d.ts.map +1 -1
  35. package/dist/modules/project/project.d.ts +27 -5
  36. package/dist/modules/project/project.d.ts.map +1 -1
  37. package/dist/modules/project/types.d.ts +3 -10
  38. package/dist/modules/project/types.d.ts.map +1 -1
  39. package/dist/modules/project/utils.d.ts +6 -0
  40. package/dist/modules/project/utils.d.ts.map +1 -0
  41. package/dist/modules/report/report.d.ts.map +1 -1
  42. package/dist/modules/requirement/types.d.ts +2 -2
  43. package/dist/modules/requirement/types.d.ts.map +1 -1
  44. package/dist/modules/runner/json/transform.d.ts.map +1 -1
  45. package/dist/modules/upgrader/types.d.ts +6 -0
  46. package/dist/modules/upgrader/types.d.ts.map +1 -1
  47. package/dist/modules/upgrader/upgrader.d.ts +7 -3
  48. package/dist/modules/upgrader/upgrader.d.ts.map +1 -1
  49. package/dist/modules/version/range.d.ts +2 -0
  50. package/dist/modules/version/range.d.ts.map +1 -1
  51. package/dist/modules/version/types.d.ts +2 -1
  52. package/dist/modules/version/types.d.ts.map +1 -1
  53. package/dist/package.json.js +6 -0
  54. package/dist/package.json.js.map +1 -0
  55. package/dist/package.json.mjs +4 -0
  56. package/dist/package.json.mjs.map +1 -0
  57. package/dist/src/cli/commands/codemods.js +120 -0
  58. package/dist/src/cli/commands/codemods.js.map +1 -0
  59. package/dist/src/cli/commands/codemods.mjs +116 -0
  60. package/dist/src/cli/commands/codemods.mjs.map +1 -0
  61. package/dist/src/cli/commands/upgrade.js +99 -0
  62. package/dist/src/cli/commands/upgrade.js.map +1 -0
  63. package/dist/src/cli/commands/upgrade.mjs +96 -0
  64. package/dist/src/cli/commands/upgrade.mjs.map +1 -0
  65. package/dist/src/cli/errors.js +18 -0
  66. package/dist/src/cli/errors.js.map +1 -0
  67. package/dist/src/cli/errors.mjs +16 -0
  68. package/dist/src/cli/errors.mjs.map +1 -0
  69. package/dist/src/cli/options.js +26 -0
  70. package/dist/src/cli/options.js.map +1 -0
  71. package/dist/src/cli/options.mjs +19 -0
  72. package/dist/src/cli/options.mjs.map +1 -0
  73. package/dist/src/modules/codemod/codemod.js +44 -0
  74. package/dist/src/modules/codemod/codemod.js.map +1 -0
  75. package/dist/src/modules/codemod/codemod.mjs +41 -0
  76. package/dist/src/modules/codemod/codemod.mjs.map +1 -0
  77. package/dist/src/modules/codemod/constants.js +17 -0
  78. package/dist/src/modules/codemod/constants.js.map +1 -0
  79. package/dist/src/modules/codemod/constants.mjs +11 -0
  80. package/dist/src/modules/codemod/constants.mjs.map +1 -0
  81. package/dist/src/modules/codemod/index.js +10 -0
  82. package/dist/src/modules/codemod/index.js.map +1 -0
  83. package/dist/src/modules/codemod/index.mjs +4 -0
  84. package/dist/src/modules/codemod/index.mjs.map +1 -0
  85. package/dist/src/modules/codemod-repository/constants.js +9 -0
  86. package/dist/src/modules/codemod-repository/constants.js.map +1 -0
  87. package/dist/src/modules/codemod-repository/constants.mjs +7 -0
  88. package/dist/src/modules/codemod-repository/constants.mjs.map +1 -0
  89. package/dist/src/modules/codemod-repository/index.js +10 -0
  90. package/dist/src/modules/codemod-repository/index.js.map +1 -0
  91. package/dist/src/modules/codemod-repository/index.mjs +4 -0
  92. package/dist/src/modules/codemod-repository/index.mjs.map +1 -0
  93. package/dist/src/modules/codemod-repository/repository.js +127 -0
  94. package/dist/src/modules/codemod-repository/repository.js.map +1 -0
  95. package/dist/src/modules/codemod-repository/repository.mjs +123 -0
  96. package/dist/src/modules/codemod-repository/repository.mjs.map +1 -0
  97. package/dist/src/modules/codemod-runner/codemod-runner.js +113 -0
  98. package/dist/src/modules/codemod-runner/codemod-runner.js.map +1 -0
  99. package/dist/src/modules/codemod-runner/codemod-runner.mjs +110 -0
  100. package/dist/src/modules/codemod-runner/codemod-runner.mjs.map +1 -0
  101. package/dist/src/modules/error/index.js +11 -0
  102. package/dist/src/modules/error/index.js.map +1 -0
  103. package/dist/src/modules/error/index.mjs +2 -0
  104. package/dist/src/modules/error/index.mjs.map +1 -0
  105. package/dist/src/modules/error/utils.js +33 -0
  106. package/dist/src/modules/error/utils.js.map +1 -0
  107. package/dist/src/modules/error/utils.mjs +28 -0
  108. package/dist/src/modules/error/utils.mjs.map +1 -0
  109. package/dist/src/modules/file-scanner/index.js +8 -0
  110. package/dist/src/modules/file-scanner/index.js.map +1 -0
  111. package/dist/src/modules/file-scanner/index.mjs +2 -0
  112. package/dist/src/modules/file-scanner/index.mjs.map +1 -0
  113. package/dist/src/modules/file-scanner/scanner.js +23 -0
  114. package/dist/src/modules/file-scanner/scanner.js.map +1 -0
  115. package/dist/src/modules/file-scanner/scanner.mjs +20 -0
  116. package/dist/src/modules/file-scanner/scanner.mjs.map +1 -0
  117. package/dist/src/modules/format/formats.js +107 -0
  118. package/dist/src/modules/format/formats.js.map +1 -0
  119. package/dist/src/modules/format/formats.mjs +94 -0
  120. package/dist/src/modules/format/formats.mjs.map +1 -0
  121. package/dist/src/modules/format/index.js +19 -0
  122. package/dist/src/modules/format/index.js.map +1 -0
  123. package/dist/src/modules/format/index.mjs +2 -0
  124. package/dist/src/modules/format/index.mjs.map +1 -0
  125. package/dist/src/modules/index.js +32 -0
  126. package/dist/src/modules/index.js.map +1 -0
  127. package/dist/src/modules/index.mjs +27 -0
  128. package/dist/src/modules/index.mjs.map +1 -0
  129. package/dist/src/modules/json/file.js +16 -0
  130. package/dist/src/modules/json/file.js.map +1 -0
  131. package/dist/src/modules/json/file.mjs +13 -0
  132. package/dist/src/modules/json/file.mjs.map +1 -0
  133. package/dist/src/modules/json/transform-api.js +38 -0
  134. package/dist/src/modules/json/transform-api.js.map +1 -0
  135. package/dist/src/modules/json/transform-api.mjs +35 -0
  136. package/dist/src/modules/json/transform-api.mjs.map +1 -0
  137. package/dist/src/modules/logger/index.js +8 -0
  138. package/dist/src/modules/logger/index.js.map +1 -0
  139. package/dist/src/modules/logger/index.mjs +2 -0
  140. package/dist/src/modules/logger/index.mjs.map +1 -0
  141. package/dist/src/modules/logger/logger.js +76 -0
  142. package/dist/src/modules/logger/logger.js.map +1 -0
  143. package/dist/src/modules/logger/logger.mjs +73 -0
  144. package/dist/src/modules/logger/logger.mjs.map +1 -0
  145. package/dist/src/modules/npm/constants.js +6 -0
  146. package/dist/src/modules/npm/constants.js.map +1 -0
  147. package/dist/src/modules/npm/constants.mjs +4 -0
  148. package/dist/src/modules/npm/constants.mjs.map +1 -0
  149. package/dist/src/modules/npm/package.js +55 -0
  150. package/dist/src/modules/npm/package.js.map +1 -0
  151. package/dist/src/modules/npm/package.mjs +52 -0
  152. package/dist/src/modules/npm/package.mjs.map +1 -0
  153. package/dist/src/modules/project/constants.js +45 -0
  154. package/dist/src/modules/project/constants.js.map +1 -0
  155. package/dist/src/modules/project/constants.mjs +35 -0
  156. package/dist/src/modules/project/constants.mjs.map +1 -0
  157. package/dist/src/modules/project/index.js +15 -0
  158. package/dist/src/modules/project/index.js.map +1 -0
  159. package/dist/src/modules/project/index.mjs +5 -0
  160. package/dist/src/modules/project/index.mjs.map +1 -0
  161. package/dist/src/modules/project/project.js +208 -0
  162. package/dist/src/modules/project/project.js.map +1 -0
  163. package/dist/src/modules/project/project.mjs +203 -0
  164. package/dist/src/modules/project/project.mjs.map +1 -0
  165. package/dist/src/modules/project/utils.js +26 -0
  166. package/dist/src/modules/project/utils.js.map +1 -0
  167. package/dist/src/modules/project/utils.mjs +21 -0
  168. package/dist/src/modules/project/utils.mjs.map +1 -0
  169. package/dist/src/modules/report/index.js +9 -0
  170. package/dist/src/modules/report/index.js.map +1 -0
  171. package/dist/src/modules/report/index.mjs +2 -0
  172. package/dist/src/modules/report/index.mjs.map +1 -0
  173. package/dist/src/modules/report/report.js +13 -0
  174. package/dist/src/modules/report/report.js.map +1 -0
  175. package/dist/src/modules/report/report.mjs +10 -0
  176. package/dist/src/modules/report/report.mjs.map +1 -0
  177. package/dist/src/modules/requirement/index.js +8 -0
  178. package/dist/src/modules/requirement/index.js.map +1 -0
  179. package/dist/src/modules/requirement/index.mjs +2 -0
  180. package/dist/src/modules/requirement/index.mjs.map +1 -0
  181. package/dist/src/modules/requirement/requirement.js +55 -0
  182. package/dist/src/modules/requirement/requirement.js.map +1 -0
  183. package/dist/src/modules/requirement/requirement.mjs +52 -0
  184. package/dist/src/modules/requirement/requirement.mjs.map +1 -0
  185. package/dist/src/modules/runner/code/code.js +21 -0
  186. package/dist/src/modules/runner/code/code.js.map +1 -0
  187. package/dist/src/modules/runner/code/code.mjs +18 -0
  188. package/dist/src/modules/runner/code/code.mjs.map +1 -0
  189. package/dist/src/modules/runner/code/index.js +8 -0
  190. package/dist/src/modules/runner/code/index.js.map +1 -0
  191. package/dist/src/modules/runner/code/index.mjs +2 -0
  192. package/dist/src/modules/runner/code/index.mjs.map +1 -0
  193. package/dist/src/modules/runner/index.js +10 -0
  194. package/dist/src/modules/runner/index.js.map +1 -0
  195. package/dist/src/modules/runner/index.mjs +5 -0
  196. package/dist/src/modules/runner/index.mjs.map +1 -0
  197. package/dist/src/modules/runner/json/index.js +8 -0
  198. package/dist/src/modules/runner/json/index.js.map +1 -0
  199. package/dist/src/modules/runner/json/index.mjs +2 -0
  200. package/dist/src/modules/runner/json/index.mjs.map +1 -0
  201. package/dist/src/modules/runner/json/json.js +21 -0
  202. package/dist/src/modules/runner/json/json.js.map +1 -0
  203. package/dist/src/modules/runner/json/json.mjs +18 -0
  204. package/dist/src/modules/runner/json/json.mjs.map +1 -0
  205. package/dist/src/modules/runner/json/transform.js +85 -0
  206. package/dist/src/modules/runner/json/transform.js.map +1 -0
  207. package/dist/src/modules/runner/json/transform.mjs +83 -0
  208. package/dist/src/modules/runner/json/transform.mjs.map +1 -0
  209. package/dist/src/modules/runner/runner.js +22 -0
  210. package/dist/src/modules/runner/runner.js.map +1 -0
  211. package/dist/src/modules/runner/runner.mjs +20 -0
  212. package/dist/src/modules/runner/runner.mjs.map +1 -0
  213. package/dist/src/modules/timer/constants.js +6 -0
  214. package/dist/src/modules/timer/constants.js.map +1 -0
  215. package/dist/src/modules/timer/constants.mjs +4 -0
  216. package/dist/src/modules/timer/constants.mjs.map +1 -0
  217. package/dist/src/modules/timer/index.js +10 -0
  218. package/dist/src/modules/timer/index.js.map +1 -0
  219. package/dist/src/modules/timer/index.mjs +4 -0
  220. package/dist/src/modules/timer/index.mjs.map +1 -0
  221. package/dist/src/modules/timer/timer.js +33 -0
  222. package/dist/src/modules/timer/timer.js.map +1 -0
  223. package/dist/src/modules/timer/timer.mjs +30 -0
  224. package/dist/src/modules/timer/timer.mjs.map +1 -0
  225. package/dist/src/modules/upgrader/constants.js +6 -0
  226. package/dist/src/modules/upgrader/constants.js.map +1 -0
  227. package/dist/src/modules/upgrader/constants.mjs +4 -0
  228. package/dist/src/modules/upgrader/constants.mjs.map +1 -0
  229. package/dist/src/modules/upgrader/index.js +10 -0
  230. package/dist/src/modules/upgrader/index.js.map +1 -0
  231. package/dist/src/modules/upgrader/index.mjs +4 -0
  232. package/dist/src/modules/upgrader/index.mjs.map +1 -0
  233. package/dist/src/modules/upgrader/upgrader.js +266 -0
  234. package/dist/src/modules/upgrader/upgrader.js.map +1 -0
  235. package/dist/src/modules/upgrader/upgrader.mjs +263 -0
  236. package/dist/src/modules/upgrader/upgrader.mjs.map +1 -0
  237. package/dist/src/modules/version/index.js +20 -0
  238. package/dist/src/modules/version/index.js.map +1 -0
  239. package/dist/src/modules/version/index.mjs +5 -0
  240. package/dist/src/modules/version/index.mjs.map +1 -0
  241. package/dist/src/modules/version/range.js +81 -0
  242. package/dist/src/modules/version/range.js.map +1 -0
  243. package/dist/src/modules/version/range.mjs +75 -0
  244. package/dist/src/modules/version/range.mjs.map +1 -0
  245. package/dist/src/modules/version/semver.js +26 -0
  246. package/dist/src/modules/version/semver.js.map +1 -0
  247. package/dist/src/modules/version/semver.mjs +20 -0
  248. package/dist/src/modules/version/semver.mjs.map +1 -0
  249. package/dist/src/modules/version/types.js +12 -0
  250. package/dist/src/modules/version/types.js.map +1 -0
  251. package/dist/src/modules/version/types.mjs +12 -0
  252. package/dist/src/modules/version/types.mjs.map +1 -0
  253. package/dist/src/tasks/codemods/list-codemods.js +40 -0
  254. package/dist/src/tasks/codemods/list-codemods.js.map +1 -0
  255. package/dist/src/tasks/codemods/list-codemods.mjs +38 -0
  256. package/dist/src/tasks/codemods/list-codemods.mjs.map +1 -0
  257. package/dist/src/tasks/codemods/run-codemods.js +36 -0
  258. package/dist/src/tasks/codemods/run-codemods.js.map +1 -0
  259. package/dist/src/tasks/codemods/run-codemods.mjs +34 -0
  260. package/dist/src/tasks/codemods/run-codemods.mjs.map +1 -0
  261. package/dist/src/tasks/codemods/utils.js +54 -0
  262. package/dist/src/tasks/codemods/utils.js.map +1 -0
  263. package/dist/src/tasks/codemods/utils.mjs +50 -0
  264. package/dist/src/tasks/codemods/utils.mjs.map +1 -0
  265. package/dist/src/tasks/index.js +15 -0
  266. package/dist/src/tasks/index.js.map +1 -0
  267. package/dist/src/tasks/index.mjs +7 -0
  268. package/dist/src/tasks/index.mjs.map +1 -0
  269. package/dist/src/tasks/upgrade/prompts/latest.js +48 -0
  270. package/dist/src/tasks/upgrade/prompts/latest.js.map +1 -0
  271. package/dist/src/tasks/upgrade/prompts/latest.mjs +46 -0
  272. package/dist/src/tasks/upgrade/prompts/latest.mjs.map +1 -0
  273. package/dist/src/tasks/upgrade/requirements/common.js +40 -0
  274. package/dist/src/tasks/upgrade/requirements/common.js.map +1 -0
  275. package/dist/src/tasks/upgrade/requirements/common.mjs +35 -0
  276. package/dist/src/tasks/upgrade/requirements/common.mjs.map +1 -0
  277. package/dist/src/tasks/upgrade/requirements/major.js +29 -0
  278. package/dist/src/tasks/upgrade/requirements/major.js.map +1 -0
  279. package/dist/src/tasks/upgrade/requirements/major.mjs +26 -0
  280. package/dist/src/tasks/upgrade/requirements/major.mjs.map +1 -0
  281. package/dist/src/tasks/upgrade/upgrade.js +69 -0
  282. package/dist/src/tasks/upgrade/upgrade.js.map +1 -0
  283. package/dist/src/tasks/upgrade/upgrade.mjs +67 -0
  284. package/dist/src/tasks/upgrade/upgrade.mjs.map +1 -0
  285. package/dist/tasks/codemods/index.d.ts +2 -1
  286. package/dist/tasks/codemods/index.d.ts.map +1 -1
  287. package/dist/tasks/codemods/list-codemods.d.ts +3 -0
  288. package/dist/tasks/codemods/list-codemods.d.ts.map +1 -0
  289. package/dist/tasks/codemods/run-codemods.d.ts +3 -0
  290. package/dist/tasks/codemods/run-codemods.d.ts.map +1 -0
  291. package/dist/tasks/codemods/types.d.ts +9 -3
  292. package/dist/tasks/codemods/types.d.ts.map +1 -1
  293. package/dist/tasks/codemods/utils.d.ts +6 -0
  294. package/dist/tasks/codemods/utils.d.ts.map +1 -0
  295. package/dist/tasks/index.d.ts +1 -1
  296. package/dist/tasks/index.d.ts.map +1 -1
  297. package/dist/tasks/upgrade/prompts/index.d.ts +2 -0
  298. package/dist/tasks/upgrade/prompts/index.d.ts.map +1 -0
  299. package/dist/tasks/upgrade/prompts/latest.d.ts +9 -0
  300. package/dist/tasks/upgrade/prompts/latest.d.ts.map +1 -0
  301. package/dist/tasks/upgrade/requirements/major.d.ts.map +1 -1
  302. package/dist/tasks/upgrade/upgrade.d.ts.map +1 -1
  303. package/package.json +16 -15
  304. package/resources/codemods/5.0.0/comment-out-lifecycle-files.code.ts +63 -0
  305. package/resources/codemods/5.0.0/dependency-remove-strapi-plugin-i18n.json.ts +31 -0
  306. package/resources/codemods/5.0.0/dependency-upgrade-react-and-react-dom.json.ts +67 -0
  307. package/resources/codemods/5.0.0/dependency-upgrade-react-router-dom.json.ts +59 -0
  308. package/resources/codemods/5.0.0/dependency-upgrade-styled-components.json.ts +49 -0
  309. package/resources/codemods/5.0.0/deprecate-helper-plugin.code.ts +192 -0
  310. package/resources/codemods/5.0.0/entity-service-document-service.code.ts +437 -0
  311. package/resources/codemods/5.0.0/s3-keys-wrapped-in-credentials.code.ts +1 -1
  312. package/resources/codemods/5.0.0/sqlite3-to-better-sqlite3.json.ts +5 -3
  313. package/resources/codemods/5.0.0/strapi-public-interface.code.ts +126 -0
  314. package/resources/codemods/5.0.0/use-uid-for-config-namespace.code.ts +1 -1
  315. package/resources/codemods/5.0.0/utils-public-interface.code.ts +320 -0
  316. package/resources/codemods/5.1.0/dependency-better-sqlite3.json.ts +48 -0
  317. package/resources/examples/console.log-to-console.info.code.ts +1 -1
  318. package/resources/examples/disable-jsx-buttons.code.ts +42 -0
  319. package/resources/utils/change-import.ts +118 -0
  320. package/resources/utils/replace-jsx.ts +49 -0
  321. package/dist/_chunks/codemod-runner-oPpELfwO.js +0 -730
  322. package/dist/_chunks/codemod-runner-oPpELfwO.js.map +0 -1
  323. package/dist/_chunks/codemods-qc8_QMWD.js +0 -108
  324. package/dist/_chunks/codemods-qc8_QMWD.js.map +0 -1
  325. package/dist/_chunks/index-GHKaxdhJ.js +0 -103
  326. package/dist/_chunks/index-GHKaxdhJ.js.map +0 -1
  327. package/dist/_chunks/upgrade-4SxXG3Oe.js +0 -357
  328. package/dist/_chunks/upgrade-4SxXG3Oe.js.map +0 -1
  329. package/dist/tasks/codemods/codemods.d.ts +0 -3
  330. package/dist/tasks/codemods/codemods.d.ts.map +0 -1
@@ -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"}
@@ -1,8 +1,13 @@
1
+ import type { NPM } from '../npm';
2
+ import type { AppProject } from '../project';
1
3
  import type { Version } from '../version';
2
4
  import type { Requirement } from '../requirement';
3
5
  import type { Logger } from '../logger';
4
6
  import type { ConfirmationCallback } from '../common/types';
5
7
  export interface Upgrader {
8
+ getNPMPackage(): NPM.Package;
9
+ getProject(): AppProject;
10
+ getTarget(): Version.SemVer;
6
11
  setTarget(target: Version.SemVer): this;
7
12
  setRequirements(requirements: Requirement.Requirement[]): this;
8
13
  setLogger(logger: Logger): this;
@@ -10,6 +15,7 @@ export interface Upgrader {
10
15
  syncCodemodsTarget(): this;
11
16
  dry(enabled?: boolean): this;
12
17
  onConfirm(callback: ConfirmationCallback | null): this;
18
+ confirm(message: string): Promise<boolean>;
13
19
  addRequirement(requirement: Requirement.Requirement): this;
14
20
  upgrade(): Promise<UpgradeReport>;
15
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/upgrader/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,WAAW,QAAQ;IACvB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IACxC,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;IAC/D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IACrD,kBAAkB,IAAI,IAAI,CAAC;IAE3B,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC;IAEvD,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;IAE3D,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GACrB;IACE,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;CACb,GACD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/upgrader/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,WAAW,QAAQ;IACvB,aAAa,IAAI,GAAG,CAAC,OAAO,CAAC;IAC7B,UAAU,IAAI,UAAU,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAE5B,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IACxC,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;IAC/D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IACrD,kBAAkB,IAAI,IAAI,CAAC;IAE3B,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC;IAEvD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3C,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;IAE3D,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GACrB;IACE,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;CACb,GACD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,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,10 @@ 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
+ getNPMPackage(): NPM.Package;
19
+ getProject(): AppProject;
20
+ getTarget(): Version.SemVer;
18
21
  setRequirements(requirements: Requirement.Requirement[]): this;
19
22
  setTarget(target: Version.SemVer): this;
20
23
  syncCodemodsTarget(): this;
@@ -24,6 +27,7 @@ export declare class Upgrader implements UpgraderInterface {
24
27
  dry(enabled?: boolean): this;
25
28
  addRequirement(requirement: Requirement.Requirement): this;
26
29
  upgrade(): Promise<UpgradeReport>;
30
+ confirm(message: string): Promise<boolean>;
27
31
  private checkRequirements;
28
32
  private onSuccessfulRequirement;
29
33
  private onFailedRequirement;
@@ -32,5 +36,5 @@ export declare class Upgrader implements UpgraderInterface {
32
36
  private installDependencies;
33
37
  private runCodemods;
34
38
  }
35
- export declare const upgraderFactory: (project: Project, target: Version.ReleaseType | Version.SemVer, npmPackage: NPM.Package) => Upgrader;
39
+ export declare const upgraderFactory: (project: AppProject, target: Version.ReleaseType | Version.SemVer, npmPackage: NPM.Package) => Upgrader;
36
40
  //# 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,aAAa,IAAI,GAAG,CAAC,OAAO;IAI5B,UAAU,IAAI,UAAU;IAIxB,SAAS,IAAI,OAAO,CAAC,MAAM;IAI3B,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;IAgDjC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAQlC,iBAAiB;YAejB,uBAAuB;YAWvB,mBAAmB;YAyBnB,kBAAkB;IA+BhC,OAAO,CAAC,2BAA2B;YAkBrB,mBAAmB;YAkBnB,WAAW;CAW1B;AAyCD,eAAO,MAAM,eAAe,YACjB,UAAU,UACX,QAAQ,WAAW,GAAG,QAAQ,MAAM,cAChC,IAAI,OAAO,aAUxB,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,iBAiD5F,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"}
@@ -5,6 +5,7 @@ export type { SemVer, Range } from 'semver';
5
5
  export declare enum ReleaseType {
6
6
  Major = "major",
7
7
  Minor = "minor",
8
- Patch = "patch"
8
+ Patch = "patch",
9
+ Latest = "latest"
9
10
  }
10
11
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/version/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,MAAM,cAAc,GACtB,GAAG,OAAO,EAAE,GACZ,GAAG,OAAO,IAAI,OAAO,EAAE,GACvB,GAAG,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG,GAAG,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;AAE/D,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE5C,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/version/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,MAAM,cAAc,GACtB,GAAG,OAAO,EAAE,GACZ,GAAG,OAAO,IAAI,OAAO,EAAE,GACvB,GAAG,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG,GAAG,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;AAE/D,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE5C,oBAAY,WAAW;IAErB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IAEf,MAAM,WAAW;CAClB"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var version = "0.0.0-experimental.fca58d9b01ba89012d84a58a20556a6fd716cb92";
4
+
5
+ exports.version = version;
6
+ //# sourceMappingURL=package.json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,4 @@
1
+ var version = "0.0.0-experimental.fca58d9b01ba89012d84a58a20556a6fd716cb92";
2
+
3
+ export { version };
4
+ //# sourceMappingURL=package.json.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,120 @@
1
+ 'use strict';
2
+
3
+ var prompts = require('prompts');
4
+ var logger = require('../../modules/logger/logger.js');
5
+ require('semver');
6
+ var types = require('../../modules/version/types.js');
7
+ var errors = require('../errors.js');
8
+ require('node:path');
9
+ require('cli-table3');
10
+ require('chalk');
11
+ require('node:assert');
12
+ require('fs-extra');
13
+ require('fast-glob');
14
+ require('jscodeshift/src/Runner');
15
+ require('lodash/fp');
16
+ require('esbuild-register/dist/node');
17
+ require('../../modules/project/constants.js');
18
+ require('@strapi/utils');
19
+ require('../../modules/codemod/constants.js');
20
+ require('../../modules/codemod-repository/constants.js');
21
+ require('../../tasks/upgrade/requirements/common.js');
22
+ var runCodemods$1 = require('../../tasks/codemods/run-codemods.js');
23
+ var listCodemods$1 = require('../../tasks/codemods/list-codemods.js');
24
+ var options = require('../options.js');
25
+
26
+ const DEFAULT_TARGET = types.ReleaseType.Major;
27
+ const runCodemods = async (options)=>{
28
+ const { silent, debug } = options;
29
+ const logger$1 = logger.loggerFactory({
30
+ silent,
31
+ debug
32
+ });
33
+ logger$1.warn("Please make sure you've created a backup of your codebase and files before running the codemods");
34
+ const confirm = async (message)=>{
35
+ const { confirm } = await prompts({
36
+ name: 'confirm',
37
+ type: 'confirm',
38
+ message
39
+ });
40
+ // If confirm is undefined (Ctrl + C), default to false
41
+ return confirm ?? false;
42
+ };
43
+ const selectCodemods = async (codemods)=>{
44
+ const selectableCodemods = codemods.map(({ version, codemods })=>codemods.map((codemod)=>({
45
+ title: `(${version}) ${codemod.format()}`,
46
+ value: codemod,
47
+ selected: true
48
+ }))).flat();
49
+ if (selectableCodemods.length === 0) {
50
+ logger$1.info('No codemods to run');
51
+ return [];
52
+ }
53
+ const { selectedCodemods } = await prompts({
54
+ type: 'autocompleteMultiselect',
55
+ name: 'selectedCodemods',
56
+ message: 'Choose the codemods you would like to run:',
57
+ choices: selectableCodemods
58
+ });
59
+ if (!selectedCodemods || selectedCodemods.length === 0) {
60
+ logger$1.info('No codemods selected');
61
+ return [];
62
+ }
63
+ return selectedCodemods.map((codemod)=>({
64
+ version: codemod.version,
65
+ codemods: [
66
+ codemod
67
+ ]
68
+ }));
69
+ };
70
+ return runCodemods$1.runCodemods({
71
+ logger: logger$1,
72
+ confirm,
73
+ selectCodemods,
74
+ dry: options.dry,
75
+ cwd: options.projectPath,
76
+ target: options.range ?? DEFAULT_TARGET,
77
+ uid: options.uid
78
+ }).catch((err)=>errors.handleError(err, options.silent));
79
+ };
80
+ const listCodemods = async (options)=>{
81
+ const { silent, debug } = options;
82
+ const logger$1 = logger.loggerFactory({
83
+ silent,
84
+ debug
85
+ });
86
+ return listCodemods$1.listCodemods({
87
+ cwd: options.projectPath,
88
+ target: options.range ?? DEFAULT_TARGET,
89
+ logger: logger$1
90
+ }).catch((err)=>errors.handleError(err, options.silent));
91
+ };
92
+ /**
93
+ * Registers codemods related commands.
94
+ */ const register = (program)=>{
95
+ const codemodsCommand = program.command('codemods');
96
+ // upgrade codemods run [options] [uid]
97
+ codemodsCommand.command('run [uid]').description(`
98
+ Executes a set of codemods on the current project.
99
+
100
+ If the optional UID argument is provided, the command specifically runs the codemod associated with that UID.
101
+ Without the UID, the command produces a list of all available codemods for your project.
102
+
103
+ By default, when executed on a Strapi application project, it offers codemods matching the current major version of the app.
104
+ When executed on a Strapi plugin project, it shows every codemods.
105
+ `).addOption(options.projectPathOption).addOption(options.dryOption).addOption(options.debugOption).addOption(options.silentOption).addOption(options.rangeOption).action(async (uid, options)=>{
106
+ return runCodemods({
107
+ ...options,
108
+ uid
109
+ });
110
+ });
111
+ // upgrade codemods ls [options]
112
+ codemodsCommand.command('ls').description(`List available codemods`).addOption(options.projectPathOption).addOption(options.debugOption).addOption(options.silentOption).addOption(options.rangeOption).action(async (options)=>{
113
+ return listCodemods(options);
114
+ });
115
+ };
116
+
117
+ exports.listCodemods = listCodemods;
118
+ exports.register = register;
119
+ exports.runCodemods = runCodemods;
120
+ //# sourceMappingURL=codemods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemods.js","sources":["../../../../src/cli/commands/codemods.ts"],"sourcesContent":["import prompts from 'prompts';\n\nimport type { Command } from 'commander';\nimport { loggerFactory } from '../../modules/logger';\nimport { Version } from '../../modules/version';\nimport { handleError } from '../errors';\nimport * as tasks from '../../tasks';\nimport { debugOption, dryOption, projectPathOption, rangeOption, silentOption } from '../options';\n\nimport type {\n CLIListCodemodsOptions,\n CLIRunCodemodsOptions,\n ListCodemodsCommand,\n RunCodemodsCommand,\n} from '../types';\nimport type { Codemod } from '../../modules/codemod';\n\nconst DEFAULT_TARGET = Version.ReleaseType.Major;\n\nexport const runCodemods: RunCodemodsCommand = async (options) => {\n const { silent, debug } = options;\n const logger = loggerFactory({ silent, debug });\n\n logger.warn(\n \"Please make sure you've created a backup of your codebase and files before running the codemods\"\n );\n\n const confirm = async (message: string) => {\n const { confirm } = await prompts({\n name: 'confirm',\n type: 'confirm',\n message,\n });\n\n // If confirm is undefined (Ctrl + C), default to false\n return confirm ?? false;\n };\n\n const selectCodemods = async (codemods: Codemod.VersionedCollection[]) => {\n const selectableCodemods = codemods\n .map(({ version, codemods }) =>\n codemods.map((codemod) => ({\n title: `(${version}) ${codemod.format()}`,\n value: codemod,\n selected: true,\n }))\n )\n .flat();\n\n if (selectableCodemods.length === 0) {\n logger.info('No codemods to run');\n return [];\n }\n\n const { selectedCodemods }: { selectedCodemods: Codemod.Codemod[] } = await prompts({\n type: 'autocompleteMultiselect',\n name: 'selectedCodemods',\n message: 'Choose the codemods you would like to run:',\n choices: selectableCodemods,\n });\n\n if (!selectedCodemods || selectedCodemods.length === 0) {\n logger.info('No codemods selected');\n return [];\n }\n\n return selectedCodemods.map<Codemod.VersionedCollection>((codemod) => ({\n version: codemod.version,\n codemods: [codemod],\n }));\n };\n\n return tasks\n .runCodemods({\n logger,\n confirm,\n selectCodemods,\n dry: options.dry,\n cwd: options.projectPath,\n target: options.range ?? DEFAULT_TARGET,\n uid: options.uid,\n })\n .catch((err) => handleError(err, options.silent));\n};\n\nexport const listCodemods: ListCodemodsCommand = async (options) => {\n const { silent, debug } = options;\n const logger = loggerFactory({ silent, debug });\n\n return tasks\n .listCodemods({\n cwd: options.projectPath,\n target: options.range ?? DEFAULT_TARGET,\n logger,\n })\n .catch((err) => handleError(err, options.silent));\n};\n\n/**\n * Registers codemods related commands.\n */\nexport const register = (program: Command) => {\n const codemodsCommand = program.command('codemods');\n\n // upgrade codemods run [options] [uid]\n codemodsCommand\n .command('run [uid]')\n .description(\n `\nExecutes a set of codemods on the current project.\n\nIf the optional UID argument is provided, the command specifically runs the codemod associated with that UID.\nWithout the UID, the command produces a list of all available codemods for your project.\n\nBy default, when executed on a Strapi application project, it offers codemods matching the current major version of the app.\nWhen executed on a Strapi plugin project, it shows every codemods.\n`\n )\n .addOption(projectPathOption)\n .addOption(dryOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(rangeOption)\n .action(async (uid: string | undefined, options: CLIRunCodemodsOptions) => {\n return runCodemods({ ...options, uid });\n });\n\n // upgrade codemods ls [options]\n codemodsCommand\n .command('ls')\n .description(`List available codemods`)\n .addOption(projectPathOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(rangeOption)\n .action(async (options: CLIListCodemodsOptions) => {\n return listCodemods(options);\n });\n};\n"],"names":["DEFAULT_TARGET","Version","Major","runCodemods","options","silent","debug","logger","loggerFactory","warn","confirm","message","prompts","name","type","selectCodemods","codemods","selectableCodemods","map","version","codemod","title","format","value","selected","flat","length","info","selectedCodemods","choices","tasks","dry","cwd","projectPath","target","range","uid","catch","err","handleError","listCodemods","register","program","codemodsCommand","command","description","addOption","projectPathOption","dryOption","debugOption","silentOption","rangeOption","action"],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import prompts from 'prompts';
2
+ import { loggerFactory } from '../../modules/logger/logger.mjs';
3
+ import 'semver';
4
+ import { ReleaseType } from '../../modules/version/types.mjs';
5
+ import { handleError } from '../errors.mjs';
6
+ import 'node:path';
7
+ import 'cli-table3';
8
+ import 'chalk';
9
+ import 'node:assert';
10
+ import 'fs-extra';
11
+ import 'fast-glob';
12
+ import 'jscodeshift/src/Runner';
13
+ import 'lodash/fp';
14
+ import 'esbuild-register/dist/node';
15
+ import '../../modules/project/constants.mjs';
16
+ import '@strapi/utils';
17
+ import '../../modules/codemod/constants.mjs';
18
+ import '../../modules/codemod-repository/constants.mjs';
19
+ import '../../tasks/upgrade/requirements/common.mjs';
20
+ import { runCodemods as runCodemods$1 } from '../../tasks/codemods/run-codemods.mjs';
21
+ import { listCodemods as listCodemods$1 } from '../../tasks/codemods/list-codemods.mjs';
22
+ import { projectPathOption, dryOption, debugOption, silentOption, rangeOption } from '../options.mjs';
23
+
24
+ const DEFAULT_TARGET = ReleaseType.Major;
25
+ const runCodemods = async (options)=>{
26
+ const { silent, debug } = options;
27
+ const logger = loggerFactory({
28
+ silent,
29
+ debug
30
+ });
31
+ logger.warn("Please make sure you've created a backup of your codebase and files before running the codemods");
32
+ const confirm = async (message)=>{
33
+ const { confirm } = await prompts({
34
+ name: 'confirm',
35
+ type: 'confirm',
36
+ message
37
+ });
38
+ // If confirm is undefined (Ctrl + C), default to false
39
+ return confirm ?? false;
40
+ };
41
+ const selectCodemods = async (codemods)=>{
42
+ const selectableCodemods = codemods.map(({ version, codemods })=>codemods.map((codemod)=>({
43
+ title: `(${version}) ${codemod.format()}`,
44
+ value: codemod,
45
+ selected: true
46
+ }))).flat();
47
+ if (selectableCodemods.length === 0) {
48
+ logger.info('No codemods to run');
49
+ return [];
50
+ }
51
+ const { selectedCodemods } = await prompts({
52
+ type: 'autocompleteMultiselect',
53
+ name: 'selectedCodemods',
54
+ message: 'Choose the codemods you would like to run:',
55
+ choices: selectableCodemods
56
+ });
57
+ if (!selectedCodemods || selectedCodemods.length === 0) {
58
+ logger.info('No codemods selected');
59
+ return [];
60
+ }
61
+ return selectedCodemods.map((codemod)=>({
62
+ version: codemod.version,
63
+ codemods: [
64
+ codemod
65
+ ]
66
+ }));
67
+ };
68
+ return runCodemods$1({
69
+ logger,
70
+ confirm,
71
+ selectCodemods,
72
+ dry: options.dry,
73
+ cwd: options.projectPath,
74
+ target: options.range ?? DEFAULT_TARGET,
75
+ uid: options.uid
76
+ }).catch((err)=>handleError(err, options.silent));
77
+ };
78
+ const listCodemods = async (options)=>{
79
+ const { silent, debug } = options;
80
+ const logger = loggerFactory({
81
+ silent,
82
+ debug
83
+ });
84
+ return listCodemods$1({
85
+ cwd: options.projectPath,
86
+ target: options.range ?? DEFAULT_TARGET,
87
+ logger
88
+ }).catch((err)=>handleError(err, options.silent));
89
+ };
90
+ /**
91
+ * Registers codemods related commands.
92
+ */ const register = (program)=>{
93
+ const codemodsCommand = program.command('codemods');
94
+ // upgrade codemods run [options] [uid]
95
+ codemodsCommand.command('run [uid]').description(`
96
+ Executes a set of codemods on the current project.
97
+
98
+ If the optional UID argument is provided, the command specifically runs the codemod associated with that UID.
99
+ Without the UID, the command produces a list of all available codemods for your project.
100
+
101
+ By default, when executed on a Strapi application project, it offers codemods matching the current major version of the app.
102
+ When executed on a Strapi plugin project, it shows every codemods.
103
+ `).addOption(projectPathOption).addOption(dryOption).addOption(debugOption).addOption(silentOption).addOption(rangeOption).action(async (uid, options)=>{
104
+ return runCodemods({
105
+ ...options,
106
+ uid
107
+ });
108
+ });
109
+ // upgrade codemods ls [options]
110
+ codemodsCommand.command('ls').description(`List available codemods`).addOption(projectPathOption).addOption(debugOption).addOption(silentOption).addOption(rangeOption).action(async (options)=>{
111
+ return listCodemods(options);
112
+ });
113
+ };
114
+
115
+ export { listCodemods, register, runCodemods };
116
+ //# sourceMappingURL=codemods.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemods.mjs","sources":["../../../../src/cli/commands/codemods.ts"],"sourcesContent":["import prompts from 'prompts';\n\nimport type { Command } from 'commander';\nimport { loggerFactory } from '../../modules/logger';\nimport { Version } from '../../modules/version';\nimport { handleError } from '../errors';\nimport * as tasks from '../../tasks';\nimport { debugOption, dryOption, projectPathOption, rangeOption, silentOption } from '../options';\n\nimport type {\n CLIListCodemodsOptions,\n CLIRunCodemodsOptions,\n ListCodemodsCommand,\n RunCodemodsCommand,\n} from '../types';\nimport type { Codemod } from '../../modules/codemod';\n\nconst DEFAULT_TARGET = Version.ReleaseType.Major;\n\nexport const runCodemods: RunCodemodsCommand = async (options) => {\n const { silent, debug } = options;\n const logger = loggerFactory({ silent, debug });\n\n logger.warn(\n \"Please make sure you've created a backup of your codebase and files before running the codemods\"\n );\n\n const confirm = async (message: string) => {\n const { confirm } = await prompts({\n name: 'confirm',\n type: 'confirm',\n message,\n });\n\n // If confirm is undefined (Ctrl + C), default to false\n return confirm ?? false;\n };\n\n const selectCodemods = async (codemods: Codemod.VersionedCollection[]) => {\n const selectableCodemods = codemods\n .map(({ version, codemods }) =>\n codemods.map((codemod) => ({\n title: `(${version}) ${codemod.format()}`,\n value: codemod,\n selected: true,\n }))\n )\n .flat();\n\n if (selectableCodemods.length === 0) {\n logger.info('No codemods to run');\n return [];\n }\n\n const { selectedCodemods }: { selectedCodemods: Codemod.Codemod[] } = await prompts({\n type: 'autocompleteMultiselect',\n name: 'selectedCodemods',\n message: 'Choose the codemods you would like to run:',\n choices: selectableCodemods,\n });\n\n if (!selectedCodemods || selectedCodemods.length === 0) {\n logger.info('No codemods selected');\n return [];\n }\n\n return selectedCodemods.map<Codemod.VersionedCollection>((codemod) => ({\n version: codemod.version,\n codemods: [codemod],\n }));\n };\n\n return tasks\n .runCodemods({\n logger,\n confirm,\n selectCodemods,\n dry: options.dry,\n cwd: options.projectPath,\n target: options.range ?? DEFAULT_TARGET,\n uid: options.uid,\n })\n .catch((err) => handleError(err, options.silent));\n};\n\nexport const listCodemods: ListCodemodsCommand = async (options) => {\n const { silent, debug } = options;\n const logger = loggerFactory({ silent, debug });\n\n return tasks\n .listCodemods({\n cwd: options.projectPath,\n target: options.range ?? DEFAULT_TARGET,\n logger,\n })\n .catch((err) => handleError(err, options.silent));\n};\n\n/**\n * Registers codemods related commands.\n */\nexport const register = (program: Command) => {\n const codemodsCommand = program.command('codemods');\n\n // upgrade codemods run [options] [uid]\n codemodsCommand\n .command('run [uid]')\n .description(\n `\nExecutes a set of codemods on the current project.\n\nIf the optional UID argument is provided, the command specifically runs the codemod associated with that UID.\nWithout the UID, the command produces a list of all available codemods for your project.\n\nBy default, when executed on a Strapi application project, it offers codemods matching the current major version of the app.\nWhen executed on a Strapi plugin project, it shows every codemods.\n`\n )\n .addOption(projectPathOption)\n .addOption(dryOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(rangeOption)\n .action(async (uid: string | undefined, options: CLIRunCodemodsOptions) => {\n return runCodemods({ ...options, uid });\n });\n\n // upgrade codemods ls [options]\n codemodsCommand\n .command('ls')\n .description(`List available codemods`)\n .addOption(projectPathOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(rangeOption)\n .action(async (options: CLIListCodemodsOptions) => {\n return listCodemods(options);\n });\n};\n"],"names":["DEFAULT_TARGET","Version","Major","runCodemods","options","silent","debug","logger","loggerFactory","warn","confirm","message","prompts","name","type","selectCodemods","codemods","selectableCodemods","map","version","codemod","title","format","value","selected","flat","length","info","selectedCodemods","choices","tasks","dry","cwd","projectPath","target","range","uid","catch","err","handleError","listCodemods","register","program","codemodsCommand","command","description","addOption","projectPathOption","dryOption","debugOption","silentOption","rangeOption","action"],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ 'use strict';
2
+
3
+ var prompts = require('prompts');
4
+ var commander = require('commander');
5
+ var logger = require('../../modules/logger/logger.js');
6
+ var semver = require('../../modules/version/semver.js');
7
+ require('semver');
8
+ var types = require('../../modules/version/types.js');
9
+ var errors = require('../errors.js');
10
+ var upgrade$1 = require('../../tasks/upgrade/upgrade.js');
11
+ require('../../tasks/upgrade/requirements/common.js');
12
+ require('cli-table3');
13
+ require('chalk');
14
+ require('node:path');
15
+ require('node:assert');
16
+ require('fs-extra');
17
+ require('fast-glob');
18
+ require('jscodeshift/src/Runner');
19
+ require('lodash/fp');
20
+ require('esbuild-register/dist/node');
21
+ require('../../modules/project/constants.js');
22
+ require('../../modules/codemod/constants.js');
23
+ require('../../modules/codemod-repository/constants.js');
24
+ var options = require('../options.js');
25
+
26
+ const upgrade = async (options)=>{
27
+ try {
28
+ const { silent, debug, yes } = options;
29
+ const logger$1 = logger.loggerFactory({
30
+ silent,
31
+ debug
32
+ });
33
+ logger$1.warn("Please make sure you've created a backup of your codebase and files before upgrading");
34
+ const confirm = async (message)=>{
35
+ if (yes) {
36
+ return true;
37
+ }
38
+ const { confirm } = await prompts({
39
+ name: 'confirm',
40
+ type: 'confirm',
41
+ message
42
+ });
43
+ // If confirm is undefined (Ctrl + C), default to false
44
+ return confirm ?? false;
45
+ };
46
+ await upgrade$1.upgrade({
47
+ logger: logger$1,
48
+ confirm,
49
+ dry: options.dry,
50
+ cwd: options.projectPath,
51
+ target: options.target,
52
+ codemodsTarget: options.codemodsTarget
53
+ });
54
+ } catch (err) {
55
+ errors.handleError(err, options.silent);
56
+ }
57
+ };
58
+ /**
59
+ * Registers upgrade related codemods.
60
+ */ const register = (program)=>{
61
+ const addReleaseUpgradeCommand = (releaseType, description)=>{
62
+ program.command(releaseType).description(description).addOption(options.projectPathOption).addOption(options.dryOption).addOption(options.debugOption).addOption(options.silentOption).addOption(options.autoConfirmOption).action(async (options)=>{
63
+ return upgrade({
64
+ ...options,
65
+ target: releaseType
66
+ });
67
+ });
68
+ };
69
+ // upgrade latest
70
+ addReleaseUpgradeCommand(types.ReleaseType.Latest, 'Upgrade to the latest available version of Strapi');
71
+ // upgrade major
72
+ addReleaseUpgradeCommand(types.ReleaseType.Major, 'Upgrade to the next available major version of Strapi');
73
+ // upgrade minor
74
+ addReleaseUpgradeCommand(types.ReleaseType.Minor, 'Upgrade to the latest minor and patch version of Strapi for the current major');
75
+ // upgrade patch
76
+ addReleaseUpgradeCommand(types.ReleaseType.Patch, 'Upgrade to latest patch version of Strapi for the current major and minor');
77
+ // upgrade to <target>
78
+ program.command('to <target>', {
79
+ hidden: true
80
+ }).description('Upgrade to the specified version of Strapi').addOption(options.projectPathOption).addOption(options.dryOption).addOption(options.debugOption).addOption(options.silentOption).addOption(options.autoConfirmOption).addOption(new commander.Option('-c, --codemods-target <codemodsTarget>', 'Use a custom target for the codemods execution. Useful when targeting pre-releases').argParser((codemodsTarget)=>{
81
+ if (!semver.isLiteralSemVer(codemodsTarget)) {
82
+ throw new commander.InvalidArgumentError(`Expected a version with the following format: "<number>.<number>.<number>"`);
83
+ }
84
+ return semver.semVerFactory(codemodsTarget);
85
+ })).action(async (target, options)=>{
86
+ if (!semver.isValidSemVer(target)) {
87
+ console.error(`Invalid target supplied, expected a valid semver but got "${target}"`);
88
+ process.exit(1);
89
+ }
90
+ return upgrade({
91
+ ...options,
92
+ target: semver.semVerFactory(target)
93
+ });
94
+ });
95
+ };
96
+
97
+ exports.register = register;
98
+ exports.upgrade = upgrade;
99
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.js","sources":["../../../../src/cli/commands/upgrade.ts"],"sourcesContent":["import prompts from 'prompts';\nimport { InvalidArgumentError, Option } from 'commander';\n\nimport type { Command } from 'commander';\n\nimport { loggerFactory } from '../../modules/logger';\nimport { Version, isLiteralSemVer, isValidSemVer, semVerFactory } from '../../modules/version';\nimport { handleError } from '../errors';\nimport * as tasks from '../../tasks';\nimport {\n autoConfirmOption,\n debugOption,\n dryOption,\n projectPathOption,\n silentOption,\n} from '../options';\n\nimport type { CLIUpgradeOptions, CLIUpgradeToOptions, UpgradeCommand } from '../types';\n\nexport const upgrade: UpgradeCommand = async (options) => {\n try {\n const { silent, debug, yes } = options;\n const logger = loggerFactory({ silent, debug });\n\n logger.warn(\n \"Please make sure you've created a backup of your codebase and files before upgrading\"\n );\n\n const confirm = async (message: string) => {\n if (yes) {\n return true;\n }\n\n const { confirm } = await prompts({\n name: 'confirm',\n type: 'confirm',\n message,\n });\n\n // If confirm is undefined (Ctrl + C), default to false\n return confirm ?? false;\n };\n\n await tasks.upgrade({\n logger,\n confirm,\n dry: options.dry,\n cwd: options.projectPath,\n target: options.target,\n codemodsTarget: options.codemodsTarget,\n });\n } catch (err) {\n handleError(err, options.silent);\n }\n};\n\n/**\n * Registers upgrade related codemods.\n */\nexport const register = (program: Command) => {\n const addReleaseUpgradeCommand = (releaseType: Version.ReleaseType, description: string) => {\n program\n .command(releaseType)\n .description(description)\n .addOption(projectPathOption)\n .addOption(dryOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(autoConfirmOption)\n .action(async (options: CLIUpgradeOptions) => {\n return upgrade({ ...options, target: releaseType });\n });\n };\n\n // upgrade latest\n addReleaseUpgradeCommand(\n Version.ReleaseType.Latest,\n 'Upgrade to the latest available version of Strapi'\n );\n\n // upgrade major\n addReleaseUpgradeCommand(\n Version.ReleaseType.Major,\n 'Upgrade to the next available major version of Strapi'\n );\n\n // upgrade minor\n addReleaseUpgradeCommand(\n Version.ReleaseType.Minor,\n 'Upgrade to the latest minor and patch version of Strapi for the current major'\n );\n\n // upgrade patch\n addReleaseUpgradeCommand(\n Version.ReleaseType.Patch,\n 'Upgrade to latest patch version of Strapi for the current major and minor'\n );\n\n // upgrade to <target>\n program\n .command('to <target>', { hidden: true })\n .description('Upgrade to the specified version of Strapi')\n .addOption(projectPathOption)\n .addOption(dryOption)\n .addOption(debugOption)\n .addOption(silentOption)\n .addOption(autoConfirmOption)\n .addOption(\n new Option(\n '-c, --codemods-target <codemodsTarget>',\n 'Use a custom target for the codemods execution. Useful when targeting pre-releases'\n ).argParser((codemodsTarget) => {\n if (!isLiteralSemVer(codemodsTarget)) {\n throw new InvalidArgumentError(\n `Expected a version with the following format: \"<number>.<number>.<number>\"`\n );\n }\n\n return semVerFactory(codemodsTarget);\n })\n )\n .action(async (target: string, options: CLIUpgradeToOptions) => {\n if (!isValidSemVer(target)) {\n console.error(`Invalid target supplied, expected a valid semver but got \"${target}\"`);\n process.exit(1);\n }\n\n return upgrade({ ...options, target: semVerFactory(target) });\n });\n};\n"],"names":["upgrade","options","silent","debug","yes","logger","loggerFactory","warn","confirm","message","prompts","name","type","tasks","dry","cwd","projectPath","target","codemodsTarget","err","handleError","register","program","addReleaseUpgradeCommand","releaseType","description","command","addOption","projectPathOption","dryOption","debugOption","silentOption","autoConfirmOption","action","Version","Latest","Major","Minor","Patch","hidden","Option","argParser","isLiteralSemVer","InvalidArgumentError","semVerFactory","isValidSemVer","console","error","process","exit"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import prompts from 'prompts';
2
+ import { Option, InvalidArgumentError } from 'commander';
3
+ import { loggerFactory } from '../../modules/logger/logger.mjs';
4
+ import { isLiteralSemVer, semVerFactory, isValidSemVer } from '../../modules/version/semver.mjs';
5
+ import 'semver';
6
+ import { ReleaseType } from '../../modules/version/types.mjs';
7
+ import { handleError } from '../errors.mjs';
8
+ import { upgrade as upgrade$1 } from '../../tasks/upgrade/upgrade.mjs';
9
+ import '../../tasks/upgrade/requirements/common.mjs';
10
+ import 'cli-table3';
11
+ import 'chalk';
12
+ import 'node:path';
13
+ import 'node:assert';
14
+ import 'fs-extra';
15
+ import 'fast-glob';
16
+ import 'jscodeshift/src/Runner';
17
+ import 'lodash/fp';
18
+ import 'esbuild-register/dist/node';
19
+ import '../../modules/project/constants.mjs';
20
+ import '../../modules/codemod/constants.mjs';
21
+ import '../../modules/codemod-repository/constants.mjs';
22
+ import { projectPathOption, dryOption, debugOption, silentOption, autoConfirmOption } from '../options.mjs';
23
+
24
+ const upgrade = async (options)=>{
25
+ try {
26
+ const { silent, debug, yes } = options;
27
+ const logger = loggerFactory({
28
+ silent,
29
+ debug
30
+ });
31
+ logger.warn("Please make sure you've created a backup of your codebase and files before upgrading");
32
+ const confirm = async (message)=>{
33
+ if (yes) {
34
+ return true;
35
+ }
36
+ const { confirm } = await prompts({
37
+ name: 'confirm',
38
+ type: 'confirm',
39
+ message
40
+ });
41
+ // If confirm is undefined (Ctrl + C), default to false
42
+ return confirm ?? false;
43
+ };
44
+ await upgrade$1({
45
+ logger,
46
+ confirm,
47
+ dry: options.dry,
48
+ cwd: options.projectPath,
49
+ target: options.target,
50
+ codemodsTarget: options.codemodsTarget
51
+ });
52
+ } catch (err) {
53
+ handleError(err, options.silent);
54
+ }
55
+ };
56
+ /**
57
+ * Registers upgrade related codemods.
58
+ */ const register = (program)=>{
59
+ const addReleaseUpgradeCommand = (releaseType, description)=>{
60
+ program.command(releaseType).description(description).addOption(projectPathOption).addOption(dryOption).addOption(debugOption).addOption(silentOption).addOption(autoConfirmOption).action(async (options)=>{
61
+ return upgrade({
62
+ ...options,
63
+ target: releaseType
64
+ });
65
+ });
66
+ };
67
+ // upgrade latest
68
+ addReleaseUpgradeCommand(ReleaseType.Latest, 'Upgrade to the latest available version of Strapi');
69
+ // upgrade major
70
+ addReleaseUpgradeCommand(ReleaseType.Major, 'Upgrade to the next available major version of Strapi');
71
+ // upgrade minor
72
+ addReleaseUpgradeCommand(ReleaseType.Minor, 'Upgrade to the latest minor and patch version of Strapi for the current major');
73
+ // upgrade patch
74
+ addReleaseUpgradeCommand(ReleaseType.Patch, 'Upgrade to latest patch version of Strapi for the current major and minor');
75
+ // upgrade to <target>
76
+ program.command('to <target>', {
77
+ hidden: true
78
+ }).description('Upgrade to the specified version of Strapi').addOption(projectPathOption).addOption(dryOption).addOption(debugOption).addOption(silentOption).addOption(autoConfirmOption).addOption(new Option('-c, --codemods-target <codemodsTarget>', 'Use a custom target for the codemods execution. Useful when targeting pre-releases').argParser((codemodsTarget)=>{
79
+ if (!isLiteralSemVer(codemodsTarget)) {
80
+ throw new InvalidArgumentError(`Expected a version with the following format: "<number>.<number>.<number>"`);
81
+ }
82
+ return semVerFactory(codemodsTarget);
83
+ })).action(async (target, options)=>{
84
+ if (!isValidSemVer(target)) {
85
+ console.error(`Invalid target supplied, expected a valid semver but got "${target}"`);
86
+ process.exit(1);
87
+ }
88
+ return upgrade({
89
+ ...options,
90
+ target: semVerFactory(target)
91
+ });
92
+ });
93
+ };
94
+
95
+ export { register, upgrade };
96
+ //# sourceMappingURL=upgrade.mjs.map