@strapi/strapi 5.48.1 → 5.49.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 (122) hide show
  1. package/dist/admin.js +17 -7
  2. package/dist/admin.js.map +1 -1
  3. package/dist/node/create-build-context.d.ts +0 -4
  4. package/dist/node/create-build-context.d.ts.map +1 -1
  5. package/dist/node/vite/config.d.ts.map +1 -1
  6. package/dist/node/vite/resolve-development-config.test.d.ts +2 -0
  7. package/dist/node/vite/resolve-development-config.test.d.ts.map +1 -0
  8. package/dist/node/vite/watch.d.ts.map +1 -1
  9. package/dist/package.json.js +1 -1
  10. package/dist/package.json.mjs +1 -1
  11. package/dist/src/cli/commands/admin/active-user.js +6 -2
  12. package/dist/src/cli/commands/admin/active-user.js.map +1 -1
  13. package/dist/src/cli/commands/admin/block-user.js +6 -2
  14. package/dist/src/cli/commands/admin/block-user.js.map +1 -1
  15. package/dist/src/cli/commands/admin/create-user.js +5 -1
  16. package/dist/src/cli/commands/admin/create-user.js.map +1 -1
  17. package/dist/src/cli/commands/admin/delete-user.js +6 -2
  18. package/dist/src/cli/commands/admin/delete-user.js.map +1 -1
  19. package/dist/src/cli/commands/admin/list-users.js +16 -11
  20. package/dist/src/cli/commands/admin/list-users.js.map +1 -1
  21. package/dist/src/cli/commands/admin/reset-user-password.js +6 -2
  22. package/dist/src/cli/commands/admin/reset-user-password.js.map +1 -1
  23. package/dist/src/cli/commands/components/list.js +7 -2
  24. package/dist/src/cli/commands/components/list.js.map +1 -1
  25. package/dist/src/cli/commands/configuration/dump.js +5 -1
  26. package/dist/src/cli/commands/configuration/dump.js.map +1 -1
  27. package/dist/src/cli/commands/configuration/restore.js +8 -3
  28. package/dist/src/cli/commands/configuration/restore.js.map +1 -1
  29. package/dist/src/cli/commands/console.js +5 -1
  30. package/dist/src/cli/commands/console.js.map +1 -1
  31. package/dist/src/cli/commands/content-types/list.js +7 -2
  32. package/dist/src/cli/commands/content-types/list.js.map +1 -1
  33. package/dist/src/cli/commands/controllers/list.js +7 -2
  34. package/dist/src/cli/commands/controllers/list.js.map +1 -1
  35. package/dist/src/cli/commands/develop.js +5 -1
  36. package/dist/src/cli/commands/develop.js.map +1 -1
  37. package/dist/src/cli/commands/export/action.js +11 -5
  38. package/dist/src/cli/commands/export/action.js.map +1 -1
  39. package/dist/src/cli/commands/hooks/list.js +7 -2
  40. package/dist/src/cli/commands/hooks/list.js.map +1 -1
  41. package/dist/src/cli/commands/import/action.js +7 -2
  42. package/dist/src/cli/commands/import/action.js.map +1 -1
  43. package/dist/src/cli/commands/import/command.js +6 -2
  44. package/dist/src/cli/commands/import/command.js.map +1 -1
  45. package/dist/src/cli/commands/middlewares/list.js +7 -2
  46. package/dist/src/cli/commands/middlewares/list.js.map +1 -1
  47. package/dist/src/cli/commands/openapi/generate.js +17 -11
  48. package/dist/src/cli/commands/openapi/generate.js.map +1 -1
  49. package/dist/src/cli/commands/policies/list.js +7 -2
  50. package/dist/src/cli/commands/policies/list.js.map +1 -1
  51. package/dist/src/cli/commands/routes/list.js +8 -3
  52. package/dist/src/cli/commands/routes/list.js.map +1 -1
  53. package/dist/src/cli/commands/services/list.js +7 -2
  54. package/dist/src/cli/commands/services/list.js.map +1 -1
  55. package/dist/src/cli/commands/start.js +8 -3
  56. package/dist/src/cli/commands/start.js.map +1 -1
  57. package/dist/src/cli/commands/telemetry/disable.js +14 -9
  58. package/dist/src/cli/commands/telemetry/disable.js.map +1 -1
  59. package/dist/src/cli/commands/telemetry/enable.js +14 -9
  60. package/dist/src/cli/commands/telemetry/enable.js.map +1 -1
  61. package/dist/src/cli/commands/transfer/action.js +5 -1
  62. package/dist/src/cli/commands/transfer/action.js.map +1 -1
  63. package/dist/src/cli/commands/ts/generate-types.js +5 -1
  64. package/dist/src/cli/commands/ts/generate-types.js.map +1 -1
  65. package/dist/src/cli/utils/commander.js +5 -1
  66. package/dist/src/cli/utils/commander.js.map +1 -1
  67. package/dist/src/cli/utils/data-transfer.js +28 -21
  68. package/dist/src/cli/utils/data-transfer.js.map +1 -1
  69. package/dist/src/cli/utils/helpers.js +7 -3
  70. package/dist/src/cli/utils/helpers.js.map +1 -1
  71. package/dist/src/cli/utils/logger.js +15 -10
  72. package/dist/src/cli/utils/logger.js.map +1 -1
  73. package/dist/src/cli/utils/tsconfig.js +9 -4
  74. package/dist/src/cli/utils/tsconfig.js.map +1 -1
  75. package/dist/src/node/build.js +3 -2
  76. package/dist/src/node/build.js.map +1 -1
  77. package/dist/src/node/core/admin-customisations.js +6 -2
  78. package/dist/src/node/core/admin-customisations.js.map +1 -1
  79. package/dist/src/node/core/aliases.js +5 -1
  80. package/dist/src/node/core/aliases.js.map +1 -1
  81. package/dist/src/node/core/config.js +5 -1
  82. package/dist/src/node/core/config.js.map +1 -1
  83. package/dist/src/node/core/dependencies.js +33 -22
  84. package/dist/src/node/core/dependencies.js.map +1 -1
  85. package/dist/src/node/core/ensure-admin-dependencies.js +5 -1
  86. package/dist/src/node/core/ensure-admin-dependencies.js.map +1 -1
  87. package/dist/src/node/core/env.js +7 -2
  88. package/dist/src/node/core/env.js.map +1 -1
  89. package/dist/src/node/core/errors.js +9 -3
  90. package/dist/src/node/core/errors.js.map +1 -1
  91. package/dist/src/node/core/files.js +6 -2
  92. package/dist/src/node/core/files.js.map +1 -1
  93. package/dist/src/node/core/linked-packages.js +5 -1
  94. package/dist/src/node/core/linked-packages.js.map +1 -1
  95. package/dist/src/node/core/monorepo.js +8 -3
  96. package/dist/src/node/core/monorepo.js.map +1 -1
  97. package/dist/src/node/core/plugins.js +17 -10
  98. package/dist/src/node/core/plugins.js.map +1 -1
  99. package/dist/src/node/core/resolve-module.js +8 -3
  100. package/dist/src/node/core/resolve-module.js.map +1 -1
  101. package/dist/src/node/create-build-context.js +16 -9
  102. package/dist/src/node/create-build-context.js.map +1 -1
  103. package/dist/src/node/create-build-context.mjs.map +1 -1
  104. package/dist/src/node/develop.js +14 -8
  105. package/dist/src/node/develop.js.map +1 -1
  106. package/dist/src/node/staticFiles.js +11 -5
  107. package/dist/src/node/staticFiles.js.map +1 -1
  108. package/dist/src/node/vite/config.js +14 -3
  109. package/dist/src/node/vite/config.js.map +1 -1
  110. package/dist/src/node/vite/config.mjs +9 -2
  111. package/dist/src/node/vite/config.mjs.map +1 -1
  112. package/dist/src/node/vite/watch.js +7 -62
  113. package/dist/src/node/vite/watch.js.map +1 -1
  114. package/dist/src/node/vite/watch.mjs +2 -62
  115. package/dist/src/node/vite/watch.mjs.map +1 -1
  116. package/dist/src/node/webpack/build.js +5 -1
  117. package/dist/src/node/webpack/build.js.map +1 -1
  118. package/dist/src/node/webpack/config.js +17 -8
  119. package/dist/src/node/webpack/config.js.map +1 -1
  120. package/dist/src/node/webpack/watch.js +11 -4
  121. package/dist/src/node/webpack/watch.js.map +1 -1
  122. package/package.json +22 -22
@@ -1,61 +1,9 @@
1
1
  import path from 'node:path';
2
- import http from 'node:http';
3
2
  import fs from 'node:fs/promises';
4
- import { Server } from 'node:net';
5
- import { resolveDevelopmentConfig, mergeConfigWithUserConfig } from './config.mjs';
3
+ import { mergeConfigWithUserConfig, resolveDevelopmentConfig } from './config.mjs';
6
4
 
7
- const HMR_DEFAULT_PORT = 5173;
8
- const MAX_PORT_ATTEMPTS = 30;
9
- const findAvailablePort = (startingPort, attemptsLeft = MAX_PORT_ATTEMPTS)=>{
10
- return new Promise((resolve, reject)=>{
11
- if (attemptsLeft <= 0) {
12
- reject(new Error(`No available ports found after ${MAX_PORT_ATTEMPTS} attempts.`));
13
- return;
14
- }
15
- const server = new Server();
16
- server.listen(startingPort, ()=>{
17
- const { port } = server.address();
18
- server.close(()=>resolve(port));
19
- });
20
- server.on('error', (err)=>{
21
- if (err.code === 'EADDRINUSE') {
22
- resolve(findAvailablePort(startingPort + 1, attemptsLeft - 1));
23
- } else {
24
- reject(err);
25
- }
26
- });
27
- });
28
- };
29
- const createHMRServer = ()=>{
30
- return http.createServer(// http server request handler. keeps the same with
31
- // https://github.com/websockets/ws/blob/45e17acea791d865df6b255a55182e9c42e5877a/lib/websocket-server.js#L88-L96
32
- (_, res)=>{
33
- const body = http.STATUS_CODES[426]; // Upgrade Required
34
- res.writeHead(426, {
35
- 'Content-Length': body?.length ?? 0,
36
- 'Content-Type': 'text/plain'
37
- });
38
- res.end(body);
39
- });
40
- };
41
5
  const watch = async (ctx)=>{
42
- const hmrServer = createHMRServer();
43
- // Allowing Vite to find an available port doesn't work, so we'll find an available port manually
44
- // and use that. There is therefore a very slight race condition if you start up two servers at the same time
45
- // one might fail, or it might start up but listen on the wrong port.
46
- const availablePort = await findAvailablePort(HMR_DEFAULT_PORT);
47
- ctx.options.hmrServer = hmrServer;
48
- ctx.options.hmrClientPort = availablePort;
49
- const config = await resolveDevelopmentConfig(ctx);
50
- const finalConfig = await mergeConfigWithUserConfig(config, ctx);
51
- const hmrConfig = config.server?.hmr;
52
- // If the server used for Vite hmr is the one we've created (<> no user override)
53
- if (typeof hmrConfig === 'object' && hmrConfig.server === hmrServer) {
54
- // Only restart the hmr server when Strapi's server is listening
55
- strapi.server.httpServer.on('listening', async ()=>{
56
- hmrServer.listen(availablePort);
57
- });
58
- }
6
+ const finalConfig = await mergeConfigWithUserConfig(await resolveDevelopmentConfig(ctx), ctx);
59
7
  ctx.logger.debug('Vite config', finalConfig);
60
8
  const { createServer } = await import('vite');
61
9
  const vite = await createServer(finalConfig);
@@ -118,14 +66,6 @@ const watch = async (ctx)=>{
118
66
  return {
119
67
  async close () {
120
68
  await vite.close();
121
- if (hmrServer.listening) {
122
- // Manually close the hmr server
123
- // /!\ This operation MUST be done after calling .close() on the vite
124
- // instance to avoid flaky behaviors with attached clients
125
- await new Promise((resolve, reject)=>{
126
- hmrServer.close((err)=>err ? reject(err) : resolve());
127
- });
128
- }
129
69
  }
130
70
  };
131
71
  };
@@ -1 +1 @@
1
- {"version":3,"file":"watch.mjs","sources":["../../../../src/node/vite/watch.ts"],"sourcesContent":["import path from 'node:path';\nimport http from 'node:http';\nimport fs from 'node:fs/promises';\nimport { Server } from 'node:net';\nimport type { Core } from '@strapi/types';\n\nimport { mergeConfigWithUserConfig, resolveDevelopmentConfig } from './config';\n\nimport type { BuildContext } from '../create-build-context';\n\ninterface ViteWatcher {\n close(): Promise<void>;\n}\n\nconst HMR_DEFAULT_PORT = 5173;\nconst MAX_PORT_ATTEMPTS = 30;\n\nconst findAvailablePort = (\n startingPort: number,\n attemptsLeft = MAX_PORT_ATTEMPTS\n): Promise<number> => {\n return new Promise((resolve, reject) => {\n if (attemptsLeft <= 0) {\n reject(new Error(`No available ports found after ${MAX_PORT_ATTEMPTS} attempts.`));\n return;\n }\n\n const server = new Server();\n server.listen(startingPort, () => {\n const { port } = server.address() as { port: number };\n server.close(() => resolve(port));\n });\n\n server.on('error', (err: any) => {\n if (err.code === 'EADDRINUSE') {\n resolve(findAvailablePort(startingPort + 1, attemptsLeft - 1));\n } else {\n reject(err);\n }\n });\n });\n};\n\nconst createHMRServer = () => {\n return http.createServer(\n // http server request handler. keeps the same with\n // https://github.com/websockets/ws/blob/45e17acea791d865df6b255a55182e9c42e5877a/lib/websocket-server.js#L88-L96\n (_, res) => {\n const body = http.STATUS_CODES[426]; // Upgrade Required\n\n res.writeHead(426, {\n 'Content-Length': body?.length ?? 0,\n 'Content-Type': 'text/plain',\n });\n\n res.end(body);\n }\n );\n};\n\nconst watch = async (ctx: BuildContext): Promise<ViteWatcher> => {\n const hmrServer = createHMRServer();\n\n // Allowing Vite to find an available port doesn't work, so we'll find an available port manually\n // and use that. There is therefore a very slight race condition if you start up two servers at the same time\n // one might fail, or it might start up but listen on the wrong port.\n const availablePort = await findAvailablePort(HMR_DEFAULT_PORT);\n ctx.options.hmrServer = hmrServer;\n ctx.options.hmrClientPort = availablePort;\n\n const config = await resolveDevelopmentConfig(ctx);\n\n const finalConfig = await mergeConfigWithUserConfig(config, ctx);\n\n const hmrConfig = config.server?.hmr;\n\n // If the server used for Vite hmr is the one we've created (<> no user override)\n if (typeof hmrConfig === 'object' && hmrConfig.server === hmrServer) {\n // Only restart the hmr server when Strapi's server is listening\n strapi.server.httpServer.on('listening', async () => {\n hmrServer.listen(availablePort);\n });\n }\n\n ctx.logger.debug('Vite config', finalConfig);\n\n const { createServer } = await import('vite');\n\n const vite = await createServer(finalConfig);\n\n const viteMiddlewares: Core.MiddlewareHandler = (koaCtx, next) => {\n return new Promise((resolve, reject) => {\n const prefix = ctx.basePath.replace(ctx.adminPath, '').replace(/\\/+$/, '');\n\n const originalPath = koaCtx.path;\n if (!koaCtx.path.startsWith(prefix)) {\n koaCtx.path = `${prefix}${koaCtx.path}`;\n }\n\n // Set cache-control headers to prevent caching issues during development restarts\n koaCtx.set('Cache-Control', 'no-store, no-cache, must-revalidate, proxy-revalidate');\n koaCtx.set('Pragma', 'no-cache');\n koaCtx.set('Expires', '0');\n koaCtx.set('Surrogate-Control', 'no-store');\n\n vite.middlewares(koaCtx.req, koaCtx.res, (err: unknown) => {\n if (err) {\n reject(err);\n } else {\n if (!koaCtx.res.headersSent) {\n koaCtx.path = originalPath;\n }\n\n resolve(next());\n }\n });\n });\n };\n\n const serveAdmin: Core.MiddlewareHandler = async (koaCtx, next) => {\n await next();\n\n if (koaCtx.method !== 'HEAD' && koaCtx.method !== 'GET') {\n return;\n }\n\n if (koaCtx.body != null || koaCtx.status !== 404) {\n return;\n }\n\n const url = koaCtx.originalUrl;\n\n try {\n let template = await fs.readFile(\n path.relative(ctx.cwd, '.strapi/client/index.html'),\n 'utf-8'\n );\n template = await vite.transformIndexHtml(url, template);\n\n koaCtx.type = 'html';\n koaCtx.body = template;\n } catch (error) {\n ctx.logger.error('Failed to serve admin panel in development mode:', error);\n // Don't fallback to other handlers in development mode to prevent MIME type conflicts\n koaCtx.status = 500;\n koaCtx.body = 'Admin panel temporarily unavailable during server restart';\n }\n };\n\n const adminRoute = `${ctx.adminPath}/:path*`;\n\n // Remove any existing admin routes to prevent conflicts during restart\n const existingRoutes = ctx.strapi.server.router.stack.filter(\n (layer) => layer.path === adminRoute\n );\n existingRoutes.forEach((route) => {\n const index = ctx.strapi.server.router.stack.indexOf(route);\n if (index > -1) {\n ctx.strapi.server.router.stack.splice(index, 1);\n }\n });\n\n ctx.strapi.server.router.get(adminRoute, serveAdmin);\n ctx.strapi.server.router.use(adminRoute, viteMiddlewares);\n\n return {\n async close() {\n await vite.close();\n\n if (hmrServer.listening) {\n // Manually close the hmr server\n // /!\\ This operation MUST be done after calling .close() on the vite\n // instance to avoid flaky behaviors with attached clients\n await new Promise<void>((resolve, reject) => {\n hmrServer.close((err) => (err ? reject(err) : resolve()));\n });\n }\n },\n };\n};\n\nexport { watch };\nexport type { ViteWatcher };\n"],"names":["HMR_DEFAULT_PORT","MAX_PORT_ATTEMPTS","findAvailablePort","startingPort","attemptsLeft","Promise","resolve","reject","Error","server","Server","listen","port","address","close","on","err","code","createHMRServer","http","createServer","_","res","body","STATUS_CODES","writeHead","length","end","watch","ctx","hmrServer","availablePort","options","hmrClientPort","config","resolveDevelopmentConfig","finalConfig","mergeConfigWithUserConfig","hmrConfig","hmr","strapi","httpServer","logger","debug","vite","viteMiddlewares","koaCtx","next","prefix","basePath","replace","adminPath","originalPath","path","startsWith","set","middlewares","req","headersSent","serveAdmin","method","status","url","originalUrl","template","fs","readFile","relative","cwd","transformIndexHtml","type","error","adminRoute","existingRoutes","router","stack","filter","layer","forEach","route","index","indexOf","splice","get","use","listening"],"mappings":"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"}
1
+ {"version":3,"file":"watch.mjs","sources":["../../../../src/node/vite/watch.ts"],"sourcesContent":["import path from 'node:path';\nimport fs from 'node:fs/promises';\nimport type { Core } from '@strapi/types';\n\nimport { mergeConfigWithUserConfig, resolveDevelopmentConfig } from './config';\n\nimport type { BuildContext } from '../create-build-context';\n\ninterface ViteWatcher {\n close(): Promise<void>;\n}\n\nconst watch = async (ctx: BuildContext): Promise<ViteWatcher> => {\n const finalConfig = await mergeConfigWithUserConfig(await resolveDevelopmentConfig(ctx), ctx);\n\n ctx.logger.debug('Vite config', finalConfig);\n\n const { createServer } = await import('vite');\n\n const vite = await createServer(finalConfig);\n\n const viteMiddlewares: Core.MiddlewareHandler = (koaCtx, next) => {\n return new Promise((resolve, reject) => {\n const prefix = ctx.basePath.replace(ctx.adminPath, '').replace(/\\/+$/, '');\n\n const originalPath = koaCtx.path;\n if (!koaCtx.path.startsWith(prefix)) {\n koaCtx.path = `${prefix}${koaCtx.path}`;\n }\n\n // Set cache-control headers to prevent caching issues during development restarts\n koaCtx.set('Cache-Control', 'no-store, no-cache, must-revalidate, proxy-revalidate');\n koaCtx.set('Pragma', 'no-cache');\n koaCtx.set('Expires', '0');\n koaCtx.set('Surrogate-Control', 'no-store');\n\n vite.middlewares(koaCtx.req, koaCtx.res, (err: unknown) => {\n if (err) {\n reject(err);\n } else {\n if (!koaCtx.res.headersSent) {\n koaCtx.path = originalPath;\n }\n\n resolve(next());\n }\n });\n });\n };\n\n const serveAdmin: Core.MiddlewareHandler = async (koaCtx, next) => {\n await next();\n\n if (koaCtx.method !== 'HEAD' && koaCtx.method !== 'GET') {\n return;\n }\n\n if (koaCtx.body != null || koaCtx.status !== 404) {\n return;\n }\n\n const url = koaCtx.originalUrl;\n\n try {\n let template = await fs.readFile(\n path.relative(ctx.cwd, '.strapi/client/index.html'),\n 'utf-8'\n );\n template = await vite.transformIndexHtml(url, template);\n\n koaCtx.type = 'html';\n koaCtx.body = template;\n } catch (error) {\n ctx.logger.error('Failed to serve admin panel in development mode:', error);\n // Don't fallback to other handlers in development mode to prevent MIME type conflicts\n koaCtx.status = 500;\n koaCtx.body = 'Admin panel temporarily unavailable during server restart';\n }\n };\n\n const adminRoute = `${ctx.adminPath}/:path*`;\n\n // Remove any existing admin routes to prevent conflicts during restart\n const existingRoutes = ctx.strapi.server.router.stack.filter(\n (layer) => layer.path === adminRoute\n );\n existingRoutes.forEach((route) => {\n const index = ctx.strapi.server.router.stack.indexOf(route);\n if (index > -1) {\n ctx.strapi.server.router.stack.splice(index, 1);\n }\n });\n\n ctx.strapi.server.router.get(adminRoute, serveAdmin);\n ctx.strapi.server.router.use(adminRoute, viteMiddlewares);\n\n return {\n async close() {\n await vite.close();\n },\n };\n};\n\nexport { watch };\nexport type { ViteWatcher };\n"],"names":["watch","ctx","finalConfig","mergeConfigWithUserConfig","resolveDevelopmentConfig","logger","debug","createServer","vite","viteMiddlewares","koaCtx","next","Promise","resolve","reject","prefix","basePath","replace","adminPath","originalPath","path","startsWith","set","middlewares","req","res","err","headersSent","serveAdmin","method","body","status","url","originalUrl","template","fs","readFile","relative","cwd","transformIndexHtml","type","error","adminRoute","existingRoutes","strapi","server","router","stack","filter","layer","forEach","route","index","indexOf","splice","get","use","close"],"mappings":"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"}
@@ -4,12 +4,16 @@ var webpack = require('webpack');
4
4
  var config = require('./config.js');
5
5
  var errors = require('../core/errors.js');
6
6
 
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var webpack__default = /*#__PURE__*/_interopDefault(webpack);
10
+
7
11
  const build = async (ctx)=>{
8
12
  const config$1 = await config.resolveProductionConfig(ctx);
9
13
  const finalConfig = await config.mergeConfigWithUserConfig(config$1, ctx);
10
14
  ctx.logger.debug('Webpack config', finalConfig);
11
15
  return new Promise((resolve, reject)=>{
12
- webpack(finalConfig, (err, stats)=>{
16
+ webpack__default.default(finalConfig, (err, stats)=>{
13
17
  if (stats) {
14
18
  if (stats.hasErrors()) {
15
19
  ctx.logger.error(stats.toString({
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sources":["../../../../src/node/webpack/build.ts"],"sourcesContent":["import webpack from 'webpack';\n\nimport { mergeConfigWithUserConfig, resolveProductionConfig } from './config';\nimport { isError } from '../core/errors';\n\nimport type { BuildContext } from '../create-build-context';\n\nconst build = async (ctx: BuildContext) => {\n const config = await resolveProductionConfig(ctx);\n const finalConfig = await mergeConfigWithUserConfig(config, ctx);\n\n ctx.logger.debug('Webpack config', finalConfig);\n\n return new Promise((resolve, reject) => {\n webpack(finalConfig, (err, stats) => {\n if (stats) {\n if (stats.hasErrors()) {\n ctx.logger.error(\n stats.toString({\n chunks: false,\n colors: true,\n })\n );\n\n reject();\n } else if (ctx.options.stats) {\n ctx.logger.info(\n stats.toString({\n chunks: false,\n colors: true,\n })\n );\n }\n\n resolve(true);\n }\n\n if (err && isError(err)) {\n ctx.logger.error(err.message);\n reject();\n }\n });\n });\n};\n\nexport { build };\n"],"names":["build","ctx","config","resolveProductionConfig","finalConfig","mergeConfigWithUserConfig","logger","debug","Promise","resolve","reject","webpack","err","stats","hasErrors","error","toString","chunks","colors","options","info","isError","message"],"mappings":";;;;;;AAOA,MAAMA,QAAQ,OAAOC,GAAAA,GAAAA;IACnB,MAAMC,QAAAA,GAAS,MAAMC,8BAAAA,CAAwBF,GAAAA,CAAAA;IAC7C,MAAMG,WAAAA,GAAc,MAAMC,gCAAAA,CAA0BH,QAAAA,EAAQD,GAAAA,CAAAA;AAE5DA,IAAAA,GAAAA,CAAIK,MAAM,CAACC,KAAK,CAAC,gBAAA,EAAkBH,WAAAA,CAAAA;IAEnC,OAAO,IAAII,OAAAA,CAAQ,CAACC,OAAAA,EAASC,MAAAA,GAAAA;QAC3BC,OAAAA,CAAQP,WAAAA,EAAa,CAACQ,GAAAA,EAAKC,KAAAA,GAAAA;AACzB,YAAA,IAAIA,KAAAA,EAAO;gBACT,IAAIA,KAAAA,CAAMC,SAAS,EAAA,EAAI;AACrBb,oBAAAA,GAAAA,CAAIK,MAAM,CAACS,KAAK,CACdF,KAAAA,CAAMG,QAAQ,CAAC;wBACbC,MAAAA,EAAQ,KAAA;wBACRC,MAAAA,EAAQ;AACV,qBAAA,CAAA,CAAA;AAGFR,oBAAAA,MAAAA,EAAAA;AACF,gBAAA,CAAA,MAAO,IAAIT,GAAAA,CAAIkB,OAAO,CAACN,KAAK,EAAE;AAC5BZ,oBAAAA,GAAAA,CAAIK,MAAM,CAACc,IAAI,CACbP,KAAAA,CAAMG,QAAQ,CAAC;wBACbC,MAAAA,EAAQ,KAAA;wBACRC,MAAAA,EAAQ;AACV,qBAAA,CAAA,CAAA;AAEJ,gBAAA;gBAEAT,OAAAA,CAAQ,IAAA,CAAA;AACV,YAAA;YAEA,IAAIG,GAAAA,IAAOS,eAAQT,GAAAA,CAAAA,EAAM;AACvBX,gBAAAA,GAAAA,CAAIK,MAAM,CAACS,KAAK,CAACH,IAAIU,OAAO,CAAA;AAC5BZ,gBAAAA,MAAAA,EAAAA;AACF,YAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA,CAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"build.js","sources":["../../../../src/node/webpack/build.ts"],"sourcesContent":["import webpack from 'webpack';\n\nimport { mergeConfigWithUserConfig, resolveProductionConfig } from './config';\nimport { isError } from '../core/errors';\n\nimport type { BuildContext } from '../create-build-context';\n\nconst build = async (ctx: BuildContext) => {\n const config = await resolveProductionConfig(ctx);\n const finalConfig = await mergeConfigWithUserConfig(config, ctx);\n\n ctx.logger.debug('Webpack config', finalConfig);\n\n return new Promise((resolve, reject) => {\n webpack(finalConfig, (err, stats) => {\n if (stats) {\n if (stats.hasErrors()) {\n ctx.logger.error(\n stats.toString({\n chunks: false,\n colors: true,\n })\n );\n\n reject();\n } else if (ctx.options.stats) {\n ctx.logger.info(\n stats.toString({\n chunks: false,\n colors: true,\n })\n );\n }\n\n resolve(true);\n }\n\n if (err && isError(err)) {\n ctx.logger.error(err.message);\n reject();\n }\n });\n });\n};\n\nexport { build };\n"],"names":["build","ctx","config","resolveProductionConfig","finalConfig","mergeConfigWithUserConfig","logger","debug","Promise","resolve","reject","webpack","err","stats","hasErrors","error","toString","chunks","colors","options","info","isError","message"],"mappings":";;;;;;;;;;AAOA,MAAMA,QAAQ,OAAOC,GAAAA,GAAAA;IACnB,MAAMC,QAAAA,GAAS,MAAMC,8BAAAA,CAAwBF,GAAAA,CAAAA;IAC7C,MAAMG,WAAAA,GAAc,MAAMC,gCAAAA,CAA0BH,QAAAA,EAAQD,GAAAA,CAAAA;AAE5DA,IAAAA,GAAAA,CAAIK,MAAM,CAACC,KAAK,CAAC,gBAAA,EAAkBH,WAAAA,CAAAA;IAEnC,OAAO,IAAII,OAAAA,CAAQ,CAACC,OAAAA,EAASC,MAAAA,GAAAA;QAC3BC,wBAAAA,CAAQP,WAAAA,EAAa,CAACQ,GAAAA,EAAKC,KAAAA,GAAAA;AACzB,YAAA,IAAIA,KAAAA,EAAO;gBACT,IAAIA,KAAAA,CAAMC,SAAS,EAAA,EAAI;AACrBb,oBAAAA,GAAAA,CAAIK,MAAM,CAACS,KAAK,CACdF,KAAAA,CAAMG,QAAQ,CAAC;wBACbC,MAAAA,EAAQ,KAAA;wBACRC,MAAAA,EAAQ;AACV,qBAAA,CAAA,CAAA;AAGFR,oBAAAA,MAAAA,EAAAA;AACF,gBAAA,CAAA,MAAO,IAAIT,GAAAA,CAAIkB,OAAO,CAACN,KAAK,EAAE;AAC5BZ,oBAAAA,GAAAA,CAAIK,MAAM,CAACc,IAAI,CACbP,KAAAA,CAAMG,QAAQ,CAAC;wBACbC,MAAAA,EAAQ,KAAA;wBACRC,MAAAA,EAAQ;AACV,qBAAA,CAAA,CAAA;AAEJ,gBAAA;gBAEAT,OAAAA,CAAQ,IAAA,CAAA;AACV,YAAA;YAEA,IAAIG,GAAAA,IAAOS,eAAQT,GAAAA,CAAAA,EAAM;AACvBX,gBAAAA,GAAAA,CAAIK,MAAM,CAACS,KAAK,CAACH,IAAIU,OAAO,CAAA;AAC5BZ,gBAAAA,MAAAA,EAAAA;AACF,YAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA,CAAA,CAAA;AACF;;;;"}
@@ -15,6 +15,15 @@ var linkedPackages = require('../core/linked-packages.js');
15
15
  var aliases = require('../core/aliases.js');
16
16
  var resolveModule = require('../core/resolve-module.js');
17
17
 
18
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
19
+
20
+ var ReactRefreshWebpackPlugin__default = /*#__PURE__*/_interopDefault(ReactRefreshWebpackPlugin);
21
+ var ForkTsCheckerPlugin__default = /*#__PURE__*/_interopDefault(ForkTsCheckerPlugin);
22
+ var HtmlWebpackPlugin__default = /*#__PURE__*/_interopDefault(HtmlWebpackPlugin);
23
+ var MiniCssExtractPlugin__default = /*#__PURE__*/_interopDefault(MiniCssExtractPlugin);
24
+ var crypto__default = /*#__PURE__*/_interopDefault(crypto);
25
+ var path__default = /*#__PURE__*/_interopDefault(path);
26
+
18
27
  const resolveBaseConfig = async (ctx)=>{
19
28
  const { default: browserslistToEsbuild } = await import('browserslist-to-esbuild');
20
29
  const target = browserslistToEsbuild(ctx.target);
@@ -111,15 +120,15 @@ const resolveBaseConfig = async (ctx)=>{
111
120
  ]
112
121
  },
113
122
  plugins: [
114
- new HtmlWebpackPlugin({
123
+ new HtmlWebpackPlugin__default.default({
115
124
  inject: true,
116
- template: path.resolve(ctx.runtimeDir, 'index.html')
125
+ template: path__default.default.resolve(ctx.runtimeDir, 'index.html')
117
126
  }),
118
127
  new webpack.DefinePlugin(Object.entries(ctx.env).reduce((acc, [key, value])=>{
119
128
  acc[`process.env.${key}`] = JSON.stringify(value);
120
129
  return acc;
121
130
  }, {})),
122
- ctx.tsconfig && new ForkTsCheckerPlugin({
131
+ ctx.tsconfig && new ForkTsCheckerPlugin__default.default({
123
132
  typescript: {
124
133
  configFile: ctx.tsconfig.path,
125
134
  configOverwrite: {
@@ -148,11 +157,11 @@ const resolveDevelopmentConfig = async (ctx)=>{
148
157
  // When design-system is linked, invalidate cache when it changes
149
158
  ...linkedDesignSystemPath && {
150
159
  designSystem: [
151
- path.join(linkedDesignSystemPath, 'dist')
160
+ path__default.default.join(linkedDesignSystemPath, 'dist')
152
161
  ]
153
162
  }
154
163
  },
155
- version: crypto.createHash('md5').update(Object.entries(baseConfig.resolve.alias ?? {}).join()).digest('hex')
164
+ version: crypto__default.default.createHash('md5').update(Object.entries(baseConfig.resolve.alias ?? {}).join()).digest('hex')
156
165
  },
157
166
  resolve: {
158
167
  ...baseConfig.resolve,
@@ -184,7 +193,7 @@ const resolveDevelopmentConfig = async (ctx)=>{
184
193
  plugins: [
185
194
  ...baseConfig.plugins,
186
195
  new webpack.HotModuleReplacementPlugin(),
187
- new ReactRefreshWebpackPlugin()
196
+ new ReactRefreshWebpackPlugin__default.default()
188
197
  ]
189
198
  };
190
199
  };
@@ -219,7 +228,7 @@ const resolveProductionConfig = async (ctx)=>{
219
228
  },
220
229
  plugins: [
221
230
  ...baseConfig.plugins,
222
- new MiniCssExtractPlugin({
231
+ new MiniCssExtractPlugin__default.default({
223
232
  filename: '[name].[chunkhash].css',
224
233
  chunkFilename: '[name].[chunkhash].chunkhash.css',
225
234
  ignoreOrder: true
@@ -240,7 +249,7 @@ const mergeConfigWithUserConfig = async (config$1, ctx)=>{
240
249
  const webpack = await import('webpack');
241
250
  return userConfig(config$1, webpack);
242
251
  }
243
- ctx.logger.warn(`You've exported something other than a function from ${path.join(ctx.appDir, 'src', 'admin', 'webpack.config')}, this will ignored.`);
252
+ ctx.logger.warn(`You've exported something other than a function from ${path__default.default.join(ctx.appDir, 'src', 'admin', 'webpack.config')}, this will ignored.`);
244
253
  }
245
254
  return config$1;
246
255
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../../../../src/node/webpack/config.ts"],"sourcesContent":["import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';\nimport { EsbuildPlugin } 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 { Configuration, DefinePlugin, HotModuleReplacementPlugin } 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 { getLinkedDesignSystemPath } from '../core/linked-packages';\nimport { getMonorepoAliases } from '../core/aliases';\nimport { getModulePath } from '../core/resolve-module';\n\nconst resolveBaseConfig = async (ctx: BuildContext) => {\n const { default: browserslistToEsbuild } = await import('browserslist-to-esbuild');\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 // Force single instance so plugin custom field chunks inherit root DesignSystemProvider context\n '@strapi/design-system': getModulePath('@strapi/design-system'),\n '@radix-ui/react-tooltip': getModulePath('@radix-ui/react-tooltip'),\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 const linkedDesignSystemPath = getLinkedDesignSystemPath();\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 // When design-system is linked, invalidate cache when it changes\n ...(linkedDesignSystemPath && {\n designSystem: [path.join(linkedDesignSystemPath, 'dist')],\n }),\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.replace(/\\/$/, '')}/`,\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 { default: browserslistToEsbuild } = await import('browserslist-to-esbuild');\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.replace(/\\/$/, '')}/`,\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 EsbuildPlugin({\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(),\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\nexport { mergeConfigWithUserConfig, resolveDevelopmentConfig, resolveProductionConfig };\n"],"names":["resolveBaseConfig","ctx","default","browserslistToEsbuild","target","experiments","topLevelAwait","entry","main","resolve","alias","react","getModulePath","extensions","module","rules","test","loader","require","options","jsx","use","fullySpecified","type","parser","dataUrlCondition","maxSize","plugins","HtmlWebpackPlugin","inject","template","path","runtimeDir","DefinePlugin","Object","entries","env","reduce","acc","key","value","JSON","stringify","tsconfig","ForkTsCheckerPlugin","typescript","configFile","configOverwrite","compilerOptions","sourceMap","sourcemaps","filter","Boolean","resolveDevelopmentConfig","baseConfig","monorepo","loadStrapiMonorepo","cwd","linkedDesignSystemPath","getLinkedDesignSystemPath","cache","buildDependencies","config","__filename","designSystem","join","version","crypto","createHash","update","digest","getMonorepoAliases","stats","mode","devtool","output","filename","distPath","publicPath","basePath","replace","infrastructureLogging","level","HotModuleReplacementPlugin","ReactRefreshWebpackPlugin","resolveProductionConfig","bail","chunkFilename","optimization","minimize","minify","minimizer","EsbuildPlugin","css","moduleIds","runtimeChunk","MiniCssExtractPlugin","ignoreOrder","BundleAnalyzerPlugin","USER_CONFIGS","mergeConfigWithUserConfig","userConfig","getUserConfig","webpack","logger","warn","appDir"],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sources":["../../../../src/node/webpack/config.ts"],"sourcesContent":["import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';\nimport { EsbuildPlugin } 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 { Configuration, DefinePlugin, HotModuleReplacementPlugin } 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 { getLinkedDesignSystemPath } from '../core/linked-packages';\nimport { getMonorepoAliases } from '../core/aliases';\nimport { getModulePath } from '../core/resolve-module';\n\nconst resolveBaseConfig = async (ctx: BuildContext) => {\n const { default: browserslistToEsbuild } = await import('browserslist-to-esbuild');\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 // Force single instance so plugin custom field chunks inherit root DesignSystemProvider context\n '@strapi/design-system': getModulePath('@strapi/design-system'),\n '@radix-ui/react-tooltip': getModulePath('@radix-ui/react-tooltip'),\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 const linkedDesignSystemPath = getLinkedDesignSystemPath();\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 // When design-system is linked, invalidate cache when it changes\n ...(linkedDesignSystemPath && {\n designSystem: [path.join(linkedDesignSystemPath, 'dist')],\n }),\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.replace(/\\/$/, '')}/`,\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 { default: browserslistToEsbuild } = await import('browserslist-to-esbuild');\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.replace(/\\/$/, '')}/`,\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 EsbuildPlugin({\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(),\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\nexport { mergeConfigWithUserConfig, resolveDevelopmentConfig, resolveProductionConfig };\n"],"names":["resolveBaseConfig","ctx","default","browserslistToEsbuild","target","experiments","topLevelAwait","entry","main","resolve","alias","react","getModulePath","extensions","module","rules","test","loader","require","options","jsx","use","fullySpecified","type","parser","dataUrlCondition","maxSize","plugins","HtmlWebpackPlugin","inject","template","path","runtimeDir","DefinePlugin","Object","entries","env","reduce","acc","key","value","JSON","stringify","tsconfig","ForkTsCheckerPlugin","typescript","configFile","configOverwrite","compilerOptions","sourceMap","sourcemaps","filter","Boolean","resolveDevelopmentConfig","baseConfig","monorepo","loadStrapiMonorepo","cwd","linkedDesignSystemPath","getLinkedDesignSystemPath","cache","buildDependencies","config","__filename","designSystem","join","version","crypto","createHash","update","digest","getMonorepoAliases","stats","mode","devtool","output","filename","distPath","publicPath","basePath","replace","infrastructureLogging","level","HotModuleReplacementPlugin","ReactRefreshWebpackPlugin","resolveProductionConfig","bail","chunkFilename","optimization","minimize","minify","minimizer","EsbuildPlugin","css","moduleIds","runtimeChunk","MiniCssExtractPlugin","ignoreOrder","BundleAnalyzerPlugin","USER_CONFIGS","mergeConfigWithUserConfig","userConfig","getUserConfig","webpack","logger","warn","appDir"],"mappings":"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"}
@@ -8,14 +8,21 @@ var webpackHotMiddleware = require('webpack-hot-middleware');
8
8
  var webpack = require('webpack');
9
9
  var config = require('./config.js');
10
10
 
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
+
13
+ var os__default = /*#__PURE__*/_interopDefault(os);
14
+ var path__default = /*#__PURE__*/_interopDefault(path);
15
+ var webpackDevMiddleware__default = /*#__PURE__*/_interopDefault(webpackDevMiddleware);
16
+ var webpackHotMiddleware__default = /*#__PURE__*/_interopDefault(webpackHotMiddleware);
17
+
11
18
  const watch = async (ctx)=>{
12
19
  const config$1 = await config.resolveDevelopmentConfig(ctx);
13
20
  const finalConfig = await config.mergeConfigWithUserConfig(config$1, ctx);
14
- ctx.logger.debug('Final webpack config:', os.EOL, finalConfig);
21
+ ctx.logger.debug('Final webpack config:', os__default.default.EOL, finalConfig);
15
22
  return new Promise((res)=>{
16
23
  const compiler = webpack.webpack(finalConfig);
17
- const devMiddleware = webpackDevMiddleware(compiler);
18
- const hotMiddleware = webpackHotMiddleware(compiler, {
24
+ const devMiddleware = webpackDevMiddleware__default.default(compiler);
25
+ const hotMiddleware = webpackHotMiddleware__default.default(compiler, {
19
26
  log: false,
20
27
  path: '/__webpack_hmr'
21
28
  });
@@ -64,7 +71,7 @@ const watch = async (ctx)=>{
64
71
  return;
65
72
  }
66
73
  // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
67
- const filename = path.resolve(finalConfig.output?.path, 'index.html');
74
+ const filename = path__default.default.resolve(finalConfig.output?.path, 'index.html');
68
75
  ctx.type = 'html';
69
76
  ctx.body = devMiddleware.context.outputFileSystem.createReadStream(filename);
70
77
  }
@@ -1 +1 @@
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 type { 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":["watch","ctx","config","resolveDevelopmentConfig","finalConfig","mergeConfigWithUserConfig","logger","debug","os","EOL","Promise","res","compiler","webpack","devMiddleware","webpackDevMiddleware","hotMiddleware","webpackHotMiddleware","log","path","strapi","server","app","use","next","resolve","reject","req","err","context","ready","waitUntilValid","init","end","content","body","getHeader","get","bind","setHeader","set","locals","state","all","serveAdmin","outputFileSystem","createReadStream","method","status","filename","output","type","routes","adminPath","handler","auth","close","promisify"],"mappings":"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"}
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 type { 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":["watch","ctx","config","resolveDevelopmentConfig","finalConfig","mergeConfigWithUserConfig","logger","debug","os","EOL","Promise","res","compiler","webpack","devMiddleware","webpackDevMiddleware","hotMiddleware","webpackHotMiddleware","log","path","strapi","server","app","use","next","resolve","reject","req","err","context","ready","waitUntilValid","init","end","content","body","getHeader","get","bind","setHeader","set","locals","state","all","serveAdmin","outputFileSystem","createReadStream","method","status","filename","output","type","routes","adminPath","handler","auth","close","promisify"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/strapi",
3
- "version": "5.48.1",
3
+ "version": "5.49.0",
4
4
  "description": "An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite",
5
5
  "keywords": [
6
6
  "strapi",
@@ -109,25 +109,25 @@
109
109
  },
110
110
  "dependencies": {
111
111
  "@pmmmwh/react-refresh-webpack-plugin": "0.5.17",
112
- "@strapi/admin": "5.48.1",
113
- "@strapi/cloud-cli": "5.48.1",
114
- "@strapi/content-manager": "5.48.1",
115
- "@strapi/content-releases": "5.48.1",
116
- "@strapi/content-type-builder": "5.48.1",
117
- "@strapi/core": "5.48.1",
118
- "@strapi/data-transfer": "5.48.1",
119
- "@strapi/database": "5.48.1",
120
- "@strapi/email": "5.48.1",
121
- "@strapi/generators": "5.48.1",
122
- "@strapi/i18n": "5.48.1",
123
- "@strapi/logger": "5.48.1",
124
- "@strapi/openapi": "5.48.1",
125
- "@strapi/permissions": "5.48.1",
126
- "@strapi/review-workflows": "5.48.1",
127
- "@strapi/types": "5.48.1",
128
- "@strapi/typescript-utils": "5.48.1",
129
- "@strapi/upload": "5.48.1",
130
- "@strapi/utils": "5.48.1",
112
+ "@strapi/admin": "5.49.0",
113
+ "@strapi/cloud-cli": "5.49.0",
114
+ "@strapi/content-manager": "5.49.0",
115
+ "@strapi/content-releases": "5.49.0",
116
+ "@strapi/content-type-builder": "5.49.0",
117
+ "@strapi/core": "5.49.0",
118
+ "@strapi/data-transfer": "5.49.0",
119
+ "@strapi/database": "5.49.0",
120
+ "@strapi/email": "5.49.0",
121
+ "@strapi/generators": "5.49.0",
122
+ "@strapi/i18n": "5.49.0",
123
+ "@strapi/logger": "5.49.0",
124
+ "@strapi/openapi": "5.49.0",
125
+ "@strapi/permissions": "5.49.0",
126
+ "@strapi/review-workflows": "5.49.0",
127
+ "@strapi/types": "5.49.0",
128
+ "@strapi/typescript-utils": "5.49.0",
129
+ "@strapi/upload": "5.49.0",
130
+ "@strapi/utils": "5.49.0",
131
131
  "@types/nodemon": "1.19.6",
132
132
  "@vitejs/plugin-react-swc": "3.11.0",
133
133
  "boxen": "5.1.2",
@@ -180,11 +180,11 @@
180
180
  "@types/node": "24.10.0",
181
181
  "@types/webpack-bundle-analyzer": "4.7.0",
182
182
  "@types/webpack-hot-middleware": "2.25.12",
183
- "eslint-config-custom": "5.48.1",
183
+ "eslint-config-custom": "5.49.0",
184
184
  "jest": "29.6.0",
185
185
  "react": "18.3.1",
186
186
  "react-dom": "18.3.1",
187
- "tsconfig": "5.48.1",
187
+ "tsconfig": "5.49.0",
188
188
  "yalc": "1.0.0-pre.53"
189
189
  },
190
190
  "peerDependencies": {