@strapi/upgrade 0.0.0-next.f0a0bc26f5ef0693aaea2a616bc6b816cfee54b6 → 0.0.0-next.f0f36e3df4b18f167036dcbca529dcb933bf4e1d

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 (244) hide show
  1. package/dist/cli.js +13 -1577
  2. package/dist/cli.js.map +1 -1
  3. package/dist/cli.mjs +14 -0
  4. package/dist/cli.mjs.map +1 -0
  5. package/dist/index.js +9 -1551
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +4 -1542
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/modules/codemod-repository/constants.d.ts.map +1 -1
  10. package/dist/modules/npm/package.d.ts +7 -3
  11. package/dist/modules/npm/package.d.ts.map +1 -1
  12. package/dist/package.json.js +6 -0
  13. package/dist/package.json.js.map +1 -0
  14. package/dist/package.json.mjs +4 -0
  15. package/dist/package.json.mjs.map +1 -0
  16. package/dist/src/cli/commands/codemods.js +121 -0
  17. package/dist/src/cli/commands/codemods.js.map +1 -0
  18. package/dist/src/cli/commands/codemods.mjs +117 -0
  19. package/dist/src/cli/commands/codemods.mjs.map +1 -0
  20. package/dist/src/cli/commands/upgrade.js +99 -0
  21. package/dist/src/cli/commands/upgrade.js.map +1 -0
  22. package/dist/src/cli/commands/upgrade.mjs +96 -0
  23. package/dist/src/cli/commands/upgrade.mjs.map +1 -0
  24. package/dist/src/cli/errors.js +18 -0
  25. package/dist/src/cli/errors.js.map +1 -0
  26. package/dist/src/cli/errors.mjs +16 -0
  27. package/dist/src/cli/errors.mjs.map +1 -0
  28. package/dist/src/cli/options.js +25 -0
  29. package/dist/src/cli/options.js.map +1 -0
  30. package/dist/src/cli/options.mjs +18 -0
  31. package/dist/src/cli/options.mjs.map +1 -0
  32. package/dist/src/modules/codemod/codemod.js +44 -0
  33. package/dist/src/modules/codemod/codemod.js.map +1 -0
  34. package/dist/src/modules/codemod/codemod.mjs +41 -0
  35. package/dist/src/modules/codemod/codemod.mjs.map +1 -0
  36. package/dist/src/modules/codemod/constants.js +17 -0
  37. package/dist/src/modules/codemod/constants.js.map +1 -0
  38. package/dist/src/modules/codemod/constants.mjs +11 -0
  39. package/dist/src/modules/codemod/constants.mjs.map +1 -0
  40. package/dist/src/modules/codemod/index.js +10 -0
  41. package/dist/src/modules/codemod/index.js.map +1 -0
  42. package/dist/src/modules/codemod/index.mjs +4 -0
  43. package/dist/src/modules/codemod/index.mjs.map +1 -0
  44. package/dist/src/modules/codemod-repository/constants.js +9 -0
  45. package/dist/src/modules/codemod-repository/constants.js.map +1 -0
  46. package/dist/src/modules/codemod-repository/constants.mjs +7 -0
  47. package/dist/src/modules/codemod-repository/constants.mjs.map +1 -0
  48. package/dist/src/modules/codemod-repository/index.js +10 -0
  49. package/dist/src/modules/codemod-repository/index.js.map +1 -0
  50. package/dist/src/modules/codemod-repository/index.mjs +4 -0
  51. package/dist/src/modules/codemod-repository/index.mjs.map +1 -0
  52. package/dist/src/modules/codemod-repository/repository.js +126 -0
  53. package/dist/src/modules/codemod-repository/repository.js.map +1 -0
  54. package/dist/src/modules/codemod-repository/repository.mjs +122 -0
  55. package/dist/src/modules/codemod-repository/repository.mjs.map +1 -0
  56. package/dist/src/modules/codemod-runner/codemod-runner.js +112 -0
  57. package/dist/src/modules/codemod-runner/codemod-runner.js.map +1 -0
  58. package/dist/src/modules/codemod-runner/codemod-runner.mjs +109 -0
  59. package/dist/src/modules/codemod-runner/codemod-runner.mjs.map +1 -0
  60. package/dist/src/modules/error/index.js +11 -0
  61. package/dist/src/modules/error/index.js.map +1 -0
  62. package/dist/src/modules/error/index.mjs +2 -0
  63. package/dist/src/modules/error/index.mjs.map +1 -0
  64. package/dist/src/modules/error/utils.js +33 -0
  65. package/dist/src/modules/error/utils.js.map +1 -0
  66. package/dist/src/modules/error/utils.mjs +28 -0
  67. package/dist/src/modules/error/utils.mjs.map +1 -0
  68. package/dist/src/modules/file-scanner/index.js +8 -0
  69. package/dist/src/modules/file-scanner/index.js.map +1 -0
  70. package/dist/src/modules/file-scanner/index.mjs +2 -0
  71. package/dist/src/modules/file-scanner/index.mjs.map +1 -0
  72. package/dist/src/modules/file-scanner/scanner.js +23 -0
  73. package/dist/src/modules/file-scanner/scanner.js.map +1 -0
  74. package/dist/src/modules/file-scanner/scanner.mjs +20 -0
  75. package/dist/src/modules/file-scanner/scanner.mjs.map +1 -0
  76. package/dist/src/modules/format/formats.js +107 -0
  77. package/dist/src/modules/format/formats.js.map +1 -0
  78. package/dist/src/modules/format/formats.mjs +94 -0
  79. package/dist/src/modules/format/formats.mjs.map +1 -0
  80. package/dist/src/modules/format/index.js +19 -0
  81. package/dist/src/modules/format/index.js.map +1 -0
  82. package/dist/src/modules/format/index.mjs +2 -0
  83. package/dist/src/modules/format/index.mjs.map +1 -0
  84. package/dist/src/modules/index.js +32 -0
  85. package/dist/src/modules/index.js.map +1 -0
  86. package/dist/src/modules/index.mjs +27 -0
  87. package/dist/src/modules/index.mjs.map +1 -0
  88. package/dist/src/modules/json/file.js +16 -0
  89. package/dist/src/modules/json/file.js.map +1 -0
  90. package/dist/src/modules/json/file.mjs +13 -0
  91. package/dist/src/modules/json/file.mjs.map +1 -0
  92. package/dist/src/modules/json/transform-api.js +38 -0
  93. package/dist/src/modules/json/transform-api.js.map +1 -0
  94. package/dist/src/modules/json/transform-api.mjs +35 -0
  95. package/dist/src/modules/json/transform-api.mjs.map +1 -0
  96. package/dist/src/modules/logger/index.js +8 -0
  97. package/dist/src/modules/logger/index.js.map +1 -0
  98. package/dist/src/modules/logger/index.mjs +2 -0
  99. package/dist/src/modules/logger/index.mjs.map +1 -0
  100. package/dist/src/modules/logger/logger.js +76 -0
  101. package/dist/src/modules/logger/logger.js.map +1 -0
  102. package/dist/src/modules/logger/logger.mjs +73 -0
  103. package/dist/src/modules/logger/logger.mjs.map +1 -0
  104. package/dist/src/modules/npm/constants.js +6 -0
  105. package/dist/src/modules/npm/constants.js.map +1 -0
  106. package/dist/src/modules/npm/constants.mjs +4 -0
  107. package/dist/src/modules/npm/constants.mjs.map +1 -0
  108. package/dist/src/modules/npm/package.js +107 -0
  109. package/dist/src/modules/npm/package.js.map +1 -0
  110. package/dist/src/modules/npm/package.mjs +104 -0
  111. package/dist/src/modules/npm/package.mjs.map +1 -0
  112. package/dist/src/modules/project/constants.js +45 -0
  113. package/dist/src/modules/project/constants.js.map +1 -0
  114. package/dist/src/modules/project/constants.mjs +35 -0
  115. package/dist/src/modules/project/constants.mjs.map +1 -0
  116. package/dist/src/modules/project/index.js +15 -0
  117. package/dist/src/modules/project/index.js.map +1 -0
  118. package/dist/src/modules/project/index.mjs +5 -0
  119. package/dist/src/modules/project/index.mjs.map +1 -0
  120. package/dist/src/modules/project/project.js +205 -0
  121. package/dist/src/modules/project/project.js.map +1 -0
  122. package/dist/src/modules/project/project.mjs +200 -0
  123. package/dist/src/modules/project/project.mjs.map +1 -0
  124. package/dist/src/modules/project/utils.js +26 -0
  125. package/dist/src/modules/project/utils.js.map +1 -0
  126. package/dist/src/modules/project/utils.mjs +21 -0
  127. package/dist/src/modules/project/utils.mjs.map +1 -0
  128. package/dist/src/modules/report/index.js +9 -0
  129. package/dist/src/modules/report/index.js.map +1 -0
  130. package/dist/src/modules/report/index.mjs +2 -0
  131. package/dist/src/modules/report/index.mjs.map +1 -0
  132. package/dist/src/modules/report/report.js +13 -0
  133. package/dist/src/modules/report/report.js.map +1 -0
  134. package/dist/src/modules/report/report.mjs +10 -0
  135. package/dist/src/modules/report/report.mjs.map +1 -0
  136. package/dist/src/modules/requirement/index.js +8 -0
  137. package/dist/src/modules/requirement/index.js.map +1 -0
  138. package/dist/src/modules/requirement/index.mjs +2 -0
  139. package/dist/src/modules/requirement/index.mjs.map +1 -0
  140. package/dist/src/modules/requirement/requirement.js +55 -0
  141. package/dist/src/modules/requirement/requirement.js.map +1 -0
  142. package/dist/src/modules/requirement/requirement.mjs +52 -0
  143. package/dist/src/modules/requirement/requirement.mjs.map +1 -0
  144. package/dist/src/modules/runner/code/code.js +20 -0
  145. package/dist/src/modules/runner/code/code.js.map +1 -0
  146. package/dist/src/modules/runner/code/code.mjs +17 -0
  147. package/dist/src/modules/runner/code/code.mjs.map +1 -0
  148. package/dist/src/modules/runner/code/index.js +8 -0
  149. package/dist/src/modules/runner/code/index.js.map +1 -0
  150. package/dist/src/modules/runner/code/index.mjs +2 -0
  151. package/dist/src/modules/runner/code/index.mjs.map +1 -0
  152. package/dist/src/modules/runner/index.js +10 -0
  153. package/dist/src/modules/runner/index.js.map +1 -0
  154. package/dist/src/modules/runner/index.mjs +5 -0
  155. package/dist/src/modules/runner/index.mjs.map +1 -0
  156. package/dist/src/modules/runner/json/index.js +8 -0
  157. package/dist/src/modules/runner/json/index.js.map +1 -0
  158. package/dist/src/modules/runner/json/index.mjs +2 -0
  159. package/dist/src/modules/runner/json/index.mjs.map +1 -0
  160. package/dist/src/modules/runner/json/json.js +20 -0
  161. package/dist/src/modules/runner/json/json.js.map +1 -0
  162. package/dist/src/modules/runner/json/json.mjs +17 -0
  163. package/dist/src/modules/runner/json/json.mjs.map +1 -0
  164. package/dist/src/modules/runner/json/transform.js +85 -0
  165. package/dist/src/modules/runner/json/transform.js.map +1 -0
  166. package/dist/src/modules/runner/json/transform.mjs +83 -0
  167. package/dist/src/modules/runner/json/transform.mjs.map +1 -0
  168. package/dist/src/modules/runner/runner.js +22 -0
  169. package/dist/src/modules/runner/runner.js.map +1 -0
  170. package/dist/src/modules/runner/runner.mjs +20 -0
  171. package/dist/src/modules/runner/runner.mjs.map +1 -0
  172. package/dist/src/modules/timer/constants.js +6 -0
  173. package/dist/src/modules/timer/constants.js.map +1 -0
  174. package/dist/src/modules/timer/constants.mjs +4 -0
  175. package/dist/src/modules/timer/constants.mjs.map +1 -0
  176. package/dist/src/modules/timer/index.js +10 -0
  177. package/dist/src/modules/timer/index.js.map +1 -0
  178. package/dist/src/modules/timer/index.mjs +4 -0
  179. package/dist/src/modules/timer/index.mjs.map +1 -0
  180. package/dist/src/modules/timer/timer.js +33 -0
  181. package/dist/src/modules/timer/timer.js.map +1 -0
  182. package/dist/src/modules/timer/timer.mjs +30 -0
  183. package/dist/src/modules/timer/timer.mjs.map +1 -0
  184. package/dist/src/modules/upgrader/constants.js +6 -0
  185. package/dist/src/modules/upgrader/constants.js.map +1 -0
  186. package/dist/src/modules/upgrader/constants.mjs +4 -0
  187. package/dist/src/modules/upgrader/constants.mjs.map +1 -0
  188. package/dist/src/modules/upgrader/index.js +10 -0
  189. package/dist/src/modules/upgrader/index.js.map +1 -0
  190. package/dist/src/modules/upgrader/index.mjs +4 -0
  191. package/dist/src/modules/upgrader/index.mjs.map +1 -0
  192. package/dist/src/modules/upgrader/upgrader.js +265 -0
  193. package/dist/src/modules/upgrader/upgrader.js.map +1 -0
  194. package/dist/src/modules/upgrader/upgrader.mjs +262 -0
  195. package/dist/src/modules/upgrader/upgrader.mjs.map +1 -0
  196. package/dist/src/modules/version/index.js +20 -0
  197. package/dist/src/modules/version/index.js.map +1 -0
  198. package/dist/src/modules/version/index.mjs +5 -0
  199. package/dist/src/modules/version/index.mjs.map +1 -0
  200. package/dist/src/modules/version/range.js +81 -0
  201. package/dist/src/modules/version/range.js.map +1 -0
  202. package/dist/src/modules/version/range.mjs +75 -0
  203. package/dist/src/modules/version/range.mjs.map +1 -0
  204. package/dist/src/modules/version/semver.js +26 -0
  205. package/dist/src/modules/version/semver.js.map +1 -0
  206. package/dist/src/modules/version/semver.mjs +20 -0
  207. package/dist/src/modules/version/semver.mjs.map +1 -0
  208. package/dist/src/modules/version/types.js +14 -0
  209. package/dist/src/modules/version/types.js.map +1 -0
  210. package/dist/src/modules/version/types.mjs +12 -0
  211. package/dist/src/modules/version/types.mjs.map +1 -0
  212. package/dist/src/tasks/codemods/list-codemods.js +40 -0
  213. package/dist/src/tasks/codemods/list-codemods.js.map +1 -0
  214. package/dist/src/tasks/codemods/list-codemods.mjs +38 -0
  215. package/dist/src/tasks/codemods/list-codemods.mjs.map +1 -0
  216. package/dist/src/tasks/codemods/run-codemods.js +36 -0
  217. package/dist/src/tasks/codemods/run-codemods.js.map +1 -0
  218. package/dist/src/tasks/codemods/run-codemods.mjs +34 -0
  219. package/dist/src/tasks/codemods/run-codemods.mjs.map +1 -0
  220. package/dist/src/tasks/codemods/utils.js +54 -0
  221. package/dist/src/tasks/codemods/utils.js.map +1 -0
  222. package/dist/src/tasks/codemods/utils.mjs +50 -0
  223. package/dist/src/tasks/codemods/utils.mjs.map +1 -0
  224. package/dist/src/tasks/index.js +14 -0
  225. package/dist/src/tasks/index.js.map +1 -0
  226. package/dist/src/tasks/index.mjs +6 -0
  227. package/dist/src/tasks/index.mjs.map +1 -0
  228. package/dist/src/tasks/upgrade/prompts/latest.js +48 -0
  229. package/dist/src/tasks/upgrade/prompts/latest.js.map +1 -0
  230. package/dist/src/tasks/upgrade/prompts/latest.mjs +46 -0
  231. package/dist/src/tasks/upgrade/prompts/latest.mjs.map +1 -0
  232. package/dist/src/tasks/upgrade/requirements/common.js +40 -0
  233. package/dist/src/tasks/upgrade/requirements/common.js.map +1 -0
  234. package/dist/src/tasks/upgrade/requirements/common.mjs +35 -0
  235. package/dist/src/tasks/upgrade/requirements/common.mjs.map +1 -0
  236. package/dist/src/tasks/upgrade/requirements/major.js +28 -0
  237. package/dist/src/tasks/upgrade/requirements/major.js.map +1 -0
  238. package/dist/src/tasks/upgrade/requirements/major.mjs +25 -0
  239. package/dist/src/tasks/upgrade/requirements/major.mjs.map +1 -0
  240. package/dist/src/tasks/upgrade/upgrade.js +69 -0
  241. package/dist/src/tasks/upgrade/upgrade.js.map +1 -0
  242. package/dist/src/tasks/upgrade/upgrade.mjs +67 -0
  243. package/dist/src/tasks/upgrade/upgrade.mjs.map +1 -0
  244. package/package.json +15 -13
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var chalk = require('chalk');
4
+
5
+ class Logger {
6
+ get isNotSilent() {
7
+ return !this.isSilent;
8
+ }
9
+ get errors() {
10
+ return this.nbErrorsCalls;
11
+ }
12
+ get warnings() {
13
+ return this.nbWarningsCalls;
14
+ }
15
+ get stdout() {
16
+ return this.isSilent ? undefined : process.stdout;
17
+ }
18
+ get stderr() {
19
+ return this.isSilent ? undefined : process.stderr;
20
+ }
21
+ setDebug(debug) {
22
+ this.isDebug = debug;
23
+ return this;
24
+ }
25
+ setSilent(silent) {
26
+ this.isSilent = silent;
27
+ return this;
28
+ }
29
+ debug(...args) {
30
+ const isDebugEnabled = this.isNotSilent && this.isDebug;
31
+ if (isDebugEnabled) {
32
+ console.log(chalk.cyan(`[DEBUG]\t[${nowAsISO()}]`), ...args);
33
+ }
34
+ return this;
35
+ }
36
+ error(...args) {
37
+ this.nbErrorsCalls += 1;
38
+ if (this.isNotSilent) {
39
+ console.error(chalk.red(`[ERROR]\t[${nowAsISO()}]`), ...args);
40
+ }
41
+ return this;
42
+ }
43
+ info(...args) {
44
+ if (this.isNotSilent) {
45
+ console.info(chalk.blue(`[INFO]\t[${new Date().toISOString()}]`), ...args);
46
+ }
47
+ return this;
48
+ }
49
+ raw(...args) {
50
+ if (this.isNotSilent) {
51
+ console.log(...args);
52
+ }
53
+ return this;
54
+ }
55
+ warn(...args) {
56
+ this.nbWarningsCalls += 1;
57
+ if (this.isNotSilent) {
58
+ console.warn(chalk.yellow(`[WARN]\t[${new Date().toISOString()}]`), ...args);
59
+ }
60
+ return this;
61
+ }
62
+ constructor(options = {}){
63
+ // Set verbosity options
64
+ this.isDebug = options.debug ?? false;
65
+ this.isSilent = options.silent ?? false;
66
+ // Initialize counters
67
+ this.nbErrorsCalls = 0;
68
+ this.nbWarningsCalls = 0;
69
+ }
70
+ }
71
+ const nowAsISO = ()=>new Date().toISOString();
72
+ const loggerFactory = (options = {})=>new Logger(options);
73
+
74
+ exports.Logger = Logger;
75
+ exports.loggerFactory = loggerFactory;
76
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sources":["../../../../src/modules/logger/logger.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport type { Logger as LoggerInterface, LoggerOptions } from './types';\n\nexport class Logger implements LoggerInterface {\n isDebug: boolean;\n\n isSilent: boolean;\n\n private nbErrorsCalls: number;\n\n private nbWarningsCalls: number;\n\n constructor(options: LoggerOptions = {}) {\n // Set verbosity options\n this.isDebug = options.debug ?? false;\n this.isSilent = options.silent ?? false;\n\n // Initialize counters\n this.nbErrorsCalls = 0;\n this.nbWarningsCalls = 0;\n }\n\n private get isNotSilent(): boolean {\n return !this.isSilent;\n }\n\n get errors(): number {\n return this.nbErrorsCalls;\n }\n\n get warnings(): number {\n return this.nbWarningsCalls;\n }\n\n get stdout(): (NodeJS.WriteStream & { fd: 1 }) | undefined {\n return this.isSilent ? undefined : process.stdout;\n }\n\n get stderr(): (NodeJS.WriteStream & { fd: 2 }) | undefined {\n return this.isSilent ? undefined : process.stderr;\n }\n\n setDebug(debug: boolean): this {\n this.isDebug = debug;\n return this;\n }\n\n setSilent(silent: boolean): this {\n this.isSilent = silent;\n return this;\n }\n\n debug(...args: unknown[]): this {\n const isDebugEnabled = this.isNotSilent && this.isDebug;\n\n if (isDebugEnabled) {\n console.log(chalk.cyan(`[DEBUG]\\t[${nowAsISO()}]`), ...args);\n }\n\n return this;\n }\n\n error(...args: unknown[]): this {\n this.nbErrorsCalls += 1;\n\n if (this.isNotSilent) {\n console.error(chalk.red(`[ERROR]\\t[${nowAsISO()}]`), ...args);\n }\n\n return this;\n }\n\n info(...args: unknown[]): this {\n if (this.isNotSilent) {\n console.info(chalk.blue(`[INFO]\\t[${new Date().toISOString()}]`), ...args);\n }\n\n return this;\n }\n\n raw(...args: unknown[]): this {\n if (this.isNotSilent) {\n console.log(...args);\n }\n\n return this;\n }\n\n warn(...args: unknown[]): this {\n this.nbWarningsCalls += 1;\n\n if (this.isNotSilent) {\n console.warn(chalk.yellow(`[WARN]\\t[${new Date().toISOString()}]`), ...args);\n }\n\n return this;\n }\n}\n\nconst nowAsISO = () => new Date().toISOString();\n\nexport const loggerFactory = (options: LoggerOptions = {}) => new Logger(options);\n"],"names":["Logger","isNotSilent","isSilent","errors","nbErrorsCalls","warnings","nbWarningsCalls","stdout","undefined","process","stderr","setDebug","debug","isDebug","setSilent","silent","args","isDebugEnabled","console","log","chalk","cyan","nowAsISO","error","red","info","blue","Date","toISOString","raw","warn","yellow","options","loggerFactory"],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import chalk from 'chalk';
2
+
3
+ class Logger {
4
+ get isNotSilent() {
5
+ return !this.isSilent;
6
+ }
7
+ get errors() {
8
+ return this.nbErrorsCalls;
9
+ }
10
+ get warnings() {
11
+ return this.nbWarningsCalls;
12
+ }
13
+ get stdout() {
14
+ return this.isSilent ? undefined : process.stdout;
15
+ }
16
+ get stderr() {
17
+ return this.isSilent ? undefined : process.stderr;
18
+ }
19
+ setDebug(debug) {
20
+ this.isDebug = debug;
21
+ return this;
22
+ }
23
+ setSilent(silent) {
24
+ this.isSilent = silent;
25
+ return this;
26
+ }
27
+ debug(...args) {
28
+ const isDebugEnabled = this.isNotSilent && this.isDebug;
29
+ if (isDebugEnabled) {
30
+ console.log(chalk.cyan(`[DEBUG]\t[${nowAsISO()}]`), ...args);
31
+ }
32
+ return this;
33
+ }
34
+ error(...args) {
35
+ this.nbErrorsCalls += 1;
36
+ if (this.isNotSilent) {
37
+ console.error(chalk.red(`[ERROR]\t[${nowAsISO()}]`), ...args);
38
+ }
39
+ return this;
40
+ }
41
+ info(...args) {
42
+ if (this.isNotSilent) {
43
+ console.info(chalk.blue(`[INFO]\t[${new Date().toISOString()}]`), ...args);
44
+ }
45
+ return this;
46
+ }
47
+ raw(...args) {
48
+ if (this.isNotSilent) {
49
+ console.log(...args);
50
+ }
51
+ return this;
52
+ }
53
+ warn(...args) {
54
+ this.nbWarningsCalls += 1;
55
+ if (this.isNotSilent) {
56
+ console.warn(chalk.yellow(`[WARN]\t[${new Date().toISOString()}]`), ...args);
57
+ }
58
+ return this;
59
+ }
60
+ constructor(options = {}){
61
+ // Set verbosity options
62
+ this.isDebug = options.debug ?? false;
63
+ this.isSilent = options.silent ?? false;
64
+ // Initialize counters
65
+ this.nbErrorsCalls = 0;
66
+ this.nbWarningsCalls = 0;
67
+ }
68
+ }
69
+ const nowAsISO = ()=>new Date().toISOString();
70
+ const loggerFactory = (options = {})=>new Logger(options);
71
+
72
+ export { Logger, loggerFactory };
73
+ //# sourceMappingURL=logger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.mjs","sources":["../../../../src/modules/logger/logger.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport type { Logger as LoggerInterface, LoggerOptions } from './types';\n\nexport class Logger implements LoggerInterface {\n isDebug: boolean;\n\n isSilent: boolean;\n\n private nbErrorsCalls: number;\n\n private nbWarningsCalls: number;\n\n constructor(options: LoggerOptions = {}) {\n // Set verbosity options\n this.isDebug = options.debug ?? false;\n this.isSilent = options.silent ?? false;\n\n // Initialize counters\n this.nbErrorsCalls = 0;\n this.nbWarningsCalls = 0;\n }\n\n private get isNotSilent(): boolean {\n return !this.isSilent;\n }\n\n get errors(): number {\n return this.nbErrorsCalls;\n }\n\n get warnings(): number {\n return this.nbWarningsCalls;\n }\n\n get stdout(): (NodeJS.WriteStream & { fd: 1 }) | undefined {\n return this.isSilent ? undefined : process.stdout;\n }\n\n get stderr(): (NodeJS.WriteStream & { fd: 2 }) | undefined {\n return this.isSilent ? undefined : process.stderr;\n }\n\n setDebug(debug: boolean): this {\n this.isDebug = debug;\n return this;\n }\n\n setSilent(silent: boolean): this {\n this.isSilent = silent;\n return this;\n }\n\n debug(...args: unknown[]): this {\n const isDebugEnabled = this.isNotSilent && this.isDebug;\n\n if (isDebugEnabled) {\n console.log(chalk.cyan(`[DEBUG]\\t[${nowAsISO()}]`), ...args);\n }\n\n return this;\n }\n\n error(...args: unknown[]): this {\n this.nbErrorsCalls += 1;\n\n if (this.isNotSilent) {\n console.error(chalk.red(`[ERROR]\\t[${nowAsISO()}]`), ...args);\n }\n\n return this;\n }\n\n info(...args: unknown[]): this {\n if (this.isNotSilent) {\n console.info(chalk.blue(`[INFO]\\t[${new Date().toISOString()}]`), ...args);\n }\n\n return this;\n }\n\n raw(...args: unknown[]): this {\n if (this.isNotSilent) {\n console.log(...args);\n }\n\n return this;\n }\n\n warn(...args: unknown[]): this {\n this.nbWarningsCalls += 1;\n\n if (this.isNotSilent) {\n console.warn(chalk.yellow(`[WARN]\\t[${new Date().toISOString()}]`), ...args);\n }\n\n return this;\n }\n}\n\nconst nowAsISO = () => new Date().toISOString();\n\nexport const loggerFactory = (options: LoggerOptions = {}) => new Logger(options);\n"],"names":["Logger","isNotSilent","isSilent","errors","nbErrorsCalls","warnings","nbWarningsCalls","stdout","undefined","process","stderr","setDebug","debug","isDebug","setSilent","silent","args","isDebugEnabled","console","log","chalk","cyan","nowAsISO","error","red","info","blue","Date","toISOString","raw","warn","yellow","options","loggerFactory"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const NPM_REGISTRY_URL = 'https://registry.npmjs.org';
4
+
5
+ exports.NPM_REGISTRY_URL = NPM_REGISTRY_URL;
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/modules/npm/constants.ts"],"sourcesContent":["export const NPM_REGISTRY_URL = 'https://registry.npmjs.org';\n"],"names":["NPM_REGISTRY_URL"],"mappings":";;AAAO,MAAMA,mBAAmB;;;;"}
@@ -0,0 +1,4 @@
1
+ const NPM_REGISTRY_URL = 'https://registry.npmjs.org';
2
+
3
+ export { NPM_REGISTRY_URL };
4
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../src/modules/npm/constants.ts"],"sourcesContent":["export const NPM_REGISTRY_URL = 'https://registry.npmjs.org';\n"],"names":["NPM_REGISTRY_URL"],"mappings":"AAAO,MAAMA,mBAAmB;;;;"}
@@ -0,0 +1,107 @@
1
+ 'use strict';
2
+
3
+ var assert = require('node:assert');
4
+ var semver$1 = require('semver');
5
+ var execa = require('execa');
6
+ var utils = require('@strapi/utils');
7
+ var undici = require('undici');
8
+ var constants = require('./constants.js');
9
+ var semver = require('../version/semver.js');
10
+
11
+ const proxyUrl = process.env.HTTP_PROXY || process.env.HTTPS_PROXY;
12
+ const agent = proxyUrl ? new undici.ProxyAgent(proxyUrl) : undefined;
13
+ class Package {
14
+ get isLoaded() {
15
+ return this.npmPackage !== null;
16
+ }
17
+ assertPackageIsLoaded(npmPackage) {
18
+ assert(this.isLoaded, 'The package is not loaded yet');
19
+ }
20
+ getVersionsDict() {
21
+ this.assertPackageIsLoaded(this.npmPackage);
22
+ return this.npmPackage.versions;
23
+ }
24
+ getVersionsAsList() {
25
+ this.assertPackageIsLoaded(this.npmPackage);
26
+ return Object.values(this.npmPackage.versions);
27
+ }
28
+ findVersionsInRange(range) {
29
+ const versions = this.getVersionsAsList();
30
+ return versions// Only select versions matching the upgrade range
31
+ .filter((v)=>range.test(v.version))// Only select supported version format (x.x.x)
32
+ .filter((v)=>semver.isLiteralSemVer(v.version))// Sort in ascending order
33
+ .sort((v1, v2)=>semver$1.compare(v1.version, v2.version));
34
+ }
35
+ async getRegistryFromPackageManager() {
36
+ try {
37
+ const packageManagerName = await utils.packageManager.getPreferred(this.cwd);
38
+ if (!packageManagerName) return undefined;
39
+ const registryCommands = {
40
+ yarn: [
41
+ 'config',
42
+ 'get',
43
+ 'npmRegistryServer'
44
+ ],
45
+ npm: [
46
+ 'config',
47
+ 'get',
48
+ 'registry'
49
+ ]
50
+ };
51
+ const command = registryCommands[packageManagerName];
52
+ if (!command) {
53
+ this.logger.warn(`Unsupported package manager: ${packageManagerName}`);
54
+ return undefined;
55
+ }
56
+ const { stdout } = await execa(packageManagerName, command, {
57
+ timeout: 10000
58
+ });
59
+ return stdout.trim() || undefined;
60
+ } catch (error) {
61
+ this.logger.warn('Failed to determine registry URL from package manager');
62
+ return undefined;
63
+ }
64
+ }
65
+ async determineRegistryUrl() {
66
+ if (process.env.NPM_REGISTRY_URL) {
67
+ this.logger.debug(`Using NPM_REGISTRY_URL: ${process.env.NPM_REGISTRY_URL}`);
68
+ return process.env.NPM_REGISTRY_URL.replace(/\/$/, '');
69
+ }
70
+ const packageManagerRegistry = await this.getRegistryFromPackageManager();
71
+ if (packageManagerRegistry) {
72
+ this.logger.debug(`Using package manager registry: ${packageManagerRegistry}`);
73
+ return packageManagerRegistry.replace(/\/$/, '');
74
+ }
75
+ this.logger.debug(`Using default registry: ${constants.NPM_REGISTRY_URL}`);
76
+ return constants.NPM_REGISTRY_URL.replace(/\/$/, '');
77
+ }
78
+ findVersion(version) {
79
+ const versions = this.getVersionsAsList();
80
+ return versions.find((npmVersion)=>semver$1.eq(npmVersion.version, version));
81
+ }
82
+ async refresh() {
83
+ const packageURL = `${await this.determineRegistryUrl()}/${this.name}`;
84
+ const response = await fetch(packageURL, {
85
+ // @ts-expect-error Node.js fetch supports dispatcher (undici extension)
86
+ dispatcher: agent
87
+ });
88
+ // TODO: Use a validation library to make sure the response structure is correct
89
+ assert(response.ok, `Request failed for ${packageURL}`);
90
+ this.npmPackage = await response.json();
91
+ return this;
92
+ }
93
+ versionExists(version) {
94
+ return this.findVersion(version) !== undefined;
95
+ }
96
+ constructor(name, cwd, logger){
97
+ this.name = name;
98
+ this.cwd = cwd;
99
+ this.logger = logger;
100
+ this.npmPackage = null;
101
+ }
102
+ }
103
+ const npmPackageFactory = (name, cwd, logger)=>new Package(name, cwd, logger);
104
+
105
+ exports.Package = Package;
106
+ exports.npmPackageFactory = npmPackageFactory;
107
+ //# sourceMappingURL=package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.js","sources":["../../../../src/modules/npm/package.ts"],"sourcesContent":["import assert from 'node:assert';\nimport semver from 'semver';\nimport execa from 'execa';\nimport { packageManager } from '@strapi/utils';\n\nimport { ProxyAgent } from 'undici';\nimport * as constants from './constants';\nimport { isLiteralSemVer } from '../version';\n\nimport type { Package as PackageInterface, NPMPackage, NPMPackageVersion } from './types';\nimport type { Version } from '../version';\nimport { Logger } from '../logger';\n\nconst proxyUrl = process.env.HTTP_PROXY || process.env.HTTPS_PROXY;\nconst agent = proxyUrl ? new ProxyAgent(proxyUrl) : undefined;\n\nexport class Package implements PackageInterface {\n name: string;\n\n cwd: string;\n\n private logger: Logger;\n\n private npmPackage: NPMPackage | null;\n\n constructor(name: string, cwd: string, logger: Logger) {\n this.name = name;\n this.cwd = cwd;\n this.logger = logger;\n this.npmPackage = null;\n }\n\n get isLoaded() {\n return this.npmPackage !== null;\n }\n\n private assertPackageIsLoaded(npmPackage: NPMPackage | null): asserts npmPackage is NPMPackage {\n assert(this.isLoaded, 'The package is not loaded yet');\n }\n\n getVersionsDict() {\n this.assertPackageIsLoaded(this.npmPackage);\n\n return this.npmPackage.versions;\n }\n\n getVersionsAsList() {\n this.assertPackageIsLoaded(this.npmPackage);\n\n return Object.values(this.npmPackage.versions);\n }\n\n findVersionsInRange(range: Version.Range) {\n const versions = this.getVersionsAsList();\n\n return (\n versions\n // Only select versions matching the upgrade range\n .filter((v) => range.test(v.version))\n // Only select supported version format (x.x.x)\n .filter((v) => isLiteralSemVer(v.version))\n // Sort in ascending order\n .sort((v1, v2) => semver.compare(v1.version, v2.version))\n );\n }\n\n private async getRegistryFromPackageManager(): Promise<string | undefined> {\n try {\n const packageManagerName = await packageManager.getPreferred(this.cwd);\n if (!packageManagerName) return undefined;\n\n const registryCommands = {\n yarn: ['config', 'get', 'npmRegistryServer'],\n npm: ['config', 'get', 'registry'],\n } as const;\n\n const command = registryCommands[packageManagerName as keyof typeof registryCommands];\n if (!command) {\n this.logger.warn(`Unsupported package manager: ${packageManagerName}`);\n return undefined;\n }\n\n const { stdout } = await execa(packageManagerName, command, { timeout: 10_000 });\n return stdout.trim() || undefined;\n } catch (error) {\n this.logger.warn('Failed to determine registry URL from package manager');\n return undefined;\n }\n }\n\n private async determineRegistryUrl(): Promise<string> {\n if (process.env.NPM_REGISTRY_URL) {\n this.logger.debug(`Using NPM_REGISTRY_URL: ${process.env.NPM_REGISTRY_URL}`);\n return process.env.NPM_REGISTRY_URL.replace(/\\/$/, '');\n }\n\n const packageManagerRegistry = await this.getRegistryFromPackageManager();\n if (packageManagerRegistry) {\n this.logger.debug(`Using package manager registry: ${packageManagerRegistry}`);\n return packageManagerRegistry.replace(/\\/$/, '');\n }\n\n this.logger.debug(`Using default registry: ${constants.NPM_REGISTRY_URL}`);\n return constants.NPM_REGISTRY_URL.replace(/\\/$/, '');\n }\n\n findVersion(version: Version.SemVer): NPMPackageVersion | undefined {\n const versions = this.getVersionsAsList();\n\n return versions.find((npmVersion) => semver.eq(npmVersion.version, version));\n }\n\n async refresh() {\n const packageURL = `${await this.determineRegistryUrl()}/${this.name}`;\n\n const response = await fetch(packageURL, {\n // @ts-expect-error Node.js fetch supports dispatcher (undici extension)\n dispatcher: agent,\n });\n\n // TODO: Use a validation library to make sure the response structure is correct\n assert(response.ok, `Request failed for ${packageURL}`);\n\n this.npmPackage = (await response.json()) as NPMPackage;\n\n return this;\n }\n\n versionExists(version: Version.SemVer) {\n return this.findVersion(version) !== undefined;\n }\n}\n\nexport const npmPackageFactory = (name: string, cwd: string, logger: Logger) =>\n new Package(name, cwd, logger);\n"],"names":["proxyUrl","process","env","HTTP_PROXY","HTTPS_PROXY","agent","ProxyAgent","undefined","Package","isLoaded","npmPackage","assertPackageIsLoaded","assert","getVersionsDict","versions","getVersionsAsList","Object","values","findVersionsInRange","range","filter","v","test","version","isLiteralSemVer","sort","v1","v2","semver","compare","getRegistryFromPackageManager","packageManagerName","packageManager","getPreferred","cwd","registryCommands","yarn","npm","command","logger","warn","stdout","execa","timeout","trim","error","determineRegistryUrl","NPM_REGISTRY_URL","debug","replace","packageManagerRegistry","constants","findVersion","find","npmVersion","eq","refresh","packageURL","name","response","fetch","dispatcher","ok","json","versionExists","npmPackageFactory"],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import assert from 'node:assert';
2
+ import semver from 'semver';
3
+ import execa from 'execa';
4
+ import { packageManager } from '@strapi/utils';
5
+ import { ProxyAgent } from 'undici';
6
+ import { NPM_REGISTRY_URL } from './constants.mjs';
7
+ import { isLiteralSemVer } from '../version/semver.mjs';
8
+
9
+ const proxyUrl = process.env.HTTP_PROXY || process.env.HTTPS_PROXY;
10
+ const agent = proxyUrl ? new ProxyAgent(proxyUrl) : undefined;
11
+ class Package {
12
+ get isLoaded() {
13
+ return this.npmPackage !== null;
14
+ }
15
+ assertPackageIsLoaded(npmPackage) {
16
+ assert(this.isLoaded, 'The package is not loaded yet');
17
+ }
18
+ getVersionsDict() {
19
+ this.assertPackageIsLoaded(this.npmPackage);
20
+ return this.npmPackage.versions;
21
+ }
22
+ getVersionsAsList() {
23
+ this.assertPackageIsLoaded(this.npmPackage);
24
+ return Object.values(this.npmPackage.versions);
25
+ }
26
+ findVersionsInRange(range) {
27
+ const versions = this.getVersionsAsList();
28
+ return versions// Only select versions matching the upgrade range
29
+ .filter((v)=>range.test(v.version))// Only select supported version format (x.x.x)
30
+ .filter((v)=>isLiteralSemVer(v.version))// Sort in ascending order
31
+ .sort((v1, v2)=>semver.compare(v1.version, v2.version));
32
+ }
33
+ async getRegistryFromPackageManager() {
34
+ try {
35
+ const packageManagerName = await packageManager.getPreferred(this.cwd);
36
+ if (!packageManagerName) return undefined;
37
+ const registryCommands = {
38
+ yarn: [
39
+ 'config',
40
+ 'get',
41
+ 'npmRegistryServer'
42
+ ],
43
+ npm: [
44
+ 'config',
45
+ 'get',
46
+ 'registry'
47
+ ]
48
+ };
49
+ const command = registryCommands[packageManagerName];
50
+ if (!command) {
51
+ this.logger.warn(`Unsupported package manager: ${packageManagerName}`);
52
+ return undefined;
53
+ }
54
+ const { stdout } = await execa(packageManagerName, command, {
55
+ timeout: 10000
56
+ });
57
+ return stdout.trim() || undefined;
58
+ } catch (error) {
59
+ this.logger.warn('Failed to determine registry URL from package manager');
60
+ return undefined;
61
+ }
62
+ }
63
+ async determineRegistryUrl() {
64
+ if (process.env.NPM_REGISTRY_URL) {
65
+ this.logger.debug(`Using NPM_REGISTRY_URL: ${process.env.NPM_REGISTRY_URL}`);
66
+ return process.env.NPM_REGISTRY_URL.replace(/\/$/, '');
67
+ }
68
+ const packageManagerRegistry = await this.getRegistryFromPackageManager();
69
+ if (packageManagerRegistry) {
70
+ this.logger.debug(`Using package manager registry: ${packageManagerRegistry}`);
71
+ return packageManagerRegistry.replace(/\/$/, '');
72
+ }
73
+ this.logger.debug(`Using default registry: ${NPM_REGISTRY_URL}`);
74
+ return NPM_REGISTRY_URL.replace(/\/$/, '');
75
+ }
76
+ findVersion(version) {
77
+ const versions = this.getVersionsAsList();
78
+ return versions.find((npmVersion)=>semver.eq(npmVersion.version, version));
79
+ }
80
+ async refresh() {
81
+ const packageURL = `${await this.determineRegistryUrl()}/${this.name}`;
82
+ const response = await fetch(packageURL, {
83
+ // @ts-expect-error Node.js fetch supports dispatcher (undici extension)
84
+ dispatcher: agent
85
+ });
86
+ // TODO: Use a validation library to make sure the response structure is correct
87
+ assert(response.ok, `Request failed for ${packageURL}`);
88
+ this.npmPackage = await response.json();
89
+ return this;
90
+ }
91
+ versionExists(version) {
92
+ return this.findVersion(version) !== undefined;
93
+ }
94
+ constructor(name, cwd, logger){
95
+ this.name = name;
96
+ this.cwd = cwd;
97
+ this.logger = logger;
98
+ this.npmPackage = null;
99
+ }
100
+ }
101
+ const npmPackageFactory = (name, cwd, logger)=>new Package(name, cwd, logger);
102
+
103
+ export { Package, npmPackageFactory };
104
+ //# sourceMappingURL=package.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.mjs","sources":["../../../../src/modules/npm/package.ts"],"sourcesContent":["import assert from 'node:assert';\nimport semver from 'semver';\nimport execa from 'execa';\nimport { packageManager } from '@strapi/utils';\n\nimport { ProxyAgent } from 'undici';\nimport * as constants from './constants';\nimport { isLiteralSemVer } from '../version';\n\nimport type { Package as PackageInterface, NPMPackage, NPMPackageVersion } from './types';\nimport type { Version } from '../version';\nimport { Logger } from '../logger';\n\nconst proxyUrl = process.env.HTTP_PROXY || process.env.HTTPS_PROXY;\nconst agent = proxyUrl ? new ProxyAgent(proxyUrl) : undefined;\n\nexport class Package implements PackageInterface {\n name: string;\n\n cwd: string;\n\n private logger: Logger;\n\n private npmPackage: NPMPackage | null;\n\n constructor(name: string, cwd: string, logger: Logger) {\n this.name = name;\n this.cwd = cwd;\n this.logger = logger;\n this.npmPackage = null;\n }\n\n get isLoaded() {\n return this.npmPackage !== null;\n }\n\n private assertPackageIsLoaded(npmPackage: NPMPackage | null): asserts npmPackage is NPMPackage {\n assert(this.isLoaded, 'The package is not loaded yet');\n }\n\n getVersionsDict() {\n this.assertPackageIsLoaded(this.npmPackage);\n\n return this.npmPackage.versions;\n }\n\n getVersionsAsList() {\n this.assertPackageIsLoaded(this.npmPackage);\n\n return Object.values(this.npmPackage.versions);\n }\n\n findVersionsInRange(range: Version.Range) {\n const versions = this.getVersionsAsList();\n\n return (\n versions\n // Only select versions matching the upgrade range\n .filter((v) => range.test(v.version))\n // Only select supported version format (x.x.x)\n .filter((v) => isLiteralSemVer(v.version))\n // Sort in ascending order\n .sort((v1, v2) => semver.compare(v1.version, v2.version))\n );\n }\n\n private async getRegistryFromPackageManager(): Promise<string | undefined> {\n try {\n const packageManagerName = await packageManager.getPreferred(this.cwd);\n if (!packageManagerName) return undefined;\n\n const registryCommands = {\n yarn: ['config', 'get', 'npmRegistryServer'],\n npm: ['config', 'get', 'registry'],\n } as const;\n\n const command = registryCommands[packageManagerName as keyof typeof registryCommands];\n if (!command) {\n this.logger.warn(`Unsupported package manager: ${packageManagerName}`);\n return undefined;\n }\n\n const { stdout } = await execa(packageManagerName, command, { timeout: 10_000 });\n return stdout.trim() || undefined;\n } catch (error) {\n this.logger.warn('Failed to determine registry URL from package manager');\n return undefined;\n }\n }\n\n private async determineRegistryUrl(): Promise<string> {\n if (process.env.NPM_REGISTRY_URL) {\n this.logger.debug(`Using NPM_REGISTRY_URL: ${process.env.NPM_REGISTRY_URL}`);\n return process.env.NPM_REGISTRY_URL.replace(/\\/$/, '');\n }\n\n const packageManagerRegistry = await this.getRegistryFromPackageManager();\n if (packageManagerRegistry) {\n this.logger.debug(`Using package manager registry: ${packageManagerRegistry}`);\n return packageManagerRegistry.replace(/\\/$/, '');\n }\n\n this.logger.debug(`Using default registry: ${constants.NPM_REGISTRY_URL}`);\n return constants.NPM_REGISTRY_URL.replace(/\\/$/, '');\n }\n\n findVersion(version: Version.SemVer): NPMPackageVersion | undefined {\n const versions = this.getVersionsAsList();\n\n return versions.find((npmVersion) => semver.eq(npmVersion.version, version));\n }\n\n async refresh() {\n const packageURL = `${await this.determineRegistryUrl()}/${this.name}`;\n\n const response = await fetch(packageURL, {\n // @ts-expect-error Node.js fetch supports dispatcher (undici extension)\n dispatcher: agent,\n });\n\n // TODO: Use a validation library to make sure the response structure is correct\n assert(response.ok, `Request failed for ${packageURL}`);\n\n this.npmPackage = (await response.json()) as NPMPackage;\n\n return this;\n }\n\n versionExists(version: Version.SemVer) {\n return this.findVersion(version) !== undefined;\n }\n}\n\nexport const npmPackageFactory = (name: string, cwd: string, logger: Logger) =>\n new Package(name, cwd, logger);\n"],"names":["proxyUrl","process","env","HTTP_PROXY","HTTPS_PROXY","agent","ProxyAgent","undefined","Package","isLoaded","npmPackage","assertPackageIsLoaded","assert","getVersionsDict","versions","getVersionsAsList","Object","values","findVersionsInRange","range","filter","v","test","version","isLiteralSemVer","sort","v1","v2","semver","compare","getRegistryFromPackageManager","packageManagerName","packageManager","getPreferred","cwd","registryCommands","yarn","npm","command","logger","warn","stdout","execa","timeout","trim","error","determineRegistryUrl","NPM_REGISTRY_URL","debug","replace","packageManagerRegistry","constants","findVersion","find","npmVersion","eq","refresh","packageURL","name","response","fetch","dispatcher","ok","json","versionExists","npmPackageFactory"],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ const PROJECT_PACKAGE_JSON = 'package.json';
4
+ const PROJECT_APP_ALLOWED_ROOT_PATHS = [
5
+ 'src',
6
+ 'config',
7
+ 'public'
8
+ ];
9
+ const PROJECT_PLUGIN_ALLOWED_ROOT_PATHS = [
10
+ 'admin',
11
+ 'server'
12
+ ];
13
+ const PROJECT_PLUGIN_ROOT_FILES = [
14
+ 'strapi-admin.js',
15
+ 'strapi-server.js'
16
+ ];
17
+ const PROJECT_CODE_EXTENSIONS = [
18
+ // Source files
19
+ 'js',
20
+ 'mjs',
21
+ 'ts',
22
+ // React files
23
+ 'jsx',
24
+ 'tsx'
25
+ ];
26
+ const PROJECT_JSON_EXTENSIONS = [
27
+ 'json'
28
+ ];
29
+ const PROJECT_ALLOWED_EXTENSIONS = [
30
+ ...PROJECT_CODE_EXTENSIONS,
31
+ ...PROJECT_JSON_EXTENSIONS
32
+ ];
33
+ const SCOPED_STRAPI_PACKAGE_PREFIX = '@strapi/';
34
+ const STRAPI_DEPENDENCY_NAME = `${SCOPED_STRAPI_PACKAGE_PREFIX}strapi`;
35
+
36
+ exports.PROJECT_ALLOWED_EXTENSIONS = PROJECT_ALLOWED_EXTENSIONS;
37
+ exports.PROJECT_APP_ALLOWED_ROOT_PATHS = PROJECT_APP_ALLOWED_ROOT_PATHS;
38
+ exports.PROJECT_CODE_EXTENSIONS = PROJECT_CODE_EXTENSIONS;
39
+ exports.PROJECT_JSON_EXTENSIONS = PROJECT_JSON_EXTENSIONS;
40
+ exports.PROJECT_PACKAGE_JSON = PROJECT_PACKAGE_JSON;
41
+ exports.PROJECT_PLUGIN_ALLOWED_ROOT_PATHS = PROJECT_PLUGIN_ALLOWED_ROOT_PATHS;
42
+ exports.PROJECT_PLUGIN_ROOT_FILES = PROJECT_PLUGIN_ROOT_FILES;
43
+ exports.SCOPED_STRAPI_PACKAGE_PREFIX = SCOPED_STRAPI_PACKAGE_PREFIX;
44
+ exports.STRAPI_DEPENDENCY_NAME = STRAPI_DEPENDENCY_NAME;
45
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/modules/project/constants.ts"],"sourcesContent":["export const PROJECT_PACKAGE_JSON = 'package.json';\n\nexport const PROJECT_APP_ALLOWED_ROOT_PATHS = ['src', 'config', 'public'];\n\nexport const PROJECT_PLUGIN_ALLOWED_ROOT_PATHS = ['admin', 'server'];\n\nexport const PROJECT_PLUGIN_ROOT_FILES = ['strapi-admin.js', 'strapi-server.js'];\n\nexport const PROJECT_CODE_EXTENSIONS = [\n // Source files\n 'js',\n 'mjs',\n 'ts',\n // React files\n 'jsx',\n 'tsx',\n];\n\nexport const PROJECT_JSON_EXTENSIONS = ['json'];\n\nexport const PROJECT_ALLOWED_EXTENSIONS = [...PROJECT_CODE_EXTENSIONS, ...PROJECT_JSON_EXTENSIONS];\n\nexport const SCOPED_STRAPI_PACKAGE_PREFIX = '@strapi/';\n\nexport const STRAPI_DEPENDENCY_NAME = `${SCOPED_STRAPI_PACKAGE_PREFIX}strapi`;\n"],"names":["PROJECT_PACKAGE_JSON","PROJECT_APP_ALLOWED_ROOT_PATHS","PROJECT_PLUGIN_ALLOWED_ROOT_PATHS","PROJECT_PLUGIN_ROOT_FILES","PROJECT_CODE_EXTENSIONS","PROJECT_JSON_EXTENSIONS","PROJECT_ALLOWED_EXTENSIONS","SCOPED_STRAPI_PACKAGE_PREFIX","STRAPI_DEPENDENCY_NAME"],"mappings":";;AAAO,MAAMA,uBAAuB;MAEvBC,8BAAiC,GAAA;AAAC,IAAA,KAAA;AAAO,IAAA,QAAA;AAAU,IAAA;;MAEnDC,iCAAoC,GAAA;AAAC,IAAA,OAAA;AAAS,IAAA;;MAE9CC,yBAA4B,GAAA;AAAC,IAAA,iBAAA;AAAmB,IAAA;;MAEhDC,uBAA0B,GAAA;;AAErC,IAAA,IAAA;AACA,IAAA,KAAA;AACA,IAAA,IAAA;;AAEA,IAAA,KAAA;AACA,IAAA;;MAGWC,uBAA0B,GAAA;AAAC,IAAA;;MAE3BC,0BAA6B,GAAA;AAAIF,IAAAA,GAAAA,uBAAAA;AAA4BC,IAAAA,GAAAA;;AAEnE,MAAME,+BAA+B;MAE/BC,sBAAyB,GAAA,CAAA,EAAGD,4BAA6B,CAAA,MAAM;;;;;;;;;;;;"}
@@ -0,0 +1,35 @@
1
+ const PROJECT_PACKAGE_JSON = 'package.json';
2
+ const PROJECT_APP_ALLOWED_ROOT_PATHS = [
3
+ 'src',
4
+ 'config',
5
+ 'public'
6
+ ];
7
+ const PROJECT_PLUGIN_ALLOWED_ROOT_PATHS = [
8
+ 'admin',
9
+ 'server'
10
+ ];
11
+ const PROJECT_PLUGIN_ROOT_FILES = [
12
+ 'strapi-admin.js',
13
+ 'strapi-server.js'
14
+ ];
15
+ const PROJECT_CODE_EXTENSIONS = [
16
+ // Source files
17
+ 'js',
18
+ 'mjs',
19
+ 'ts',
20
+ // React files
21
+ 'jsx',
22
+ 'tsx'
23
+ ];
24
+ const PROJECT_JSON_EXTENSIONS = [
25
+ 'json'
26
+ ];
27
+ const PROJECT_ALLOWED_EXTENSIONS = [
28
+ ...PROJECT_CODE_EXTENSIONS,
29
+ ...PROJECT_JSON_EXTENSIONS
30
+ ];
31
+ const SCOPED_STRAPI_PACKAGE_PREFIX = '@strapi/';
32
+ const STRAPI_DEPENDENCY_NAME = `${SCOPED_STRAPI_PACKAGE_PREFIX}strapi`;
33
+
34
+ export { PROJECT_ALLOWED_EXTENSIONS, PROJECT_APP_ALLOWED_ROOT_PATHS, PROJECT_CODE_EXTENSIONS, PROJECT_JSON_EXTENSIONS, PROJECT_PACKAGE_JSON, PROJECT_PLUGIN_ALLOWED_ROOT_PATHS, PROJECT_PLUGIN_ROOT_FILES, SCOPED_STRAPI_PACKAGE_PREFIX, STRAPI_DEPENDENCY_NAME };
35
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../src/modules/project/constants.ts"],"sourcesContent":["export const PROJECT_PACKAGE_JSON = 'package.json';\n\nexport const PROJECT_APP_ALLOWED_ROOT_PATHS = ['src', 'config', 'public'];\n\nexport const PROJECT_PLUGIN_ALLOWED_ROOT_PATHS = ['admin', 'server'];\n\nexport const PROJECT_PLUGIN_ROOT_FILES = ['strapi-admin.js', 'strapi-server.js'];\n\nexport const PROJECT_CODE_EXTENSIONS = [\n // Source files\n 'js',\n 'mjs',\n 'ts',\n // React files\n 'jsx',\n 'tsx',\n];\n\nexport const PROJECT_JSON_EXTENSIONS = ['json'];\n\nexport const PROJECT_ALLOWED_EXTENSIONS = [...PROJECT_CODE_EXTENSIONS, ...PROJECT_JSON_EXTENSIONS];\n\nexport const SCOPED_STRAPI_PACKAGE_PREFIX = '@strapi/';\n\nexport const STRAPI_DEPENDENCY_NAME = `${SCOPED_STRAPI_PACKAGE_PREFIX}strapi`;\n"],"names":["PROJECT_PACKAGE_JSON","PROJECT_APP_ALLOWED_ROOT_PATHS","PROJECT_PLUGIN_ALLOWED_ROOT_PATHS","PROJECT_PLUGIN_ROOT_FILES","PROJECT_CODE_EXTENSIONS","PROJECT_JSON_EXTENSIONS","PROJECT_ALLOWED_EXTENSIONS","SCOPED_STRAPI_PACKAGE_PREFIX","STRAPI_DEPENDENCY_NAME"],"mappings":"AAAO,MAAMA,uBAAuB;MAEvBC,8BAAiC,GAAA;AAAC,IAAA,KAAA;AAAO,IAAA,QAAA;AAAU,IAAA;;MAEnDC,iCAAoC,GAAA;AAAC,IAAA,OAAA;AAAS,IAAA;;MAE9CC,yBAA4B,GAAA;AAAC,IAAA,iBAAA;AAAmB,IAAA;;MAEhDC,uBAA0B,GAAA;;AAErC,IAAA,IAAA;AACA,IAAA,KAAA;AACA,IAAA,IAAA;;AAEA,IAAA,KAAA;AACA,IAAA;;MAGWC,uBAA0B,GAAA;AAAC,IAAA;;MAE3BC,0BAA6B,GAAA;AAAIF,IAAAA,GAAAA,uBAAAA;AAA4BC,IAAAA,GAAAA;;AAEnE,MAAME,+BAA+B;MAE/BC,sBAAyB,GAAA,CAAA,EAAGD,4BAA6B,CAAA,MAAM;;;;"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var project = require('./project.js');
4
+ var constants = require('./constants.js');
5
+ var utils = require('./utils.js');
6
+
7
+
8
+
9
+ exports.projectFactory = project.projectFactory;
10
+ exports.constants = constants;
11
+ exports.assertAppProject = utils.assertAppProject;
12
+ exports.assertPluginProject = utils.assertPluginProject;
13
+ exports.isApplicationProject = utils.isApplicationProject;
14
+ exports.isPluginProject = utils.isPluginProject;
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ export { projectFactory } from './project.mjs';
2
+ import * as constants from './constants.mjs';
3
+ export { constants };
4
+ export { assertAppProject, assertPluginProject, isApplicationProject, isPluginProject } from './utils.mjs';
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}