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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/cli.js +6 -203
  2. package/dist/cli.js.map +1 -1
  3. package/dist/cli.mjs +5 -202
  4. package/dist/cli.mjs.map +1 -1
  5. package/dist/index.js +4 -155
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +4 -157
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/modules/codemod-repository/constants.d.ts.map +1 -1
  10. package/dist/modules/npm/package.d.ts.map +1 -1
  11. package/dist/package.json.js +6 -0
  12. package/dist/package.json.js.map +1 -0
  13. package/dist/package.json.mjs +4 -0
  14. package/dist/package.json.mjs.map +1 -0
  15. package/dist/src/cli/commands/codemods.js +121 -0
  16. package/dist/src/cli/commands/codemods.js.map +1 -0
  17. package/dist/src/cli/commands/codemods.mjs +117 -0
  18. package/dist/src/cli/commands/codemods.mjs.map +1 -0
  19. package/dist/src/cli/commands/upgrade.js +99 -0
  20. package/dist/src/cli/commands/upgrade.js.map +1 -0
  21. package/dist/src/cli/commands/upgrade.mjs +96 -0
  22. package/dist/src/cli/commands/upgrade.mjs.map +1 -0
  23. package/dist/src/cli/errors.js +18 -0
  24. package/dist/src/cli/errors.js.map +1 -0
  25. package/dist/src/cli/errors.mjs +16 -0
  26. package/dist/src/cli/errors.mjs.map +1 -0
  27. package/dist/src/cli/options.js +26 -0
  28. package/dist/src/cli/options.js.map +1 -0
  29. package/dist/src/cli/options.mjs +19 -0
  30. package/dist/src/cli/options.mjs.map +1 -0
  31. package/dist/src/modules/codemod/codemod.js +44 -0
  32. package/dist/src/modules/codemod/codemod.js.map +1 -0
  33. package/dist/src/modules/codemod/codemod.mjs +41 -0
  34. package/dist/src/modules/codemod/codemod.mjs.map +1 -0
  35. package/dist/src/modules/codemod/constants.js +17 -0
  36. package/dist/src/modules/codemod/constants.js.map +1 -0
  37. package/dist/src/modules/codemod/constants.mjs +11 -0
  38. package/dist/src/modules/codemod/constants.mjs.map +1 -0
  39. package/dist/src/modules/codemod/index.js +10 -0
  40. package/dist/src/modules/codemod/index.js.map +1 -0
  41. package/dist/src/modules/codemod/index.mjs +4 -0
  42. package/dist/src/modules/codemod/index.mjs.map +1 -0
  43. package/dist/src/modules/codemod-repository/constants.js +9 -0
  44. package/dist/src/modules/codemod-repository/constants.js.map +1 -0
  45. package/dist/src/modules/codemod-repository/constants.mjs +7 -0
  46. package/dist/src/modules/codemod-repository/constants.mjs.map +1 -0
  47. package/dist/src/modules/codemod-repository/index.js +10 -0
  48. package/dist/src/modules/codemod-repository/index.js.map +1 -0
  49. package/dist/src/modules/codemod-repository/index.mjs +4 -0
  50. package/dist/src/modules/codemod-repository/index.mjs.map +1 -0
  51. package/dist/src/modules/codemod-repository/repository.js +127 -0
  52. package/dist/src/modules/codemod-repository/repository.js.map +1 -0
  53. package/dist/src/modules/codemod-repository/repository.mjs +123 -0
  54. package/dist/src/modules/codemod-repository/repository.mjs.map +1 -0
  55. package/dist/src/modules/codemod-runner/codemod-runner.js +113 -0
  56. package/dist/src/modules/codemod-runner/codemod-runner.js.map +1 -0
  57. package/dist/src/modules/codemod-runner/codemod-runner.mjs +110 -0
  58. package/dist/src/modules/codemod-runner/codemod-runner.mjs.map +1 -0
  59. package/dist/src/modules/error/index.js +11 -0
  60. package/dist/src/modules/error/index.js.map +1 -0
  61. package/dist/src/modules/error/index.mjs +2 -0
  62. package/dist/src/modules/error/index.mjs.map +1 -0
  63. package/dist/src/modules/error/utils.js +33 -0
  64. package/dist/src/modules/error/utils.js.map +1 -0
  65. package/dist/src/modules/error/utils.mjs +28 -0
  66. package/dist/src/modules/error/utils.mjs.map +1 -0
  67. package/dist/src/modules/file-scanner/index.js +8 -0
  68. package/dist/src/modules/file-scanner/index.js.map +1 -0
  69. package/dist/src/modules/file-scanner/index.mjs +2 -0
  70. package/dist/src/modules/file-scanner/index.mjs.map +1 -0
  71. package/dist/src/modules/file-scanner/scanner.js +23 -0
  72. package/dist/src/modules/file-scanner/scanner.js.map +1 -0
  73. package/dist/src/modules/file-scanner/scanner.mjs +20 -0
  74. package/dist/src/modules/file-scanner/scanner.mjs.map +1 -0
  75. package/dist/src/modules/format/formats.js +107 -0
  76. package/dist/src/modules/format/formats.js.map +1 -0
  77. package/dist/src/modules/format/formats.mjs +94 -0
  78. package/dist/src/modules/format/formats.mjs.map +1 -0
  79. package/dist/src/modules/format/index.js +19 -0
  80. package/dist/src/modules/format/index.js.map +1 -0
  81. package/dist/src/modules/format/index.mjs +2 -0
  82. package/dist/src/modules/format/index.mjs.map +1 -0
  83. package/dist/src/modules/index.js +32 -0
  84. package/dist/src/modules/index.js.map +1 -0
  85. package/dist/src/modules/index.mjs +27 -0
  86. package/dist/src/modules/index.mjs.map +1 -0
  87. package/dist/src/modules/json/file.js +16 -0
  88. package/dist/src/modules/json/file.js.map +1 -0
  89. package/dist/src/modules/json/file.mjs +13 -0
  90. package/dist/src/modules/json/file.mjs.map +1 -0
  91. package/dist/src/modules/json/transform-api.js +38 -0
  92. package/dist/src/modules/json/transform-api.js.map +1 -0
  93. package/dist/src/modules/json/transform-api.mjs +35 -0
  94. package/dist/src/modules/json/transform-api.mjs.map +1 -0
  95. package/dist/src/modules/logger/index.js +8 -0
  96. package/dist/src/modules/logger/index.js.map +1 -0
  97. package/dist/src/modules/logger/index.mjs +2 -0
  98. package/dist/src/modules/logger/index.mjs.map +1 -0
  99. package/dist/src/modules/logger/logger.js +76 -0
  100. package/dist/src/modules/logger/logger.js.map +1 -0
  101. package/dist/src/modules/logger/logger.mjs +73 -0
  102. package/dist/src/modules/logger/logger.mjs.map +1 -0
  103. package/dist/src/modules/npm/constants.js +6 -0
  104. package/dist/src/modules/npm/constants.js.map +1 -0
  105. package/dist/src/modules/npm/constants.mjs +4 -0
  106. package/dist/src/modules/npm/constants.mjs.map +1 -0
  107. package/dist/src/modules/npm/package.js +61 -0
  108. package/dist/src/modules/npm/package.js.map +1 -0
  109. package/dist/src/modules/npm/package.mjs +58 -0
  110. package/dist/src/modules/npm/package.mjs.map +1 -0
  111. package/dist/src/modules/project/constants.js +45 -0
  112. package/dist/src/modules/project/constants.js.map +1 -0
  113. package/dist/src/modules/project/constants.mjs +35 -0
  114. package/dist/src/modules/project/constants.mjs.map +1 -0
  115. package/dist/src/modules/project/index.js +15 -0
  116. package/dist/src/modules/project/index.js.map +1 -0
  117. package/dist/src/modules/project/index.mjs +5 -0
  118. package/dist/src/modules/project/index.mjs.map +1 -0
  119. package/dist/src/modules/project/project.js +208 -0
  120. package/dist/src/modules/project/project.js.map +1 -0
  121. package/dist/src/modules/project/project.mjs +203 -0
  122. package/dist/src/modules/project/project.mjs.map +1 -0
  123. package/dist/src/modules/project/utils.js +26 -0
  124. package/dist/src/modules/project/utils.js.map +1 -0
  125. package/dist/src/modules/project/utils.mjs +21 -0
  126. package/dist/src/modules/project/utils.mjs.map +1 -0
  127. package/dist/src/modules/report/index.js +9 -0
  128. package/dist/src/modules/report/index.js.map +1 -0
  129. package/dist/src/modules/report/index.mjs +2 -0
  130. package/dist/src/modules/report/index.mjs.map +1 -0
  131. package/dist/src/modules/report/report.js +13 -0
  132. package/dist/src/modules/report/report.js.map +1 -0
  133. package/dist/src/modules/report/report.mjs +10 -0
  134. package/dist/src/modules/report/report.mjs.map +1 -0
  135. package/dist/src/modules/requirement/index.js +8 -0
  136. package/dist/src/modules/requirement/index.js.map +1 -0
  137. package/dist/src/modules/requirement/index.mjs +2 -0
  138. package/dist/src/modules/requirement/index.mjs.map +1 -0
  139. package/dist/src/modules/requirement/requirement.js +55 -0
  140. package/dist/src/modules/requirement/requirement.js.map +1 -0
  141. package/dist/src/modules/requirement/requirement.mjs +52 -0
  142. package/dist/src/modules/requirement/requirement.mjs.map +1 -0
  143. package/dist/src/modules/runner/code/code.js +21 -0
  144. package/dist/src/modules/runner/code/code.js.map +1 -0
  145. package/dist/src/modules/runner/code/code.mjs +18 -0
  146. package/dist/src/modules/runner/code/code.mjs.map +1 -0
  147. package/dist/src/modules/runner/code/index.js +8 -0
  148. package/dist/src/modules/runner/code/index.js.map +1 -0
  149. package/dist/src/modules/runner/code/index.mjs +2 -0
  150. package/dist/src/modules/runner/code/index.mjs.map +1 -0
  151. package/dist/src/modules/runner/index.js +10 -0
  152. package/dist/src/modules/runner/index.js.map +1 -0
  153. package/dist/src/modules/runner/index.mjs +5 -0
  154. package/dist/src/modules/runner/index.mjs.map +1 -0
  155. package/dist/src/modules/runner/json/index.js +8 -0
  156. package/dist/src/modules/runner/json/index.js.map +1 -0
  157. package/dist/src/modules/runner/json/index.mjs +2 -0
  158. package/dist/src/modules/runner/json/index.mjs.map +1 -0
  159. package/dist/src/modules/runner/json/json.js +21 -0
  160. package/dist/src/modules/runner/json/json.js.map +1 -0
  161. package/dist/src/modules/runner/json/json.mjs +18 -0
  162. package/dist/src/modules/runner/json/json.mjs.map +1 -0
  163. package/dist/src/modules/runner/json/transform.js +85 -0
  164. package/dist/src/modules/runner/json/transform.js.map +1 -0
  165. package/dist/src/modules/runner/json/transform.mjs +83 -0
  166. package/dist/src/modules/runner/json/transform.mjs.map +1 -0
  167. package/dist/src/modules/runner/runner.js +22 -0
  168. package/dist/src/modules/runner/runner.js.map +1 -0
  169. package/dist/src/modules/runner/runner.mjs +20 -0
  170. package/dist/src/modules/runner/runner.mjs.map +1 -0
  171. package/dist/src/modules/timer/constants.js +6 -0
  172. package/dist/src/modules/timer/constants.js.map +1 -0
  173. package/dist/src/modules/timer/constants.mjs +4 -0
  174. package/dist/src/modules/timer/constants.mjs.map +1 -0
  175. package/dist/src/modules/timer/index.js +10 -0
  176. package/dist/src/modules/timer/index.js.map +1 -0
  177. package/dist/src/modules/timer/index.mjs +4 -0
  178. package/dist/src/modules/timer/index.mjs.map +1 -0
  179. package/dist/src/modules/timer/timer.js +33 -0
  180. package/dist/src/modules/timer/timer.js.map +1 -0
  181. package/dist/src/modules/timer/timer.mjs +30 -0
  182. package/dist/src/modules/timer/timer.mjs.map +1 -0
  183. package/dist/src/modules/upgrader/constants.js +6 -0
  184. package/dist/src/modules/upgrader/constants.js.map +1 -0
  185. package/dist/src/modules/upgrader/constants.mjs +4 -0
  186. package/dist/src/modules/upgrader/constants.mjs.map +1 -0
  187. package/dist/src/modules/upgrader/index.js +10 -0
  188. package/dist/src/modules/upgrader/index.js.map +1 -0
  189. package/dist/src/modules/upgrader/index.mjs +4 -0
  190. package/dist/src/modules/upgrader/index.mjs.map +1 -0
  191. package/dist/src/modules/upgrader/upgrader.js +266 -0
  192. package/dist/src/modules/upgrader/upgrader.js.map +1 -0
  193. package/dist/src/modules/upgrader/upgrader.mjs +263 -0
  194. package/dist/src/modules/upgrader/upgrader.mjs.map +1 -0
  195. package/dist/src/modules/version/index.js +20 -0
  196. package/dist/src/modules/version/index.js.map +1 -0
  197. package/dist/src/modules/version/index.mjs +5 -0
  198. package/dist/src/modules/version/index.mjs.map +1 -0
  199. package/dist/src/modules/version/range.js +81 -0
  200. package/dist/src/modules/version/range.js.map +1 -0
  201. package/dist/src/modules/version/range.mjs +75 -0
  202. package/dist/src/modules/version/range.mjs.map +1 -0
  203. package/dist/src/modules/version/semver.js +26 -0
  204. package/dist/src/modules/version/semver.js.map +1 -0
  205. package/dist/src/modules/version/semver.mjs +20 -0
  206. package/dist/src/modules/version/semver.mjs.map +1 -0
  207. package/dist/src/modules/version/types.js +12 -0
  208. package/dist/src/modules/version/types.js.map +1 -0
  209. package/dist/src/modules/version/types.mjs +12 -0
  210. package/dist/src/modules/version/types.mjs.map +1 -0
  211. package/dist/src/tasks/codemods/list-codemods.js +40 -0
  212. package/dist/src/tasks/codemods/list-codemods.js.map +1 -0
  213. package/dist/src/tasks/codemods/list-codemods.mjs +38 -0
  214. package/dist/src/tasks/codemods/list-codemods.mjs.map +1 -0
  215. package/dist/src/tasks/codemods/run-codemods.js +36 -0
  216. package/dist/src/tasks/codemods/run-codemods.js.map +1 -0
  217. package/dist/src/tasks/codemods/run-codemods.mjs +34 -0
  218. package/dist/src/tasks/codemods/run-codemods.mjs.map +1 -0
  219. package/dist/src/tasks/codemods/utils.js +54 -0
  220. package/dist/src/tasks/codemods/utils.js.map +1 -0
  221. package/dist/src/tasks/codemods/utils.mjs +50 -0
  222. package/dist/src/tasks/codemods/utils.mjs.map +1 -0
  223. package/dist/src/tasks/index.js +15 -0
  224. package/dist/src/tasks/index.js.map +1 -0
  225. package/dist/src/tasks/index.mjs +7 -0
  226. package/dist/src/tasks/index.mjs.map +1 -0
  227. package/dist/src/tasks/upgrade/prompts/latest.js +48 -0
  228. package/dist/src/tasks/upgrade/prompts/latest.js.map +1 -0
  229. package/dist/src/tasks/upgrade/prompts/latest.mjs +46 -0
  230. package/dist/src/tasks/upgrade/prompts/latest.mjs.map +1 -0
  231. package/dist/src/tasks/upgrade/requirements/common.js +40 -0
  232. package/dist/src/tasks/upgrade/requirements/common.js.map +1 -0
  233. package/dist/src/tasks/upgrade/requirements/common.mjs +35 -0
  234. package/dist/src/tasks/upgrade/requirements/common.mjs.map +1 -0
  235. package/dist/src/tasks/upgrade/requirements/major.js +29 -0
  236. package/dist/src/tasks/upgrade/requirements/major.js.map +1 -0
  237. package/dist/src/tasks/upgrade/requirements/major.mjs +26 -0
  238. package/dist/src/tasks/upgrade/requirements/major.mjs.map +1 -0
  239. package/dist/src/tasks/upgrade/upgrade.js +69 -0
  240. package/dist/src/tasks/upgrade/upgrade.js.map +1 -0
  241. package/dist/src/tasks/upgrade/upgrade.mjs +67 -0
  242. package/dist/src/tasks/upgrade/upgrade.mjs.map +1 -0
  243. package/package.json +6 -5
  244. package/dist/chunks/logger-DGi224NW.js +0 -1649
  245. package/dist/chunks/logger-DGi224NW.js.map +0 -1
  246. package/dist/chunks/logger-np_r7rTc.mjs +0 -1599
  247. package/dist/chunks/logger-np_r7rTc.mjs.map +0 -1
@@ -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","constructor","options","loggerFactory"],"mappings":";;;;AAIO,MAAMA,MAAAA,CAAAA;AAmBX,IAAA,IAAYC,WAAuB,GAAA;QACjC,OAAO,CAAC,IAAI,CAACC,QAAQ;AACvB;AAEA,IAAA,IAAIC,MAAiB,GAAA;QACnB,OAAO,IAAI,CAACC,aAAa;AAC3B;AAEA,IAAA,IAAIC,QAAmB,GAAA;QACrB,OAAO,IAAI,CAACC,eAAe;AAC7B;AAEA,IAAA,IAAIC,MAAuD,GAAA;AACzD,QAAA,OAAO,IAAI,CAACL,QAAQ,GAAGM,SAAAA,GAAYC,QAAQF,MAAM;AACnD;AAEA,IAAA,IAAIG,MAAuD,GAAA;AACzD,QAAA,OAAO,IAAI,CAACR,QAAQ,GAAGM,SAAAA,GAAYC,QAAQC,MAAM;AACnD;AAEAC,IAAAA,QAAAA,CAASC,KAAc,EAAQ;QAC7B,IAAI,CAACC,OAAO,GAAGD,KAAAA;AACf,QAAA,OAAO,IAAI;AACb;AAEAE,IAAAA,SAAAA,CAAUC,MAAe,EAAQ;QAC/B,IAAI,CAACb,QAAQ,GAAGa,MAAAA;AAChB,QAAA,OAAO,IAAI;AACb;IAEAH,KAAM,CAAA,GAAGI,IAAe,EAAQ;AAC9B,QAAA,MAAMC,iBAAiB,IAAI,CAAChB,WAAW,IAAI,IAAI,CAACY,OAAO;AAEvD,QAAA,IAAII,cAAgB,EAAA;YAClBC,OAAQC,CAAAA,GAAG,CAACC,KAAAA,CAAMC,IAAI,CAAC,CAAC,UAAU,EAAEC,QAAAA,EAAAA,CAAW,CAAC,CAAC,CAAMN,EAAAA,GAAAA,IAAAA,CAAAA;AACzD;AAEA,QAAA,OAAO,IAAI;AACb;IAEAO,KAAM,CAAA,GAAGP,IAAe,EAAQ;QAC9B,IAAI,CAACZ,aAAa,IAAI,CAAA;QAEtB,IAAI,IAAI,CAACH,WAAW,EAAE;YACpBiB,OAAQK,CAAAA,KAAK,CAACH,KAAAA,CAAMI,GAAG,CAAC,CAAC,UAAU,EAAEF,QAAAA,EAAAA,CAAW,CAAC,CAAC,CAAMN,EAAAA,GAAAA,IAAAA,CAAAA;AAC1D;AAEA,QAAA,OAAO,IAAI;AACb;IAEAS,IAAK,CAAA,GAAGT,IAAe,EAAQ;QAC7B,IAAI,IAAI,CAACf,WAAW,EAAE;AACpBiB,YAAAA,OAAAA,CAAQO,IAAI,CAACL,KAAMM,CAAAA,IAAI,CAAC,CAAC,SAAS,EAAE,IAAIC,IAAOC,EAAAA,CAAAA,WAAW,EAAG,CAAA,CAAC,CAAC,CAAMZ,EAAAA,GAAAA,IAAAA,CAAAA;AACvE;AAEA,QAAA,OAAO,IAAI;AACb;IAEAa,GAAI,CAAA,GAAGb,IAAe,EAAQ;QAC5B,IAAI,IAAI,CAACf,WAAW,EAAE;AACpBiB,YAAAA,OAAAA,CAAQC,GAAG,CAAIH,GAAAA,IAAAA,CAAAA;AACjB;AAEA,QAAA,OAAO,IAAI;AACb;IAEAc,IAAK,CAAA,GAAGd,IAAe,EAAQ;QAC7B,IAAI,CAACV,eAAe,IAAI,CAAA;QAExB,IAAI,IAAI,CAACL,WAAW,EAAE;AACpBiB,YAAAA,OAAAA,CAAQY,IAAI,CAACV,KAAMW,CAAAA,MAAM,CAAC,CAAC,SAAS,EAAE,IAAIJ,IAAOC,EAAAA,CAAAA,WAAW,EAAG,CAAA,CAAC,CAAC,CAAMZ,EAAAA,GAAAA,IAAAA,CAAAA;AACzE;AAEA,QAAA,OAAO,IAAI;AACb;IApFAgB,WAAYC,CAAAA,OAAAA,GAAyB,EAAE,CAAE;;AAEvC,QAAA,IAAI,CAACpB,OAAO,GAAGoB,OAAAA,CAAQrB,KAAK,IAAI,KAAA;AAChC,QAAA,IAAI,CAACV,QAAQ,GAAG+B,OAAAA,CAAQlB,MAAM,IAAI,KAAA;;QAGlC,IAAI,CAACX,aAAa,GAAG,CAAA;QACrB,IAAI,CAACE,eAAe,GAAG,CAAA;AACzB;AA6EF;AAEA,MAAMgB,QAAW,GAAA,IAAM,IAAIK,IAAAA,EAAAA,CAAOC,WAAW,EAAA;AAEtC,MAAMM,gBAAgB,CAACD,OAAAA,GAAyB,EAAE,GAAK,IAAIjC,MAAAA,CAAOiC,OAAS;;;;;"}
@@ -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","constructor","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,61 @@
1
+ 'use strict';
2
+
3
+ var assert = require('node:assert');
4
+ var semver$1 = require('semver');
5
+ var undici = require('undici');
6
+ var constants = require('./constants.js');
7
+ var semver = require('../version/semver.js');
8
+ require('../version/types.js');
9
+
10
+ const proxyUrl = process.env.HTTP_PROXY || process.env.HTTPS_PROXY;
11
+ const agent = proxyUrl ? new undici.ProxyAgent(proxyUrl) : undefined;
12
+ class Package {
13
+ get isLoaded() {
14
+ return this.npmPackage !== null;
15
+ }
16
+ assertPackageIsLoaded(npmPackage) {
17
+ assert(this.isLoaded, 'The package is not loaded yet');
18
+ }
19
+ getVersionsDict() {
20
+ this.assertPackageIsLoaded(this.npmPackage);
21
+ return this.npmPackage.versions;
22
+ }
23
+ getVersionsAsList() {
24
+ this.assertPackageIsLoaded(this.npmPackage);
25
+ return Object.values(this.npmPackage.versions);
26
+ }
27
+ findVersionsInRange(range) {
28
+ const versions = this.getVersionsAsList();
29
+ return versions// Only select versions matching the upgrade range
30
+ .filter((v)=>range.test(v.version))// Only select supported version format (x.x.x)
31
+ .filter((v)=>semver.isLiteralSemVer(v.version))// Sort in ascending order
32
+ .sort((v1, v2)=>semver$1.compare(v1.version, v2.version));
33
+ }
34
+ findVersion(version) {
35
+ const versions = this.getVersionsAsList();
36
+ return versions.find((npmVersion)=>semver$1.eq(npmVersion.version, version));
37
+ }
38
+ async refresh() {
39
+ const response = await fetch(this.packageURL, {
40
+ // @ts-expect-error Node.js fetch supports dispatcher (undici extension)
41
+ dispatcher: agent
42
+ });
43
+ // TODO: Use a validation library to make sure the response structure is correct
44
+ assert(response.ok, `Request failed for ${this.packageURL}`);
45
+ this.npmPackage = await response.json();
46
+ return this;
47
+ }
48
+ versionExists(version) {
49
+ return this.findVersion(version) !== undefined;
50
+ }
51
+ constructor(name){
52
+ this.name = name;
53
+ this.packageURL = `${constants.NPM_REGISTRY_URL}/${name}`;
54
+ this.npmPackage = null;
55
+ }
56
+ }
57
+ const npmPackageFactory = (name)=>new Package(name);
58
+
59
+ exports.Package = Package;
60
+ exports.npmPackageFactory = npmPackageFactory;
61
+ //# 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';\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';\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 packageURL: string;\n\n private npmPackage: NPMPackage | null;\n\n constructor(name: string) {\n this.name = name;\n this.packageURL = `${constants.NPM_REGISTRY_URL}/${name}`;\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 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 response = await fetch(this.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 ${this.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) => new Package(name);\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","findVersion","find","npmVersion","eq","refresh","response","fetch","packageURL","dispatcher","ok","json","versionExists","constructor","name","constants","npmPackageFactory"],"mappings":";;;;;;;;;AAUA,MAAMA,QAAAA,GAAWC,QAAQC,GAAG,CAACC,UAAU,IAAIF,OAAAA,CAAQC,GAAG,CAACE,WAAW;AAClE,MAAMC,KAAQL,GAAAA,QAAAA,GAAW,IAAIM,iBAAAA,CAAWN,QAAYO,CAAAA,GAAAA,SAAAA;AAE7C,MAAMC,OAAAA,CAAAA;AAaX,IAAA,IAAIC,QAAW,GAAA;QACb,OAAO,IAAI,CAACC,UAAU,KAAK,IAAA;AAC7B;AAEQC,IAAAA,qBAAAA,CAAsBD,UAA6B,EAAoC;QAC7FE,MAAO,CAAA,IAAI,CAACH,QAAQ,EAAE,+BAAA,CAAA;AACxB;IAEAI,eAAkB,GAAA;AAChB,QAAA,IAAI,CAACF,qBAAqB,CAAC,IAAI,CAACD,UAAU,CAAA;AAE1C,QAAA,OAAO,IAAI,CAACA,UAAU,CAACI,QAAQ;AACjC;IAEAC,iBAAoB,GAAA;AAClB,QAAA,IAAI,CAACJ,qBAAqB,CAAC,IAAI,CAACD,UAAU,CAAA;AAE1C,QAAA,OAAOM,OAAOC,MAAM,CAAC,IAAI,CAACP,UAAU,CAACI,QAAQ,CAAA;AAC/C;AAEAI,IAAAA,mBAAAA,CAAoBC,KAAoB,EAAE;QACxC,MAAML,QAAAA,GAAW,IAAI,CAACC,iBAAiB,EAAA;AAEvC,QAAA,OACED,QACE;SACCM,MAAM,CAAC,CAACC,CAAMF,GAAAA,KAAAA,CAAMG,IAAI,CAACD,CAAAA,CAAEE,OAAO,CAAA,CACnC;AACCH,SAAAA,MAAM,CAAC,CAACC,CAAAA,GAAMG,uBAAgBH,CAAEE,CAAAA,OAAO,EACxC;SACCE,IAAI,CAAC,CAACC,EAAAA,EAAIC,EAAOC,GAAAA,QAAAA,CAAOC,OAAO,CAACH,EAAGH,CAAAA,OAAO,EAAEI,EAAAA,CAAGJ,OAAO,CAAA,CAAA;AAE7D;AAEAO,IAAAA,WAAAA,CAAYP,OAAuB,EAAiC;QAClE,MAAMT,QAAAA,GAAW,IAAI,CAACC,iBAAiB,EAAA;QAEvC,OAAOD,QAAAA,CAASiB,IAAI,CAAC,CAACC,UAAAA,GAAeJ,SAAOK,EAAE,CAACD,UAAWT,CAAAA,OAAO,EAAEA,OAAAA,CAAAA,CAAAA;AACrE;AAEA,IAAA,MAAMW,OAAU,GAAA;AACd,QAAA,MAAMC,WAAW,MAAMC,KAAAA,CAAM,IAAI,CAACC,UAAU,EAAE;;YAE5CC,UAAYjC,EAAAA;AACd,SAAA,CAAA;;QAGAO,MAAOuB,CAAAA,QAAAA,CAASI,EAAE,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAACF,UAAU,CAAC,CAAC,CAAA;AAE3D,QAAA,IAAI,CAAC3B,UAAU,GAAI,MAAMyB,SAASK,IAAI,EAAA;AAEtC,QAAA,OAAO,IAAI;AACb;AAEAC,IAAAA,aAAAA,CAAclB,OAAuB,EAAE;AACrC,QAAA,OAAO,IAAI,CAACO,WAAW,CAACP,OAAahB,CAAAA,KAAAA,SAAAA;AACvC;AA9DAmC,IAAAA,WAAAA,CAAYC,IAAY,CAAE;QACxB,IAAI,CAACA,IAAI,GAAGA,IAAAA;QACZ,IAAI,CAACN,UAAU,GAAG,CAAC,EAAEO,0BAA0B,CAAC,CAAC,EAAED,IAAAA,CAAK,CAAC;QACzD,IAAI,CAACjC,UAAU,GAAG,IAAA;AACpB;AA2DF;MAEamC,iBAAoB,GAAA,CAACF,IAAiB,GAAA,IAAInC,QAAQmC,IAAM;;;;;"}
@@ -0,0 +1,58 @@
1
+ import assert from 'node:assert';
2
+ import semver from 'semver';
3
+ import { ProxyAgent } from 'undici';
4
+ import { NPM_REGISTRY_URL } from './constants.mjs';
5
+ import { isLiteralSemVer } from '../version/semver.mjs';
6
+ import '../version/types.mjs';
7
+
8
+ const proxyUrl = process.env.HTTP_PROXY || process.env.HTTPS_PROXY;
9
+ const agent = proxyUrl ? new ProxyAgent(proxyUrl) : undefined;
10
+ class Package {
11
+ get isLoaded() {
12
+ return this.npmPackage !== null;
13
+ }
14
+ assertPackageIsLoaded(npmPackage) {
15
+ assert(this.isLoaded, 'The package is not loaded yet');
16
+ }
17
+ getVersionsDict() {
18
+ this.assertPackageIsLoaded(this.npmPackage);
19
+ return this.npmPackage.versions;
20
+ }
21
+ getVersionsAsList() {
22
+ this.assertPackageIsLoaded(this.npmPackage);
23
+ return Object.values(this.npmPackage.versions);
24
+ }
25
+ findVersionsInRange(range) {
26
+ const versions = this.getVersionsAsList();
27
+ return versions// Only select versions matching the upgrade range
28
+ .filter((v)=>range.test(v.version))// Only select supported version format (x.x.x)
29
+ .filter((v)=>isLiteralSemVer(v.version))// Sort in ascending order
30
+ .sort((v1, v2)=>semver.compare(v1.version, v2.version));
31
+ }
32
+ findVersion(version) {
33
+ const versions = this.getVersionsAsList();
34
+ return versions.find((npmVersion)=>semver.eq(npmVersion.version, version));
35
+ }
36
+ async refresh() {
37
+ const response = await fetch(this.packageURL, {
38
+ // @ts-expect-error Node.js fetch supports dispatcher (undici extension)
39
+ dispatcher: agent
40
+ });
41
+ // TODO: Use a validation library to make sure the response structure is correct
42
+ assert(response.ok, `Request failed for ${this.packageURL}`);
43
+ this.npmPackage = await response.json();
44
+ return this;
45
+ }
46
+ versionExists(version) {
47
+ return this.findVersion(version) !== undefined;
48
+ }
49
+ constructor(name){
50
+ this.name = name;
51
+ this.packageURL = `${NPM_REGISTRY_URL}/${name}`;
52
+ this.npmPackage = null;
53
+ }
54
+ }
55
+ const npmPackageFactory = (name)=>new Package(name);
56
+
57
+ export { Package, npmPackageFactory };
58
+ //# 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';\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';\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 packageURL: string;\n\n private npmPackage: NPMPackage | null;\n\n constructor(name: string) {\n this.name = name;\n this.packageURL = `${constants.NPM_REGISTRY_URL}/${name}`;\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 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 response = await fetch(this.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 ${this.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) => new Package(name);\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","findVersion","find","npmVersion","eq","refresh","response","fetch","packageURL","dispatcher","ok","json","versionExists","constructor","name","constants","npmPackageFactory"],"mappings":";;;;;;;AAUA,MAAMA,QAAAA,GAAWC,QAAQC,GAAG,CAACC,UAAU,IAAIF,OAAAA,CAAQC,GAAG,CAACE,WAAW;AAClE,MAAMC,KAAQL,GAAAA,QAAAA,GAAW,IAAIM,UAAAA,CAAWN,QAAYO,CAAAA,GAAAA,SAAAA;AAE7C,MAAMC,OAAAA,CAAAA;AAaX,IAAA,IAAIC,QAAW,GAAA;QACb,OAAO,IAAI,CAACC,UAAU,KAAK,IAAA;AAC7B;AAEQC,IAAAA,qBAAAA,CAAsBD,UAA6B,EAAoC;QAC7FE,MAAO,CAAA,IAAI,CAACH,QAAQ,EAAE,+BAAA,CAAA;AACxB;IAEAI,eAAkB,GAAA;AAChB,QAAA,IAAI,CAACF,qBAAqB,CAAC,IAAI,CAACD,UAAU,CAAA;AAE1C,QAAA,OAAO,IAAI,CAACA,UAAU,CAACI,QAAQ;AACjC;IAEAC,iBAAoB,GAAA;AAClB,QAAA,IAAI,CAACJ,qBAAqB,CAAC,IAAI,CAACD,UAAU,CAAA;AAE1C,QAAA,OAAOM,OAAOC,MAAM,CAAC,IAAI,CAACP,UAAU,CAACI,QAAQ,CAAA;AAC/C;AAEAI,IAAAA,mBAAAA,CAAoBC,KAAoB,EAAE;QACxC,MAAML,QAAAA,GAAW,IAAI,CAACC,iBAAiB,EAAA;AAEvC,QAAA,OACED,QACE;SACCM,MAAM,CAAC,CAACC,CAAMF,GAAAA,KAAAA,CAAMG,IAAI,CAACD,CAAAA,CAAEE,OAAO,CAAA,CACnC;AACCH,SAAAA,MAAM,CAAC,CAACC,CAAAA,GAAMG,gBAAgBH,CAAEE,CAAAA,OAAO,EACxC;SACCE,IAAI,CAAC,CAACC,EAAAA,EAAIC,EAAOC,GAAAA,MAAAA,CAAOC,OAAO,CAACH,EAAGH,CAAAA,OAAO,EAAEI,EAAAA,CAAGJ,OAAO,CAAA,CAAA;AAE7D;AAEAO,IAAAA,WAAAA,CAAYP,OAAuB,EAAiC;QAClE,MAAMT,QAAAA,GAAW,IAAI,CAACC,iBAAiB,EAAA;QAEvC,OAAOD,QAAAA,CAASiB,IAAI,CAAC,CAACC,UAAAA,GAAeJ,OAAOK,EAAE,CAACD,UAAWT,CAAAA,OAAO,EAAEA,OAAAA,CAAAA,CAAAA;AACrE;AAEA,IAAA,MAAMW,OAAU,GAAA;AACd,QAAA,MAAMC,WAAW,MAAMC,KAAAA,CAAM,IAAI,CAACC,UAAU,EAAE;;YAE5CC,UAAYjC,EAAAA;AACd,SAAA,CAAA;;QAGAO,MAAOuB,CAAAA,QAAAA,CAASI,EAAE,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAACF,UAAU,CAAC,CAAC,CAAA;AAE3D,QAAA,IAAI,CAAC3B,UAAU,GAAI,MAAMyB,SAASK,IAAI,EAAA;AAEtC,QAAA,OAAO,IAAI;AACb;AAEAC,IAAAA,aAAAA,CAAclB,OAAuB,EAAE;AACrC,QAAA,OAAO,IAAI,CAACO,WAAW,CAACP,OAAahB,CAAAA,KAAAA,SAAAA;AACvC;AA9DAmC,IAAAA,WAAAA,CAAYC,IAAY,CAAE;QACxB,IAAI,CAACA,IAAI,GAAGA,IAAAA;QACZ,IAAI,CAACN,UAAU,GAAG,CAAC,EAAEO,gBAA0B,CAAC,CAAC,EAAED,IAAAA,CAAK,CAAC;QACzD,IAAI,CAACjC,UAAU,GAAG,IAAA;AACpB;AA2DF;MAEamC,iBAAoB,GAAA,CAACF,IAAiB,GAAA,IAAInC,QAAQmC,IAAM;;;;"}
@@ -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,CAAC,EAAED,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,CAAC,EAAED,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":";;;"}