@strapi/upgrade 5.12.1 → 5.12.2

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 (245) 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/package.json.js +6 -0
  10. package/dist/package.json.js.map +1 -0
  11. package/dist/package.json.mjs +4 -0
  12. package/dist/package.json.mjs.map +1 -0
  13. package/dist/src/cli/commands/codemods.js +120 -0
  14. package/dist/src/cli/commands/codemods.js.map +1 -0
  15. package/dist/src/cli/commands/codemods.mjs +116 -0
  16. package/dist/src/cli/commands/codemods.mjs.map +1 -0
  17. package/dist/src/cli/commands/upgrade.js +99 -0
  18. package/dist/src/cli/commands/upgrade.js.map +1 -0
  19. package/dist/src/cli/commands/upgrade.mjs +96 -0
  20. package/dist/src/cli/commands/upgrade.mjs.map +1 -0
  21. package/dist/src/cli/errors.js +18 -0
  22. package/dist/src/cli/errors.js.map +1 -0
  23. package/dist/src/cli/errors.mjs +16 -0
  24. package/dist/src/cli/errors.mjs.map +1 -0
  25. package/dist/src/cli/options.js +26 -0
  26. package/dist/src/cli/options.js.map +1 -0
  27. package/dist/src/cli/options.mjs +19 -0
  28. package/dist/src/cli/options.mjs.map +1 -0
  29. package/dist/src/modules/codemod/codemod.js +44 -0
  30. package/dist/src/modules/codemod/codemod.js.map +1 -0
  31. package/dist/src/modules/codemod/codemod.mjs +41 -0
  32. package/dist/src/modules/codemod/codemod.mjs.map +1 -0
  33. package/dist/src/modules/codemod/constants.js +17 -0
  34. package/dist/src/modules/codemod/constants.js.map +1 -0
  35. package/dist/src/modules/codemod/constants.mjs +11 -0
  36. package/dist/src/modules/codemod/constants.mjs.map +1 -0
  37. package/dist/src/modules/codemod/index.js +10 -0
  38. package/dist/src/modules/codemod/index.js.map +1 -0
  39. package/dist/src/modules/codemod/index.mjs +4 -0
  40. package/dist/src/modules/codemod/index.mjs.map +1 -0
  41. package/dist/src/modules/codemod-repository/constants.js +9 -0
  42. package/dist/src/modules/codemod-repository/constants.js.map +1 -0
  43. package/dist/src/modules/codemod-repository/constants.mjs +7 -0
  44. package/dist/src/modules/codemod-repository/constants.mjs.map +1 -0
  45. package/dist/src/modules/codemod-repository/index.js +10 -0
  46. package/dist/src/modules/codemod-repository/index.js.map +1 -0
  47. package/dist/src/modules/codemod-repository/index.mjs +4 -0
  48. package/dist/src/modules/codemod-repository/index.mjs.map +1 -0
  49. package/dist/src/modules/codemod-repository/repository.js +127 -0
  50. package/dist/src/modules/codemod-repository/repository.js.map +1 -0
  51. package/dist/src/modules/codemod-repository/repository.mjs +123 -0
  52. package/dist/src/modules/codemod-repository/repository.mjs.map +1 -0
  53. package/dist/src/modules/codemod-runner/codemod-runner.js +113 -0
  54. package/dist/src/modules/codemod-runner/codemod-runner.js.map +1 -0
  55. package/dist/src/modules/codemod-runner/codemod-runner.mjs +110 -0
  56. package/dist/src/modules/codemod-runner/codemod-runner.mjs.map +1 -0
  57. package/dist/src/modules/error/index.js +11 -0
  58. package/dist/src/modules/error/index.js.map +1 -0
  59. package/dist/src/modules/error/index.mjs +2 -0
  60. package/dist/src/modules/error/index.mjs.map +1 -0
  61. package/dist/src/modules/error/utils.js +33 -0
  62. package/dist/src/modules/error/utils.js.map +1 -0
  63. package/dist/src/modules/error/utils.mjs +28 -0
  64. package/dist/src/modules/error/utils.mjs.map +1 -0
  65. package/dist/src/modules/file-scanner/index.js +8 -0
  66. package/dist/src/modules/file-scanner/index.js.map +1 -0
  67. package/dist/src/modules/file-scanner/index.mjs +2 -0
  68. package/dist/src/modules/file-scanner/index.mjs.map +1 -0
  69. package/dist/src/modules/file-scanner/scanner.js +23 -0
  70. package/dist/src/modules/file-scanner/scanner.js.map +1 -0
  71. package/dist/src/modules/file-scanner/scanner.mjs +20 -0
  72. package/dist/src/modules/file-scanner/scanner.mjs.map +1 -0
  73. package/dist/src/modules/format/formats.js +107 -0
  74. package/dist/src/modules/format/formats.js.map +1 -0
  75. package/dist/src/modules/format/formats.mjs +94 -0
  76. package/dist/src/modules/format/formats.mjs.map +1 -0
  77. package/dist/src/modules/format/index.js +19 -0
  78. package/dist/src/modules/format/index.js.map +1 -0
  79. package/dist/src/modules/format/index.mjs +2 -0
  80. package/dist/src/modules/format/index.mjs.map +1 -0
  81. package/dist/src/modules/index.js +32 -0
  82. package/dist/src/modules/index.js.map +1 -0
  83. package/dist/src/modules/index.mjs +27 -0
  84. package/dist/src/modules/index.mjs.map +1 -0
  85. package/dist/src/modules/json/file.js +16 -0
  86. package/dist/src/modules/json/file.js.map +1 -0
  87. package/dist/src/modules/json/file.mjs +13 -0
  88. package/dist/src/modules/json/file.mjs.map +1 -0
  89. package/dist/src/modules/json/transform-api.js +38 -0
  90. package/dist/src/modules/json/transform-api.js.map +1 -0
  91. package/dist/src/modules/json/transform-api.mjs +35 -0
  92. package/dist/src/modules/json/transform-api.mjs.map +1 -0
  93. package/dist/src/modules/logger/index.js +8 -0
  94. package/dist/src/modules/logger/index.js.map +1 -0
  95. package/dist/src/modules/logger/index.mjs +2 -0
  96. package/dist/src/modules/logger/index.mjs.map +1 -0
  97. package/dist/src/modules/logger/logger.js +76 -0
  98. package/dist/src/modules/logger/logger.js.map +1 -0
  99. package/dist/src/modules/logger/logger.mjs +73 -0
  100. package/dist/src/modules/logger/logger.mjs.map +1 -0
  101. package/dist/src/modules/npm/constants.js +6 -0
  102. package/dist/src/modules/npm/constants.js.map +1 -0
  103. package/dist/src/modules/npm/constants.mjs +4 -0
  104. package/dist/src/modules/npm/constants.mjs.map +1 -0
  105. package/dist/src/modules/npm/package.js +55 -0
  106. package/dist/src/modules/npm/package.js.map +1 -0
  107. package/dist/src/modules/npm/package.mjs +52 -0
  108. package/dist/src/modules/npm/package.mjs.map +1 -0
  109. package/dist/src/modules/project/constants.js +45 -0
  110. package/dist/src/modules/project/constants.js.map +1 -0
  111. package/dist/src/modules/project/constants.mjs +35 -0
  112. package/dist/src/modules/project/constants.mjs.map +1 -0
  113. package/dist/src/modules/project/index.js +15 -0
  114. package/dist/src/modules/project/index.js.map +1 -0
  115. package/dist/src/modules/project/index.mjs +5 -0
  116. package/dist/src/modules/project/index.mjs.map +1 -0
  117. package/dist/src/modules/project/project.js +208 -0
  118. package/dist/src/modules/project/project.js.map +1 -0
  119. package/dist/src/modules/project/project.mjs +203 -0
  120. package/dist/src/modules/project/project.mjs.map +1 -0
  121. package/dist/src/modules/project/utils.js +26 -0
  122. package/dist/src/modules/project/utils.js.map +1 -0
  123. package/dist/src/modules/project/utils.mjs +21 -0
  124. package/dist/src/modules/project/utils.mjs.map +1 -0
  125. package/dist/src/modules/report/index.js +9 -0
  126. package/dist/src/modules/report/index.js.map +1 -0
  127. package/dist/src/modules/report/index.mjs +2 -0
  128. package/dist/src/modules/report/index.mjs.map +1 -0
  129. package/dist/src/modules/report/report.js +13 -0
  130. package/dist/src/modules/report/report.js.map +1 -0
  131. package/dist/src/modules/report/report.mjs +10 -0
  132. package/dist/src/modules/report/report.mjs.map +1 -0
  133. package/dist/src/modules/requirement/index.js +8 -0
  134. package/dist/src/modules/requirement/index.js.map +1 -0
  135. package/dist/src/modules/requirement/index.mjs +2 -0
  136. package/dist/src/modules/requirement/index.mjs.map +1 -0
  137. package/dist/src/modules/requirement/requirement.js +55 -0
  138. package/dist/src/modules/requirement/requirement.js.map +1 -0
  139. package/dist/src/modules/requirement/requirement.mjs +52 -0
  140. package/dist/src/modules/requirement/requirement.mjs.map +1 -0
  141. package/dist/src/modules/runner/code/code.js +21 -0
  142. package/dist/src/modules/runner/code/code.js.map +1 -0
  143. package/dist/src/modules/runner/code/code.mjs +18 -0
  144. package/dist/src/modules/runner/code/code.mjs.map +1 -0
  145. package/dist/src/modules/runner/code/index.js +8 -0
  146. package/dist/src/modules/runner/code/index.js.map +1 -0
  147. package/dist/src/modules/runner/code/index.mjs +2 -0
  148. package/dist/src/modules/runner/code/index.mjs.map +1 -0
  149. package/dist/src/modules/runner/index.js +10 -0
  150. package/dist/src/modules/runner/index.js.map +1 -0
  151. package/dist/src/modules/runner/index.mjs +5 -0
  152. package/dist/src/modules/runner/index.mjs.map +1 -0
  153. package/dist/src/modules/runner/json/index.js +8 -0
  154. package/dist/src/modules/runner/json/index.js.map +1 -0
  155. package/dist/src/modules/runner/json/index.mjs +2 -0
  156. package/dist/src/modules/runner/json/index.mjs.map +1 -0
  157. package/dist/src/modules/runner/json/json.js +21 -0
  158. package/dist/src/modules/runner/json/json.js.map +1 -0
  159. package/dist/src/modules/runner/json/json.mjs +18 -0
  160. package/dist/src/modules/runner/json/json.mjs.map +1 -0
  161. package/dist/src/modules/runner/json/transform.js +85 -0
  162. package/dist/src/modules/runner/json/transform.js.map +1 -0
  163. package/dist/src/modules/runner/json/transform.mjs +83 -0
  164. package/dist/src/modules/runner/json/transform.mjs.map +1 -0
  165. package/dist/src/modules/runner/runner.js +22 -0
  166. package/dist/src/modules/runner/runner.js.map +1 -0
  167. package/dist/src/modules/runner/runner.mjs +20 -0
  168. package/dist/src/modules/runner/runner.mjs.map +1 -0
  169. package/dist/src/modules/timer/constants.js +6 -0
  170. package/dist/src/modules/timer/constants.js.map +1 -0
  171. package/dist/src/modules/timer/constants.mjs +4 -0
  172. package/dist/src/modules/timer/constants.mjs.map +1 -0
  173. package/dist/src/modules/timer/index.js +10 -0
  174. package/dist/src/modules/timer/index.js.map +1 -0
  175. package/dist/src/modules/timer/index.mjs +4 -0
  176. package/dist/src/modules/timer/index.mjs.map +1 -0
  177. package/dist/src/modules/timer/timer.js +33 -0
  178. package/dist/src/modules/timer/timer.js.map +1 -0
  179. package/dist/src/modules/timer/timer.mjs +30 -0
  180. package/dist/src/modules/timer/timer.mjs.map +1 -0
  181. package/dist/src/modules/upgrader/constants.js +6 -0
  182. package/dist/src/modules/upgrader/constants.js.map +1 -0
  183. package/dist/src/modules/upgrader/constants.mjs +4 -0
  184. package/dist/src/modules/upgrader/constants.mjs.map +1 -0
  185. package/dist/src/modules/upgrader/index.js +10 -0
  186. package/dist/src/modules/upgrader/index.js.map +1 -0
  187. package/dist/src/modules/upgrader/index.mjs +4 -0
  188. package/dist/src/modules/upgrader/index.mjs.map +1 -0
  189. package/dist/src/modules/upgrader/upgrader.js +266 -0
  190. package/dist/src/modules/upgrader/upgrader.js.map +1 -0
  191. package/dist/src/modules/upgrader/upgrader.mjs +263 -0
  192. package/dist/src/modules/upgrader/upgrader.mjs.map +1 -0
  193. package/dist/src/modules/version/index.js +20 -0
  194. package/dist/src/modules/version/index.js.map +1 -0
  195. package/dist/src/modules/version/index.mjs +5 -0
  196. package/dist/src/modules/version/index.mjs.map +1 -0
  197. package/dist/src/modules/version/range.js +81 -0
  198. package/dist/src/modules/version/range.js.map +1 -0
  199. package/dist/src/modules/version/range.mjs +75 -0
  200. package/dist/src/modules/version/range.mjs.map +1 -0
  201. package/dist/src/modules/version/semver.js +26 -0
  202. package/dist/src/modules/version/semver.js.map +1 -0
  203. package/dist/src/modules/version/semver.mjs +20 -0
  204. package/dist/src/modules/version/semver.mjs.map +1 -0
  205. package/dist/src/modules/version/types.js +12 -0
  206. package/dist/src/modules/version/types.js.map +1 -0
  207. package/dist/src/modules/version/types.mjs +12 -0
  208. package/dist/src/modules/version/types.mjs.map +1 -0
  209. package/dist/src/tasks/codemods/list-codemods.js +40 -0
  210. package/dist/src/tasks/codemods/list-codemods.js.map +1 -0
  211. package/dist/src/tasks/codemods/list-codemods.mjs +38 -0
  212. package/dist/src/tasks/codemods/list-codemods.mjs.map +1 -0
  213. package/dist/src/tasks/codemods/run-codemods.js +36 -0
  214. package/dist/src/tasks/codemods/run-codemods.js.map +1 -0
  215. package/dist/src/tasks/codemods/run-codemods.mjs +34 -0
  216. package/dist/src/tasks/codemods/run-codemods.mjs.map +1 -0
  217. package/dist/src/tasks/codemods/utils.js +54 -0
  218. package/dist/src/tasks/codemods/utils.js.map +1 -0
  219. package/dist/src/tasks/codemods/utils.mjs +50 -0
  220. package/dist/src/tasks/codemods/utils.mjs.map +1 -0
  221. package/dist/src/tasks/index.js +15 -0
  222. package/dist/src/tasks/index.js.map +1 -0
  223. package/dist/src/tasks/index.mjs +7 -0
  224. package/dist/src/tasks/index.mjs.map +1 -0
  225. package/dist/src/tasks/upgrade/prompts/latest.js +48 -0
  226. package/dist/src/tasks/upgrade/prompts/latest.js.map +1 -0
  227. package/dist/src/tasks/upgrade/prompts/latest.mjs +46 -0
  228. package/dist/src/tasks/upgrade/prompts/latest.mjs.map +1 -0
  229. package/dist/src/tasks/upgrade/requirements/common.js +40 -0
  230. package/dist/src/tasks/upgrade/requirements/common.js.map +1 -0
  231. package/dist/src/tasks/upgrade/requirements/common.mjs +35 -0
  232. package/dist/src/tasks/upgrade/requirements/common.mjs.map +1 -0
  233. package/dist/src/tasks/upgrade/requirements/major.js +29 -0
  234. package/dist/src/tasks/upgrade/requirements/major.js.map +1 -0
  235. package/dist/src/tasks/upgrade/requirements/major.mjs +26 -0
  236. package/dist/src/tasks/upgrade/requirements/major.mjs.map +1 -0
  237. package/dist/src/tasks/upgrade/upgrade.js +69 -0
  238. package/dist/src/tasks/upgrade/upgrade.js.map +1 -0
  239. package/dist/src/tasks/upgrade/upgrade.mjs +67 -0
  240. package/dist/src/tasks/upgrade/upgrade.mjs.map +1 -0
  241. package/package.json +4 -4
  242. package/dist/chunks/logger-DGi224NW.js +0 -1649
  243. package/dist/chunks/logger-DGi224NW.js.map +0 -1
  244. package/dist/chunks/logger-np_r7rTc.mjs +0 -1599
  245. package/dist/chunks/logger-np_r7rTc.mjs.map +0 -1
package/dist/cli.js CHANGED
@@ -3,211 +3,14 @@
3
3
  var os = require('os');
4
4
  var chalk = require('chalk');
5
5
  var commander = require('commander');
6
- var prompts = require('prompts');
7
- var logger = require('./chunks/logger-DGi224NW.js');
8
- require('semver');
9
- require('cli-table3');
10
- require('node:path');
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('@strapi/utils');
18
- require('simple-git');
6
+ var upgrade = require('./src/cli/commands/upgrade.js');
7
+ var codemods = require('./src/cli/commands/codemods.js');
8
+ var _package = require('./package.json.js');
19
9
 
20
- const handleError = (err, isSilent)=>{
21
- // If the upgrade process has been aborted, exit silently
22
- if (err instanceof logger.AbortedError) {
23
- process.exit(0);
24
- }
25
- if (!isSilent) {
26
- console.error(chalk.red(`[ERROR]\t[${new Date().toISOString()}]`), err instanceof Error ? err.message : err);
27
- }
28
- process.exit(1);
29
- };
30
-
31
- const projectPathOption = new commander.Option('-p, --project-path <project-path>', 'Root path to the Strapi application or plugin');
32
- const dryOption = new commander.Option('-n, --dry', 'Simulate the upgrade without updating any files').default(false);
33
- const debugOption = new commander.Option('-d, --debug', 'Get more logs in debug mode').default(false);
34
- const silentOption = new commander.Option('-s, --silent', "Don't log anything").default(false);
35
- const autoConfirmOption = new commander.Option('-y, --yes', 'Automatically answer "yes" to any prompts that the CLI might print on the command line.').default(false);
36
- const rangeOption = new commander.Option('-r, --range <range>', 'Use a custom semver range for the codemods execution.').argParser((range)=>{
37
- if (!logger.isValidStringifiedRange(range)) {
38
- throw new commander.InvalidArgumentError('Expected a valid semver range');
39
- }
40
- return logger.rangeFactory(range);
41
- });
42
-
43
- const upgrade = async (options)=>{
44
- try {
45
- const { silent, debug, yes } = options;
46
- const logger$1 = logger.loggerFactory({
47
- silent,
48
- debug
49
- });
50
- logger$1.warn("Please make sure you've created a backup of your codebase and files before upgrading");
51
- const confirm = async (message)=>{
52
- if (yes) {
53
- return true;
54
- }
55
- const { confirm } = await prompts({
56
- name: 'confirm',
57
- type: 'confirm',
58
- message
59
- });
60
- // If confirm is undefined (Ctrl + C), default to false
61
- return confirm ?? false;
62
- };
63
- await logger.upgrade({
64
- logger: logger$1,
65
- confirm,
66
- dry: options.dry,
67
- cwd: options.projectPath,
68
- target: options.target,
69
- codemodsTarget: options.codemodsTarget
70
- });
71
- } catch (err) {
72
- handleError(err, options.silent);
73
- }
74
- };
75
- /**
76
- * Registers upgrade related codemods.
77
- */ const register$1 = (program)=>{
78
- const addReleaseUpgradeCommand = (releaseType, description)=>{
79
- program.command(releaseType).description(description).addOption(projectPathOption).addOption(dryOption).addOption(debugOption).addOption(silentOption).addOption(autoConfirmOption).action(async (options)=>{
80
- return upgrade({
81
- ...options,
82
- target: releaseType
83
- });
84
- });
85
- };
86
- // upgrade latest
87
- addReleaseUpgradeCommand(logger.ReleaseType.Latest, 'Upgrade to the latest available version of Strapi');
88
- // upgrade major
89
- addReleaseUpgradeCommand(logger.ReleaseType.Major, 'Upgrade to the next available major version of Strapi');
90
- // upgrade minor
91
- addReleaseUpgradeCommand(logger.ReleaseType.Minor, 'Upgrade to the latest minor and patch version of Strapi for the current major');
92
- // upgrade patch
93
- addReleaseUpgradeCommand(logger.ReleaseType.Patch, 'Upgrade to latest patch version of Strapi for the current major and minor');
94
- // upgrade to <target>
95
- program.command('to <target>', {
96
- hidden: true
97
- }).description('Upgrade to the specified version of Strapi').addOption(projectPathOption).addOption(dryOption).addOption(debugOption).addOption(silentOption).addOption(autoConfirmOption).addOption(new commander.Option('-c, --codemods-target <codemodsTarget>', 'Use a custom target for the codemods execution. Useful when targeting pre-releases').argParser((codemodsTarget)=>{
98
- if (!logger.isLiteralSemVer(codemodsTarget)) {
99
- throw new commander.InvalidArgumentError(`Expected a version with the following format: "<number>.<number>.<number>"`);
100
- }
101
- return logger.semVerFactory(codemodsTarget);
102
- })).action(async (target, options)=>{
103
- if (!logger.isValidSemVer(target)) {
104
- console.error(`Invalid target supplied, expected a valid semver but got "${target}"`);
105
- process.exit(1);
106
- }
107
- return upgrade({
108
- ...options,
109
- target: logger.semVerFactory(target)
110
- });
111
- });
112
- };
113
-
114
- const DEFAULT_TARGET = logger.ReleaseType.Major;
115
- const runCodemods = async (options)=>{
116
- const { silent, debug } = options;
117
- const logger$1 = logger.loggerFactory({
118
- silent,
119
- debug
120
- });
121
- logger$1.warn("Please make sure you've created a backup of your codebase and files before running the codemods");
122
- const confirm = async (message)=>{
123
- const { confirm } = await prompts({
124
- name: 'confirm',
125
- type: 'confirm',
126
- message
127
- });
128
- // If confirm is undefined (Ctrl + C), default to false
129
- return confirm ?? false;
130
- };
131
- const selectCodemods = async (codemods)=>{
132
- const selectableCodemods = codemods.map(({ version, codemods })=>codemods.map((codemod)=>({
133
- title: `(${version}) ${codemod.format()}`,
134
- value: codemod,
135
- selected: true
136
- }))).flat();
137
- if (selectableCodemods.length === 0) {
138
- logger$1.info('No codemods to run');
139
- return [];
140
- }
141
- const { selectedCodemods } = await prompts({
142
- type: 'autocompleteMultiselect',
143
- name: 'selectedCodemods',
144
- message: 'Choose the codemods you would like to run:',
145
- choices: selectableCodemods
146
- });
147
- if (!selectedCodemods || selectedCodemods.length === 0) {
148
- logger$1.info('No codemods selected');
149
- return [];
150
- }
151
- return selectedCodemods.map((codemod)=>({
152
- version: codemod.version,
153
- codemods: [
154
- codemod
155
- ]
156
- }));
157
- };
158
- return logger.runCodemods({
159
- logger: logger$1,
160
- confirm,
161
- selectCodemods,
162
- dry: options.dry,
163
- cwd: options.projectPath,
164
- target: options.range ?? DEFAULT_TARGET,
165
- uid: options.uid
166
- }).catch((err)=>handleError(err, options.silent));
167
- };
168
- const listCodemods = async (options)=>{
169
- const { silent, debug } = options;
170
- const logger$1 = logger.loggerFactory({
171
- silent,
172
- debug
173
- });
174
- return logger.listCodemods({
175
- cwd: options.projectPath,
176
- target: options.range ?? DEFAULT_TARGET,
177
- logger: logger$1
178
- }).catch((err)=>handleError(err, options.silent));
179
- };
180
- /**
181
- * Registers codemods related commands.
182
- */ const register = (program)=>{
183
- const codemodsCommand = program.command('codemods');
184
- // upgrade codemods run [options] [uid]
185
- codemodsCommand.command('run [uid]').description(`
186
- Executes a set of codemods on the current project.
187
-
188
- If the optional UID argument is provided, the command specifically runs the codemod associated with that UID.
189
- Without the UID, the command produces a list of all available codemods for your project.
190
-
191
- By default, when executed on a Strapi application project, it offers codemods matching the current major version of the app.
192
- When executed on a Strapi plugin project, it shows every codemods.
193
- `).addOption(projectPathOption).addOption(dryOption).addOption(debugOption).addOption(silentOption).addOption(rangeOption).action(async (uid, options)=>{
194
- return runCodemods({
195
- ...options,
196
- uid
197
- });
198
- });
199
- // upgrade codemods ls [options]
200
- codemodsCommand.command('ls').description(`List available codemods`).addOption(projectPathOption).addOption(debugOption).addOption(silentOption).addOption(rangeOption).action(async (options)=>{
201
- return listCodemods(options);
202
- });
203
- };
204
-
205
- var version = "5.12.1";
206
-
207
- register$1(commander.program);
208
- register(commander.program);
10
+ upgrade.register(commander.program);
11
+ codemods.register(commander.program);
209
12
  commander.program.usage('<command> [options]').on('command:*', ([invalidCmd])=>{
210
13
  console.error(chalk.red(`[ERROR] Invalid command: ${invalidCmd}.${os.EOL} See --help for a list of available commands.`));
211
14
  process.exit(1);
212
- }).helpOption('-h, --help', 'Print command line options').addHelpCommand('help [command]', 'Print options for a specific command').version(version).parse(process.argv);
15
+ }).helpOption('-h, --help', 'Print command line options').addHelpCommand('help [command]', 'Print options for a specific command').version(_package.version).parse(process.argv);
213
16
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sources":["../src/cli/errors.ts","../src/cli/options.ts","../src/cli/commands/upgrade.ts","../src/cli/commands/codemods.ts","../src/cli/index.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport { AbortedError } from '../modules/error';\n\nexport const handleError = (err: unknown, isSilent: boolean) => {\n // If the upgrade process has been aborted, exit silently\n if (err instanceof AbortedError) {\n process.exit(0);\n }\n\n if (!isSilent) {\n console.error(\n chalk.red(`[ERROR]\\t[${new Date().toISOString()}]`),\n err instanceof Error ? err.message : err\n );\n }\n\n process.exit(1);\n};\n","import { InvalidArgumentError, Option } from 'commander';\nimport { isValidStringifiedRange, rangeFactory } from '../modules/version';\n\nexport const projectPathOption = new Option(\n '-p, --project-path <project-path>',\n 'Root path to the Strapi application or plugin'\n);\n\nexport const dryOption = new Option(\n '-n, --dry',\n 'Simulate the upgrade without updating any files'\n).default(false);\n\nexport const debugOption = new Option('-d, --debug', 'Get more logs in debug mode').default(false);\n\nexport const silentOption = new Option('-s, --silent', \"Don't log anything\").default(false);\n\nexport const autoConfirmOption = new Option(\n '-y, --yes',\n 'Automatically answer \"yes\" to any prompts that the CLI might print on the command line.'\n).default(false);\n\nexport const rangeOption = new Option(\n '-r, --range <range>',\n 'Use a custom semver range for the codemods execution.'\n).argParser((range) => {\n if (!isValidStringifiedRange(range)) {\n throw new InvalidArgumentError('Expected a valid semver range');\n }\n\n return rangeFactory(range);\n});\n","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","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","import os from 'os';\nimport chalk from 'chalk';\nimport { program } from 'commander';\n\nimport { register as registerUpgradeCommands } from './commands/upgrade';\nimport { register as registerCodemodsCommands } from './commands/codemods';\n\nimport { version as packageJSONVersion } from '../../package.json';\n\nregisterUpgradeCommands(program);\nregisterCodemodsCommands(program);\n\nprogram\n .usage('<command> [options]')\n .on('command:*', ([invalidCmd]) => {\n console.error(\n chalk.red(\n `[ERROR] Invalid command: ${invalidCmd}.${os.EOL} See --help for a list of available commands.`\n )\n );\n\n process.exit(1);\n })\n .helpOption('-h, --help', 'Print command line options')\n .addHelpCommand('help [command]', 'Print options for a specific command')\n .version(packageJSONVersion)\n .parse(process.argv);\n"],"names":["handleError","err","isSilent","AbortedError","process","exit","console","error","chalk","red","Date","toISOString","Error","message","projectPathOption","Option","dryOption","default","debugOption","silentOption","autoConfirmOption","rangeOption","argParser","range","isValidStringifiedRange","InvalidArgumentError","rangeFactory","upgrade","options","silent","debug","yes","logger","loggerFactory","warn","confirm","prompts","name","type","tasks","dry","cwd","projectPath","target","codemodsTarget","register","program","addReleaseUpgradeCommand","releaseType","description","command","addOption","action","Version","Latest","Major","Minor","Patch","hidden","isLiteralSemVer","semVerFactory","isValidSemVer","DEFAULT_TARGET","runCodemods","selectCodemods","codemods","selectableCodemods","map","version","codemod","title","format","value","selected","flat","length","info","selectedCodemods","choices","uid","catch","listCodemods","codemodsCommand","registerUpgradeCommands","registerCodemodsCommands","usage","on","invalidCmd","os","EOL","helpOption","addHelpCommand","packageJSONVersion","parse","argv"],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sources":["../src/cli/index.ts"],"sourcesContent":["import os from 'os';\nimport chalk from 'chalk';\nimport { program } from 'commander';\n\nimport { register as registerUpgradeCommands } from './commands/upgrade';\nimport { register as registerCodemodsCommands } from './commands/codemods';\n\nimport { version as packageJSONVersion } from '../../package.json';\n\nregisterUpgradeCommands(program);\nregisterCodemodsCommands(program);\n\nprogram\n .usage('<command> [options]')\n .on('command:*', ([invalidCmd]) => {\n console.error(\n chalk.red(\n `[ERROR] Invalid command: ${invalidCmd}.${os.EOL} See --help for a list of available commands.`\n )\n );\n\n process.exit(1);\n })\n .helpOption('-h, --help', 'Print command line options')\n .addHelpCommand('help [command]', 'Print options for a specific command')\n .version(packageJSONVersion)\n .parse(process.argv);\n"],"names":["registerUpgradeCommands","program","registerCodemodsCommands","usage","on","invalidCmd","console","error","chalk","red","os","EOL","process","exit","helpOption","addHelpCommand","version","packageJSONVersion","parse","argv"],"mappings":";;;;;;;;;AASAA,gBAAwBC,CAAAA,iBAAAA,CAAAA;AACxBC,iBAAyBD,CAAAA,iBAAAA,CAAAA;AAEzBA,iBACGE,CAAAA,KAAK,CAAC,qBACNC,CAAAA,CAAAA,EAAE,CAAC,WAAa,EAAA,CAAC,CAACC,UAAW,CAAA,GAAA;AAC5BC,IAAAA,OAAAA,CAAQC,KAAK,CACXC,KAAMC,CAAAA,GAAG,CACP,CAAC,yBAAyB,EAAEJ,UAAAA,CAAW,CAAC,EAAEK,EAAAA,CAAGC,GAAG,CAAC,6CAA6C,CAAC,CAAA,CAAA;AAInGC,IAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,CAAA,CAAA,CACCC,UAAU,CAAC,YAAc,EAAA,4BAAA,CAAA,CACzBC,cAAc,CAAC,gBAAA,EAAkB,sCACjCC,CAAAA,CAAAA,OAAO,CAACC,gBAAAA,CAAAA,CACRC,KAAK,CAACN,QAAQO,IAAI,CAAA;;"}
package/dist/cli.mjs CHANGED
@@ -1,209 +1,12 @@
1
1
  import os from 'os';
2
2
  import chalk from 'chalk';
3
- import { Option, InvalidArgumentError, program } from 'commander';
4
- import prompts from 'prompts';
5
- import { I as AbortedError, q as isValidStringifiedRange, s as rangeFactory, X as ReleaseType, k as isLiteralSemVer, y as semVerFactory, o as isValidSemVer, W as loggerFactory, V as upgrade$1, T as runCodemods$1, S as listCodemods$1 } from './chunks/logger-np_r7rTc.mjs';
6
- import 'semver';
7
- import 'cli-table3';
8
- import 'node:path';
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 '@strapi/utils';
16
- import 'simple-git';
3
+ import { program } from 'commander';
4
+ import { register } from './src/cli/commands/upgrade.mjs';
5
+ import { register as register$1 } from './src/cli/commands/codemods.mjs';
6
+ import { version } from './package.json.mjs';
17
7
 
18
- const handleError = (err, isSilent)=>{
19
- // If the upgrade process has been aborted, exit silently
20
- if (err instanceof AbortedError) {
21
- process.exit(0);
22
- }
23
- if (!isSilent) {
24
- console.error(chalk.red(`[ERROR]\t[${new Date().toISOString()}]`), err instanceof Error ? err.message : err);
25
- }
26
- process.exit(1);
27
- };
28
-
29
- const projectPathOption = new Option('-p, --project-path <project-path>', 'Root path to the Strapi application or plugin');
30
- const dryOption = new Option('-n, --dry', 'Simulate the upgrade without updating any files').default(false);
31
- const debugOption = new Option('-d, --debug', 'Get more logs in debug mode').default(false);
32
- const silentOption = new Option('-s, --silent', "Don't log anything").default(false);
33
- const autoConfirmOption = new Option('-y, --yes', 'Automatically answer "yes" to any prompts that the CLI might print on the command line.').default(false);
34
- const rangeOption = new Option('-r, --range <range>', 'Use a custom semver range for the codemods execution.').argParser((range)=>{
35
- if (!isValidStringifiedRange(range)) {
36
- throw new InvalidArgumentError('Expected a valid semver range');
37
- }
38
- return rangeFactory(range);
39
- });
40
-
41
- const upgrade = async (options)=>{
42
- try {
43
- const { silent, debug, yes } = options;
44
- const logger = loggerFactory({
45
- silent,
46
- debug
47
- });
48
- logger.warn("Please make sure you've created a backup of your codebase and files before upgrading");
49
- const confirm = async (message)=>{
50
- if (yes) {
51
- return true;
52
- }
53
- const { confirm } = await prompts({
54
- name: 'confirm',
55
- type: 'confirm',
56
- message
57
- });
58
- // If confirm is undefined (Ctrl + C), default to false
59
- return confirm ?? false;
60
- };
61
- await upgrade$1({
62
- logger,
63
- confirm,
64
- dry: options.dry,
65
- cwd: options.projectPath,
66
- target: options.target,
67
- codemodsTarget: options.codemodsTarget
68
- });
69
- } catch (err) {
70
- handleError(err, options.silent);
71
- }
72
- };
73
- /**
74
- * Registers upgrade related codemods.
75
- */ const register$1 = (program)=>{
76
- const addReleaseUpgradeCommand = (releaseType, description)=>{
77
- program.command(releaseType).description(description).addOption(projectPathOption).addOption(dryOption).addOption(debugOption).addOption(silentOption).addOption(autoConfirmOption).action(async (options)=>{
78
- return upgrade({
79
- ...options,
80
- target: releaseType
81
- });
82
- });
83
- };
84
- // upgrade latest
85
- addReleaseUpgradeCommand(ReleaseType.Latest, 'Upgrade to the latest available version of Strapi');
86
- // upgrade major
87
- addReleaseUpgradeCommand(ReleaseType.Major, 'Upgrade to the next available major version of Strapi');
88
- // upgrade minor
89
- addReleaseUpgradeCommand(ReleaseType.Minor, 'Upgrade to the latest minor and patch version of Strapi for the current major');
90
- // upgrade patch
91
- addReleaseUpgradeCommand(ReleaseType.Patch, 'Upgrade to latest patch version of Strapi for the current major and minor');
92
- // upgrade to <target>
93
- program.command('to <target>', {
94
- hidden: true
95
- }).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)=>{
96
- if (!isLiteralSemVer(codemodsTarget)) {
97
- throw new InvalidArgumentError(`Expected a version with the following format: "<number>.<number>.<number>"`);
98
- }
99
- return semVerFactory(codemodsTarget);
100
- })).action(async (target, options)=>{
101
- if (!isValidSemVer(target)) {
102
- console.error(`Invalid target supplied, expected a valid semver but got "${target}"`);
103
- process.exit(1);
104
- }
105
- return upgrade({
106
- ...options,
107
- target: semVerFactory(target)
108
- });
109
- });
110
- };
111
-
112
- const DEFAULT_TARGET = ReleaseType.Major;
113
- const runCodemods = async (options)=>{
114
- const { silent, debug } = options;
115
- const logger = loggerFactory({
116
- silent,
117
- debug
118
- });
119
- logger.warn("Please make sure you've created a backup of your codebase and files before running the codemods");
120
- const confirm = async (message)=>{
121
- const { confirm } = await prompts({
122
- name: 'confirm',
123
- type: 'confirm',
124
- message
125
- });
126
- // If confirm is undefined (Ctrl + C), default to false
127
- return confirm ?? false;
128
- };
129
- const selectCodemods = async (codemods)=>{
130
- const selectableCodemods = codemods.map(({ version, codemods })=>codemods.map((codemod)=>({
131
- title: `(${version}) ${codemod.format()}`,
132
- value: codemod,
133
- selected: true
134
- }))).flat();
135
- if (selectableCodemods.length === 0) {
136
- logger.info('No codemods to run');
137
- return [];
138
- }
139
- const { selectedCodemods } = await prompts({
140
- type: 'autocompleteMultiselect',
141
- name: 'selectedCodemods',
142
- message: 'Choose the codemods you would like to run:',
143
- choices: selectableCodemods
144
- });
145
- if (!selectedCodemods || selectedCodemods.length === 0) {
146
- logger.info('No codemods selected');
147
- return [];
148
- }
149
- return selectedCodemods.map((codemod)=>({
150
- version: codemod.version,
151
- codemods: [
152
- codemod
153
- ]
154
- }));
155
- };
156
- return runCodemods$1({
157
- logger,
158
- confirm,
159
- selectCodemods,
160
- dry: options.dry,
161
- cwd: options.projectPath,
162
- target: options.range ?? DEFAULT_TARGET,
163
- uid: options.uid
164
- }).catch((err)=>handleError(err, options.silent));
165
- };
166
- const listCodemods = async (options)=>{
167
- const { silent, debug } = options;
168
- const logger = loggerFactory({
169
- silent,
170
- debug
171
- });
172
- return listCodemods$1({
173
- cwd: options.projectPath,
174
- target: options.range ?? DEFAULT_TARGET,
175
- logger
176
- }).catch((err)=>handleError(err, options.silent));
177
- };
178
- /**
179
- * Registers codemods related commands.
180
- */ const register = (program)=>{
181
- const codemodsCommand = program.command('codemods');
182
- // upgrade codemods run [options] [uid]
183
- codemodsCommand.command('run [uid]').description(`
184
- Executes a set of codemods on the current project.
185
-
186
- If the optional UID argument is provided, the command specifically runs the codemod associated with that UID.
187
- Without the UID, the command produces a list of all available codemods for your project.
188
-
189
- By default, when executed on a Strapi application project, it offers codemods matching the current major version of the app.
190
- When executed on a Strapi plugin project, it shows every codemods.
191
- `).addOption(projectPathOption).addOption(dryOption).addOption(debugOption).addOption(silentOption).addOption(rangeOption).action(async (uid, options)=>{
192
- return runCodemods({
193
- ...options,
194
- uid
195
- });
196
- });
197
- // upgrade codemods ls [options]
198
- codemodsCommand.command('ls').description(`List available codemods`).addOption(projectPathOption).addOption(debugOption).addOption(silentOption).addOption(rangeOption).action(async (options)=>{
199
- return listCodemods(options);
200
- });
201
- };
202
-
203
- var version = "5.12.1";
204
-
205
- register$1(program);
206
8
  register(program);
9
+ register$1(program);
207
10
  program.usage('<command> [options]').on('command:*', ([invalidCmd])=>{
208
11
  console.error(chalk.red(`[ERROR] Invalid command: ${invalidCmd}.${os.EOL} See --help for a list of available commands.`));
209
12
  process.exit(1);
package/dist/cli.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.mjs","sources":["../src/cli/errors.ts","../src/cli/options.ts","../src/cli/commands/upgrade.ts","../src/cli/commands/codemods.ts","../src/cli/index.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport { AbortedError } from '../modules/error';\n\nexport const handleError = (err: unknown, isSilent: boolean) => {\n // If the upgrade process has been aborted, exit silently\n if (err instanceof AbortedError) {\n process.exit(0);\n }\n\n if (!isSilent) {\n console.error(\n chalk.red(`[ERROR]\\t[${new Date().toISOString()}]`),\n err instanceof Error ? err.message : err\n );\n }\n\n process.exit(1);\n};\n","import { InvalidArgumentError, Option } from 'commander';\nimport { isValidStringifiedRange, rangeFactory } from '../modules/version';\n\nexport const projectPathOption = new Option(\n '-p, --project-path <project-path>',\n 'Root path to the Strapi application or plugin'\n);\n\nexport const dryOption = new Option(\n '-n, --dry',\n 'Simulate the upgrade without updating any files'\n).default(false);\n\nexport const debugOption = new Option('-d, --debug', 'Get more logs in debug mode').default(false);\n\nexport const silentOption = new Option('-s, --silent', \"Don't log anything\").default(false);\n\nexport const autoConfirmOption = new Option(\n '-y, --yes',\n 'Automatically answer \"yes\" to any prompts that the CLI might print on the command line.'\n).default(false);\n\nexport const rangeOption = new Option(\n '-r, --range <range>',\n 'Use a custom semver range for the codemods execution.'\n).argParser((range) => {\n if (!isValidStringifiedRange(range)) {\n throw new InvalidArgumentError('Expected a valid semver range');\n }\n\n return rangeFactory(range);\n});\n","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","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","import os from 'os';\nimport chalk from 'chalk';\nimport { program } from 'commander';\n\nimport { register as registerUpgradeCommands } from './commands/upgrade';\nimport { register as registerCodemodsCommands } from './commands/codemods';\n\nimport { version as packageJSONVersion } from '../../package.json';\n\nregisterUpgradeCommands(program);\nregisterCodemodsCommands(program);\n\nprogram\n .usage('<command> [options]')\n .on('command:*', ([invalidCmd]) => {\n console.error(\n chalk.red(\n `[ERROR] Invalid command: ${invalidCmd}.${os.EOL} See --help for a list of available commands.`\n )\n );\n\n process.exit(1);\n })\n .helpOption('-h, --help', 'Print command line options')\n .addHelpCommand('help [command]', 'Print options for a specific command')\n .version(packageJSONVersion)\n .parse(process.argv);\n"],"names":["handleError","err","isSilent","AbortedError","process","exit","console","error","chalk","red","Date","toISOString","Error","message","projectPathOption","Option","dryOption","default","debugOption","silentOption","autoConfirmOption","rangeOption","argParser","range","isValidStringifiedRange","InvalidArgumentError","rangeFactory","upgrade","options","silent","debug","yes","logger","loggerFactory","warn","confirm","prompts","name","type","tasks","dry","cwd","projectPath","target","codemodsTarget","register","program","addReleaseUpgradeCommand","releaseType","description","command","addOption","action","Version","Latest","Major","Minor","Patch","hidden","isLiteralSemVer","semVerFactory","isValidSemVer","DEFAULT_TARGET","runCodemods","selectCodemods","codemods","selectableCodemods","map","version","codemod","title","format","value","selected","flat","length","info","selectedCodemods","choices","uid","catch","listCodemods","codemodsCommand","registerUpgradeCommands","registerCodemodsCommands","usage","on","invalidCmd","os","EOL","helpOption","addHelpCommand","packageJSONVersion","parse","argv"],"mappings":";;;;;;;;;;;;;;;;;AAIO,MAAMA,WAAc,GAAA,CAACC,GAAcC,EAAAA,QAAAA,GAAAA;;AAExC,IAAA,IAAID,eAAeE,YAAc,EAAA;AAC/BC,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf;AAEA,IAAA,IAAI,CAACH,QAAU,EAAA;AACbI,QAAAA,OAAAA,CAAQC,KAAK,CACXC,KAAAA,CAAMC,GAAG,CAAC,CAAC,UAAU,EAAE,IAAIC,OAAOC,WAAW,EAAA,CAAG,CAAC,CAAC,CAAA,EAClDV,eAAeW,KAAQX,GAAAA,GAAAA,CAAIY,OAAO,GAAGZ,GAAAA,CAAAA;AAEzC;AAEAG,IAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,CAAE;;ACfK,MAAMS,iBAAAA,GAAoB,IAAIC,MAAAA,CACnC,qCACA,+CACA,CAAA;AAEK,MAAMC,YAAY,IAAID,MAAAA,CAC3B,aACA,iDACAE,CAAAA,CAAAA,OAAO,CAAC,KAAO,CAAA;AAEV,MAAMC,cAAc,IAAIH,MAAAA,CAAO,eAAe,6BAA+BE,CAAAA,CAAAA,OAAO,CAAC,KAAO,CAAA;AAE5F,MAAME,eAAe,IAAIJ,MAAAA,CAAO,gBAAgB,oBAAsBE,CAAAA,CAAAA,OAAO,CAAC,KAAO,CAAA;AAErF,MAAMG,oBAAoB,IAAIL,MAAAA,CACnC,aACA,yFACAE,CAAAA,CAAAA,OAAO,CAAC,KAAO,CAAA;AAEV,MAAMI,cAAc,IAAIN,MAAAA,CAC7B,uBACA,uDACAO,CAAAA,CAAAA,SAAS,CAAC,CAACC,KAAAA,GAAAA;IACX,IAAI,CAACC,wBAAwBD,KAAQ,CAAA,EAAA;AACnC,QAAA,MAAM,IAAIE,oBAAqB,CAAA,+BAAA,CAAA;AACjC;AAEA,IAAA,OAAOC,YAAaH,CAAAA,KAAAA,CAAAA;AACtB,CAAG,CAAA;;ACZI,MAAMI,UAA0B,OAAOC,OAAAA,GAAAA;IAC5C,IAAI;AACF,QAAA,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEC,GAAG,EAAE,GAAGH,OAAAA;AAC/B,QAAA,MAAMI,SAASC,aAAc,CAAA;AAAEJ,YAAAA,MAAAA;AAAQC,YAAAA;AAAM,SAAA,CAAA;AAE7CE,QAAAA,MAAAA,CAAOE,IAAI,CACT,sFAAA,CAAA;AAGF,QAAA,MAAMC,UAAU,OAAOtB,OAAAA,GAAAA;AACrB,YAAA,IAAIkB,GAAK,EAAA;gBACP,OAAO,IAAA;AACT;AAEA,YAAA,MAAM,EAAEI,OAAO,EAAE,GAAG,MAAMC,OAAQ,CAAA;gBAChCC,IAAM,EAAA,SAAA;gBACNC,IAAM,EAAA,SAAA;AACNzB,gBAAAA;AACF,aAAA,CAAA;;AAGA,YAAA,OAAOsB,OAAW,IAAA,KAAA;AACpB,SAAA;QAEA,MAAMI,SAAa,CAAC;AAClBP,YAAAA,MAAAA;AACAG,YAAAA,OAAAA;AACAK,YAAAA,GAAAA,EAAKZ,QAAQY,GAAG;AAChBC,YAAAA,GAAAA,EAAKb,QAAQc,WAAW;AACxBC,YAAAA,MAAAA,EAAQf,QAAQe,MAAM;AACtBC,YAAAA,cAAAA,EAAgBhB,QAAQgB;AAC1B,SAAA,CAAA;AACF,KAAA,CAAE,OAAO3C,GAAK,EAAA;QACZD,WAAYC,CAAAA,GAAAA,EAAK2B,QAAQC,MAAM,CAAA;AACjC;AACF,CAAE;AAEF;;IAGO,MAAMgB,UAAAA,GAAW,CAACC,OAAAA,GAAAA;IACvB,MAAMC,wBAAAA,GAA2B,CAACC,WAAkCC,EAAAA,WAAAA,GAAAA;QAClEH,OACGI,CAAAA,OAAO,CAACF,WACRC,CAAAA,CAAAA,WAAW,CAACA,WACZE,CAAAA,CAAAA,SAAS,CAACrC,iBAAAA,CAAAA,CACVqC,SAAS,CAACnC,WACVmC,SAAS,CAACjC,WACViC,CAAAA,CAAAA,SAAS,CAAChC,YAAAA,CAAAA,CACVgC,SAAS,CAAC/B,iBAAAA,CAAAA,CACVgC,MAAM,CAAC,OAAOxB,OAAAA,GAAAA;AACb,YAAA,OAAOD,OAAQ,CAAA;AAAE,gBAAA,GAAGC,OAAO;gBAAEe,MAAQK,EAAAA;AAAY,aAAA,CAAA;AACnD,SAAA,CAAA;AACJ,KAAA;;AAGAD,IAAAA,wBAAAA,CACEM,WAAmB,CAACC,MAAM,EAC1B,mDAAA,CAAA;;AAIFP,IAAAA,wBAAAA,CACEM,WAAmB,CAACE,KAAK,EACzB,uDAAA,CAAA;;AAIFR,IAAAA,wBAAAA,CACEM,WAAmB,CAACG,KAAK,EACzB,+EAAA,CAAA;;AAIFT,IAAAA,wBAAAA,CACEM,WAAmB,CAACI,KAAK,EACzB,2EAAA,CAAA;;IAIFX,OACGI,CAAAA,OAAO,CAAC,aAAe,EAAA;QAAEQ,MAAQ,EAAA;KACjCT,CAAAA,CAAAA,WAAW,CAAC,4CAAA,CAAA,CACZE,SAAS,CAACrC,iBACVqC,CAAAA,CAAAA,SAAS,CAACnC,SAAAA,CAAAA,CACVmC,SAAS,CAACjC,WACViC,CAAAA,CAAAA,SAAS,CAAChC,YACVgC,CAAAA,CAAAA,SAAS,CAAC/B,iBAAAA,CAAAA,CACV+B,SAAS,CACR,IAAIpC,MAAAA,CACF,wCACA,EAAA,oFAAA,CAAA,CACAO,SAAS,CAAC,CAACsB,cAAAA,GAAAA;QACX,IAAI,CAACe,gBAAgBf,cAAiB,CAAA,EAAA;AACpC,YAAA,MAAM,IAAInB,oBAAAA,CACR,CAAC,0EAA0E,CAAC,CAAA;AAEhF;AAEA,QAAA,OAAOmC,aAAchB,CAAAA,cAAAA,CAAAA;KAGxBQ,CAAAA,CAAAA,CAAAA,MAAM,CAAC,OAAOT,MAAgBf,EAAAA,OAAAA,GAAAA;QAC7B,IAAI,CAACiC,cAAclB,MAAS,CAAA,EAAA;AAC1BrC,YAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,0DAA0D,EAAEoC,MAAAA,CAAO,CAAC,CAAC,CAAA;AACpFvC,YAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf;AAEA,QAAA,OAAOsB,OAAQ,CAAA;AAAE,YAAA,GAAGC,OAAO;AAAEe,YAAAA,MAAAA,EAAQiB,aAAcjB,CAAAA,MAAAA;AAAQ,SAAA,CAAA;AAC7D,KAAA,CAAA;AACJ,CAAE;;AChHF,MAAMmB,cAAiBT,GAAAA,WAAmB,CAACE,KAAK;AAEzC,MAAMQ,cAAkC,OAAOnC,OAAAA,GAAAA;AACpD,IAAA,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAGF,OAAAA;AAC1B,IAAA,MAAMI,SAASC,aAAc,CAAA;AAAEJ,QAAAA,MAAAA;AAAQC,QAAAA;AAAM,KAAA,CAAA;AAE7CE,IAAAA,MAAAA,CAAOE,IAAI,CACT,iGAAA,CAAA;AAGF,IAAA,MAAMC,UAAU,OAAOtB,OAAAA,GAAAA;AACrB,QAAA,MAAM,EAAEsB,OAAO,EAAE,GAAG,MAAMC,OAAQ,CAAA;YAChCC,IAAM,EAAA,SAAA;YACNC,IAAM,EAAA,SAAA;AACNzB,YAAAA;AACF,SAAA,CAAA;;AAGA,QAAA,OAAOsB,OAAW,IAAA,KAAA;AACpB,KAAA;AAEA,IAAA,MAAM6B,iBAAiB,OAAOC,QAAAA,GAAAA;AAC5B,QAAA,MAAMC,qBAAqBD,QACxBE,CAAAA,GAAG,CAAC,CAAC,EAAEC,OAAO,EAAEH,QAAQ,EAAE,GACzBA,QAASE,CAAAA,GAAG,CAAC,CAACE,WAAa;oBACzBC,KAAO,EAAA,CAAC,CAAC,EAAEF,OAAAA,CAAQ,EAAE,EAAEC,OAAAA,CAAQE,MAAM,EAAA,CAAG,CAAC;oBACzCC,KAAOH,EAAAA,OAAAA;oBACPI,QAAU,EAAA;AACZ,iBAAA,IAEDC,IAAI,EAAA;QAEP,IAAIR,kBAAAA,CAAmBS,MAAM,KAAK,CAAG,EAAA;AACnC3C,YAAAA,MAAAA,CAAO4C,IAAI,CAAC,oBAAA,CAAA;AACZ,YAAA,OAAO,EAAE;AACX;AAEA,QAAA,MAAM,EAAEC,gBAAgB,EAAE,GAA4C,MAAMzC,OAAQ,CAAA;YAClFE,IAAM,EAAA,yBAAA;YACND,IAAM,EAAA,kBAAA;YACNxB,OAAS,EAAA,4CAAA;YACTiE,OAASZ,EAAAA;AACX,SAAA,CAAA;AAEA,QAAA,IAAI,CAACW,gBAAAA,IAAoBA,gBAAiBF,CAAAA,MAAM,KAAK,CAAG,EAAA;AACtD3C,YAAAA,MAAAA,CAAO4C,IAAI,CAAC,sBAAA,CAAA;AACZ,YAAA,OAAO,EAAE;AACX;AAEA,QAAA,OAAOC,gBAAiBV,CAAAA,GAAG,CAA8B,CAACE,WAAa;AACrED,gBAAAA,OAAAA,EAASC,QAAQD,OAAO;gBACxBH,QAAU,EAAA;AAACI,oBAAAA;AAAQ;aACrB,CAAA,CAAA;AACF,KAAA;IAEA,OAAO9B,aACO,CAAC;AACXP,QAAAA,MAAAA;AACAG,QAAAA,OAAAA;AACA6B,QAAAA,cAAAA;AACAxB,QAAAA,GAAAA,EAAKZ,QAAQY,GAAG;AAChBC,QAAAA,GAAAA,EAAKb,QAAQc,WAAW;QACxBC,MAAQf,EAAAA,OAAAA,CAAQL,KAAK,IAAIuC,cAAAA;AACzBiB,QAAAA,GAAAA,EAAKnD,QAAQmD;AACf,KAAA,CAAA,CACCC,KAAK,CAAC,CAAC/E,MAAQD,WAAYC,CAAAA,GAAAA,EAAK2B,QAAQC,MAAM,CAAA,CAAA;AACnD,CAAE;AAEK,MAAMoD,eAAoC,OAAOrD,OAAAA,GAAAA;AACtD,IAAA,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAGF,OAAAA;AAC1B,IAAA,MAAMI,SAASC,aAAc,CAAA;AAAEJ,QAAAA,MAAAA;AAAQC,QAAAA;AAAM,KAAA,CAAA;IAE7C,OAAOS,cACQ,CAAC;AACZE,QAAAA,GAAAA,EAAKb,QAAQc,WAAW;QACxBC,MAAQf,EAAAA,OAAAA,CAAQL,KAAK,IAAIuC,cAAAA;AACzB9B,QAAAA;AACF,KAAA,CAAA,CACCgD,KAAK,CAAC,CAAC/E,MAAQD,WAAYC,CAAAA,GAAAA,EAAK2B,QAAQC,MAAM,CAAA,CAAA;AACnD,CAAE;AAEF;;IAGO,MAAMgB,QAAAA,GAAW,CAACC,OAAAA,GAAAA;IACvB,MAAMoC,eAAAA,GAAkBpC,OAAQI,CAAAA,OAAO,CAAC,UAAA,CAAA;;AAGxCgC,IAAAA,eAAAA,CACGhC,OAAO,CAAC,WACRD,CAAAA,CAAAA,WAAW,CACV;;;;;;;;AAQN,CAAC,EAEIE,SAAS,CAACrC,mBACVqC,SAAS,CAACnC,WACVmC,SAAS,CAACjC,aACViC,SAAS,CAAChC,cACVgC,SAAS,CAAC9B,aACV+B,MAAM,CAAC,OAAO2B,GAAyBnD,EAAAA,OAAAA,GAAAA;AACtC,QAAA,OAAOmC,WAAY,CAAA;AAAE,YAAA,GAAGnC,OAAO;AAAEmD,YAAAA;AAAI,SAAA,CAAA;AACvC,KAAA,CAAA;;IAGFG,eACGhC,CAAAA,OAAO,CAAC,IACRD,CAAAA,CAAAA,WAAW,CAAC,CAAC,uBAAuB,CAAC,CAAA,CACrCE,SAAS,CAACrC,mBACVqC,SAAS,CAACjC,WACViC,CAAAA,CAAAA,SAAS,CAAChC,YAAAA,CAAAA,CACVgC,SAAS,CAAC9B,WAAAA,CAAAA,CACV+B,MAAM,CAAC,OAAOxB,OAAAA,GAAAA;AACb,QAAA,OAAOqD,YAAarD,CAAAA,OAAAA,CAAAA;AACtB,KAAA,CAAA;AACJ,CAAE;;;;ACjIFuD,UAAwBrC,CAAAA,OAAAA,CAAAA;AACxBsC,QAAyBtC,CAAAA,OAAAA,CAAAA;AAEzBA,OACGuC,CAAAA,KAAK,CAAC,qBACNC,CAAAA,CAAAA,EAAE,CAAC,WAAa,EAAA,CAAC,CAACC,UAAW,CAAA,GAAA;AAC5BjF,IAAAA,OAAAA,CAAQC,KAAK,CACXC,KAAMC,CAAAA,GAAG,CACP,CAAC,yBAAyB,EAAE8E,UAAAA,CAAW,CAAC,EAAEC,EAAAA,CAAGC,GAAG,CAAC,6CAA6C,CAAC,CAAA,CAAA;AAInGrF,IAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,CAAA,CAAA,CACCqF,UAAU,CAAC,YAAc,EAAA,4BAAA,CAAA,CACzBC,cAAc,CAAC,gBAAA,EAAkB,sCACjCvB,CAAAA,CAAAA,OAAO,CAACwB,OAAAA,CAAAA,CACRC,KAAK,CAACzF,QAAQ0F,IAAI,CAAA"}
1
+ {"version":3,"file":"cli.mjs","sources":["../src/cli/index.ts"],"sourcesContent":["import os from 'os';\nimport chalk from 'chalk';\nimport { program } from 'commander';\n\nimport { register as registerUpgradeCommands } from './commands/upgrade';\nimport { register as registerCodemodsCommands } from './commands/codemods';\n\nimport { version as packageJSONVersion } from '../../package.json';\n\nregisterUpgradeCommands(program);\nregisterCodemodsCommands(program);\n\nprogram\n .usage('<command> [options]')\n .on('command:*', ([invalidCmd]) => {\n console.error(\n chalk.red(\n `[ERROR] Invalid command: ${invalidCmd}.${os.EOL} See --help for a list of available commands.`\n )\n );\n\n process.exit(1);\n })\n .helpOption('-h, --help', 'Print command line options')\n .addHelpCommand('help [command]', 'Print options for a specific command')\n .version(packageJSONVersion)\n .parse(process.argv);\n"],"names":["registerUpgradeCommands","program","registerCodemodsCommands","usage","on","invalidCmd","console","error","chalk","red","os","EOL","process","exit","helpOption","addHelpCommand","version","packageJSONVersion","parse","argv"],"mappings":";;;;;;;AASAA,QAAwBC,CAAAA,OAAAA,CAAAA;AACxBC,UAAyBD,CAAAA,OAAAA,CAAAA;AAEzBA,OACGE,CAAAA,KAAK,CAAC,qBACNC,CAAAA,CAAAA,EAAE,CAAC,WAAa,EAAA,CAAC,CAACC,UAAW,CAAA,GAAA;AAC5BC,IAAAA,OAAAA,CAAQC,KAAK,CACXC,KAAMC,CAAAA,GAAG,CACP,CAAC,yBAAyB,EAAEJ,UAAAA,CAAW,CAAC,EAAEK,EAAAA,CAAGC,GAAG,CAAC,6CAA6C,CAAC,CAAA,CAAA;AAInGC,IAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,CAAA,CAAA,CACCC,UAAU,CAAC,YAAc,EAAA,4BAAA,CAAA,CACzBC,cAAc,CAAC,gBAAA,EAAkB,sCACjCC,CAAAA,CAAAA,OAAO,CAACC,OAAAA,CAAAA,CACRC,KAAK,CAACN,QAAQO,IAAI,CAAA"}