@strapi/strapi 5.9.0 → 5.10.0

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 (292) hide show
  1. package/dist/admin-test.js +11 -8
  2. package/dist/admin-test.js.map +1 -1
  3. package/dist/admin-test.mjs +1 -1
  4. package/dist/admin-test.mjs.map +1 -1
  5. package/dist/admin.js +36 -42
  6. package/dist/admin.js.map +1 -1
  7. package/dist/admin.mjs +28 -35
  8. package/dist/admin.mjs.map +1 -1
  9. package/dist/chunks/aliases-Ca20Yntz.js +80 -0
  10. package/dist/chunks/aliases-Ca20Yntz.js.map +1 -0
  11. package/dist/chunks/aliases-DQ51KexN.mjs +76 -0
  12. package/dist/chunks/aliases-DQ51KexN.mjs.map +1 -0
  13. package/dist/chunks/build-3I6A92J1.js +59 -0
  14. package/dist/chunks/build-3I6A92J1.js.map +1 -0
  15. package/dist/chunks/build-BqigoS45.mjs +85 -0
  16. package/dist/chunks/build-BqigoS45.mjs.map +1 -0
  17. package/dist/chunks/build-CWUlYFQo.js +87 -0
  18. package/dist/chunks/build-CWUlYFQo.js.map +1 -0
  19. package/dist/chunks/build-gBR43Dth.mjs +57 -0
  20. package/dist/chunks/build-gBR43Dth.mjs.map +1 -0
  21. package/dist/chunks/config-5tFWkbOi.js +154 -0
  22. package/dist/chunks/config-5tFWkbOi.js.map +1 -0
  23. package/dist/chunks/config-BSlsDIVc.mjs +243 -0
  24. package/dist/chunks/config-BSlsDIVc.mjs.map +1 -0
  25. package/dist/chunks/config-CLeubzgx.mjs +150 -0
  26. package/dist/chunks/config-CLeubzgx.mjs.map +1 -0
  27. package/dist/chunks/config-CQ94iNYq.js +247 -0
  28. package/dist/chunks/config-CQ94iNYq.js.map +1 -0
  29. package/dist/chunks/index-DtHH3PFG.mjs +3160 -0
  30. package/dist/chunks/index-DtHH3PFG.mjs.map +1 -0
  31. package/dist/chunks/index-kv_K5f7_.js +3185 -0
  32. package/dist/chunks/index-kv_K5f7_.js.map +1 -0
  33. package/dist/chunks/watch-B7qfL21s.js +146 -0
  34. package/dist/chunks/watch-B7qfL21s.js.map +1 -0
  35. package/dist/chunks/watch-BBDpuCFC.js +133 -0
  36. package/dist/chunks/watch-BBDpuCFC.js.map +1 -0
  37. package/dist/chunks/watch-Bhd-75O5.mjs +131 -0
  38. package/dist/chunks/watch-Bhd-75O5.mjs.map +1 -0
  39. package/dist/chunks/watch-CJr1UoWF.mjs +144 -0
  40. package/dist/chunks/watch-CJr1UoWF.mjs.map +1 -0
  41. package/dist/cli/commands/plugin/init/files/typescript.d.ts +20 -7
  42. package/dist/cli/commands/plugin/init/files/typescript.d.ts.map +1 -1
  43. package/dist/cli/commands/version.d.ts.map +1 -1
  44. package/dist/cli/index.d.ts.map +1 -1
  45. package/dist/cli.js +50 -0
  46. package/dist/cli.js.map +1 -0
  47. package/dist/cli.mjs +43 -0
  48. package/dist/cli.mjs.map +1 -0
  49. package/dist/index.js +11 -8
  50. package/dist/index.js.map +1 -1
  51. package/dist/index.mjs +1 -1
  52. package/dist/index.mjs.map +1 -1
  53. package/dist/node/core/errors.d.ts.map +1 -1
  54. package/dist/node/create-build-context.d.ts +1 -1
  55. package/dist/node/create-build-context.d.ts.map +1 -1
  56. package/package.json +26 -26
  57. package/dist/cli/commands/admin/create-user.js +0 -91
  58. package/dist/cli/commands/admin/create-user.js.map +0 -1
  59. package/dist/cli/commands/admin/create-user.mjs +0 -88
  60. package/dist/cli/commands/admin/create-user.mjs.map +0 -1
  61. package/dist/cli/commands/admin/reset-user-password.js +0 -47
  62. package/dist/cli/commands/admin/reset-user-password.js.map +0 -1
  63. package/dist/cli/commands/admin/reset-user-password.mjs +0 -44
  64. package/dist/cli/commands/admin/reset-user-password.mjs.map +0 -1
  65. package/dist/cli/commands/build.js +0 -24
  66. package/dist/cli/commands/build.js.map +0 -1
  67. package/dist/cli/commands/build.mjs +0 -24
  68. package/dist/cli/commands/build.mjs.map +0 -1
  69. package/dist/cli/commands/components/list.js +0 -27
  70. package/dist/cli/commands/components/list.js.map +0 -1
  71. package/dist/cli/commands/components/list.mjs +0 -24
  72. package/dist/cli/commands/components/list.mjs.map +0 -1
  73. package/dist/cli/commands/configuration/dump.js +0 -43
  74. package/dist/cli/commands/configuration/dump.js.map +0 -1
  75. package/dist/cli/commands/configuration/dump.mjs +0 -41
  76. package/dist/cli/commands/configuration/dump.mjs.map +0 -1
  77. package/dist/cli/commands/configuration/restore.js +0 -142
  78. package/dist/cli/commands/configuration/restore.js.map +0 -1
  79. package/dist/cli/commands/configuration/restore.mjs +0 -139
  80. package/dist/cli/commands/configuration/restore.mjs.map +0 -1
  81. package/dist/cli/commands/console.js +0 -29
  82. package/dist/cli/commands/console.js.map +0 -1
  83. package/dist/cli/commands/console.mjs +0 -27
  84. package/dist/cli/commands/console.mjs.map +0 -1
  85. package/dist/cli/commands/content-types/list.js +0 -27
  86. package/dist/cli/commands/content-types/list.js.map +0 -1
  87. package/dist/cli/commands/content-types/list.mjs +0 -24
  88. package/dist/cli/commands/content-types/list.mjs.map +0 -1
  89. package/dist/cli/commands/controllers/list.js +0 -27
  90. package/dist/cli/commands/controllers/list.js.map +0 -1
  91. package/dist/cli/commands/controllers/list.mjs +0 -24
  92. package/dist/cli/commands/controllers/list.mjs.map +0 -1
  93. package/dist/cli/commands/develop.js +0 -29
  94. package/dist/cli/commands/develop.js.map +0 -1
  95. package/dist/cli/commands/develop.mjs +0 -27
  96. package/dist/cli/commands/develop.mjs.map +0 -1
  97. package/dist/cli/commands/export/action.js +0 -118
  98. package/dist/cli/commands/export/action.js.map +0 -1
  99. package/dist/cli/commands/export/action.mjs +0 -116
  100. package/dist/cli/commands/export/action.mjs.map +0 -1
  101. package/dist/cli/commands/export/command.js +0 -23
  102. package/dist/cli/commands/export/command.js.map +0 -1
  103. package/dist/cli/commands/export/command.mjs +0 -24
  104. package/dist/cli/commands/export/command.mjs.map +0 -1
  105. package/dist/cli/commands/generate.js +0 -35
  106. package/dist/cli/commands/generate.js.map +0 -1
  107. package/dist/cli/commands/generate.mjs +0 -13
  108. package/dist/cli/commands/generate.mjs.map +0 -1
  109. package/dist/cli/commands/hooks/list.js +0 -27
  110. package/dist/cli/commands/hooks/list.js.map +0 -1
  111. package/dist/cli/commands/hooks/list.mjs +0 -24
  112. package/dist/cli/commands/hooks/list.mjs.map +0 -1
  113. package/dist/cli/commands/import/action.js +0 -106
  114. package/dist/cli/commands/import/action.js.map +0 -1
  115. package/dist/cli/commands/import/action.mjs +0 -105
  116. package/dist/cli/commands/import/action.mjs.map +0 -1
  117. package/dist/cli/commands/import/command.js +0 -70
  118. package/dist/cli/commands/import/command.js.map +0 -1
  119. package/dist/cli/commands/import/command.mjs +0 -68
  120. package/dist/cli/commands/import/command.mjs.map +0 -1
  121. package/dist/cli/commands/index.js +0 -63
  122. package/dist/cli/commands/index.js.map +0 -1
  123. package/dist/cli/commands/index.mjs +0 -63
  124. package/dist/cli/commands/index.mjs.map +0 -1
  125. package/dist/cli/commands/middlewares/list.js +0 -27
  126. package/dist/cli/commands/middlewares/list.js.map +0 -1
  127. package/dist/cli/commands/middlewares/list.mjs +0 -24
  128. package/dist/cli/commands/middlewares/list.mjs.map +0 -1
  129. package/dist/cli/commands/policies/list.js +0 -27
  130. package/dist/cli/commands/policies/list.js.map +0 -1
  131. package/dist/cli/commands/policies/list.mjs +0 -24
  132. package/dist/cli/commands/policies/list.mjs.map +0 -1
  133. package/dist/cli/commands/report.js +0 -35
  134. package/dist/cli/commands/report.js.map +0 -1
  135. package/dist/cli/commands/report.mjs +0 -35
  136. package/dist/cli/commands/report.mjs.map +0 -1
  137. package/dist/cli/commands/routes/list.js +0 -31
  138. package/dist/cli/commands/routes/list.js.map +0 -1
  139. package/dist/cli/commands/routes/list.mjs +0 -28
  140. package/dist/cli/commands/routes/list.mjs.map +0 -1
  141. package/dist/cli/commands/services/list.js +0 -27
  142. package/dist/cli/commands/services/list.js.map +0 -1
  143. package/dist/cli/commands/services/list.mjs +0 -24
  144. package/dist/cli/commands/services/list.mjs.map +0 -1
  145. package/dist/cli/commands/start.js +0 -27
  146. package/dist/cli/commands/start.js.map +0 -1
  147. package/dist/cli/commands/start.mjs +0 -24
  148. package/dist/cli/commands/start.mjs.map +0 -1
  149. package/dist/cli/commands/telemetry/disable.js +0 -70
  150. package/dist/cli/commands/telemetry/disable.js.map +0 -1
  151. package/dist/cli/commands/telemetry/disable.mjs +0 -67
  152. package/dist/cli/commands/telemetry/disable.mjs.map +0 -1
  153. package/dist/cli/commands/telemetry/enable.js +0 -89
  154. package/dist/cli/commands/telemetry/enable.js.map +0 -1
  155. package/dist/cli/commands/telemetry/enable.mjs +0 -86
  156. package/dist/cli/commands/telemetry/enable.mjs.map +0 -1
  157. package/dist/cli/commands/templates/generate.js +0 -11
  158. package/dist/cli/commands/templates/generate.js.map +0 -1
  159. package/dist/cli/commands/templates/generate.mjs +0 -11
  160. package/dist/cli/commands/templates/generate.mjs.map +0 -1
  161. package/dist/cli/commands/transfer/action.js +0 -130
  162. package/dist/cli/commands/transfer/action.js.map +0 -1
  163. package/dist/cli/commands/transfer/action.mjs +0 -131
  164. package/dist/cli/commands/transfer/action.mjs.map +0 -1
  165. package/dist/cli/commands/transfer/command.js +0 -85
  166. package/dist/cli/commands/transfer/command.js.map +0 -1
  167. package/dist/cli/commands/transfer/command.mjs +0 -84
  168. package/dist/cli/commands/transfer/command.mjs.map +0 -1
  169. package/dist/cli/commands/ts/generate-types.js +0 -36
  170. package/dist/cli/commands/ts/generate-types.js.map +0 -1
  171. package/dist/cli/commands/ts/generate-types.mjs +0 -34
  172. package/dist/cli/commands/ts/generate-types.mjs.map +0 -1
  173. package/dist/cli/commands/version.js +0 -13
  174. package/dist/cli/commands/version.js.map +0 -1
  175. package/dist/cli/commands/version.mjs +0 -13
  176. package/dist/cli/commands/version.mjs.map +0 -1
  177. package/dist/cli/index.js +0 -79
  178. package/dist/cli/index.js.map +0 -1
  179. package/dist/cli/index.mjs +0 -79
  180. package/dist/cli/index.mjs.map +0 -1
  181. package/dist/cli/utils/commander.js +0 -111
  182. package/dist/cli/utils/commander.js.map +0 -1
  183. package/dist/cli/utils/commander.mjs +0 -108
  184. package/dist/cli/utils/commander.mjs.map +0 -1
  185. package/dist/cli/utils/data-transfer.js +0 -354
  186. package/dist/cli/utils/data-transfer.js.map +0 -1
  187. package/dist/cli/utils/data-transfer.mjs +0 -350
  188. package/dist/cli/utils/data-transfer.mjs.map +0 -1
  189. package/dist/cli/utils/helpers.js +0 -102
  190. package/dist/cli/utils/helpers.js.map +0 -1
  191. package/dist/cli/utils/helpers.mjs +0 -100
  192. package/dist/cli/utils/helpers.mjs.map +0 -1
  193. package/dist/cli/utils/logger.js +0 -137
  194. package/dist/cli/utils/logger.js.map +0 -1
  195. package/dist/cli/utils/logger.mjs +0 -116
  196. package/dist/cli/utils/logger.mjs.map +0 -1
  197. package/dist/cli/utils/telemetry.js +0 -22
  198. package/dist/cli/utils/telemetry.js.map +0 -1
  199. package/dist/cli/utils/telemetry.mjs +0 -22
  200. package/dist/cli/utils/telemetry.mjs.map +0 -1
  201. package/dist/cli/utils/tsconfig.js +0 -26
  202. package/dist/cli/utils/tsconfig.js.map +0 -1
  203. package/dist/cli/utils/tsconfig.mjs +0 -23
  204. package/dist/cli/utils/tsconfig.mjs.map +0 -1
  205. package/dist/node/build.js +0 -76
  206. package/dist/node/build.js.map +0 -1
  207. package/dist/node/build.mjs +0 -58
  208. package/dist/node/build.mjs.map +0 -1
  209. package/dist/node/core/admin-customisations.js +0 -24
  210. package/dist/node/core/admin-customisations.js.map +0 -1
  211. package/dist/node/core/admin-customisations.mjs +0 -22
  212. package/dist/node/core/admin-customisations.mjs.map +0 -1
  213. package/dist/node/core/aliases.js +0 -33
  214. package/dist/node/core/aliases.js.map +0 -1
  215. package/dist/node/core/aliases.mjs +0 -31
  216. package/dist/node/core/aliases.mjs.map +0 -1
  217. package/dist/node/core/config.js +0 -18
  218. package/dist/node/core/config.js.map +0 -1
  219. package/dist/node/core/config.mjs +0 -16
  220. package/dist/node/core/config.mjs.map +0 -1
  221. package/dist/node/core/dependencies.js +0 -163
  222. package/dist/node/core/dependencies.js.map +0 -1
  223. package/dist/node/core/dependencies.mjs +0 -155
  224. package/dist/node/core/dependencies.mjs.map +0 -1
  225. package/dist/node/core/env.js +0 -26
  226. package/dist/node/core/env.js.map +0 -1
  227. package/dist/node/core/env.mjs +0 -23
  228. package/dist/node/core/env.mjs.map +0 -1
  229. package/dist/node/core/errors.js +0 -33
  230. package/dist/node/core/errors.js.map +0 -1
  231. package/dist/node/core/errors.mjs +0 -29
  232. package/dist/node/core/errors.mjs.map +0 -1
  233. package/dist/node/core/files.js +0 -45
  234. package/dist/node/core/files.js.map +0 -1
  235. package/dist/node/core/files.mjs +0 -43
  236. package/dist/node/core/files.mjs.map +0 -1
  237. package/dist/node/core/managers.js +0 -17
  238. package/dist/node/core/managers.js.map +0 -1
  239. package/dist/node/core/managers.mjs +0 -17
  240. package/dist/node/core/managers.mjs.map +0 -1
  241. package/dist/node/core/monorepo.js +0 -23
  242. package/dist/node/core/monorepo.js.map +0 -1
  243. package/dist/node/core/monorepo.mjs +0 -20
  244. package/dist/node/core/monorepo.mjs.map +0 -1
  245. package/dist/node/core/plugins.js +0 -116
  246. package/dist/node/core/plugins.js.map +0 -1
  247. package/dist/node/core/plugins.mjs +0 -111
  248. package/dist/node/core/plugins.mjs.map +0 -1
  249. package/dist/node/core/timer.js +0 -27
  250. package/dist/node/core/timer.js.map +0 -1
  251. package/dist/node/core/timer.mjs +0 -27
  252. package/dist/node/core/timer.mjs.map +0 -1
  253. package/dist/node/create-build-context.js +0 -101
  254. package/dist/node/create-build-context.js.map +0 -1
  255. package/dist/node/create-build-context.mjs +0 -96
  256. package/dist/node/create-build-context.mjs.map +0 -1
  257. package/dist/node/develop.js +0 -275
  258. package/dist/node/develop.js.map +0 -1
  259. package/dist/node/develop.mjs +0 -252
  260. package/dist/node/develop.mjs.map +0 -1
  261. package/dist/node/staticFiles.js +0 -102
  262. package/dist/node/staticFiles.js.map +0 -1
  263. package/dist/node/staticFiles.mjs +0 -76
  264. package/dist/node/staticFiles.mjs.map +0 -1
  265. package/dist/node/vite/build.js +0 -34
  266. package/dist/node/vite/build.js.map +0 -1
  267. package/dist/node/vite/build.mjs +0 -12
  268. package/dist/node/vite/build.mjs.map +0 -1
  269. package/dist/node/vite/config.js +0 -106
  270. package/dist/node/vite/config.js.map +0 -1
  271. package/dist/node/vite/config.mjs +0 -103
  272. package/dist/node/vite/config.mjs.map +0 -1
  273. package/dist/node/vite/plugins.js +0 -43
  274. package/dist/node/vite/plugins.js.map +0 -1
  275. package/dist/node/vite/plugins.mjs +0 -43
  276. package/dist/node/vite/plugins.mjs.map +0 -1
  277. package/dist/node/vite/watch.js +0 -111
  278. package/dist/node/vite/watch.js.map +0 -1
  279. package/dist/node/vite/watch.mjs +0 -85
  280. package/dist/node/vite/watch.mjs.map +0 -1
  281. package/dist/node/webpack/build.js +0 -41
  282. package/dist/node/webpack/build.js.map +0 -1
  283. package/dist/node/webpack/build.mjs +0 -39
  284. package/dist/node/webpack/build.mjs.map +0 -1
  285. package/dist/node/webpack/config.js +0 -259
  286. package/dist/node/webpack/config.js.map +0 -1
  287. package/dist/node/webpack/config.mjs +0 -228
  288. package/dist/node/webpack/config.mjs.map +0 -1
  289. package/dist/node/webpack/watch.js +0 -95
  290. package/dist/node/webpack/watch.js.map +0 -1
  291. package/dist/node/webpack/watch.mjs +0 -90
  292. package/dist/node/webpack/watch.mjs.map +0 -1
@@ -1,354 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const chalk = require("chalk");
4
- const CLITable = require("cli-table3");
5
- const commander = require("commander");
6
- const logger = require("@strapi/logger");
7
- const core = require("@strapi/core");
8
- const ora = require("ora");
9
- const fp = require("lodash/fp");
10
- const dataTransfer = require("@strapi/data-transfer");
11
- const helpers = require("./helpers.js");
12
- const commander$1 = require("./commander.js");
13
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
14
- const chalk__default = /* @__PURE__ */ _interopDefault(chalk);
15
- const CLITable__default = /* @__PURE__ */ _interopDefault(CLITable);
16
- const ora__default = /* @__PURE__ */ _interopDefault(ora);
17
- const {
18
- errors: { TransferEngineInitializationError }
19
- } = dataTransfer.engine;
20
- const exitMessageText = (process2, error = false) => {
21
- const processCapitalized = process2[0].toUpperCase() + process2.slice(1);
22
- if (!error) {
23
- return chalk__default.default.bold(
24
- chalk__default.default.green(`${processCapitalized} process has been completed successfully!`)
25
- );
26
- }
27
- return chalk__default.default.bold(chalk__default.default.red(`${processCapitalized} process failed.`));
28
- };
29
- const pad = (n) => {
30
- return (n < 10 ? "0" : "") + String(n);
31
- };
32
- const yyyymmddHHMMSS = () => {
33
- const date = /* @__PURE__ */ new Date();
34
- return date.getFullYear() + pad(date.getMonth() + 1) + pad(date.getDate()) + pad(date.getHours()) + pad(date.getMinutes()) + pad(date.getSeconds());
35
- };
36
- const getDefaultExportName = () => {
37
- return `export_${yyyymmddHHMMSS()}`;
38
- };
39
- const buildTransferTable = (resultData) => {
40
- if (!resultData) {
41
- return;
42
- }
43
- const table = new CLITable__default.default({
44
- head: ["Type", "Count", "Size"].map((text) => chalk__default.default.bold.blue(text))
45
- });
46
- let totalBytes = 0;
47
- let totalItems = 0;
48
- Object.keys(resultData).forEach((stage) => {
49
- const item = resultData[stage];
50
- if (!item) {
51
- return;
52
- }
53
- table.push([
54
- { hAlign: "left", content: chalk__default.default.bold(stage) },
55
- { hAlign: "right", content: item.count },
56
- { hAlign: "right", content: `${helpers.readableBytes(item.bytes, 1, 11)} ` }
57
- ]);
58
- totalBytes += item.bytes;
59
- totalItems += item.count;
60
- if (item.aggregates) {
61
- Object.keys(item.aggregates).sort().forEach((subkey) => {
62
- if (!item.aggregates) {
63
- return;
64
- }
65
- const subitem = item.aggregates[subkey];
66
- table.push([
67
- { hAlign: "left", content: `-- ${chalk__default.default.bold.grey(subkey)}` },
68
- { hAlign: "right", content: chalk__default.default.grey(subitem.count) },
69
- { hAlign: "right", content: chalk__default.default.grey(`(${helpers.readableBytes(subitem.bytes, 1, 11)})`) }
70
- ]);
71
- });
72
- }
73
- });
74
- table.push([
75
- { hAlign: "left", content: chalk__default.default.bold.green("Total") },
76
- { hAlign: "right", content: chalk__default.default.bold.green(totalItems) },
77
- { hAlign: "right", content: `${chalk__default.default.bold.green(helpers.readableBytes(totalBytes, 1, 11))} ` }
78
- ]);
79
- return table;
80
- };
81
- const DEFAULT_IGNORED_CONTENT_TYPES = [
82
- "admin::permission",
83
- "admin::user",
84
- "admin::role",
85
- "admin::api-token",
86
- "admin::api-token-permission",
87
- "admin::transfer-token",
88
- "admin::transfer-token-permission",
89
- "admin::audit-log",
90
- "plugin::content-releases.release",
91
- "plugin::content-releases.release-action"
92
- ];
93
- const abortTransfer = async ({
94
- engine,
95
- strapi: strapi2
96
- }) => {
97
- try {
98
- await engine.abortTransfer();
99
- await strapi2.destroy();
100
- } catch (e) {
101
- return false;
102
- }
103
- return true;
104
- };
105
- const setSignalHandler = async (handler, signals = ["SIGINT", "SIGTERM", "SIGQUIT"]) => {
106
- signals.forEach((signal) => {
107
- process.removeAllListeners(signal);
108
- process.on(signal, handler);
109
- });
110
- };
111
- const createStrapiInstance = async (opts = {}) => {
112
- try {
113
- const appContext = await core.compileStrapi();
114
- const app = core.createStrapi({ ...opts, ...appContext });
115
- app.log.level = opts.logLevel || "error";
116
- return await app.load();
117
- } catch (error) {
118
- if (error instanceof Error && "code" in error && error.code === "ECONNREFUSED") {
119
- throw new Error("Process failed. Check the database connection with your Strapi project.");
120
- }
121
- throw error;
122
- }
123
- };
124
- const transferDataTypes = Object.keys(dataTransfer.engine.TransferGroupPresets);
125
- const throttleOption = new commander.Option(
126
- "--throttle <delay after each entity>",
127
- `Add a delay in milliseconds between each transferred entity`
128
- ).argParser(commander$1.parseInteger).hideHelp();
129
- const excludeOption = new commander.Option(
130
- "--exclude <comma-separated data types>",
131
- `Exclude data using comma-separated types. Available types: ${transferDataTypes.join(",")}`
132
- ).argParser(commander$1.getParseListWithChoices(transferDataTypes, 'Invalid options for "exclude"'));
133
- const onlyOption = new commander.Option(
134
- "--only <command-separated data types>",
135
- `Include only these types of data (plus schemas). Available types: ${transferDataTypes.join(",")}`
136
- ).argParser(commander$1.getParseListWithChoices(transferDataTypes, 'Invalid options for "only"'));
137
- const validateExcludeOnly = (command) => {
138
- const { exclude, only } = command.opts();
139
- if (!only || !exclude) {
140
- return;
141
- }
142
- const choicesInBoth = only.filter((n) => {
143
- return exclude.indexOf(n) !== -1;
144
- });
145
- if (choicesInBoth.length > 0) {
146
- helpers.exitWith(
147
- 1,
148
- `Data types may not be used in both "exclude" and "only" in the same command. Found in both: ${choicesInBoth.join(
149
- ","
150
- )}`
151
- );
152
- }
153
- };
154
- const errorColors = {
155
- fatal: chalk__default.default.red,
156
- error: chalk__default.default.red,
157
- silly: chalk__default.default.yellow
158
- };
159
- const formatDiagnostic = (operation, info) => {
160
- let logger$1;
161
- const getLogger = () => {
162
- if (!logger$1) {
163
- logger$1 = logger.createLogger(
164
- logger.configs.createOutputFileConfiguration(`${operation}_${Date.now()}.log`, {
165
- level: "info",
166
- format: logger.formats?.detailedLogs
167
- })
168
- );
169
- }
170
- return logger$1;
171
- };
172
- return ({ details, kind }) => {
173
- try {
174
- if (kind === "error") {
175
- const { message, severity = "fatal" } = details;
176
- const colorizeError = errorColors[severity];
177
- const errorMessage = colorizeError(`[${severity.toUpperCase()}] ${message}`);
178
- getLogger().error(errorMessage);
179
- }
180
- if (kind === "info" && info) {
181
- const { message, params, origin } = details;
182
- const msg = `[${origin ?? "transfer"}] ${message}
183
- ${params ? JSON.stringify(params, null, 2) : ""}`;
184
- getLogger().info(msg);
185
- }
186
- if (kind === "warning") {
187
- const { origin, message } = details;
188
- getLogger().warn(`(${origin ?? "transfer"}) ${message}`);
189
- }
190
- } catch (err) {
191
- getLogger().error(err);
192
- }
193
- };
194
- };
195
- const loadersFactory = (defaultLoaders = {}) => {
196
- const loaders = defaultLoaders;
197
- const updateLoader = (stage, data) => {
198
- if (!(stage in loaders)) {
199
- createLoader(stage);
200
- }
201
- const stageData = data[stage];
202
- const elapsedTime = stageData?.startTime ? (stageData?.endTime || Date.now()) - stageData.startTime : 0;
203
- const size = `size: ${helpers.readableBytes(stageData?.bytes ?? 0)}`;
204
- const elapsed = `elapsed: ${elapsedTime} ms`;
205
- const speed = elapsedTime > 0 ? `(${helpers.readableBytes((stageData?.bytes ?? 0) * 1e3 / elapsedTime)}/s)` : "";
206
- loaders[stage].text = `${stage}: ${stageData?.count ?? 0} transfered (${size}) (${elapsed}) ${!stageData?.endTime ? speed : ""}`;
207
- return loaders[stage];
208
- };
209
- const createLoader = (stage) => {
210
- Object.assign(loaders, { [stage]: ora__default.default() });
211
- return loaders[stage];
212
- };
213
- const getLoader = (stage) => {
214
- return loaders[stage];
215
- };
216
- return {
217
- updateLoader,
218
- createLoader,
219
- getLoader
220
- };
221
- };
222
- const getTransferTelemetryPayload = (engine) => {
223
- return {
224
- eventProperties: {
225
- source: engine?.sourceProvider?.name,
226
- destination: engine?.destinationProvider?.name
227
- }
228
- };
229
- };
230
- const getDiffHandler = (engine, {
231
- force,
232
- action
233
- }) => {
234
- return async (context, next) => {
235
- setSignalHandler(async () => {
236
- await abortTransfer({ engine, strapi });
237
- helpers.exitWith(1, exitMessageText(action, true));
238
- });
239
- let workflowsStatus;
240
- const source = "Schema Integrity";
241
- Object.entries(context.diffs).forEach(([uid, diffs]) => {
242
- for (const diff of diffs) {
243
- const path = [uid].concat(diff.path).join(".");
244
- const endPath = diff.path[diff.path.length - 1];
245
- if (uid === "plugin::review-workflows.workflow" || uid === "plugin::review-workflows.workflow-stage" || endPath?.startsWith("strapi_stage") || endPath?.startsWith("strapi_assignee")) {
246
- workflowsStatus = diff.kind;
247
- } else if (diff.kind === "added") {
248
- engine.reportWarning(chalk__default.default.red(`${chalk__default.default.bold(path)} does not exist on source`), source);
249
- } else if (diff.kind === "deleted") {
250
- engine.reportWarning(
251
- chalk__default.default.red(`${chalk__default.default.bold(path)} does not exist on destination`),
252
- source
253
- );
254
- } else if (diff.kind === "modified") {
255
- engine.reportWarning(chalk__default.default.red(`${chalk__default.default.bold(path)} has a different data type`), source);
256
- }
257
- }
258
- });
259
- if (workflowsStatus === "added") {
260
- engine.reportWarning(chalk__default.default.red(`Review workflows feature does not exist on source`), source);
261
- } else if (workflowsStatus === "deleted") {
262
- engine.reportWarning(
263
- chalk__default.default.red(`Review workflows feature does not exist on destination`),
264
- source
265
- );
266
- } else if (workflowsStatus === "modified") {
267
- engine.panic(
268
- new TransferEngineInitializationError("Unresolved differences in schema [review workflows]")
269
- );
270
- }
271
- const confirmed = await commander$1.confirmMessage(
272
- "There are differences in schema between the source and destination, and the data listed above will be lost. Are you sure you want to continue?",
273
- {
274
- force
275
- }
276
- );
277
- setSignalHandler(() => abortTransfer({ engine, strapi }));
278
- if (confirmed) {
279
- context.ignoredDiffs = fp.merge(context.diffs, context.ignoredDiffs);
280
- }
281
- return next(context);
282
- };
283
- };
284
- const getAssetsBackupHandler = (engine, {
285
- force,
286
- action
287
- }) => {
288
- return async (context, next) => {
289
- setSignalHandler(async () => {
290
- await abortTransfer({ engine, strapi });
291
- helpers.exitWith(1, exitMessageText(action, true));
292
- });
293
- console.warn(
294
- "The backup for the assets could not be created inside the public directory. Ensure Strapi has write permissions on the public directory."
295
- );
296
- const confirmed = await commander$1.confirmMessage(
297
- "Do you want to continue without backing up your public/uploads files?",
298
- {
299
- force
300
- }
301
- );
302
- if (confirmed) {
303
- context.ignore = true;
304
- }
305
- setSignalHandler(() => abortTransfer({ engine, strapi }));
306
- return next(context);
307
- };
308
- };
309
- const shouldSkipStage = (opts, dataKind) => {
310
- if (opts.exclude?.includes(dataKind)) {
311
- return true;
312
- }
313
- if (opts.only) {
314
- return !opts.only.includes(dataKind);
315
- }
316
- return false;
317
- };
318
- const parseRestoreFromOptions = (opts) => {
319
- const entitiesOptions = {
320
- exclude: DEFAULT_IGNORED_CONTENT_TYPES,
321
- include: void 0
322
- };
323
- if (opts.only && !opts.only.includes("content") || opts.exclude?.includes("content")) {
324
- entitiesOptions.include = [];
325
- }
326
- const restoreConfig = {
327
- entities: entitiesOptions,
328
- assets: !shouldSkipStage(opts, "files"),
329
- configuration: {
330
- webhook: !shouldSkipStage(opts, "config"),
331
- coreStore: !shouldSkipStage(opts, "config")
332
- }
333
- };
334
- return restoreConfig;
335
- };
336
- exports.DEFAULT_IGNORED_CONTENT_TYPES = DEFAULT_IGNORED_CONTENT_TYPES;
337
- exports.abortTransfer = abortTransfer;
338
- exports.buildTransferTable = buildTransferTable;
339
- exports.createStrapiInstance = createStrapiInstance;
340
- exports.excludeOption = excludeOption;
341
- exports.exitMessageText = exitMessageText;
342
- exports.formatDiagnostic = formatDiagnostic;
343
- exports.getAssetsBackupHandler = getAssetsBackupHandler;
344
- exports.getDefaultExportName = getDefaultExportName;
345
- exports.getDiffHandler = getDiffHandler;
346
- exports.getTransferTelemetryPayload = getTransferTelemetryPayload;
347
- exports.loadersFactory = loadersFactory;
348
- exports.onlyOption = onlyOption;
349
- exports.parseRestoreFromOptions = parseRestoreFromOptions;
350
- exports.setSignalHandler = setSignalHandler;
351
- exports.shouldSkipStage = shouldSkipStage;
352
- exports.throttleOption = throttleOption;
353
- exports.validateExcludeOnly = validateExcludeOnly;
354
- //# sourceMappingURL=data-transfer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-transfer.js","sources":["../../../src/cli/utils/data-transfer.ts"],"sourcesContent":["import chalk from 'chalk';\nimport Table from 'cli-table3';\nimport { Command, Option } from 'commander';\nimport { configs, createLogger, type winston, formats } from '@strapi/logger';\nimport { createStrapi, compileStrapi } from '@strapi/core';\nimport ora from 'ora';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport { engine as engineDataTransfer, strapi as strapiDataTransfer } from '@strapi/data-transfer';\n\nimport { readableBytes, exitWith } from './helpers';\nimport { getParseListWithChoices, parseInteger, confirmMessage } from './commander';\n\nconst {\n errors: { TransferEngineInitializationError },\n} = engineDataTransfer;\n\nconst exitMessageText = (process: string, error = false) => {\n const processCapitalized = process[0].toUpperCase() + process.slice(1);\n\n if (!error) {\n return chalk.bold(\n chalk.green(`${processCapitalized} process has been completed successfully!`)\n );\n }\n\n return chalk.bold(chalk.red(`${processCapitalized} process failed.`));\n};\n\nconst pad = (n: number) => {\n return (n < 10 ? '0' : '') + String(n);\n};\n\nconst yyyymmddHHMMSS = () => {\n const date = new Date();\n\n return (\n date.getFullYear() +\n pad(date.getMonth() + 1) +\n pad(date.getDate()) +\n pad(date.getHours()) +\n pad(date.getMinutes()) +\n pad(date.getSeconds())\n );\n};\n\nconst getDefaultExportName = () => {\n return `export_${yyyymmddHHMMSS()}`;\n};\n\ntype ResultData = engineDataTransfer.ITransferResults<\n engineDataTransfer.ISourceProvider,\n engineDataTransfer.IDestinationProvider\n>['engine'];\n\nconst buildTransferTable = (resultData: ResultData) => {\n if (!resultData) {\n return;\n }\n\n // Build pretty table\n const table = new Table({\n head: ['Type', 'Count', 'Size'].map((text) => chalk.bold.blue(text)),\n });\n\n let totalBytes = 0;\n let totalItems = 0;\n (Object.keys(resultData) as engineDataTransfer.TransferStage[]).forEach((stage) => {\n const item = resultData[stage];\n\n if (!item) {\n return;\n }\n\n table.push([\n { hAlign: 'left', content: chalk.bold(stage) },\n { hAlign: 'right', content: item.count },\n { hAlign: 'right', content: `${readableBytes(item.bytes, 1, 11)} ` },\n ]);\n totalBytes += item.bytes;\n totalItems += item.count;\n\n if (item.aggregates) {\n (Object.keys(item.aggregates) as (keyof typeof item.aggregates)[])\n .sort()\n .forEach((subkey) => {\n if (!item.aggregates) {\n return;\n }\n\n const subitem = item.aggregates[subkey];\n\n table.push([\n { hAlign: 'left', content: `-- ${chalk.bold.grey(subkey)}` },\n { hAlign: 'right', content: chalk.grey(subitem.count) },\n { hAlign: 'right', content: chalk.grey(`(${readableBytes(subitem.bytes, 1, 11)})`) },\n ]);\n });\n }\n });\n table.push([\n { hAlign: 'left', content: chalk.bold.green('Total') },\n { hAlign: 'right', content: chalk.bold.green(totalItems) },\n { hAlign: 'right', content: `${chalk.bold.green(readableBytes(totalBytes, 1, 11))} ` },\n ]);\n\n return table;\n};\n\nconst DEFAULT_IGNORED_CONTENT_TYPES = [\n 'admin::permission',\n 'admin::user',\n 'admin::role',\n 'admin::api-token',\n 'admin::api-token-permission',\n 'admin::transfer-token',\n 'admin::transfer-token-permission',\n 'admin::audit-log',\n 'plugin::content-releases.release',\n 'plugin::content-releases.release-action',\n];\n\nconst abortTransfer = async ({\n engine,\n strapi,\n}: {\n engine: engineDataTransfer.TransferEngine;\n strapi: Core.Strapi;\n}) => {\n try {\n await engine.abortTransfer();\n await strapi.destroy();\n } catch (e) {\n // ignore because there's not much else we can do\n return false;\n }\n return true;\n};\n\nconst setSignalHandler = async (\n handler: (...args: unknown[]) => void,\n signals = ['SIGINT', 'SIGTERM', 'SIGQUIT']\n) => {\n signals.forEach((signal) => {\n // We specifically remove ALL listeners because we have to clear the one added in Strapi bootstrap that has a process.exit\n // TODO: Ideally Strapi bootstrap would not add that listener, and then this could be more flexible and add/remove only what it needs to\n process.removeAllListeners(signal);\n process.on(signal, handler);\n });\n};\n\nconst createStrapiInstance = async (opts: { logLevel?: string } = {}): Promise<Core.Strapi> => {\n try {\n const appContext = await compileStrapi();\n const app = createStrapi({ ...opts, ...appContext });\n\n app.log.level = opts.logLevel || 'error';\n return await app.load();\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === 'ECONNREFUSED') {\n throw new Error('Process failed. Check the database connection with your Strapi project.');\n }\n\n throw error;\n }\n};\n\nconst transferDataTypes = Object.keys(engineDataTransfer.TransferGroupPresets);\n\nconst throttleOption = new Option(\n '--throttle <delay after each entity>',\n `Add a delay in milliseconds between each transferred entity`\n)\n .argParser(parseInteger)\n .hideHelp(); // This option is not publicly documented\n\nconst excludeOption = new Option(\n '--exclude <comma-separated data types>',\n `Exclude data using comma-separated types. Available types: ${transferDataTypes.join(',')}`\n).argParser(getParseListWithChoices(transferDataTypes, 'Invalid options for \"exclude\"'));\n\nconst onlyOption = new Option(\n '--only <command-separated data types>',\n `Include only these types of data (plus schemas). Available types: ${transferDataTypes.join(',')}`\n).argParser(getParseListWithChoices(transferDataTypes, 'Invalid options for \"only\"'));\n\nconst validateExcludeOnly = (command: Command) => {\n const { exclude, only } = command.opts();\n if (!only || !exclude) {\n return;\n }\n\n const choicesInBoth = only.filter((n: string) => {\n return exclude.indexOf(n) !== -1;\n });\n if (choicesInBoth.length > 0) {\n exitWith(\n 1,\n `Data types may not be used in both \"exclude\" and \"only\" in the same command. Found in both: ${choicesInBoth.join(\n ','\n )}`\n );\n }\n};\n\nconst errorColors = {\n fatal: chalk.red,\n error: chalk.red,\n silly: chalk.yellow,\n} as const;\n\nconst formatDiagnostic = (\n operation: string,\n info?: boolean\n): Parameters<engineDataTransfer.TransferEngine['diagnostics']['onDiagnostic']>[0] => {\n // Create log file for all incoming diagnostics\n let logger: undefined | winston.Logger;\n const getLogger = () => {\n if (!logger) {\n logger = createLogger(\n configs.createOutputFileConfiguration(`${operation}_${Date.now()}.log`, {\n level: 'info',\n format: formats?.detailedLogs,\n })\n );\n }\n return logger;\n };\n\n // We don't want to write a log file until there is something to be logged\n\n return ({ details, kind }) => {\n try {\n if (kind === 'error') {\n const { message, severity = 'fatal' } = details;\n\n const colorizeError = errorColors[severity];\n const errorMessage = colorizeError(`[${severity.toUpperCase()}] ${message}`);\n\n getLogger().error(errorMessage);\n }\n if (kind === 'info' && info) {\n const { message, params, origin } = details;\n\n const msg = `[${origin ?? 'transfer'}] ${message}\\n${params ? JSON.stringify(params, null, 2) : ''}`;\n\n getLogger().info(msg);\n }\n if (kind === 'warning') {\n const { origin, message } = details;\n\n getLogger().warn(`(${origin ?? 'transfer'}) ${message}`);\n }\n } catch (err) {\n getLogger().error(err);\n }\n };\n};\n\ntype Loaders = {\n [key in engineDataTransfer.TransferStage]: ora.Ora;\n};\n\ntype Data = {\n [key in engineDataTransfer.TransferStage]?: {\n startTime?: number;\n endTime?: number;\n bytes?: number;\n count?: number;\n };\n};\n\nconst loadersFactory = (defaultLoaders: Loaders = {} as Loaders) => {\n const loaders = defaultLoaders;\n const updateLoader = (stage: engineDataTransfer.TransferStage, data: Data) => {\n if (!(stage in loaders)) {\n createLoader(stage);\n }\n\n const stageData = data[stage];\n const elapsedTime = stageData?.startTime\n ? (stageData?.endTime || Date.now()) - stageData.startTime\n : 0;\n const size = `size: ${readableBytes(stageData?.bytes ?? 0)}`;\n const elapsed = `elapsed: ${elapsedTime} ms`;\n const speed =\n elapsedTime > 0 ? `(${readableBytes(((stageData?.bytes ?? 0) * 1000) / elapsedTime)}/s)` : '';\n\n loaders[stage].text = `${stage}: ${stageData?.count ?? 0} transfered (${size}) (${elapsed}) ${\n !stageData?.endTime ? speed : ''\n }`;\n\n return loaders[stage];\n };\n\n const createLoader = (stage: engineDataTransfer.TransferStage) => {\n Object.assign(loaders, { [stage]: ora() });\n return loaders[stage];\n };\n\n const getLoader = (stage: engineDataTransfer.TransferStage) => {\n return loaders[stage];\n };\n\n return {\n updateLoader,\n createLoader,\n getLoader,\n };\n};\n\n/**\n * Get the telemetry data to be sent for a didDEITSProcess* event from an initialized transfer engine object\n */\nconst getTransferTelemetryPayload = (engine: engineDataTransfer.TransferEngine) => {\n return {\n eventProperties: {\n source: engine?.sourceProvider?.name,\n destination: engine?.destinationProvider?.name,\n },\n };\n};\n\n/**\n * Get a transfer engine schema diff handler that confirms with the user before bypassing a schema check\n */\nconst getDiffHandler = (\n engine: engineDataTransfer.TransferEngine,\n {\n force,\n action,\n }: {\n force?: boolean;\n action: string;\n }\n) => {\n return async (\n context: engineDataTransfer.SchemaDiffHandlerContext,\n next: (ctx: engineDataTransfer.SchemaDiffHandlerContext) => void\n ) => {\n // if we abort here, we need to actually exit the process because of conflict with inquirer prompt\n setSignalHandler(async () => {\n await abortTransfer({ engine, strapi: strapi as Core.Strapi });\n exitWith(1, exitMessageText(action, true));\n });\n\n let workflowsStatus;\n const source = 'Schema Integrity';\n\n Object.entries(context.diffs).forEach(([uid, diffs]) => {\n for (const diff of diffs) {\n const path = [uid].concat(diff.path).join('.');\n const endPath = diff.path[diff.path.length - 1];\n\n // Catch known features\n if (\n uid === 'plugin::review-workflows.workflow' ||\n uid === 'plugin::review-workflows.workflow-stage' ||\n endPath?.startsWith('strapi_stage') ||\n endPath?.startsWith('strapi_assignee')\n ) {\n workflowsStatus = diff.kind;\n }\n // handle generic cases\n else if (diff.kind === 'added') {\n engine.reportWarning(chalk.red(`${chalk.bold(path)} does not exist on source`), source);\n } else if (diff.kind === 'deleted') {\n engine.reportWarning(\n chalk.red(`${chalk.bold(path)} does not exist on destination`),\n source\n );\n } else if (diff.kind === 'modified') {\n engine.reportWarning(chalk.red(`${chalk.bold(path)} has a different data type`), source);\n }\n }\n });\n\n // output the known feature warnings\n if (workflowsStatus === 'added') {\n engine.reportWarning(chalk.red(`Review workflows feature does not exist on source`), source);\n } else if (workflowsStatus === 'deleted') {\n engine.reportWarning(\n chalk.red(`Review workflows feature does not exist on destination`),\n source\n );\n } else if (workflowsStatus === 'modified') {\n engine.panic(\n new TransferEngineInitializationError('Unresolved differences in schema [review workflows]')\n );\n }\n\n const confirmed = await confirmMessage(\n 'There are differences in schema between the source and destination, and the data listed above will be lost. Are you sure you want to continue?',\n {\n force,\n }\n );\n\n // reset handler back to normal\n setSignalHandler(() => abortTransfer({ engine, strapi: strapi as Core.Strapi }));\n\n if (confirmed) {\n context.ignoredDiffs = merge(context.diffs, context.ignoredDiffs);\n }\n\n return next(context);\n };\n};\n\nconst getAssetsBackupHandler = (\n engine: engineDataTransfer.TransferEngine,\n {\n force,\n action,\n }: {\n force?: boolean;\n action: string;\n }\n) => {\n return async (\n context: engineDataTransfer.ErrorHandlerContext,\n next: (ctx: engineDataTransfer.ErrorHandlerContext) => void\n ) => {\n // if we abort here, we need to actually exit the process because of conflict with inquirer prompt\n setSignalHandler(async () => {\n await abortTransfer({ engine, strapi: strapi as Core.Strapi });\n exitWith(1, exitMessageText(action, true));\n });\n\n console.warn(\n 'The backup for the assets could not be created inside the public directory. Ensure Strapi has write permissions on the public directory.'\n );\n const confirmed = await confirmMessage(\n 'Do you want to continue without backing up your public/uploads files?',\n {\n force,\n }\n );\n\n if (confirmed) {\n context.ignore = true;\n }\n\n // reset handler back to normal\n setSignalHandler(() => abortTransfer({ engine, strapi: strapi as Core.Strapi }));\n return next(context);\n };\n};\n\nconst shouldSkipStage = (\n opts: Partial<engineDataTransfer.ITransferEngineOptions>,\n dataKind: engineDataTransfer.TransferFilterPreset\n) => {\n if (opts.exclude?.includes(dataKind)) {\n return true;\n }\n if (opts.only) {\n return !opts.only.includes(dataKind);\n }\n\n return false;\n};\n\ntype RestoreConfig = NonNullable<\n strapiDataTransfer.providers.ILocalStrapiDestinationProviderOptions['restore']\n>;\n\n// Based on exclude/only from options, create the restore object to match\nconst parseRestoreFromOptions = (opts: Partial<engineDataTransfer.ITransferEngineOptions>) => {\n const entitiesOptions: RestoreConfig['entities'] = {\n exclude: DEFAULT_IGNORED_CONTENT_TYPES,\n include: undefined,\n };\n\n // if content is not included, send an empty array for include\n if ((opts.only && !opts.only.includes('content')) || opts.exclude?.includes('content')) {\n entitiesOptions.include = [];\n }\n\n const restoreConfig: strapiDataTransfer.providers.ILocalStrapiDestinationProviderOptions['restore'] =\n {\n entities: entitiesOptions,\n assets: !shouldSkipStage(opts, 'files'),\n configuration: {\n webhook: !shouldSkipStage(opts, 'config'),\n coreStore: !shouldSkipStage(opts, 'config'),\n },\n };\n\n return restoreConfig;\n};\n\nexport {\n loadersFactory,\n buildTransferTable,\n getDefaultExportName,\n getTransferTelemetryPayload,\n DEFAULT_IGNORED_CONTENT_TYPES,\n createStrapiInstance,\n excludeOption,\n exitMessageText,\n onlyOption,\n throttleOption,\n validateExcludeOnly,\n formatDiagnostic,\n abortTransfer,\n setSignalHandler,\n getDiffHandler,\n getAssetsBackupHandler,\n shouldSkipStage,\n parseRestoreFromOptions,\n};\n"],"names":["engineDataTransfer","process","chalk","Table","readableBytes","strapi","compileStrapi","createStrapi","Option","parseInteger","getParseListWithChoices","exitWith","logger","createLogger","configs","formats","ora","confirmMessage","merge"],"mappings":"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"}