@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,259 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
- // If the importer is in node compatibility mode or this is not an ESM
18
- // file that has been converted to a CommonJS file using a Babel-
19
- // compatible transform (i.e. "__esModule" has not been set), then set
20
- // "default" to the CommonJS "module.exports" for node compatibility.
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
25
- const ReactRefreshWebpackPlugin = require("@pmmmwh/react-refresh-webpack-plugin");
26
- const browserslistToEsbuild = require("browserslist-to-esbuild");
27
- const esbuildLoader = require("esbuild-loader");
28
- const ForkTsCheckerPlugin = require("fork-ts-checker-webpack-plugin");
29
- const HtmlWebpackPlugin = require("html-webpack-plugin");
30
- const MiniCssExtractPlugin = require("mini-css-extract-plugin");
31
- const crypto = require("node:crypto");
32
- const path = require("node:path");
33
- const readPkgUp = require("read-pkg-up");
34
- const webpack = require("webpack");
35
- const webpackBundleAnalyzer = require("webpack-bundle-analyzer");
36
- const monorepo = require("../core/monorepo.js");
37
- const config = require("../core/config.js");
38
- const aliases = require("../core/aliases.js");
39
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
40
- const ReactRefreshWebpackPlugin__default = /* @__PURE__ */ _interopDefault(ReactRefreshWebpackPlugin);
41
- const browserslistToEsbuild__default = /* @__PURE__ */ _interopDefault(browserslistToEsbuild);
42
- const ForkTsCheckerPlugin__default = /* @__PURE__ */ _interopDefault(ForkTsCheckerPlugin);
43
- const HtmlWebpackPlugin__default = /* @__PURE__ */ _interopDefault(HtmlWebpackPlugin);
44
- const MiniCssExtractPlugin__default = /* @__PURE__ */ _interopDefault(MiniCssExtractPlugin);
45
- const crypto__default = /* @__PURE__ */ _interopDefault(crypto);
46
- const path__default = /* @__PURE__ */ _interopDefault(path);
47
- const readPkgUp__default = /* @__PURE__ */ _interopDefault(readPkgUp);
48
- const resolveBaseConfig = async (ctx) => {
49
- const target = browserslistToEsbuild__default.default(ctx.target);
50
- return {
51
- experiments: {
52
- topLevelAwait: true
53
- },
54
- entry: {
55
- main: [`./${ctx.entry}`]
56
- },
57
- resolve: {
58
- alias: {
59
- react: getModulePath("react"),
60
- "react-dom": getModulePath("react-dom"),
61
- "styled-components": getModulePath("styled-components"),
62
- "react-router-dom": getModulePath("react-router-dom")
63
- },
64
- extensions: [".js", ".jsx", ".react.js", ".ts", ".tsx"]
65
- },
66
- module: {
67
- rules: [
68
- {
69
- test: /\.(ts|tsx)$/,
70
- loader: require.resolve("esbuild-loader"),
71
- options: {
72
- loader: "tsx",
73
- target,
74
- jsx: "automatic"
75
- }
76
- },
77
- {
78
- test: /\.(js|jsx|mjs)$/,
79
- use: {
80
- loader: require.resolve("esbuild-loader"),
81
- options: {
82
- loader: "jsx",
83
- target,
84
- jsx: "automatic"
85
- }
86
- }
87
- },
88
- {
89
- test: /\.m?js/,
90
- resolve: {
91
- fullySpecified: false
92
- }
93
- },
94
- {
95
- test: /\.css$/i,
96
- use: [require.resolve("style-loader"), require.resolve("css-loader")]
97
- },
98
- {
99
- test: /\.(svg|eot|otf|ttf|woff|woff2)$/,
100
- type: "asset/resource"
101
- },
102
- {
103
- test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/, /\.ico$/],
104
- type: "asset",
105
- parser: {
106
- dataUrlCondition: {
107
- maxSize: 1e3
108
- }
109
- }
110
- },
111
- {
112
- test: /\.(mp4|webm)$/,
113
- type: "asset",
114
- parser: {
115
- dataUrlCondition: {
116
- maxSize: 1e4
117
- }
118
- }
119
- }
120
- ]
121
- },
122
- plugins: [
123
- new HtmlWebpackPlugin__default.default({
124
- inject: true,
125
- template: path__default.default.resolve(ctx.runtimeDir, "index.html")
126
- }),
127
- new webpack.DefinePlugin(
128
- Object.entries(ctx.env).reduce((acc, [key, value]) => {
129
- acc[`process.env.${key}`] = JSON.stringify(value);
130
- return acc;
131
- }, {})
132
- ),
133
- ctx.tsconfig && new ForkTsCheckerPlugin__default.default({
134
- typescript: {
135
- configFile: ctx.tsconfig.path,
136
- configOverwrite: {
137
- compilerOptions: {
138
- sourceMap: ctx.options.sourcemaps
139
- }
140
- }
141
- }
142
- })
143
- ].filter(Boolean)
144
- };
145
- };
146
- const resolveDevelopmentConfig = async (ctx) => {
147
- const baseConfig = await resolveBaseConfig(ctx);
148
- const monorepo$1 = await monorepo.loadStrapiMonorepo(ctx.cwd);
149
- return {
150
- ...baseConfig,
151
- cache: {
152
- type: "filesystem",
153
- // version cache when there are changes to aliases
154
- buildDependencies: {
155
- config: [__filename]
156
- },
157
- version: crypto__default.default.createHash("md5").update(Object.entries(baseConfig.resolve.alias ?? {}).join()).digest("hex")
158
- },
159
- resolve: {
160
- ...baseConfig.resolve,
161
- alias: {
162
- ...baseConfig.resolve.alias,
163
- ...aliases.getMonorepoAliases({ monorepo: monorepo$1 })
164
- }
165
- },
166
- entry: {
167
- ...baseConfig.entry,
168
- main: [
169
- `${require.resolve("webpack-hot-middleware/client")}?path=/__webpack_hmr`,
170
- ...baseConfig.entry.main
171
- ]
172
- },
173
- stats: "errors-warnings",
174
- mode: "development",
175
- devtool: "inline-source-map",
176
- output: {
177
- filename: "[name].js",
178
- path: ctx.distPath,
179
- publicPath: ctx.basePath
180
- },
181
- infrastructureLogging: {
182
- level: "error"
183
- },
184
- plugins: [
185
- ...baseConfig.plugins,
186
- new webpack.HotModuleReplacementPlugin(),
187
- new ReactRefreshWebpackPlugin__default.default()
188
- ]
189
- };
190
- };
191
- const resolveProductionConfig = async (ctx) => {
192
- const target = browserslistToEsbuild__default.default(ctx.target);
193
- const baseConfig = await resolveBaseConfig(ctx);
194
- return {
195
- ...baseConfig,
196
- stats: "errors-only",
197
- mode: "production",
198
- bail: true,
199
- devtool: ctx.options.sourcemaps ? "source-map" : false,
200
- output: {
201
- path: ctx.distPath,
202
- publicPath: ctx.basePath,
203
- // Utilize long-term caching by adding content hashes (not compilation hashes)
204
- // to compiled assets for production
205
- filename: "[name].[contenthash:8].js",
206
- chunkFilename: "[name].[contenthash:8].chunk.js"
207
- },
208
- optimization: {
209
- minimize: ctx.options.minify,
210
- minimizer: [
211
- new esbuildLoader.ESBuildMinifyPlugin({
212
- target,
213
- css: true
214
- // Apply minification to CSS assets
215
- })
216
- ],
217
- moduleIds: "deterministic",
218
- runtimeChunk: true
219
- },
220
- plugins: [
221
- ...baseConfig.plugins,
222
- new MiniCssExtractPlugin__default.default({
223
- filename: "[name].[chunkhash].css",
224
- chunkFilename: "[name].[chunkhash].chunkhash.css",
225
- ignoreOrder: true
226
- }),
227
- ctx.options.stats && new webpackBundleAnalyzer.BundleAnalyzerPlugin()
228
- // TODO: find out if this is an actual issue or just a ts bug
229
- ].filter(Boolean)
230
- };
231
- };
232
- const USER_CONFIGS = ["webpack.config.js", "webpack.config.mjs", "webpack.config.ts"];
233
- const mergeConfigWithUserConfig = async (config$1, ctx) => {
234
- const userConfig = await config.getUserConfig(USER_CONFIGS, ctx);
235
- if (userConfig) {
236
- if (typeof userConfig === "function") {
237
- const webpack2 = await import("webpack");
238
- return userConfig(config$1, webpack2);
239
- }
240
- ctx.logger.warn(
241
- `You've exported something other than a function from ${path__default.default.join(
242
- ctx.appDir,
243
- "src",
244
- "admin",
245
- "webpack.config"
246
- )}, this will ignored.`
247
- );
248
- }
249
- return config$1;
250
- };
251
- const getModulePath = (mod) => {
252
- const modulePath = require.resolve(mod);
253
- const pkg = readPkgUp__default.default.sync({ cwd: path__default.default.dirname(modulePath) });
254
- return pkg ? path__default.default.dirname(pkg.path) : modulePath;
255
- };
256
- exports.mergeConfigWithUserConfig = mergeConfigWithUserConfig;
257
- exports.resolveDevelopmentConfig = resolveDevelopmentConfig;
258
- exports.resolveProductionConfig = resolveProductionConfig;
259
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sources":["../../../src/node/webpack/config.ts"],"sourcesContent":["import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';\nimport browserslistToEsbuild from 'browserslist-to-esbuild';\nimport { ESBuildMinifyPlugin } from 'esbuild-loader';\nimport ForkTsCheckerPlugin from 'fork-ts-checker-webpack-plugin';\nimport HtmlWebpackPlugin from 'html-webpack-plugin';\nimport MiniCssExtractPlugin from 'mini-css-extract-plugin';\nimport crypto from 'node:crypto';\nimport path from 'node:path';\nimport readPkgUp from 'read-pkg-up';\nimport {\n Configuration,\n DefinePlugin,\n HotModuleReplacementPlugin,\n WebpackPluginInstance,\n} from 'webpack';\nimport { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';\n\nimport { loadStrapiMonorepo } from '../core/monorepo';\nimport type { BuildContext } from '../create-build-context';\nimport { getUserConfig } from '../core/config';\nimport { getMonorepoAliases } from '../core/aliases';\n\nconst resolveBaseConfig = async (ctx: BuildContext) => {\n const target = browserslistToEsbuild(ctx.target);\n\n return {\n experiments: {\n topLevelAwait: true,\n },\n entry: {\n main: [`./${ctx.entry}`],\n },\n resolve: {\n alias: {\n react: getModulePath('react'),\n 'react-dom': getModulePath('react-dom'),\n 'styled-components': getModulePath('styled-components'),\n 'react-router-dom': getModulePath('react-router-dom'),\n },\n extensions: ['.js', '.jsx', '.react.js', '.ts', '.tsx'],\n },\n module: {\n rules: [\n {\n test: /\\.(ts|tsx)$/,\n loader: require.resolve('esbuild-loader'),\n options: {\n loader: 'tsx',\n target,\n jsx: 'automatic',\n },\n },\n {\n test: /\\.(js|jsx|mjs)$/,\n use: {\n loader: require.resolve('esbuild-loader'),\n options: {\n loader: 'jsx',\n target,\n jsx: 'automatic',\n },\n },\n },\n {\n test: /\\.m?js/,\n resolve: {\n fullySpecified: false,\n },\n },\n {\n test: /\\.css$/i,\n use: [require.resolve('style-loader'), require.resolve('css-loader')],\n },\n {\n test: /\\.(svg|eot|otf|ttf|woff|woff2)$/,\n type: 'asset/resource',\n },\n {\n test: [/\\.bmp$/, /\\.gif$/, /\\.jpe?g$/, /\\.png$/, /\\.ico$/],\n type: 'asset',\n parser: {\n dataUrlCondition: {\n maxSize: 1000,\n },\n },\n },\n {\n test: /\\.(mp4|webm)$/,\n type: 'asset',\n parser: {\n dataUrlCondition: {\n maxSize: 10000,\n },\n },\n },\n ],\n },\n plugins: [\n new HtmlWebpackPlugin({\n inject: true,\n template: path.resolve(ctx.runtimeDir, 'index.html'),\n }),\n new DefinePlugin(\n Object.entries(ctx.env).reduce<Record<string, string>>((acc, [key, value]) => {\n acc[`process.env.${key}`] = JSON.stringify(value);\n return acc;\n }, {})\n ),\n ctx.tsconfig &&\n new ForkTsCheckerPlugin({\n typescript: {\n configFile: ctx.tsconfig.path,\n configOverwrite: {\n compilerOptions: {\n sourceMap: ctx.options.sourcemaps,\n },\n },\n },\n }),\n ].filter(Boolean),\n };\n};\n\nconst resolveDevelopmentConfig = async (ctx: BuildContext): Promise<Configuration> => {\n const baseConfig = await resolveBaseConfig(ctx);\n const monorepo = await loadStrapiMonorepo(ctx.cwd);\n\n return {\n ...baseConfig,\n cache: {\n type: 'filesystem',\n // version cache when there are changes to aliases\n buildDependencies: {\n config: [__filename],\n },\n version: crypto\n .createHash('md5')\n .update(Object.entries(baseConfig.resolve.alias ?? {}).join())\n .digest('hex'),\n },\n resolve: {\n ...baseConfig.resolve,\n alias: {\n ...baseConfig.resolve.alias,\n ...getMonorepoAliases({ monorepo }),\n },\n },\n entry: {\n ...baseConfig.entry,\n main: [\n `${require.resolve('webpack-hot-middleware/client')}?path=/__webpack_hmr`,\n ...baseConfig.entry.main,\n ],\n },\n stats: 'errors-warnings',\n mode: 'development',\n devtool: 'inline-source-map',\n output: {\n filename: '[name].js',\n path: ctx.distPath,\n publicPath: ctx.basePath,\n },\n infrastructureLogging: {\n level: 'error',\n },\n plugins: [\n ...baseConfig.plugins,\n new HotModuleReplacementPlugin(),\n new ReactRefreshWebpackPlugin(),\n ],\n };\n};\n\nconst resolveProductionConfig = async (ctx: BuildContext): Promise<Configuration> => {\n const target = browserslistToEsbuild(ctx.target);\n\n const baseConfig = await resolveBaseConfig(ctx);\n\n return {\n ...baseConfig,\n stats: 'errors-only',\n mode: 'production',\n bail: true,\n devtool: ctx.options.sourcemaps ? 'source-map' : false,\n output: {\n path: ctx.distPath,\n publicPath: ctx.basePath,\n // Utilize long-term caching by adding content hashes (not compilation hashes)\n // to compiled assets for production\n filename: '[name].[contenthash:8].js',\n chunkFilename: '[name].[contenthash:8].chunk.js',\n },\n optimization: {\n minimize: ctx.options.minify,\n minimizer: [\n new ESBuildMinifyPlugin({\n target,\n css: true, // Apply minification to CSS assets\n }),\n ],\n moduleIds: 'deterministic',\n runtimeChunk: true,\n },\n plugins: [\n ...baseConfig.plugins,\n new MiniCssExtractPlugin({\n filename: '[name].[chunkhash].css',\n chunkFilename: '[name].[chunkhash].chunkhash.css',\n ignoreOrder: true,\n }),\n ctx.options.stats && (new BundleAnalyzerPlugin() as unknown as WebpackPluginInstance), // TODO: find out if this is an actual issue or just a ts bug\n ].filter(Boolean),\n };\n};\n\nconst USER_CONFIGS = ['webpack.config.js', 'webpack.config.mjs', 'webpack.config.ts'];\n\ntype UserWebpackConfig = (config: Configuration, webpack: unknown) => Configuration;\n\nconst mergeConfigWithUserConfig = async (config: Configuration, ctx: BuildContext) => {\n const userConfig = await getUserConfig<UserWebpackConfig>(USER_CONFIGS, ctx);\n\n if (userConfig) {\n if (typeof userConfig === 'function') {\n const webpack = await import('webpack');\n return userConfig(config, webpack);\n }\n\n ctx.logger.warn(\n `You've exported something other than a function from ${path.join(\n ctx.appDir,\n 'src',\n 'admin',\n 'webpack.config'\n )}, this will ignored.`\n );\n }\n\n return config;\n};\n\n/**\n * @internal This function is used to resolve the path of a module.\n * It mimics what vite does internally already.\n */\nconst getModulePath = (mod: string) => {\n const modulePath = require.resolve(mod);\n const pkg = readPkgUp.sync({ cwd: path.dirname(modulePath) });\n return pkg ? path.dirname(pkg.path) : modulePath;\n};\n\nexport { mergeConfigWithUserConfig, resolveDevelopmentConfig, resolveProductionConfig };\n"],"names":["browserslistToEsbuild","HtmlWebpackPlugin","path","DefinePlugin","ForkTsCheckerPlugin","monorepo","loadStrapiMonorepo","crypto","getMonorepoAliases","HotModuleReplacementPlugin","ReactRefreshWebpackPlugin","ESBuildMinifyPlugin","MiniCssExtractPlugin","BundleAnalyzerPlugin","config","getUserConfig","webpack","readPkgUp"],"mappings":"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"}
@@ -1,228 +0,0 @@
1
- import ReactRefreshWebpackPlugin from "@pmmmwh/react-refresh-webpack-plugin";
2
- import browserslistToEsbuild from "browserslist-to-esbuild";
3
- import { ESBuildMinifyPlugin } from "esbuild-loader";
4
- import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin";
5
- import HtmlWebpackPlugin from "html-webpack-plugin";
6
- import MiniCssExtractPlugin from "mini-css-extract-plugin";
7
- import crypto from "node:crypto";
8
- import path from "node:path";
9
- import readPkgUp from "read-pkg-up";
10
- import { HotModuleReplacementPlugin, DefinePlugin } from "webpack";
11
- import { BundleAnalyzerPlugin } from "webpack-bundle-analyzer";
12
- import { loadStrapiMonorepo } from "../core/monorepo.mjs";
13
- import { getUserConfig } from "../core/config.mjs";
14
- import { getMonorepoAliases } from "../core/aliases.mjs";
15
- const resolveBaseConfig = async (ctx) => {
16
- const target = browserslistToEsbuild(ctx.target);
17
- return {
18
- experiments: {
19
- topLevelAwait: true
20
- },
21
- entry: {
22
- main: [`./${ctx.entry}`]
23
- },
24
- resolve: {
25
- alias: {
26
- react: getModulePath("react"),
27
- "react-dom": getModulePath("react-dom"),
28
- "styled-components": getModulePath("styled-components"),
29
- "react-router-dom": getModulePath("react-router-dom")
30
- },
31
- extensions: [".js", ".jsx", ".react.js", ".ts", ".tsx"]
32
- },
33
- module: {
34
- rules: [
35
- {
36
- test: /\.(ts|tsx)$/,
37
- loader: require.resolve("esbuild-loader"),
38
- options: {
39
- loader: "tsx",
40
- target,
41
- jsx: "automatic"
42
- }
43
- },
44
- {
45
- test: /\.(js|jsx|mjs)$/,
46
- use: {
47
- loader: require.resolve("esbuild-loader"),
48
- options: {
49
- loader: "jsx",
50
- target,
51
- jsx: "automatic"
52
- }
53
- }
54
- },
55
- {
56
- test: /\.m?js/,
57
- resolve: {
58
- fullySpecified: false
59
- }
60
- },
61
- {
62
- test: /\.css$/i,
63
- use: [require.resolve("style-loader"), require.resolve("css-loader")]
64
- },
65
- {
66
- test: /\.(svg|eot|otf|ttf|woff|woff2)$/,
67
- type: "asset/resource"
68
- },
69
- {
70
- test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/, /\.ico$/],
71
- type: "asset",
72
- parser: {
73
- dataUrlCondition: {
74
- maxSize: 1e3
75
- }
76
- }
77
- },
78
- {
79
- test: /\.(mp4|webm)$/,
80
- type: "asset",
81
- parser: {
82
- dataUrlCondition: {
83
- maxSize: 1e4
84
- }
85
- }
86
- }
87
- ]
88
- },
89
- plugins: [
90
- new HtmlWebpackPlugin({
91
- inject: true,
92
- template: path.resolve(ctx.runtimeDir, "index.html")
93
- }),
94
- new DefinePlugin(
95
- Object.entries(ctx.env).reduce((acc, [key, value]) => {
96
- acc[`process.env.${key}`] = JSON.stringify(value);
97
- return acc;
98
- }, {})
99
- ),
100
- ctx.tsconfig && new ForkTsCheckerPlugin({
101
- typescript: {
102
- configFile: ctx.tsconfig.path,
103
- configOverwrite: {
104
- compilerOptions: {
105
- sourceMap: ctx.options.sourcemaps
106
- }
107
- }
108
- }
109
- })
110
- ].filter(Boolean)
111
- };
112
- };
113
- const resolveDevelopmentConfig = async (ctx) => {
114
- const baseConfig = await resolveBaseConfig(ctx);
115
- const monorepo = await loadStrapiMonorepo(ctx.cwd);
116
- return {
117
- ...baseConfig,
118
- cache: {
119
- type: "filesystem",
120
- // version cache when there are changes to aliases
121
- buildDependencies: {
122
- config: [__filename]
123
- },
124
- version: crypto.createHash("md5").update(Object.entries(baseConfig.resolve.alias ?? {}).join()).digest("hex")
125
- },
126
- resolve: {
127
- ...baseConfig.resolve,
128
- alias: {
129
- ...baseConfig.resolve.alias,
130
- ...getMonorepoAliases({ monorepo })
131
- }
132
- },
133
- entry: {
134
- ...baseConfig.entry,
135
- main: [
136
- `${require.resolve("webpack-hot-middleware/client")}?path=/__webpack_hmr`,
137
- ...baseConfig.entry.main
138
- ]
139
- },
140
- stats: "errors-warnings",
141
- mode: "development",
142
- devtool: "inline-source-map",
143
- output: {
144
- filename: "[name].js",
145
- path: ctx.distPath,
146
- publicPath: ctx.basePath
147
- },
148
- infrastructureLogging: {
149
- level: "error"
150
- },
151
- plugins: [
152
- ...baseConfig.plugins,
153
- new HotModuleReplacementPlugin(),
154
- new ReactRefreshWebpackPlugin()
155
- ]
156
- };
157
- };
158
- const resolveProductionConfig = async (ctx) => {
159
- const target = browserslistToEsbuild(ctx.target);
160
- const baseConfig = await resolveBaseConfig(ctx);
161
- return {
162
- ...baseConfig,
163
- stats: "errors-only",
164
- mode: "production",
165
- bail: true,
166
- devtool: ctx.options.sourcemaps ? "source-map" : false,
167
- output: {
168
- path: ctx.distPath,
169
- publicPath: ctx.basePath,
170
- // Utilize long-term caching by adding content hashes (not compilation hashes)
171
- // to compiled assets for production
172
- filename: "[name].[contenthash:8].js",
173
- chunkFilename: "[name].[contenthash:8].chunk.js"
174
- },
175
- optimization: {
176
- minimize: ctx.options.minify,
177
- minimizer: [
178
- new ESBuildMinifyPlugin({
179
- target,
180
- css: true
181
- // Apply minification to CSS assets
182
- })
183
- ],
184
- moduleIds: "deterministic",
185
- runtimeChunk: true
186
- },
187
- plugins: [
188
- ...baseConfig.plugins,
189
- new MiniCssExtractPlugin({
190
- filename: "[name].[chunkhash].css",
191
- chunkFilename: "[name].[chunkhash].chunkhash.css",
192
- ignoreOrder: true
193
- }),
194
- ctx.options.stats && new BundleAnalyzerPlugin()
195
- // TODO: find out if this is an actual issue or just a ts bug
196
- ].filter(Boolean)
197
- };
198
- };
199
- const USER_CONFIGS = ["webpack.config.js", "webpack.config.mjs", "webpack.config.ts"];
200
- const mergeConfigWithUserConfig = async (config, ctx) => {
201
- const userConfig = await getUserConfig(USER_CONFIGS, ctx);
202
- if (userConfig) {
203
- if (typeof userConfig === "function") {
204
- const webpack = await import("webpack");
205
- return userConfig(config, webpack);
206
- }
207
- ctx.logger.warn(
208
- `You've exported something other than a function from ${path.join(
209
- ctx.appDir,
210
- "src",
211
- "admin",
212
- "webpack.config"
213
- )}, this will ignored.`
214
- );
215
- }
216
- return config;
217
- };
218
- const getModulePath = (mod) => {
219
- const modulePath = require.resolve(mod);
220
- const pkg = readPkgUp.sync({ cwd: path.dirname(modulePath) });
221
- return pkg ? path.dirname(pkg.path) : modulePath;
222
- };
223
- export {
224
- mergeConfigWithUserConfig,
225
- resolveDevelopmentConfig,
226
- resolveProductionConfig
227
- };
228
- //# sourceMappingURL=config.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.mjs","sources":["../../../src/node/webpack/config.ts"],"sourcesContent":["import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';\nimport browserslistToEsbuild from 'browserslist-to-esbuild';\nimport { ESBuildMinifyPlugin } from 'esbuild-loader';\nimport ForkTsCheckerPlugin from 'fork-ts-checker-webpack-plugin';\nimport HtmlWebpackPlugin from 'html-webpack-plugin';\nimport MiniCssExtractPlugin from 'mini-css-extract-plugin';\nimport crypto from 'node:crypto';\nimport path from 'node:path';\nimport readPkgUp from 'read-pkg-up';\nimport {\n Configuration,\n DefinePlugin,\n HotModuleReplacementPlugin,\n WebpackPluginInstance,\n} from 'webpack';\nimport { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';\n\nimport { loadStrapiMonorepo } from '../core/monorepo';\nimport type { BuildContext } from '../create-build-context';\nimport { getUserConfig } from '../core/config';\nimport { getMonorepoAliases } from '../core/aliases';\n\nconst resolveBaseConfig = async (ctx: BuildContext) => {\n const target = browserslistToEsbuild(ctx.target);\n\n return {\n experiments: {\n topLevelAwait: true,\n },\n entry: {\n main: [`./${ctx.entry}`],\n },\n resolve: {\n alias: {\n react: getModulePath('react'),\n 'react-dom': getModulePath('react-dom'),\n 'styled-components': getModulePath('styled-components'),\n 'react-router-dom': getModulePath('react-router-dom'),\n },\n extensions: ['.js', '.jsx', '.react.js', '.ts', '.tsx'],\n },\n module: {\n rules: [\n {\n test: /\\.(ts|tsx)$/,\n loader: require.resolve('esbuild-loader'),\n options: {\n loader: 'tsx',\n target,\n jsx: 'automatic',\n },\n },\n {\n test: /\\.(js|jsx|mjs)$/,\n use: {\n loader: require.resolve('esbuild-loader'),\n options: {\n loader: 'jsx',\n target,\n jsx: 'automatic',\n },\n },\n },\n {\n test: /\\.m?js/,\n resolve: {\n fullySpecified: false,\n },\n },\n {\n test: /\\.css$/i,\n use: [require.resolve('style-loader'), require.resolve('css-loader')],\n },\n {\n test: /\\.(svg|eot|otf|ttf|woff|woff2)$/,\n type: 'asset/resource',\n },\n {\n test: [/\\.bmp$/, /\\.gif$/, /\\.jpe?g$/, /\\.png$/, /\\.ico$/],\n type: 'asset',\n parser: {\n dataUrlCondition: {\n maxSize: 1000,\n },\n },\n },\n {\n test: /\\.(mp4|webm)$/,\n type: 'asset',\n parser: {\n dataUrlCondition: {\n maxSize: 10000,\n },\n },\n },\n ],\n },\n plugins: [\n new HtmlWebpackPlugin({\n inject: true,\n template: path.resolve(ctx.runtimeDir, 'index.html'),\n }),\n new DefinePlugin(\n Object.entries(ctx.env).reduce<Record<string, string>>((acc, [key, value]) => {\n acc[`process.env.${key}`] = JSON.stringify(value);\n return acc;\n }, {})\n ),\n ctx.tsconfig &&\n new ForkTsCheckerPlugin({\n typescript: {\n configFile: ctx.tsconfig.path,\n configOverwrite: {\n compilerOptions: {\n sourceMap: ctx.options.sourcemaps,\n },\n },\n },\n }),\n ].filter(Boolean),\n };\n};\n\nconst resolveDevelopmentConfig = async (ctx: BuildContext): Promise<Configuration> => {\n const baseConfig = await resolveBaseConfig(ctx);\n const monorepo = await loadStrapiMonorepo(ctx.cwd);\n\n return {\n ...baseConfig,\n cache: {\n type: 'filesystem',\n // version cache when there are changes to aliases\n buildDependencies: {\n config: [__filename],\n },\n version: crypto\n .createHash('md5')\n .update(Object.entries(baseConfig.resolve.alias ?? {}).join())\n .digest('hex'),\n },\n resolve: {\n ...baseConfig.resolve,\n alias: {\n ...baseConfig.resolve.alias,\n ...getMonorepoAliases({ monorepo }),\n },\n },\n entry: {\n ...baseConfig.entry,\n main: [\n `${require.resolve('webpack-hot-middleware/client')}?path=/__webpack_hmr`,\n ...baseConfig.entry.main,\n ],\n },\n stats: 'errors-warnings',\n mode: 'development',\n devtool: 'inline-source-map',\n output: {\n filename: '[name].js',\n path: ctx.distPath,\n publicPath: ctx.basePath,\n },\n infrastructureLogging: {\n level: 'error',\n },\n plugins: [\n ...baseConfig.plugins,\n new HotModuleReplacementPlugin(),\n new ReactRefreshWebpackPlugin(),\n ],\n };\n};\n\nconst resolveProductionConfig = async (ctx: BuildContext): Promise<Configuration> => {\n const target = browserslistToEsbuild(ctx.target);\n\n const baseConfig = await resolveBaseConfig(ctx);\n\n return {\n ...baseConfig,\n stats: 'errors-only',\n mode: 'production',\n bail: true,\n devtool: ctx.options.sourcemaps ? 'source-map' : false,\n output: {\n path: ctx.distPath,\n publicPath: ctx.basePath,\n // Utilize long-term caching by adding content hashes (not compilation hashes)\n // to compiled assets for production\n filename: '[name].[contenthash:8].js',\n chunkFilename: '[name].[contenthash:8].chunk.js',\n },\n optimization: {\n minimize: ctx.options.minify,\n minimizer: [\n new ESBuildMinifyPlugin({\n target,\n css: true, // Apply minification to CSS assets\n }),\n ],\n moduleIds: 'deterministic',\n runtimeChunk: true,\n },\n plugins: [\n ...baseConfig.plugins,\n new MiniCssExtractPlugin({\n filename: '[name].[chunkhash].css',\n chunkFilename: '[name].[chunkhash].chunkhash.css',\n ignoreOrder: true,\n }),\n ctx.options.stats && (new BundleAnalyzerPlugin() as unknown as WebpackPluginInstance), // TODO: find out if this is an actual issue or just a ts bug\n ].filter(Boolean),\n };\n};\n\nconst USER_CONFIGS = ['webpack.config.js', 'webpack.config.mjs', 'webpack.config.ts'];\n\ntype UserWebpackConfig = (config: Configuration, webpack: unknown) => Configuration;\n\nconst mergeConfigWithUserConfig = async (config: Configuration, ctx: BuildContext) => {\n const userConfig = await getUserConfig<UserWebpackConfig>(USER_CONFIGS, ctx);\n\n if (userConfig) {\n if (typeof userConfig === 'function') {\n const webpack = await import('webpack');\n return userConfig(config, webpack);\n }\n\n ctx.logger.warn(\n `You've exported something other than a function from ${path.join(\n ctx.appDir,\n 'src',\n 'admin',\n 'webpack.config'\n )}, this will ignored.`\n );\n }\n\n return config;\n};\n\n/**\n * @internal This function is used to resolve the path of a module.\n * It mimics what vite does internally already.\n */\nconst getModulePath = (mod: string) => {\n const modulePath = require.resolve(mod);\n const pkg = readPkgUp.sync({ cwd: path.dirname(modulePath) });\n return pkg ? path.dirname(pkg.path) : modulePath;\n};\n\nexport { mergeConfigWithUserConfig, resolveDevelopmentConfig, resolveProductionConfig };\n"],"names":[],"mappings":"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"}
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const os = require("node:os");
4
- const path = require("node:path");
5
- const node_util = require("node:util");
6
- const webpackDevMiddleware = require("webpack-dev-middleware");
7
- const webpackHotMiddleware = require("webpack-hot-middleware");
8
- const webpack = require("webpack");
9
- const config = require("./config.js");
10
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
11
- const os__default = /* @__PURE__ */ _interopDefault(os);
12
- const path__default = /* @__PURE__ */ _interopDefault(path);
13
- const webpackDevMiddleware__default = /* @__PURE__ */ _interopDefault(webpackDevMiddleware);
14
- const webpackHotMiddleware__default = /* @__PURE__ */ _interopDefault(webpackHotMiddleware);
15
- const watch = async (ctx) => {
16
- const config$1 = await config.resolveDevelopmentConfig(ctx);
17
- const finalConfig = await config.mergeConfigWithUserConfig(config$1, ctx);
18
- ctx.logger.debug("Final webpack config:", os__default.default.EOL, finalConfig);
19
- return new Promise((res) => {
20
- const compiler = webpack.webpack(finalConfig);
21
- const devMiddleware = webpackDevMiddleware__default.default(compiler);
22
- const hotMiddleware = webpackHotMiddleware__default.default(compiler, {
23
- log: false,
24
- path: "/__webpack_hmr"
25
- });
26
- ctx.strapi.server.app.use((ctx2, next) => {
27
- return new Promise((resolve, reject) => {
28
- hotMiddleware(ctx2.req, ctx2.res, (err) => {
29
- if (err) reject(err);
30
- else resolve(next());
31
- });
32
- });
33
- });
34
- ctx.strapi.server.app.use((context, next) => {
35
- const ready = new Promise((resolve) => {
36
- devMiddleware.waitUntilValid(() => {
37
- resolve(true);
38
- });
39
- });
40
- const init = new Promise((resolve) => {
41
- devMiddleware(
42
- context.req,
43
- {
44
- // @ts-expect-error ignored
45
- end(content) {
46
- context.body = content;
47
- resolve(true);
48
- },
49
- getHeader: context.get.bind(context),
50
- // @ts-expect-error ignored
51
- setHeader: context.set.bind(context),
52
- locals: context.state
53
- },
54
- () => resolve(next())
55
- );
56
- });
57
- return Promise.all([ready, init]);
58
- });
59
- const serveAdmin = async (ctx2, next) => {
60
- await next();
61
- if (devMiddleware.context.outputFileSystem.createReadStream) {
62
- if (ctx2.method !== "HEAD" && ctx2.method !== "GET") {
63
- return;
64
- }
65
- if (ctx2.body != null || ctx2.status !== 404) {
66
- return;
67
- }
68
- const filename = path__default.default.resolve(finalConfig.output?.path, "index.html");
69
- ctx2.type = "html";
70
- ctx2.body = devMiddleware.context.outputFileSystem.createReadStream(filename);
71
- }
72
- };
73
- ctx.strapi.server.routes([
74
- {
75
- method: "GET",
76
- path: `${ctx.adminPath}/:path*`,
77
- handler: serveAdmin,
78
- config: { auth: false }
79
- }
80
- ]);
81
- devMiddleware.waitUntilValid(() => {
82
- res({
83
- async close() {
84
- await Promise.all([
85
- node_util.promisify(devMiddleware.close.bind(devMiddleware))(),
86
- hotMiddleware.close(),
87
- node_util.promisify(compiler.close.bind(compiler))()
88
- ]);
89
- }
90
- });
91
- });
92
- });
93
- };
94
- exports.watch = watch;
95
- //# sourceMappingURL=watch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watch.js","sources":["../../../src/node/webpack/watch.ts"],"sourcesContent":["import os from 'node:os';\nimport path from 'node:path';\nimport { promisify } from 'node:util';\nimport webpackDevMiddleware from 'webpack-dev-middleware';\nimport webpackHotMiddleware from 'webpack-hot-middleware';\nimport { webpack } from 'webpack';\nimport { Core } from '@strapi/types';\nimport type { BuildContext } from '../create-build-context';\nimport { mergeConfigWithUserConfig, resolveDevelopmentConfig } from './config';\n\ninterface WebpackWatcher {\n close(): Promise<void>;\n}\n\nconst watch = async (ctx: BuildContext): Promise<WebpackWatcher> => {\n const config = await resolveDevelopmentConfig(ctx);\n const finalConfig = await mergeConfigWithUserConfig(config, ctx);\n\n ctx.logger.debug('Final webpack config:', os.EOL, finalConfig);\n\n return new Promise<WebpackWatcher>((res) => {\n const compiler = webpack(finalConfig);\n\n const devMiddleware = webpackDevMiddleware(compiler);\n\n const hotMiddleware = webpackHotMiddleware(compiler, {\n log: false,\n path: '/__webpack_hmr',\n });\n\n ctx.strapi.server.app.use((ctx, next) => {\n return new Promise((resolve, reject) => {\n hotMiddleware(ctx.req, ctx.res, (err) => {\n if (err) reject(err);\n else resolve(next());\n });\n });\n });\n\n ctx.strapi.server.app.use((context, next) => {\n // wait for webpack-dev-middleware to signal that the build is ready\n const ready = new Promise((resolve) => {\n devMiddleware.waitUntilValid(() => {\n resolve(true);\n });\n });\n // tell webpack-dev-middleware to handle the request\n const init = new Promise((resolve) => {\n devMiddleware(\n context.req,\n {\n // @ts-expect-error ignored\n end(content) {\n // eslint-disable-next-line no-param-reassign\n context.body = content;\n resolve(true);\n },\n getHeader: context.get.bind(context),\n // @ts-expect-error ignored\n setHeader: context.set.bind(context),\n locals: context.state,\n },\n () => resolve(next())\n );\n });\n\n return Promise.all([ready, init]);\n });\n\n const serveAdmin: Core.MiddlewareHandler = async (ctx, next) => {\n await next();\n\n if (devMiddleware.context.outputFileSystem.createReadStream) {\n if (ctx.method !== 'HEAD' && ctx.method !== 'GET') {\n return;\n }\n\n if (ctx.body != null || ctx.status !== 404) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n const filename = path.resolve(finalConfig.output?.path!, 'index.html');\n ctx.type = 'html';\n ctx.body = devMiddleware.context.outputFileSystem.createReadStream(filename);\n }\n };\n\n ctx.strapi.server.routes([\n {\n method: 'GET',\n path: `${ctx.adminPath}/:path*`,\n handler: serveAdmin,\n config: { auth: false },\n },\n ]);\n\n devMiddleware.waitUntilValid(() => {\n res({\n async close() {\n await Promise.all([\n promisify(devMiddleware.close.bind(devMiddleware))(),\n hotMiddleware.close(),\n promisify(compiler.close.bind(compiler))(),\n ]);\n },\n });\n });\n });\n};\n\nexport { watch };\nexport type { WebpackWatcher };\n"],"names":["config","resolveDevelopmentConfig","mergeConfigWithUserConfig","os","webpack","webpackDevMiddleware","webpackHotMiddleware","ctx","path","promisify"],"mappings":";;;;;;;;;;;;;;AAcM,MAAA,QAAQ,OAAO,QAA+C;AAC5D,QAAAA,WAAS,MAAMC,OAAA,yBAAyB,GAAG;AACjD,QAAM,cAAc,MAAMC,iCAA0BF,UAAQ,GAAG;AAE/D,MAAI,OAAO,MAAM,yBAAyBG,YAAA,QAAG,KAAK,WAAW;AAEtD,SAAA,IAAI,QAAwB,CAAC,QAAQ;AACpC,UAAA,WAAWC,gBAAQ,WAAW;AAE9B,UAAA,gBAAgBC,sCAAqB,QAAQ;AAE7C,UAAA,gBAAgBC,sCAAqB,UAAU;AAAA,MACnD,KAAK;AAAA,MACL,MAAM;AAAA,IAAA,CACP;AAED,QAAI,OAAO,OAAO,IAAI,IAAI,CAACC,MAAK,SAAS;AACvC,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,sBAAcA,KAAI,KAAKA,KAAI,KAAK,CAAC,QAAQ;AACnC,cAAA,YAAY,GAAG;AAAA,cACd,SAAQ,MAAM;AAAA,QAAA,CACpB;AAAA,MAAA,CACF;AAAA,IAAA,CACF;AAED,QAAI,OAAO,OAAO,IAAI,IAAI,CAAC,SAAS,SAAS;AAE3C,YAAM,QAAQ,IAAI,QAAQ,CAAC,YAAY;AACrC,sBAAc,eAAe,MAAM;AACjC,kBAAQ,IAAI;AAAA,QAAA,CACb;AAAA,MAAA,CACF;AAED,YAAM,OAAO,IAAI,QAAQ,CAAC,YAAY;AACpC;AAAA,UACE,QAAQ;AAAA,UACR;AAAA;AAAA,YAEE,IAAI,SAAS;AAEX,sBAAQ,OAAO;AACf,sBAAQ,IAAI;AAAA,YACd;AAAA,YACA,WAAW,QAAQ,IAAI,KAAK,OAAO;AAAA;AAAA,YAEnC,WAAW,QAAQ,IAAI,KAAK,OAAO;AAAA,YACnC,QAAQ,QAAQ;AAAA,UAClB;AAAA,UACA,MAAM,QAAQ,KAAM,CAAA;AAAA,QACtB;AAAA,MAAA,CACD;AAED,aAAO,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC;AAAA,IAAA,CACjC;AAEK,UAAA,aAAqC,OAAOA,MAAK,SAAS;AAC9D,YAAM,KAAK;AAEP,UAAA,cAAc,QAAQ,iBAAiB,kBAAkB;AAC3D,YAAIA,KAAI,WAAW,UAAUA,KAAI,WAAW,OAAO;AACjD;AAAA,QAAA;AAGF,YAAIA,KAAI,QAAQ,QAAQA,KAAI,WAAW,KAAK;AAC1C;AAAA,QAAA;AAIF,cAAM,WAAWC,cAAAA,QAAK,QAAQ,YAAY,QAAQ,MAAO,YAAY;AACrED,aAAI,OAAO;AACXA,aAAI,OAAO,cAAc,QAAQ,iBAAiB,iBAAiB,QAAQ;AAAA,MAAA;AAAA,IAE/E;AAEI,QAAA,OAAO,OAAO,OAAO;AAAA,MACvB;AAAA,QACE,QAAQ;AAAA,QACR,MAAM,GAAG,IAAI,SAAS;AAAA,QACtB,SAAS;AAAA,QACT,QAAQ,EAAE,MAAM,MAAM;AAAA,MAAA;AAAA,IACxB,CACD;AAED,kBAAc,eAAe,MAAM;AAC7B,UAAA;AAAA,QACF,MAAM,QAAQ;AACZ,gBAAM,QAAQ,IAAI;AAAA,YAChBE,UAAAA,UAAU,cAAc,MAAM,KAAK,aAAa,CAAC,EAAE;AAAA,YACnD,cAAc,MAAM;AAAA,YACpBA,UAAAA,UAAU,SAAS,MAAM,KAAK,QAAQ,CAAC,EAAE;AAAA,UAAA,CAC1C;AAAA,QAAA;AAAA,MACH,CACD;AAAA,IAAA,CACF;AAAA,EAAA,CACF;AACH;;"}