@strapi/strapi 5.9.0 → 5.10.1

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-DAot4dxq.mjs +76 -0
  10. package/dist/chunks/aliases-DAot4dxq.mjs.map +1 -0
  11. package/dist/chunks/aliases-DnWkCRVx.js +80 -0
  12. package/dist/chunks/aliases-DnWkCRVx.js.map +1 -0
  13. package/dist/chunks/build-B_F6r_52.mjs +85 -0
  14. package/dist/chunks/build-B_F6r_52.mjs.map +1 -0
  15. package/dist/chunks/build-Bblul4se.js +87 -0
  16. package/dist/chunks/build-Bblul4se.js.map +1 -0
  17. package/dist/chunks/build-Bi8Renlu.mjs +57 -0
  18. package/dist/chunks/build-Bi8Renlu.mjs.map +1 -0
  19. package/dist/chunks/build-DNnBV0b_.js +59 -0
  20. package/dist/chunks/build-DNnBV0b_.js.map +1 -0
  21. package/dist/chunks/config-D5OUWo8m.js +154 -0
  22. package/dist/chunks/config-D5OUWo8m.js.map +1 -0
  23. package/dist/chunks/config-YXcKrg8-.mjs +243 -0
  24. package/dist/chunks/config-YXcKrg8-.mjs.map +1 -0
  25. package/dist/chunks/config-kmpcowQR.mjs +150 -0
  26. package/dist/chunks/config-kmpcowQR.mjs.map +1 -0
  27. package/dist/chunks/config-nh7CiBvl.js +247 -0
  28. package/dist/chunks/config-nh7CiBvl.js.map +1 -0
  29. package/dist/chunks/index-1UgyJyc8.js +3185 -0
  30. package/dist/chunks/index-1UgyJyc8.js.map +1 -0
  31. package/dist/chunks/index-DIAuPBs8.mjs +3160 -0
  32. package/dist/chunks/index-DIAuPBs8.mjs.map +1 -0
  33. package/dist/chunks/watch-C6MYoEbx.mjs +131 -0
  34. package/dist/chunks/watch-C6MYoEbx.mjs.map +1 -0
  35. package/dist/chunks/watch-CRDw0bas.js +133 -0
  36. package/dist/chunks/watch-CRDw0bas.js.map +1 -0
  37. package/dist/chunks/watch-Cvk1wtNO.mjs +144 -0
  38. package/dist/chunks/watch-Cvk1wtNO.mjs.map +1 -0
  39. package/dist/chunks/watch-Du-Ph6oD.js +146 -0
  40. package/dist/chunks/watch-Du-Ph6oD.js.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
@@ -0,0 +1,131 @@
1
+ import path from 'node:path';
2
+ import http from 'node:http';
3
+ import fs from 'node:fs/promises';
4
+ import { a as resolveDevelopmentConfig, m as mergeConfigWithUserConfig } from './config-kmpcowQR.mjs';
5
+ import 'browserslist-to-esbuild';
6
+ import '@vitejs/plugin-react-swc';
7
+ import './aliases-DAot4dxq.mjs';
8
+ import 'path';
9
+ import 'read-pkg-up';
10
+ import './index-DIAuPBs8.mjs';
11
+ import 'commander';
12
+ import '@strapi/cloud-cli';
13
+ import '@strapi/utils';
14
+ import 'lodash';
15
+ import 'inquirer';
16
+ import '@strapi/core';
17
+ import 'chalk';
18
+ import 'lodash/fp';
19
+ import 'boxen';
20
+ import 'cli-table3';
21
+ import 'fs';
22
+ import 'fs-extra';
23
+ import 'crypto';
24
+ import '@strapi/typescript-utils';
25
+ import 'node:os';
26
+ import 'semver';
27
+ import 'resolve-from';
28
+ import 'execa';
29
+ import 'perf_hooks';
30
+ import 'browserslist';
31
+ import 'dotenv';
32
+ import 'esbuild-register/dist/node';
33
+ import 'node:fs';
34
+ import 'lodash/camelCase';
35
+ import 'outdent';
36
+ import 'react';
37
+ import 'react-dom/server';
38
+ import '@strapi/admin/_internal';
39
+ import 'repl';
40
+ import 'node:cluster';
41
+ import 'chokidar';
42
+ import 'os';
43
+ import '@strapi/logger';
44
+ import 'ora';
45
+ import '@strapi/data-transfer';
46
+ import 'cli-progress';
47
+ import 'typescript';
48
+
49
+ const HMR_DEFAULT_PORT = 5173;
50
+ const createHMRServer = ()=>{
51
+ return http.createServer(// http server request handler. keeps the same with
52
+ // https://github.com/websockets/ws/blob/45e17acea791d865df6b255a55182e9c42e5877a/lib/websocket-server.js#L88-L96
53
+ (_, res)=>{
54
+ const body = http.STATUS_CODES[426]; // Upgrade Required
55
+ res.writeHead(426, {
56
+ 'Content-Length': body?.length ?? 0,
57
+ 'Content-Type': 'text/plain'
58
+ });
59
+ res.end(body);
60
+ });
61
+ };
62
+ const watch = async (ctx)=>{
63
+ const hmrServer = createHMRServer();
64
+ ctx.options.hmrServer = hmrServer;
65
+ ctx.options.hmrClientPort = HMR_DEFAULT_PORT;
66
+ const config = await resolveDevelopmentConfig(ctx);
67
+ const finalConfig = await mergeConfigWithUserConfig(config, ctx);
68
+ const hmrConfig = config.server?.hmr;
69
+ // If the server used for Vite hmr is the one we've created (<> no user override)
70
+ if (typeof hmrConfig === 'object' && hmrConfig.server === hmrServer) {
71
+ // Only restart the hmr server when Strapi's server is listening
72
+ strapi.server.httpServer.on('listening', async ()=>{
73
+ hmrServer.listen(hmrConfig.clientPort ?? hmrConfig.port ?? HMR_DEFAULT_PORT);
74
+ });
75
+ }
76
+ ctx.logger.debug('Vite config', finalConfig);
77
+ const { createServer } = await import('vite');
78
+ const vite = await createServer(finalConfig);
79
+ const viteMiddlewares = (koaCtx, next)=>{
80
+ return new Promise((resolve, reject)=>{
81
+ const prefix = ctx.basePath.replace(ctx.adminPath, '').replace(/\/+$/, '');
82
+ const originalPath = koaCtx.path;
83
+ if (!koaCtx.path.startsWith(prefix)) {
84
+ koaCtx.path = `${prefix}${koaCtx.path}`;
85
+ }
86
+ vite.middlewares(koaCtx.req, koaCtx.res, (err)=>{
87
+ if (err) {
88
+ reject(err);
89
+ } else {
90
+ if (!koaCtx.res.headersSent) {
91
+ koaCtx.path = originalPath;
92
+ }
93
+ resolve(next());
94
+ }
95
+ });
96
+ });
97
+ };
98
+ const serveAdmin = async (koaCtx, next)=>{
99
+ await next();
100
+ if (koaCtx.method !== 'HEAD' && koaCtx.method !== 'GET') {
101
+ return;
102
+ }
103
+ if (koaCtx.body != null || koaCtx.status !== 404) {
104
+ return;
105
+ }
106
+ const url = koaCtx.originalUrl;
107
+ let template = await fs.readFile(path.relative(ctx.cwd, '.strapi/client/index.html'), 'utf-8');
108
+ template = await vite.transformIndexHtml(url, template);
109
+ koaCtx.type = 'html';
110
+ koaCtx.body = template;
111
+ };
112
+ const adminRoute = `${ctx.adminPath}/:path*`;
113
+ ctx.strapi.server.router.get(adminRoute, serveAdmin);
114
+ ctx.strapi.server.router.use(adminRoute, viteMiddlewares);
115
+ return {
116
+ async close () {
117
+ await vite.close();
118
+ if (hmrServer.listening) {
119
+ // Manually close the hmr server
120
+ // /!\ This operation MUST be done after calling .close() on the vite
121
+ // instance to avoid flaky behaviors with attached clients
122
+ await new Promise((resolve, reject)=>{
123
+ hmrServer.close((err)=>err ? reject(err) : resolve());
124
+ });
125
+ }
126
+ }
127
+ };
128
+ };
129
+
130
+ export { watch };
131
+ //# sourceMappingURL=watch-C6MYoEbx.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-C6MYoEbx.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 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;\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 ctx.options.hmrServer = hmrServer;\n ctx.options.hmrClientPort = HMR_DEFAULT_PORT;\n\n const config = await resolveDevelopmentConfig(ctx);\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(hmrConfig.clientPort ?? hmrConfig.port ?? HMR_DEFAULT_PORT);\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 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 let template = await fs.readFile(path.relative(ctx.cwd, '.strapi/client/index.html'), 'utf-8');\n template = await vite.transformIndexHtml(url, template);\n\n koaCtx.type = 'html';\n koaCtx.body = template;\n };\n\n const adminRoute = `${ctx.adminPath}/:path*`;\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","createHMRServer","http","createServer","_","res","body","STATUS_CODES","writeHead","length","end","watch","ctx","hmrServer","options","hmrClientPort","config","resolveDevelopmentConfig","finalConfig","mergeConfigWithUserConfig","hmrConfig","server","hmr","strapi","httpServer","on","listen","clientPort","port","logger","debug","vite","viteMiddlewares","koaCtx","next","Promise","resolve","reject","prefix","basePath","replace","adminPath","originalPath","path","startsWith","middlewares","req","err","headersSent","serveAdmin","method","status","url","originalUrl","template","fs","readFile","relative","cwd","transformIndexHtml","type","adminRoute","router","get","use","close","listening"],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ 'use strict';
2
+
3
+ var path = require('node:path');
4
+ var http = require('node:http');
5
+ var fs = require('node:fs/promises');
6
+ var config = require('./config-D5OUWo8m.js');
7
+ require('browserslist-to-esbuild');
8
+ require('@vitejs/plugin-react-swc');
9
+ require('./aliases-DnWkCRVx.js');
10
+ require('path');
11
+ require('read-pkg-up');
12
+ require('./index-1UgyJyc8.js');
13
+ require('commander');
14
+ require('@strapi/cloud-cli');
15
+ require('@strapi/utils');
16
+ require('lodash');
17
+ require('inquirer');
18
+ require('@strapi/core');
19
+ require('chalk');
20
+ require('lodash/fp');
21
+ require('boxen');
22
+ require('cli-table3');
23
+ require('fs');
24
+ require('fs-extra');
25
+ require('crypto');
26
+ require('@strapi/typescript-utils');
27
+ require('node:os');
28
+ require('semver');
29
+ require('resolve-from');
30
+ require('execa');
31
+ require('perf_hooks');
32
+ require('browserslist');
33
+ require('dotenv');
34
+ require('esbuild-register/dist/node');
35
+ require('node:fs');
36
+ require('lodash/camelCase');
37
+ require('outdent');
38
+ require('react');
39
+ require('react-dom/server');
40
+ require('@strapi/admin/_internal');
41
+ require('repl');
42
+ require('node:cluster');
43
+ require('chokidar');
44
+ require('os');
45
+ require('@strapi/logger');
46
+ require('ora');
47
+ require('@strapi/data-transfer');
48
+ require('cli-progress');
49
+ require('typescript');
50
+
51
+ const HMR_DEFAULT_PORT = 5173;
52
+ const createHMRServer = ()=>{
53
+ return http.createServer(// http server request handler. keeps the same with
54
+ // https://github.com/websockets/ws/blob/45e17acea791d865df6b255a55182e9c42e5877a/lib/websocket-server.js#L88-L96
55
+ (_, res)=>{
56
+ const body = http.STATUS_CODES[426]; // Upgrade Required
57
+ res.writeHead(426, {
58
+ 'Content-Length': body?.length ?? 0,
59
+ 'Content-Type': 'text/plain'
60
+ });
61
+ res.end(body);
62
+ });
63
+ };
64
+ const watch = async (ctx)=>{
65
+ const hmrServer = createHMRServer();
66
+ ctx.options.hmrServer = hmrServer;
67
+ ctx.options.hmrClientPort = HMR_DEFAULT_PORT;
68
+ const config$1 = await config.resolveDevelopmentConfig(ctx);
69
+ const finalConfig = await config.mergeConfigWithUserConfig(config$1, ctx);
70
+ const hmrConfig = config$1.server?.hmr;
71
+ // If the server used for Vite hmr is the one we've created (<> no user override)
72
+ if (typeof hmrConfig === 'object' && hmrConfig.server === hmrServer) {
73
+ // Only restart the hmr server when Strapi's server is listening
74
+ strapi.server.httpServer.on('listening', async ()=>{
75
+ hmrServer.listen(hmrConfig.clientPort ?? hmrConfig.port ?? HMR_DEFAULT_PORT);
76
+ });
77
+ }
78
+ ctx.logger.debug('Vite config', finalConfig);
79
+ const { createServer } = await import('vite');
80
+ const vite = await createServer(finalConfig);
81
+ const viteMiddlewares = (koaCtx, next)=>{
82
+ return new Promise((resolve, reject)=>{
83
+ const prefix = ctx.basePath.replace(ctx.adminPath, '').replace(/\/+$/, '');
84
+ const originalPath = koaCtx.path;
85
+ if (!koaCtx.path.startsWith(prefix)) {
86
+ koaCtx.path = `${prefix}${koaCtx.path}`;
87
+ }
88
+ vite.middlewares(koaCtx.req, koaCtx.res, (err)=>{
89
+ if (err) {
90
+ reject(err);
91
+ } else {
92
+ if (!koaCtx.res.headersSent) {
93
+ koaCtx.path = originalPath;
94
+ }
95
+ resolve(next());
96
+ }
97
+ });
98
+ });
99
+ };
100
+ const serveAdmin = async (koaCtx, next)=>{
101
+ await next();
102
+ if (koaCtx.method !== 'HEAD' && koaCtx.method !== 'GET') {
103
+ return;
104
+ }
105
+ if (koaCtx.body != null || koaCtx.status !== 404) {
106
+ return;
107
+ }
108
+ const url = koaCtx.originalUrl;
109
+ let template = await fs.readFile(path.relative(ctx.cwd, '.strapi/client/index.html'), 'utf-8');
110
+ template = await vite.transformIndexHtml(url, template);
111
+ koaCtx.type = 'html';
112
+ koaCtx.body = template;
113
+ };
114
+ const adminRoute = `${ctx.adminPath}/:path*`;
115
+ ctx.strapi.server.router.get(adminRoute, serveAdmin);
116
+ ctx.strapi.server.router.use(adminRoute, viteMiddlewares);
117
+ return {
118
+ async close () {
119
+ await vite.close();
120
+ if (hmrServer.listening) {
121
+ // Manually close the hmr server
122
+ // /!\ This operation MUST be done after calling .close() on the vite
123
+ // instance to avoid flaky behaviors with attached clients
124
+ await new Promise((resolve, reject)=>{
125
+ hmrServer.close((err)=>err ? reject(err) : resolve());
126
+ });
127
+ }
128
+ }
129
+ };
130
+ };
131
+
132
+ exports.watch = watch;
133
+ //# sourceMappingURL=watch-CRDw0bas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-CRDw0bas.js","sources":["../../src/node/vite/watch.ts"],"sourcesContent":["import path from 'node:path';\nimport http from 'node:http';\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 HMR_DEFAULT_PORT = 5173;\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 ctx.options.hmrServer = hmrServer;\n ctx.options.hmrClientPort = HMR_DEFAULT_PORT;\n\n const config = await resolveDevelopmentConfig(ctx);\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(hmrConfig.clientPort ?? hmrConfig.port ?? HMR_DEFAULT_PORT);\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 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 let template = await fs.readFile(path.relative(ctx.cwd, '.strapi/client/index.html'), 'utf-8');\n template = await vite.transformIndexHtml(url, template);\n\n koaCtx.type = 'html';\n koaCtx.body = template;\n };\n\n const adminRoute = `${ctx.adminPath}/:path*`;\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","createHMRServer","http","createServer","_","res","body","STATUS_CODES","writeHead","length","end","watch","ctx","hmrServer","options","hmrClientPort","config","resolveDevelopmentConfig","finalConfig","mergeConfigWithUserConfig","hmrConfig","server","hmr","strapi","httpServer","on","listen","clientPort","port","logger","debug","vite","viteMiddlewares","koaCtx","next","Promise","resolve","reject","prefix","basePath","replace","adminPath","originalPath","path","startsWith","middlewares","req","err","headersSent","serveAdmin","method","status","url","originalUrl","template","fs","readFile","relative","cwd","transformIndexHtml","type","adminRoute","router","get","use","close","listening"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAMA,gBAAmB,GAAA,IAAA;AAEzB,MAAMC,eAAkB,GAAA,IAAA;IACtB,OAAOC,IAAAA,CAAKC,YAAY;;AAGtB,IAAA,CAACC,CAAGC,EAAAA,GAAAA,GAAAA;AACF,QAAA,MAAMC,OAAOJ,IAAKK,CAAAA,YAAY,CAAC,GAAA,CAAI;QAEnCF,GAAIG,CAAAA,SAAS,CAAC,GAAK,EAAA;AACjB,YAAA,gBAAA,EAAkBF,MAAMG,MAAU,IAAA,CAAA;YAClC,cAAgB,EAAA;AAClB,SAAA,CAAA;AAEAJ,QAAAA,GAAAA,CAAIK,GAAG,CAACJ,IAAAA,CAAAA;AACV,KAAA,CAAA;AAEJ,CAAA;AAEA,MAAMK,QAAQ,OAAOC,GAAAA,GAAAA;AACnB,IAAA,MAAMC,SAAYZ,GAAAA,eAAAA,EAAAA;IAElBW,GAAIE,CAAAA,OAAO,CAACD,SAAS,GAAGA,SAAAA;IACxBD,GAAIE,CAAAA,OAAO,CAACC,aAAa,GAAGf,gBAAAA;IAE5B,MAAMgB,QAAAA,GAAS,MAAMC,+BAAyBL,CAAAA,GAAAA,CAAAA;IAC9C,MAAMM,WAAAA,GAAc,MAAMC,gCAAAA,CAA0BH,QAAQJ,EAAAA,GAAAA,CAAAA;IAE5D,MAAMQ,SAAAA,GAAYJ,QAAOK,CAAAA,MAAM,EAAEC,GAAAA;;AAGjC,IAAA,IAAI,OAAOF,SAAc,KAAA,QAAA,IAAYA,SAAUC,CAAAA,MAAM,KAAKR,SAAW,EAAA;;AAEnEU,QAAAA,MAAAA,CAAOF,MAAM,CAACG,UAAU,CAACC,EAAE,CAAC,WAAa,EAAA,UAAA;AACvCZ,YAAAA,SAAAA,CAAUa,MAAM,CAACN,SAAAA,CAAUO,UAAU,IAAIP,SAAAA,CAAUQ,IAAI,IAAI5B,gBAAAA,CAAAA;AAC7D,SAAA,CAAA;AACF;AAEAY,IAAAA,GAAAA,CAAIiB,MAAM,CAACC,KAAK,CAAC,aAAeZ,EAAAA,WAAAA,CAAAA;AAEhC,IAAA,MAAM,EAAEf,YAAY,EAAE,GAAG,MAAM,OAAO,MAAA,CAAA;IAEtC,MAAM4B,IAAAA,GAAO,MAAM5B,YAAae,CAAAA,WAAAA,CAAAA;IAEhC,MAAMc,eAAAA,GAA0C,CAACC,MAAQC,EAAAA,IAAAA,GAAAA;QACvD,OAAO,IAAIC,OAAQ,CAAA,CAACC,OAASC,EAAAA,MAAAA,GAAAA;AAC3B,YAAA,MAAMC,MAAS1B,GAAAA,GAAAA,CAAI2B,QAAQ,CAACC,OAAO,CAAC5B,GAAI6B,CAAAA,SAAS,EAAE,EAAA,CAAA,CAAID,OAAO,CAAC,MAAQ,EAAA,EAAA,CAAA;YAEvE,MAAME,YAAAA,GAAeT,OAAOU,IAAI;AAChC,YAAA,IAAI,CAACV,MAAOU,CAAAA,IAAI,CAACC,UAAU,CAACN,MAAS,CAAA,EAAA;gBACnCL,MAAOU,CAAAA,IAAI,GAAG,CAAC,EAAEL,OAAO,EAAEL,MAAAA,CAAOU,IAAI,CAAC,CAAC;AACzC;YAEAZ,IAAKc,CAAAA,WAAW,CAACZ,MAAOa,CAAAA,GAAG,EAAEb,MAAO5B,CAAAA,GAAG,EAAE,CAAC0C,GAAAA,GAAAA;AACxC,gBAAA,IAAIA,GAAK,EAAA;oBACPV,MAAOU,CAAAA,GAAAA,CAAAA;iBACF,MAAA;AACL,oBAAA,IAAI,CAACd,MAAAA,CAAO5B,GAAG,CAAC2C,WAAW,EAAE;AAC3Bf,wBAAAA,MAAAA,CAAOU,IAAI,GAAGD,YAAAA;AAChB;oBAEAN,OAAQF,CAAAA,IAAAA,EAAAA,CAAAA;AACV;AACF,aAAA,CAAA;AACF,SAAA,CAAA;AACF,KAAA;IAEA,MAAMe,UAAAA,GAAqC,OAAOhB,MAAQC,EAAAA,IAAAA,GAAAA;QACxD,MAAMA,IAAAA,EAAAA;AAEN,QAAA,IAAID,OAAOiB,MAAM,KAAK,UAAUjB,MAAOiB,CAAAA,MAAM,KAAK,KAAO,EAAA;AACvD,YAAA;AACF;AAEA,QAAA,IAAIjB,OAAO3B,IAAI,IAAI,QAAQ2B,MAAOkB,CAAAA,MAAM,KAAK,GAAK,EAAA;AAChD,YAAA;AACF;QAEA,MAAMC,GAAAA,GAAMnB,OAAOoB,WAAW;QAE9B,IAAIC,QAAAA,GAAW,MAAMC,EAAAA,CAAGC,QAAQ,CAACb,IAAKc,CAAAA,QAAQ,CAAC7C,GAAAA,CAAI8C,GAAG,EAAE,2BAA8B,CAAA,EAAA,OAAA,CAAA;AACtFJ,QAAAA,QAAAA,GAAW,MAAMvB,IAAAA,CAAK4B,kBAAkB,CAACP,GAAKE,EAAAA,QAAAA,CAAAA;AAE9CrB,QAAAA,MAAAA,CAAO2B,IAAI,GAAG,MAAA;AACd3B,QAAAA,MAAAA,CAAO3B,IAAI,GAAGgD,QAAAA;AAChB,KAAA;AAEA,IAAA,MAAMO,aAAa,CAAC,EAAEjD,IAAI6B,SAAS,CAAC,OAAO,CAAC;IAE5C7B,GAAIW,CAAAA,MAAM,CAACF,MAAM,CAACyC,MAAM,CAACC,GAAG,CAACF,UAAYZ,EAAAA,UAAAA,CAAAA;IACzCrC,GAAIW,CAAAA,MAAM,CAACF,MAAM,CAACyC,MAAM,CAACE,GAAG,CAACH,UAAY7B,EAAAA,eAAAA,CAAAA;IAEzC,OAAO;QACL,MAAMiC,KAAAA,CAAAA,GAAAA;AACJ,YAAA,MAAMlC,KAAKkC,KAAK,EAAA;YAEhB,IAAIpD,SAAAA,CAAUqD,SAAS,EAAE;;;;gBAIvB,MAAM,IAAI/B,OAAc,CAAA,CAACC,OAASC,EAAAA,MAAAA,GAAAA;AAChCxB,oBAAAA,SAAAA,CAAUoD,KAAK,CAAC,CAAClB,GAASA,GAAAA,GAAAA,GAAMV,OAAOU,GAAOX,CAAAA,GAAAA,OAAAA,EAAAA,CAAAA;AAChD,iBAAA,CAAA;AACF;AACF;AACF,KAAA;AACF;;;;"}
@@ -0,0 +1,144 @@
1
+ import os from 'node:os';
2
+ import path from 'node:path';
3
+ import { promisify } from 'node:util';
4
+ import webpackDevMiddleware from 'webpack-dev-middleware';
5
+ import webpackHotMiddleware from 'webpack-hot-middleware';
6
+ import { webpack } from 'webpack';
7
+ import { a as resolveDevelopmentConfig, m as mergeConfigWithUserConfig } from './config-YXcKrg8-.mjs';
8
+ import '@pmmmwh/react-refresh-webpack-plugin';
9
+ import 'browserslist-to-esbuild';
10
+ import 'esbuild-loader';
11
+ import 'fork-ts-checker-webpack-plugin';
12
+ import 'html-webpack-plugin';
13
+ import 'mini-css-extract-plugin';
14
+ import 'node:crypto';
15
+ import 'read-pkg-up';
16
+ import 'webpack-bundle-analyzer';
17
+ import './aliases-DAot4dxq.mjs';
18
+ import 'path';
19
+ import './index-DIAuPBs8.mjs';
20
+ import 'commander';
21
+ import '@strapi/cloud-cli';
22
+ import '@strapi/utils';
23
+ import 'lodash';
24
+ import 'inquirer';
25
+ import '@strapi/core';
26
+ import 'chalk';
27
+ import 'lodash/fp';
28
+ import 'boxen';
29
+ import 'cli-table3';
30
+ import 'fs';
31
+ import 'fs-extra';
32
+ import 'crypto';
33
+ import '@strapi/typescript-utils';
34
+ import 'node:fs/promises';
35
+ import 'semver';
36
+ import 'resolve-from';
37
+ import 'execa';
38
+ import 'perf_hooks';
39
+ import 'browserslist';
40
+ import 'dotenv';
41
+ import 'esbuild-register/dist/node';
42
+ import 'node:fs';
43
+ import 'lodash/camelCase';
44
+ import 'outdent';
45
+ import 'react';
46
+ import 'react-dom/server';
47
+ import '@strapi/admin/_internal';
48
+ import 'repl';
49
+ import 'node:cluster';
50
+ import 'chokidar';
51
+ import 'os';
52
+ import '@strapi/logger';
53
+ import 'ora';
54
+ import '@strapi/data-transfer';
55
+ import 'cli-progress';
56
+ import 'typescript';
57
+
58
+ const watch = async (ctx)=>{
59
+ const config = await resolveDevelopmentConfig(ctx);
60
+ const finalConfig = await mergeConfigWithUserConfig(config, ctx);
61
+ ctx.logger.debug('Final webpack config:', os.EOL, finalConfig);
62
+ return new Promise((res)=>{
63
+ const compiler = webpack(finalConfig);
64
+ const devMiddleware = webpackDevMiddleware(compiler);
65
+ const hotMiddleware = webpackHotMiddleware(compiler, {
66
+ log: false,
67
+ path: '/__webpack_hmr'
68
+ });
69
+ ctx.strapi.server.app.use((ctx, next)=>{
70
+ return new Promise((resolve, reject)=>{
71
+ hotMiddleware(ctx.req, ctx.res, (err)=>{
72
+ if (err) reject(err);
73
+ else resolve(next());
74
+ });
75
+ });
76
+ });
77
+ ctx.strapi.server.app.use((context, next)=>{
78
+ // wait for webpack-dev-middleware to signal that the build is ready
79
+ const ready = new Promise((resolve)=>{
80
+ devMiddleware.waitUntilValid(()=>{
81
+ resolve(true);
82
+ });
83
+ });
84
+ // tell webpack-dev-middleware to handle the request
85
+ const init = new Promise((resolve)=>{
86
+ devMiddleware(context.req, {
87
+ // @ts-expect-error ignored
88
+ end (content) {
89
+ // eslint-disable-next-line no-param-reassign
90
+ context.body = content;
91
+ resolve(true);
92
+ },
93
+ getHeader: context.get.bind(context),
94
+ // @ts-expect-error ignored
95
+ setHeader: context.set.bind(context),
96
+ locals: context.state
97
+ }, ()=>resolve(next()));
98
+ });
99
+ return Promise.all([
100
+ ready,
101
+ init
102
+ ]);
103
+ });
104
+ const serveAdmin = async (ctx, next)=>{
105
+ await next();
106
+ if (devMiddleware.context.outputFileSystem.createReadStream) {
107
+ if (ctx.method !== 'HEAD' && ctx.method !== 'GET') {
108
+ return;
109
+ }
110
+ if (ctx.body != null || ctx.status !== 404) {
111
+ return;
112
+ }
113
+ // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
114
+ const filename = path.resolve(finalConfig.output?.path, 'index.html');
115
+ ctx.type = 'html';
116
+ ctx.body = devMiddleware.context.outputFileSystem.createReadStream(filename);
117
+ }
118
+ };
119
+ ctx.strapi.server.routes([
120
+ {
121
+ method: 'GET',
122
+ path: `${ctx.adminPath}/:path*`,
123
+ handler: serveAdmin,
124
+ config: {
125
+ auth: false
126
+ }
127
+ }
128
+ ]);
129
+ devMiddleware.waitUntilValid(()=>{
130
+ res({
131
+ async close () {
132
+ await Promise.all([
133
+ promisify(devMiddleware.close.bind(devMiddleware))(),
134
+ hotMiddleware.close(),
135
+ promisify(compiler.close.bind(compiler))()
136
+ ]);
137
+ }
138
+ });
139
+ });
140
+ });
141
+ };
142
+
143
+ export { watch };
144
+ //# sourceMappingURL=watch-Cvk1wtNO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-Cvk1wtNO.mjs","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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"}
@@ -0,0 +1,146 @@
1
+ 'use strict';
2
+
3
+ var os = require('node:os');
4
+ var path = require('node:path');
5
+ var node_util = require('node:util');
6
+ var webpackDevMiddleware = require('webpack-dev-middleware');
7
+ var webpackHotMiddleware = require('webpack-hot-middleware');
8
+ var webpack = require('webpack');
9
+ var config = require('./config-nh7CiBvl.js');
10
+ require('@pmmmwh/react-refresh-webpack-plugin');
11
+ require('browserslist-to-esbuild');
12
+ require('esbuild-loader');
13
+ require('fork-ts-checker-webpack-plugin');
14
+ require('html-webpack-plugin');
15
+ require('mini-css-extract-plugin');
16
+ require('node:crypto');
17
+ require('read-pkg-up');
18
+ require('webpack-bundle-analyzer');
19
+ require('./aliases-DnWkCRVx.js');
20
+ require('path');
21
+ require('./index-1UgyJyc8.js');
22
+ require('commander');
23
+ require('@strapi/cloud-cli');
24
+ require('@strapi/utils');
25
+ require('lodash');
26
+ require('inquirer');
27
+ require('@strapi/core');
28
+ require('chalk');
29
+ require('lodash/fp');
30
+ require('boxen');
31
+ require('cli-table3');
32
+ require('fs');
33
+ require('fs-extra');
34
+ require('crypto');
35
+ require('@strapi/typescript-utils');
36
+ require('node:fs/promises');
37
+ require('semver');
38
+ require('resolve-from');
39
+ require('execa');
40
+ require('perf_hooks');
41
+ require('browserslist');
42
+ require('dotenv');
43
+ require('esbuild-register/dist/node');
44
+ require('node:fs');
45
+ require('lodash/camelCase');
46
+ require('outdent');
47
+ require('react');
48
+ require('react-dom/server');
49
+ require('@strapi/admin/_internal');
50
+ require('repl');
51
+ require('node:cluster');
52
+ require('chokidar');
53
+ require('os');
54
+ require('@strapi/logger');
55
+ require('ora');
56
+ require('@strapi/data-transfer');
57
+ require('cli-progress');
58
+ require('typescript');
59
+
60
+ const watch = async (ctx)=>{
61
+ const config$1 = await config.resolveDevelopmentConfig(ctx);
62
+ const finalConfig = await config.mergeConfigWithUserConfig(config$1, ctx);
63
+ ctx.logger.debug('Final webpack config:', os.EOL, finalConfig);
64
+ return new Promise((res)=>{
65
+ const compiler = webpack.webpack(finalConfig);
66
+ const devMiddleware = webpackDevMiddleware(compiler);
67
+ const hotMiddleware = webpackHotMiddleware(compiler, {
68
+ log: false,
69
+ path: '/__webpack_hmr'
70
+ });
71
+ ctx.strapi.server.app.use((ctx, next)=>{
72
+ return new Promise((resolve, reject)=>{
73
+ hotMiddleware(ctx.req, ctx.res, (err)=>{
74
+ if (err) reject(err);
75
+ else resolve(next());
76
+ });
77
+ });
78
+ });
79
+ ctx.strapi.server.app.use((context, next)=>{
80
+ // wait for webpack-dev-middleware to signal that the build is ready
81
+ const ready = new Promise((resolve)=>{
82
+ devMiddleware.waitUntilValid(()=>{
83
+ resolve(true);
84
+ });
85
+ });
86
+ // tell webpack-dev-middleware to handle the request
87
+ const init = new Promise((resolve)=>{
88
+ devMiddleware(context.req, {
89
+ // @ts-expect-error ignored
90
+ end (content) {
91
+ // eslint-disable-next-line no-param-reassign
92
+ context.body = content;
93
+ resolve(true);
94
+ },
95
+ getHeader: context.get.bind(context),
96
+ // @ts-expect-error ignored
97
+ setHeader: context.set.bind(context),
98
+ locals: context.state
99
+ }, ()=>resolve(next()));
100
+ });
101
+ return Promise.all([
102
+ ready,
103
+ init
104
+ ]);
105
+ });
106
+ const serveAdmin = async (ctx, next)=>{
107
+ await next();
108
+ if (devMiddleware.context.outputFileSystem.createReadStream) {
109
+ if (ctx.method !== 'HEAD' && ctx.method !== 'GET') {
110
+ return;
111
+ }
112
+ if (ctx.body != null || ctx.status !== 404) {
113
+ return;
114
+ }
115
+ // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
116
+ const filename = path.resolve(finalConfig.output?.path, 'index.html');
117
+ ctx.type = 'html';
118
+ ctx.body = devMiddleware.context.outputFileSystem.createReadStream(filename);
119
+ }
120
+ };
121
+ ctx.strapi.server.routes([
122
+ {
123
+ method: 'GET',
124
+ path: `${ctx.adminPath}/:path*`,
125
+ handler: serveAdmin,
126
+ config: {
127
+ auth: false
128
+ }
129
+ }
130
+ ]);
131
+ devMiddleware.waitUntilValid(()=>{
132
+ res({
133
+ async close () {
134
+ await Promise.all([
135
+ node_util.promisify(devMiddleware.close.bind(devMiddleware))(),
136
+ hotMiddleware.close(),
137
+ node_util.promisify(compiler.close.bind(compiler))()
138
+ ]);
139
+ }
140
+ });
141
+ });
142
+ });
143
+ };
144
+
145
+ exports.watch = watch;
146
+ //# sourceMappingURL=watch-Du-Ph6oD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-Du-Ph6oD.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,9 +1,22 @@
1
- import { TemplateFile } from '@strapi/pack-up';
2
- interface TsConfigFiles {
3
- tsconfigFile: TemplateFile;
4
- tsconfigBuildFile: TemplateFile;
5
- }
6
- declare const ADMIN: TsConfigFiles;
7
- declare const SERVER: TsConfigFiles;
1
+ declare const ADMIN: {
2
+ tsconfigFile: {
3
+ name: string;
4
+ contents: string;
5
+ };
6
+ tsconfigBuildFile: {
7
+ name: string;
8
+ contents: string;
9
+ };
10
+ };
11
+ declare const SERVER: {
12
+ tsconfigFile: {
13
+ name: string;
14
+ contents: string;
15
+ };
16
+ tsconfigBuildFile: {
17
+ name: string;
18
+ contents: string;
19
+ };
20
+ };
8
21
  export { ADMIN as adminTsconfigFiles, SERVER as serverTsconfigFiles };
9
22
  //# sourceMappingURL=typescript.d.ts.map