@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.
- package/dist/admin-test.js +11 -8
- package/dist/admin-test.js.map +1 -1
- package/dist/admin-test.mjs +1 -1
- package/dist/admin-test.mjs.map +1 -1
- package/dist/admin.js +36 -42
- package/dist/admin.js.map +1 -1
- package/dist/admin.mjs +28 -35
- package/dist/admin.mjs.map +1 -1
- package/dist/chunks/aliases-Ca20Yntz.js +80 -0
- package/dist/chunks/aliases-Ca20Yntz.js.map +1 -0
- package/dist/chunks/aliases-DQ51KexN.mjs +76 -0
- package/dist/chunks/aliases-DQ51KexN.mjs.map +1 -0
- package/dist/chunks/build-3I6A92J1.js +59 -0
- package/dist/chunks/build-3I6A92J1.js.map +1 -0
- package/dist/chunks/build-BqigoS45.mjs +85 -0
- package/dist/chunks/build-BqigoS45.mjs.map +1 -0
- package/dist/chunks/build-CWUlYFQo.js +87 -0
- package/dist/chunks/build-CWUlYFQo.js.map +1 -0
- package/dist/chunks/build-gBR43Dth.mjs +57 -0
- package/dist/chunks/build-gBR43Dth.mjs.map +1 -0
- package/dist/chunks/config-5tFWkbOi.js +154 -0
- package/dist/chunks/config-5tFWkbOi.js.map +1 -0
- package/dist/chunks/config-BSlsDIVc.mjs +243 -0
- package/dist/chunks/config-BSlsDIVc.mjs.map +1 -0
- package/dist/chunks/config-CLeubzgx.mjs +150 -0
- package/dist/chunks/config-CLeubzgx.mjs.map +1 -0
- package/dist/chunks/config-CQ94iNYq.js +247 -0
- package/dist/chunks/config-CQ94iNYq.js.map +1 -0
- package/dist/chunks/index-DtHH3PFG.mjs +3160 -0
- package/dist/chunks/index-DtHH3PFG.mjs.map +1 -0
- package/dist/chunks/index-kv_K5f7_.js +3185 -0
- package/dist/chunks/index-kv_K5f7_.js.map +1 -0
- package/dist/chunks/watch-B7qfL21s.js +146 -0
- package/dist/chunks/watch-B7qfL21s.js.map +1 -0
- package/dist/chunks/watch-BBDpuCFC.js +133 -0
- package/dist/chunks/watch-BBDpuCFC.js.map +1 -0
- package/dist/chunks/watch-Bhd-75O5.mjs +131 -0
- package/dist/chunks/watch-Bhd-75O5.mjs.map +1 -0
- package/dist/chunks/watch-CJr1UoWF.mjs +144 -0
- package/dist/chunks/watch-CJr1UoWF.mjs.map +1 -0
- package/dist/cli/commands/plugin/init/files/typescript.d.ts +20 -7
- package/dist/cli/commands/plugin/init/files/typescript.d.ts.map +1 -1
- package/dist/cli/commands/version.d.ts.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli.js +50 -0
- package/dist/cli.js.map +1 -0
- package/dist/cli.mjs +43 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/index.js +11 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/node/core/errors.d.ts.map +1 -1
- package/dist/node/create-build-context.d.ts +1 -1
- package/dist/node/create-build-context.d.ts.map +1 -1
- package/dist/node/vite/watch.d.ts.map +1 -1
- package/package.json +26 -26
- package/dist/cli/commands/admin/create-user.js +0 -91
- package/dist/cli/commands/admin/create-user.js.map +0 -1
- package/dist/cli/commands/admin/create-user.mjs +0 -88
- package/dist/cli/commands/admin/create-user.mjs.map +0 -1
- package/dist/cli/commands/admin/reset-user-password.js +0 -47
- package/dist/cli/commands/admin/reset-user-password.js.map +0 -1
- package/dist/cli/commands/admin/reset-user-password.mjs +0 -44
- package/dist/cli/commands/admin/reset-user-password.mjs.map +0 -1
- package/dist/cli/commands/build.js +0 -24
- package/dist/cli/commands/build.js.map +0 -1
- package/dist/cli/commands/build.mjs +0 -24
- package/dist/cli/commands/build.mjs.map +0 -1
- package/dist/cli/commands/components/list.js +0 -27
- package/dist/cli/commands/components/list.js.map +0 -1
- package/dist/cli/commands/components/list.mjs +0 -24
- package/dist/cli/commands/components/list.mjs.map +0 -1
- package/dist/cli/commands/configuration/dump.js +0 -43
- package/dist/cli/commands/configuration/dump.js.map +0 -1
- package/dist/cli/commands/configuration/dump.mjs +0 -41
- package/dist/cli/commands/configuration/dump.mjs.map +0 -1
- package/dist/cli/commands/configuration/restore.js +0 -142
- package/dist/cli/commands/configuration/restore.js.map +0 -1
- package/dist/cli/commands/configuration/restore.mjs +0 -139
- package/dist/cli/commands/configuration/restore.mjs.map +0 -1
- package/dist/cli/commands/console.js +0 -29
- package/dist/cli/commands/console.js.map +0 -1
- package/dist/cli/commands/console.mjs +0 -27
- package/dist/cli/commands/console.mjs.map +0 -1
- package/dist/cli/commands/content-types/list.js +0 -27
- package/dist/cli/commands/content-types/list.js.map +0 -1
- package/dist/cli/commands/content-types/list.mjs +0 -24
- package/dist/cli/commands/content-types/list.mjs.map +0 -1
- package/dist/cli/commands/controllers/list.js +0 -27
- package/dist/cli/commands/controllers/list.js.map +0 -1
- package/dist/cli/commands/controllers/list.mjs +0 -24
- package/dist/cli/commands/controllers/list.mjs.map +0 -1
- package/dist/cli/commands/develop.js +0 -29
- package/dist/cli/commands/develop.js.map +0 -1
- package/dist/cli/commands/develop.mjs +0 -27
- package/dist/cli/commands/develop.mjs.map +0 -1
- package/dist/cli/commands/export/action.js +0 -118
- package/dist/cli/commands/export/action.js.map +0 -1
- package/dist/cli/commands/export/action.mjs +0 -116
- package/dist/cli/commands/export/action.mjs.map +0 -1
- package/dist/cli/commands/export/command.js +0 -23
- package/dist/cli/commands/export/command.js.map +0 -1
- package/dist/cli/commands/export/command.mjs +0 -24
- package/dist/cli/commands/export/command.mjs.map +0 -1
- package/dist/cli/commands/generate.js +0 -35
- package/dist/cli/commands/generate.js.map +0 -1
- package/dist/cli/commands/generate.mjs +0 -13
- package/dist/cli/commands/generate.mjs.map +0 -1
- package/dist/cli/commands/hooks/list.js +0 -27
- package/dist/cli/commands/hooks/list.js.map +0 -1
- package/dist/cli/commands/hooks/list.mjs +0 -24
- package/dist/cli/commands/hooks/list.mjs.map +0 -1
- package/dist/cli/commands/import/action.js +0 -106
- package/dist/cli/commands/import/action.js.map +0 -1
- package/dist/cli/commands/import/action.mjs +0 -105
- package/dist/cli/commands/import/action.mjs.map +0 -1
- package/dist/cli/commands/import/command.js +0 -70
- package/dist/cli/commands/import/command.js.map +0 -1
- package/dist/cli/commands/import/command.mjs +0 -68
- package/dist/cli/commands/import/command.mjs.map +0 -1
- package/dist/cli/commands/index.js +0 -63
- package/dist/cli/commands/index.js.map +0 -1
- package/dist/cli/commands/index.mjs +0 -63
- package/dist/cli/commands/index.mjs.map +0 -1
- package/dist/cli/commands/middlewares/list.js +0 -27
- package/dist/cli/commands/middlewares/list.js.map +0 -1
- package/dist/cli/commands/middlewares/list.mjs +0 -24
- package/dist/cli/commands/middlewares/list.mjs.map +0 -1
- package/dist/cli/commands/policies/list.js +0 -27
- package/dist/cli/commands/policies/list.js.map +0 -1
- package/dist/cli/commands/policies/list.mjs +0 -24
- package/dist/cli/commands/policies/list.mjs.map +0 -1
- package/dist/cli/commands/report.js +0 -35
- package/dist/cli/commands/report.js.map +0 -1
- package/dist/cli/commands/report.mjs +0 -35
- package/dist/cli/commands/report.mjs.map +0 -1
- package/dist/cli/commands/routes/list.js +0 -31
- package/dist/cli/commands/routes/list.js.map +0 -1
- package/dist/cli/commands/routes/list.mjs +0 -28
- package/dist/cli/commands/routes/list.mjs.map +0 -1
- package/dist/cli/commands/services/list.js +0 -27
- package/dist/cli/commands/services/list.js.map +0 -1
- package/dist/cli/commands/services/list.mjs +0 -24
- package/dist/cli/commands/services/list.mjs.map +0 -1
- package/dist/cli/commands/start.js +0 -27
- package/dist/cli/commands/start.js.map +0 -1
- package/dist/cli/commands/start.mjs +0 -24
- package/dist/cli/commands/start.mjs.map +0 -1
- package/dist/cli/commands/telemetry/disable.js +0 -70
- package/dist/cli/commands/telemetry/disable.js.map +0 -1
- package/dist/cli/commands/telemetry/disable.mjs +0 -67
- package/dist/cli/commands/telemetry/disable.mjs.map +0 -1
- package/dist/cli/commands/telemetry/enable.js +0 -89
- package/dist/cli/commands/telemetry/enable.js.map +0 -1
- package/dist/cli/commands/telemetry/enable.mjs +0 -86
- package/dist/cli/commands/telemetry/enable.mjs.map +0 -1
- package/dist/cli/commands/templates/generate.js +0 -11
- package/dist/cli/commands/templates/generate.js.map +0 -1
- package/dist/cli/commands/templates/generate.mjs +0 -11
- package/dist/cli/commands/templates/generate.mjs.map +0 -1
- package/dist/cli/commands/transfer/action.js +0 -130
- package/dist/cli/commands/transfer/action.js.map +0 -1
- package/dist/cli/commands/transfer/action.mjs +0 -131
- package/dist/cli/commands/transfer/action.mjs.map +0 -1
- package/dist/cli/commands/transfer/command.js +0 -85
- package/dist/cli/commands/transfer/command.js.map +0 -1
- package/dist/cli/commands/transfer/command.mjs +0 -84
- package/dist/cli/commands/transfer/command.mjs.map +0 -1
- package/dist/cli/commands/ts/generate-types.js +0 -36
- package/dist/cli/commands/ts/generate-types.js.map +0 -1
- package/dist/cli/commands/ts/generate-types.mjs +0 -34
- package/dist/cli/commands/ts/generate-types.mjs.map +0 -1
- package/dist/cli/commands/version.js +0 -13
- package/dist/cli/commands/version.js.map +0 -1
- package/dist/cli/commands/version.mjs +0 -13
- package/dist/cli/commands/version.mjs.map +0 -1
- package/dist/cli/index.js +0 -79
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/index.mjs +0 -79
- package/dist/cli/index.mjs.map +0 -1
- package/dist/cli/utils/commander.js +0 -111
- package/dist/cli/utils/commander.js.map +0 -1
- package/dist/cli/utils/commander.mjs +0 -108
- package/dist/cli/utils/commander.mjs.map +0 -1
- package/dist/cli/utils/data-transfer.js +0 -354
- package/dist/cli/utils/data-transfer.js.map +0 -1
- package/dist/cli/utils/data-transfer.mjs +0 -350
- package/dist/cli/utils/data-transfer.mjs.map +0 -1
- package/dist/cli/utils/helpers.js +0 -102
- package/dist/cli/utils/helpers.js.map +0 -1
- package/dist/cli/utils/helpers.mjs +0 -100
- package/dist/cli/utils/helpers.mjs.map +0 -1
- package/dist/cli/utils/logger.js +0 -137
- package/dist/cli/utils/logger.js.map +0 -1
- package/dist/cli/utils/logger.mjs +0 -116
- package/dist/cli/utils/logger.mjs.map +0 -1
- package/dist/cli/utils/telemetry.js +0 -22
- package/dist/cli/utils/telemetry.js.map +0 -1
- package/dist/cli/utils/telemetry.mjs +0 -22
- package/dist/cli/utils/telemetry.mjs.map +0 -1
- package/dist/cli/utils/tsconfig.js +0 -26
- package/dist/cli/utils/tsconfig.js.map +0 -1
- package/dist/cli/utils/tsconfig.mjs +0 -23
- package/dist/cli/utils/tsconfig.mjs.map +0 -1
- package/dist/node/build.js +0 -76
- package/dist/node/build.js.map +0 -1
- package/dist/node/build.mjs +0 -58
- package/dist/node/build.mjs.map +0 -1
- package/dist/node/core/admin-customisations.js +0 -24
- package/dist/node/core/admin-customisations.js.map +0 -1
- package/dist/node/core/admin-customisations.mjs +0 -22
- package/dist/node/core/admin-customisations.mjs.map +0 -1
- package/dist/node/core/aliases.js +0 -33
- package/dist/node/core/aliases.js.map +0 -1
- package/dist/node/core/aliases.mjs +0 -31
- package/dist/node/core/aliases.mjs.map +0 -1
- package/dist/node/core/config.js +0 -18
- package/dist/node/core/config.js.map +0 -1
- package/dist/node/core/config.mjs +0 -16
- package/dist/node/core/config.mjs.map +0 -1
- package/dist/node/core/dependencies.js +0 -163
- package/dist/node/core/dependencies.js.map +0 -1
- package/dist/node/core/dependencies.mjs +0 -155
- package/dist/node/core/dependencies.mjs.map +0 -1
- package/dist/node/core/env.js +0 -26
- package/dist/node/core/env.js.map +0 -1
- package/dist/node/core/env.mjs +0 -23
- package/dist/node/core/env.mjs.map +0 -1
- package/dist/node/core/errors.js +0 -33
- package/dist/node/core/errors.js.map +0 -1
- package/dist/node/core/errors.mjs +0 -29
- package/dist/node/core/errors.mjs.map +0 -1
- package/dist/node/core/files.js +0 -45
- package/dist/node/core/files.js.map +0 -1
- package/dist/node/core/files.mjs +0 -43
- package/dist/node/core/files.mjs.map +0 -1
- package/dist/node/core/managers.js +0 -17
- package/dist/node/core/managers.js.map +0 -1
- package/dist/node/core/managers.mjs +0 -17
- package/dist/node/core/managers.mjs.map +0 -1
- package/dist/node/core/monorepo.js +0 -23
- package/dist/node/core/monorepo.js.map +0 -1
- package/dist/node/core/monorepo.mjs +0 -20
- package/dist/node/core/monorepo.mjs.map +0 -1
- package/dist/node/core/plugins.js +0 -116
- package/dist/node/core/plugins.js.map +0 -1
- package/dist/node/core/plugins.mjs +0 -111
- package/dist/node/core/plugins.mjs.map +0 -1
- package/dist/node/core/timer.js +0 -27
- package/dist/node/core/timer.js.map +0 -1
- package/dist/node/core/timer.mjs +0 -27
- package/dist/node/core/timer.mjs.map +0 -1
- package/dist/node/create-build-context.js +0 -101
- package/dist/node/create-build-context.js.map +0 -1
- package/dist/node/create-build-context.mjs +0 -96
- package/dist/node/create-build-context.mjs.map +0 -1
- package/dist/node/develop.js +0 -275
- package/dist/node/develop.js.map +0 -1
- package/dist/node/develop.mjs +0 -252
- package/dist/node/develop.mjs.map +0 -1
- package/dist/node/staticFiles.js +0 -102
- package/dist/node/staticFiles.js.map +0 -1
- package/dist/node/staticFiles.mjs +0 -76
- package/dist/node/staticFiles.mjs.map +0 -1
- package/dist/node/vite/build.js +0 -34
- package/dist/node/vite/build.js.map +0 -1
- package/dist/node/vite/build.mjs +0 -12
- package/dist/node/vite/build.mjs.map +0 -1
- package/dist/node/vite/config.js +0 -106
- package/dist/node/vite/config.js.map +0 -1
- package/dist/node/vite/config.mjs +0 -103
- package/dist/node/vite/config.mjs.map +0 -1
- package/dist/node/vite/plugins.js +0 -43
- package/dist/node/vite/plugins.js.map +0 -1
- package/dist/node/vite/plugins.mjs +0 -43
- package/dist/node/vite/plugins.mjs.map +0 -1
- package/dist/node/vite/watch.js +0 -103
- package/dist/node/vite/watch.js.map +0 -1
- package/dist/node/vite/watch.mjs +0 -77
- package/dist/node/vite/watch.mjs.map +0 -1
- package/dist/node/webpack/build.js +0 -41
- package/dist/node/webpack/build.js.map +0 -1
- package/dist/node/webpack/build.mjs +0 -39
- package/dist/node/webpack/build.mjs.map +0 -1
- package/dist/node/webpack/config.js +0 -259
- package/dist/node/webpack/config.js.map +0 -1
- package/dist/node/webpack/config.mjs +0 -228
- package/dist/node/webpack/config.mjs.map +0 -1
- package/dist/node/webpack/watch.js +0 -95
- package/dist/node/webpack/watch.js.map +0 -1
- package/dist/node/webpack/watch.mjs +0 -90
- 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":"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"}
|
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
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
|