@strapi/strapi 5.8.1 → 5.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/dist/admin-test.js +11 -8
  2. package/dist/admin-test.js.map +1 -1
  3. package/dist/admin-test.mjs +1 -1
  4. package/dist/admin-test.mjs.map +1 -1
  5. package/dist/admin.js +36 -42
  6. package/dist/admin.js.map +1 -1
  7. package/dist/admin.mjs +28 -35
  8. package/dist/admin.mjs.map +1 -1
  9. package/dist/chunks/aliases-Ca20Yntz.js +80 -0
  10. package/dist/chunks/aliases-Ca20Yntz.js.map +1 -0
  11. package/dist/chunks/aliases-DQ51KexN.mjs +76 -0
  12. package/dist/chunks/aliases-DQ51KexN.mjs.map +1 -0
  13. package/dist/chunks/build-3I6A92J1.js +59 -0
  14. package/dist/chunks/build-3I6A92J1.js.map +1 -0
  15. package/dist/chunks/build-BqigoS45.mjs +85 -0
  16. package/dist/chunks/build-BqigoS45.mjs.map +1 -0
  17. package/dist/chunks/build-CWUlYFQo.js +87 -0
  18. package/dist/chunks/build-CWUlYFQo.js.map +1 -0
  19. package/dist/chunks/build-gBR43Dth.mjs +57 -0
  20. package/dist/chunks/build-gBR43Dth.mjs.map +1 -0
  21. package/dist/chunks/config-5tFWkbOi.js +154 -0
  22. package/dist/chunks/config-5tFWkbOi.js.map +1 -0
  23. package/dist/chunks/config-BSlsDIVc.mjs +243 -0
  24. package/dist/chunks/config-BSlsDIVc.mjs.map +1 -0
  25. package/dist/chunks/config-CLeubzgx.mjs +150 -0
  26. package/dist/chunks/config-CLeubzgx.mjs.map +1 -0
  27. package/dist/chunks/config-CQ94iNYq.js +247 -0
  28. package/dist/chunks/config-CQ94iNYq.js.map +1 -0
  29. package/dist/chunks/index-DtHH3PFG.mjs +3160 -0
  30. package/dist/chunks/index-DtHH3PFG.mjs.map +1 -0
  31. package/dist/chunks/index-kv_K5f7_.js +3185 -0
  32. package/dist/chunks/index-kv_K5f7_.js.map +1 -0
  33. package/dist/chunks/watch-B7qfL21s.js +146 -0
  34. package/dist/chunks/watch-B7qfL21s.js.map +1 -0
  35. package/dist/chunks/watch-BBDpuCFC.js +133 -0
  36. package/dist/chunks/watch-BBDpuCFC.js.map +1 -0
  37. package/dist/chunks/watch-Bhd-75O5.mjs +131 -0
  38. package/dist/chunks/watch-Bhd-75O5.mjs.map +1 -0
  39. package/dist/chunks/watch-CJr1UoWF.mjs +144 -0
  40. package/dist/chunks/watch-CJr1UoWF.mjs.map +1 -0
  41. package/dist/cli/commands/plugin/init/files/typescript.d.ts +20 -7
  42. package/dist/cli/commands/plugin/init/files/typescript.d.ts.map +1 -1
  43. package/dist/cli/commands/version.d.ts.map +1 -1
  44. package/dist/cli/index.d.ts.map +1 -1
  45. package/dist/cli.js +50 -0
  46. package/dist/cli.js.map +1 -0
  47. package/dist/cli.mjs +43 -0
  48. package/dist/cli.mjs.map +1 -0
  49. package/dist/index.js +11 -8
  50. package/dist/index.js.map +1 -1
  51. package/dist/index.mjs +1 -1
  52. package/dist/index.mjs.map +1 -1
  53. package/dist/node/core/errors.d.ts.map +1 -1
  54. package/dist/node/create-build-context.d.ts +1 -1
  55. package/dist/node/create-build-context.d.ts.map +1 -1
  56. package/dist/node/vite/watch.d.ts.map +1 -1
  57. package/package.json +26 -26
  58. package/dist/cli/commands/admin/create-user.js +0 -91
  59. package/dist/cli/commands/admin/create-user.js.map +0 -1
  60. package/dist/cli/commands/admin/create-user.mjs +0 -88
  61. package/dist/cli/commands/admin/create-user.mjs.map +0 -1
  62. package/dist/cli/commands/admin/reset-user-password.js +0 -47
  63. package/dist/cli/commands/admin/reset-user-password.js.map +0 -1
  64. package/dist/cli/commands/admin/reset-user-password.mjs +0 -44
  65. package/dist/cli/commands/admin/reset-user-password.mjs.map +0 -1
  66. package/dist/cli/commands/build.js +0 -24
  67. package/dist/cli/commands/build.js.map +0 -1
  68. package/dist/cli/commands/build.mjs +0 -24
  69. package/dist/cli/commands/build.mjs.map +0 -1
  70. package/dist/cli/commands/components/list.js +0 -27
  71. package/dist/cli/commands/components/list.js.map +0 -1
  72. package/dist/cli/commands/components/list.mjs +0 -24
  73. package/dist/cli/commands/components/list.mjs.map +0 -1
  74. package/dist/cli/commands/configuration/dump.js +0 -43
  75. package/dist/cli/commands/configuration/dump.js.map +0 -1
  76. package/dist/cli/commands/configuration/dump.mjs +0 -41
  77. package/dist/cli/commands/configuration/dump.mjs.map +0 -1
  78. package/dist/cli/commands/configuration/restore.js +0 -142
  79. package/dist/cli/commands/configuration/restore.js.map +0 -1
  80. package/dist/cli/commands/configuration/restore.mjs +0 -139
  81. package/dist/cli/commands/configuration/restore.mjs.map +0 -1
  82. package/dist/cli/commands/console.js +0 -29
  83. package/dist/cli/commands/console.js.map +0 -1
  84. package/dist/cli/commands/console.mjs +0 -27
  85. package/dist/cli/commands/console.mjs.map +0 -1
  86. package/dist/cli/commands/content-types/list.js +0 -27
  87. package/dist/cli/commands/content-types/list.js.map +0 -1
  88. package/dist/cli/commands/content-types/list.mjs +0 -24
  89. package/dist/cli/commands/content-types/list.mjs.map +0 -1
  90. package/dist/cli/commands/controllers/list.js +0 -27
  91. package/dist/cli/commands/controllers/list.js.map +0 -1
  92. package/dist/cli/commands/controllers/list.mjs +0 -24
  93. package/dist/cli/commands/controllers/list.mjs.map +0 -1
  94. package/dist/cli/commands/develop.js +0 -29
  95. package/dist/cli/commands/develop.js.map +0 -1
  96. package/dist/cli/commands/develop.mjs +0 -27
  97. package/dist/cli/commands/develop.mjs.map +0 -1
  98. package/dist/cli/commands/export/action.js +0 -118
  99. package/dist/cli/commands/export/action.js.map +0 -1
  100. package/dist/cli/commands/export/action.mjs +0 -116
  101. package/dist/cli/commands/export/action.mjs.map +0 -1
  102. package/dist/cli/commands/export/command.js +0 -23
  103. package/dist/cli/commands/export/command.js.map +0 -1
  104. package/dist/cli/commands/export/command.mjs +0 -24
  105. package/dist/cli/commands/export/command.mjs.map +0 -1
  106. package/dist/cli/commands/generate.js +0 -35
  107. package/dist/cli/commands/generate.js.map +0 -1
  108. package/dist/cli/commands/generate.mjs +0 -13
  109. package/dist/cli/commands/generate.mjs.map +0 -1
  110. package/dist/cli/commands/hooks/list.js +0 -27
  111. package/dist/cli/commands/hooks/list.js.map +0 -1
  112. package/dist/cli/commands/hooks/list.mjs +0 -24
  113. package/dist/cli/commands/hooks/list.mjs.map +0 -1
  114. package/dist/cli/commands/import/action.js +0 -106
  115. package/dist/cli/commands/import/action.js.map +0 -1
  116. package/dist/cli/commands/import/action.mjs +0 -105
  117. package/dist/cli/commands/import/action.mjs.map +0 -1
  118. package/dist/cli/commands/import/command.js +0 -70
  119. package/dist/cli/commands/import/command.js.map +0 -1
  120. package/dist/cli/commands/import/command.mjs +0 -68
  121. package/dist/cli/commands/import/command.mjs.map +0 -1
  122. package/dist/cli/commands/index.js +0 -63
  123. package/dist/cli/commands/index.js.map +0 -1
  124. package/dist/cli/commands/index.mjs +0 -63
  125. package/dist/cli/commands/index.mjs.map +0 -1
  126. package/dist/cli/commands/middlewares/list.js +0 -27
  127. package/dist/cli/commands/middlewares/list.js.map +0 -1
  128. package/dist/cli/commands/middlewares/list.mjs +0 -24
  129. package/dist/cli/commands/middlewares/list.mjs.map +0 -1
  130. package/dist/cli/commands/policies/list.js +0 -27
  131. package/dist/cli/commands/policies/list.js.map +0 -1
  132. package/dist/cli/commands/policies/list.mjs +0 -24
  133. package/dist/cli/commands/policies/list.mjs.map +0 -1
  134. package/dist/cli/commands/report.js +0 -35
  135. package/dist/cli/commands/report.js.map +0 -1
  136. package/dist/cli/commands/report.mjs +0 -35
  137. package/dist/cli/commands/report.mjs.map +0 -1
  138. package/dist/cli/commands/routes/list.js +0 -31
  139. package/dist/cli/commands/routes/list.js.map +0 -1
  140. package/dist/cli/commands/routes/list.mjs +0 -28
  141. package/dist/cli/commands/routes/list.mjs.map +0 -1
  142. package/dist/cli/commands/services/list.js +0 -27
  143. package/dist/cli/commands/services/list.js.map +0 -1
  144. package/dist/cli/commands/services/list.mjs +0 -24
  145. package/dist/cli/commands/services/list.mjs.map +0 -1
  146. package/dist/cli/commands/start.js +0 -27
  147. package/dist/cli/commands/start.js.map +0 -1
  148. package/dist/cli/commands/start.mjs +0 -24
  149. package/dist/cli/commands/start.mjs.map +0 -1
  150. package/dist/cli/commands/telemetry/disable.js +0 -70
  151. package/dist/cli/commands/telemetry/disable.js.map +0 -1
  152. package/dist/cli/commands/telemetry/disable.mjs +0 -67
  153. package/dist/cli/commands/telemetry/disable.mjs.map +0 -1
  154. package/dist/cli/commands/telemetry/enable.js +0 -89
  155. package/dist/cli/commands/telemetry/enable.js.map +0 -1
  156. package/dist/cli/commands/telemetry/enable.mjs +0 -86
  157. package/dist/cli/commands/telemetry/enable.mjs.map +0 -1
  158. package/dist/cli/commands/templates/generate.js +0 -11
  159. package/dist/cli/commands/templates/generate.js.map +0 -1
  160. package/dist/cli/commands/templates/generate.mjs +0 -11
  161. package/dist/cli/commands/templates/generate.mjs.map +0 -1
  162. package/dist/cli/commands/transfer/action.js +0 -130
  163. package/dist/cli/commands/transfer/action.js.map +0 -1
  164. package/dist/cli/commands/transfer/action.mjs +0 -131
  165. package/dist/cli/commands/transfer/action.mjs.map +0 -1
  166. package/dist/cli/commands/transfer/command.js +0 -85
  167. package/dist/cli/commands/transfer/command.js.map +0 -1
  168. package/dist/cli/commands/transfer/command.mjs +0 -84
  169. package/dist/cli/commands/transfer/command.mjs.map +0 -1
  170. package/dist/cli/commands/ts/generate-types.js +0 -36
  171. package/dist/cli/commands/ts/generate-types.js.map +0 -1
  172. package/dist/cli/commands/ts/generate-types.mjs +0 -34
  173. package/dist/cli/commands/ts/generate-types.mjs.map +0 -1
  174. package/dist/cli/commands/version.js +0 -13
  175. package/dist/cli/commands/version.js.map +0 -1
  176. package/dist/cli/commands/version.mjs +0 -13
  177. package/dist/cli/commands/version.mjs.map +0 -1
  178. package/dist/cli/index.js +0 -79
  179. package/dist/cli/index.js.map +0 -1
  180. package/dist/cli/index.mjs +0 -79
  181. package/dist/cli/index.mjs.map +0 -1
  182. package/dist/cli/utils/commander.js +0 -111
  183. package/dist/cli/utils/commander.js.map +0 -1
  184. package/dist/cli/utils/commander.mjs +0 -108
  185. package/dist/cli/utils/commander.mjs.map +0 -1
  186. package/dist/cli/utils/data-transfer.js +0 -354
  187. package/dist/cli/utils/data-transfer.js.map +0 -1
  188. package/dist/cli/utils/data-transfer.mjs +0 -350
  189. package/dist/cli/utils/data-transfer.mjs.map +0 -1
  190. package/dist/cli/utils/helpers.js +0 -102
  191. package/dist/cli/utils/helpers.js.map +0 -1
  192. package/dist/cli/utils/helpers.mjs +0 -100
  193. package/dist/cli/utils/helpers.mjs.map +0 -1
  194. package/dist/cli/utils/logger.js +0 -137
  195. package/dist/cli/utils/logger.js.map +0 -1
  196. package/dist/cli/utils/logger.mjs +0 -116
  197. package/dist/cli/utils/logger.mjs.map +0 -1
  198. package/dist/cli/utils/telemetry.js +0 -22
  199. package/dist/cli/utils/telemetry.js.map +0 -1
  200. package/dist/cli/utils/telemetry.mjs +0 -22
  201. package/dist/cli/utils/telemetry.mjs.map +0 -1
  202. package/dist/cli/utils/tsconfig.js +0 -26
  203. package/dist/cli/utils/tsconfig.js.map +0 -1
  204. package/dist/cli/utils/tsconfig.mjs +0 -23
  205. package/dist/cli/utils/tsconfig.mjs.map +0 -1
  206. package/dist/node/build.js +0 -76
  207. package/dist/node/build.js.map +0 -1
  208. package/dist/node/build.mjs +0 -58
  209. package/dist/node/build.mjs.map +0 -1
  210. package/dist/node/core/admin-customisations.js +0 -24
  211. package/dist/node/core/admin-customisations.js.map +0 -1
  212. package/dist/node/core/admin-customisations.mjs +0 -22
  213. package/dist/node/core/admin-customisations.mjs.map +0 -1
  214. package/dist/node/core/aliases.js +0 -33
  215. package/dist/node/core/aliases.js.map +0 -1
  216. package/dist/node/core/aliases.mjs +0 -31
  217. package/dist/node/core/aliases.mjs.map +0 -1
  218. package/dist/node/core/config.js +0 -18
  219. package/dist/node/core/config.js.map +0 -1
  220. package/dist/node/core/config.mjs +0 -16
  221. package/dist/node/core/config.mjs.map +0 -1
  222. package/dist/node/core/dependencies.js +0 -163
  223. package/dist/node/core/dependencies.js.map +0 -1
  224. package/dist/node/core/dependencies.mjs +0 -155
  225. package/dist/node/core/dependencies.mjs.map +0 -1
  226. package/dist/node/core/env.js +0 -26
  227. package/dist/node/core/env.js.map +0 -1
  228. package/dist/node/core/env.mjs +0 -23
  229. package/dist/node/core/env.mjs.map +0 -1
  230. package/dist/node/core/errors.js +0 -33
  231. package/dist/node/core/errors.js.map +0 -1
  232. package/dist/node/core/errors.mjs +0 -29
  233. package/dist/node/core/errors.mjs.map +0 -1
  234. package/dist/node/core/files.js +0 -45
  235. package/dist/node/core/files.js.map +0 -1
  236. package/dist/node/core/files.mjs +0 -43
  237. package/dist/node/core/files.mjs.map +0 -1
  238. package/dist/node/core/managers.js +0 -17
  239. package/dist/node/core/managers.js.map +0 -1
  240. package/dist/node/core/managers.mjs +0 -17
  241. package/dist/node/core/managers.mjs.map +0 -1
  242. package/dist/node/core/monorepo.js +0 -23
  243. package/dist/node/core/monorepo.js.map +0 -1
  244. package/dist/node/core/monorepo.mjs +0 -20
  245. package/dist/node/core/monorepo.mjs.map +0 -1
  246. package/dist/node/core/plugins.js +0 -116
  247. package/dist/node/core/plugins.js.map +0 -1
  248. package/dist/node/core/plugins.mjs +0 -111
  249. package/dist/node/core/plugins.mjs.map +0 -1
  250. package/dist/node/core/timer.js +0 -27
  251. package/dist/node/core/timer.js.map +0 -1
  252. package/dist/node/core/timer.mjs +0 -27
  253. package/dist/node/core/timer.mjs.map +0 -1
  254. package/dist/node/create-build-context.js +0 -101
  255. package/dist/node/create-build-context.js.map +0 -1
  256. package/dist/node/create-build-context.mjs +0 -96
  257. package/dist/node/create-build-context.mjs.map +0 -1
  258. package/dist/node/develop.js +0 -275
  259. package/dist/node/develop.js.map +0 -1
  260. package/dist/node/develop.mjs +0 -252
  261. package/dist/node/develop.mjs.map +0 -1
  262. package/dist/node/staticFiles.js +0 -102
  263. package/dist/node/staticFiles.js.map +0 -1
  264. package/dist/node/staticFiles.mjs +0 -76
  265. package/dist/node/staticFiles.mjs.map +0 -1
  266. package/dist/node/vite/build.js +0 -34
  267. package/dist/node/vite/build.js.map +0 -1
  268. package/dist/node/vite/build.mjs +0 -12
  269. package/dist/node/vite/build.mjs.map +0 -1
  270. package/dist/node/vite/config.js +0 -106
  271. package/dist/node/vite/config.js.map +0 -1
  272. package/dist/node/vite/config.mjs +0 -103
  273. package/dist/node/vite/config.mjs.map +0 -1
  274. package/dist/node/vite/plugins.js +0 -43
  275. package/dist/node/vite/plugins.js.map +0 -1
  276. package/dist/node/vite/plugins.mjs +0 -43
  277. package/dist/node/vite/plugins.mjs.map +0 -1
  278. package/dist/node/vite/watch.js +0 -103
  279. package/dist/node/vite/watch.js.map +0 -1
  280. package/dist/node/vite/watch.mjs +0 -77
  281. package/dist/node/vite/watch.mjs.map +0 -1
  282. package/dist/node/webpack/build.js +0 -41
  283. package/dist/node/webpack/build.js.map +0 -1
  284. package/dist/node/webpack/build.mjs +0 -39
  285. package/dist/node/webpack/build.mjs.map +0 -1
  286. package/dist/node/webpack/config.js +0 -259
  287. package/dist/node/webpack/config.js.map +0 -1
  288. package/dist/node/webpack/config.mjs +0 -228
  289. package/dist/node/webpack/config.mjs.map +0 -1
  290. package/dist/node/webpack/watch.js +0 -95
  291. package/dist/node/webpack/watch.js.map +0 -1
  292. package/dist/node/webpack/watch.mjs +0 -90
  293. package/dist/node/webpack/watch.mjs.map +0 -1
@@ -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-CQ94iNYq.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-Ca20Yntz.js');
20
+ require('path');
21
+ require('./index-kv_K5f7_.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-B7qfL21s.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-B7qfL21s.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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"}
@@ -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-5tFWkbOi.js');
7
+ require('browserslist-to-esbuild');
8
+ require('@vitejs/plugin-react-swc');
9
+ require('./aliases-Ca20Yntz.js');
10
+ require('path');
11
+ require('read-pkg-up');
12
+ require('./index-kv_K5f7_.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-BBDpuCFC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-BBDpuCFC.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,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-CLeubzgx.mjs';
5
+ import 'browserslist-to-esbuild';
6
+ import '@vitejs/plugin-react-swc';
7
+ import './aliases-DQ51KexN.mjs';
8
+ import 'path';
9
+ import 'read-pkg-up';
10
+ import './index-DtHH3PFG.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-Bhd-75O5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-Bhd-75O5.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,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-BSlsDIVc.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-DQ51KexN.mjs';
18
+ import 'path';
19
+ import './index-DtHH3PFG.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-CJr1UoWF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-CJr1UoWF.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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"}
@@ -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