@bleedingdev/modern-js-app-tools 3.8.2-ultramodern.9 → 3.8.3-ultramodern.2
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/bin/modern-bundle-docs.js +11 -0
- package/bin/modern.js +11 -0
- package/dist/cjs/builder/generator/getBuilderEnvironments.js +13 -241
- package/dist/cjs/builder/generator/index.js +0 -1
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +37 -9
- package/dist/cjs/builder/shared/builderPlugins/index.js +6 -13
- package/dist/cjs/builder/shared/bundlerPlugins/index.js +6 -13
- package/dist/cjs/builder/shared/lazyCompilation.js +9 -9
- package/dist/cjs/bundleDocs.js +1 -1
- package/dist/cjs/index.js +59 -60
- package/dist/cjs/plugins/analyze/getServerRoutes.js +1 -1
- package/dist/cjs/plugins/analyze/isDefaultExportFunction.js +1 -9
- package/dist/cjs/plugins/backend-federation/codegen.js +2 -1
- package/dist/cjs/plugins/backend-federation/config.js +2 -2
- package/dist/cjs/plugins/backend-federation/emit.js +6 -4
- package/dist/cjs/plugins/deploy/index.js +4 -4
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js +23 -149
- package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.cjs +41 -62
- package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.mjs +41 -63
- package/dist/cjs/plugins/deploy/platforms/templates/node-entry.cjs +35 -52
- package/dist/cjs/plugins/deploy/platforms/templates/node-entry.mjs +35 -53
- package/dist/cjs/plugins/deploy/platforms/templates/vercel-entry.cjs +41 -61
- package/dist/cjs/plugins/deploy/platforms/templates/vercel-entry.mjs +40 -61
- package/dist/cjs/plugins/ultramodernReleaseEnvelope.js +3 -59
- package/dist/cjs/presetUltramodern.js +15 -8
- package/dist/cjs/run/index.js +9 -9
- package/dist/cjs/utils/env.js +1 -1
- package/dist/cjs/utils/register.js +6 -3
- package/dist/esm/builder/generator/getBuilderEnvironments.mjs +12 -231
- package/dist/esm/builder/generator/index.mjs +1 -2
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.mjs +34 -9
- package/dist/esm/builder/shared/builderPlugins/index.mjs +0 -1
- package/dist/esm/builder/shared/bundlerPlugins/index.mjs +0 -1
- package/dist/esm/builder/shared/lazyCompilation.mjs +4 -4
- package/dist/esm/bundleDocs.mjs +1 -1
- package/dist/esm/index.mjs +3 -3
- package/dist/esm/plugins/analyze/getServerRoutes.mjs +1 -1
- package/dist/esm/plugins/analyze/isDefaultExportFunction.mjs +1 -9
- package/dist/esm/plugins/backend-federation/codegen.mjs +2 -1
- package/dist/esm/plugins/backend-federation/config.mjs +1 -1
- package/dist/esm/plugins/backend-federation/emit.mjs +5 -3
- package/dist/esm/plugins/deploy/index.mjs +1 -1
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +1 -133
- package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.cjs +41 -62
- package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.mjs +41 -63
- package/dist/esm/plugins/deploy/platforms/templates/node-entry.cjs +35 -52
- package/dist/esm/plugins/deploy/platforms/templates/node-entry.mjs +35 -53
- package/dist/esm/plugins/deploy/platforms/templates/vercel-entry.cjs +41 -61
- package/dist/esm/plugins/deploy/platforms/templates/vercel-entry.mjs +40 -61
- package/dist/esm/plugins/ultramodernReleaseEnvelope.mjs +3 -49
- package/dist/esm/presetUltramodern.mjs +8 -5
- package/dist/esm/run/index.mjs +9 -9
- package/dist/esm/utils/env.mjs +1 -1
- package/dist/esm/utils/register.mjs +6 -3
- package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +12 -234
- package/dist/esm-node/builder/generator/index.mjs +1 -2
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.mjs +34 -9
- package/dist/esm-node/builder/shared/builderPlugins/index.mjs +0 -1
- package/dist/esm-node/builder/shared/bundlerPlugins/index.mjs +0 -1
- package/dist/esm-node/builder/shared/lazyCompilation.mjs +4 -4
- package/dist/esm-node/bundleDocs.mjs +1 -1
- package/dist/esm-node/index.mjs +3 -3
- package/dist/esm-node/plugins/analyze/getServerRoutes.mjs +1 -1
- package/dist/esm-node/plugins/analyze/isDefaultExportFunction.mjs +1 -9
- package/dist/esm-node/plugins/backend-federation/codegen.mjs +2 -1
- package/dist/esm-node/plugins/backend-federation/config.mjs +1 -1
- package/dist/esm-node/plugins/backend-federation/emit.mjs +5 -3
- package/dist/esm-node/plugins/deploy/index.mjs +1 -1
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +1 -133
- package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.cjs +41 -62
- package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.mjs +41 -63
- package/dist/esm-node/plugins/deploy/platforms/templates/node-entry.cjs +35 -52
- package/dist/esm-node/plugins/deploy/platforms/templates/node-entry.mjs +35 -53
- package/dist/esm-node/plugins/deploy/platforms/templates/vercel-entry.cjs +41 -61
- package/dist/esm-node/plugins/deploy/platforms/templates/vercel-entry.mjs +40 -61
- package/dist/esm-node/plugins/ultramodernReleaseEnvelope.mjs +3 -49
- package/dist/esm-node/presetUltramodern.mjs +8 -5
- package/dist/esm-node/run/index.mjs +9 -9
- package/dist/esm-node/utils/env.mjs +1 -1
- package/dist/esm-node/utils/register.mjs +6 -3
- package/dist/types/builder/generator/getBuilderEnvironments.d.ts +0 -29
- package/dist/types/builder/shared/builderPlugins/adapterSSR.d.ts +11 -0
- package/dist/types/builder/shared/builderPlugins/index.d.ts +0 -1
- package/dist/types/builder/shared/bundlerPlugins/index.d.ts +0 -1
- package/dist/types/builder/shared/lazyCompilation.d.ts +7 -7
- package/dist/types/plugins/analyze/getServerRoutes.d.ts +1 -1
- package/dist/types/plugins/backend-federation/codegen.d.ts +4 -1
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/index.d.ts +1 -18
- package/dist/types/presetUltramodern.d.ts +23 -2
- package/dist/types/types/config/deploy.d.ts +2 -2
- package/docs/community/showcase.md +3 -5
- package/docs/configure/app/bff/effect.md +7 -7
- package/docs/guides/advanced-features/bff/frameworks.md +1 -1
- package/docs/guides/basic-features/deploy.md +2 -2
- package/docs/guides/get-started/quick-start.md +10 -9
- package/docs/guides/get-started/tech-stack.md +1 -1
- package/docs/guides/get-started/ultramodern.md +123 -38
- package/docs/guides/troubleshooting/cli.md +1 -1
- package/docs/llms.txt +2 -2
- package/docs/tutorials/examples/csr-auth.md +1 -1
- package/package.json +16 -28
- package/rslib.config.mts +4 -7
- package/dist/cjs/builder/shared/builderPlugins/adapterLazyCompilation.js +0 -74
- package/dist/cjs/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.js +0 -72
- package/dist/cjs/plugins/deploy/platforms/cloudflare/artifacts.js +0 -127
- package/dist/cjs/plugins/deploy/platforms/cloudflare/constants.js +0 -141
- package/dist/cjs/plugins/deploy/platforms/cloudflare/delivery-unit.js +0 -139
- package/dist/cjs/plugins/deploy/platforms/cloudflare/i18n-worker.js +0 -135
- package/dist/cjs/plugins/deploy/platforms/cloudflare/index.js +0 -150
- package/dist/cjs/plugins/deploy/platforms/cloudflare/security-policies.js +0 -205
- package/dist/cjs/plugins/deploy/platforms/cloudflare/types.js +0 -18
- package/dist/cjs/plugins/deploy/platforms/cloudflare/utils.js +0 -66
- package/dist/cjs/plugins/deploy/platforms/cloudflare/worker-manifest.js +0 -208
- package/dist/cjs/plugins/deploy/platforms/cloudflare/wrangler-config.js +0 -204
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-contract.js +0 -108
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-plan.js +0 -93
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/identity.js +0 -83
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/issues.js +0 -54
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/manifest.js +0 -89
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.js +0 -151
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.js +0 -378
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +0 -251
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +0 -191
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +0 -514
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +0 -1012
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +0 -363
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +0 -93
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/cjs/types/config/cloudflareDeploy.js +0 -18
- package/dist/cjs/ultramodern-release-envelope/canonical.js +0 -68
- package/dist/cjs/ultramodern-release-envelope/framework-output.js +0 -649
- package/dist/cjs/ultramodern-release-envelope/index.js +0 -399
- package/dist/cjs/ultramodern-release-envelope/types.js +0 -51
- package/dist/cjs/ultramodern-release-identity.js +0 -110
- package/dist/esm/builder/shared/builderPlugins/adapterLazyCompilation.mjs +0 -36
- package/dist/esm/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.mjs +0 -30
- package/dist/esm/plugins/deploy/platforms/cloudflare/artifacts.mjs +0 -64
- package/dist/esm/plugins/deploy/platforms/cloudflare/constants.mjs +0 -34
- package/dist/esm/plugins/deploy/platforms/cloudflare/delivery-unit.mjs +0 -88
- package/dist/esm/plugins/deploy/platforms/cloudflare/i18n-worker.mjs +0 -97
- package/dist/esm/plugins/deploy/platforms/cloudflare/index.mjs +0 -102
- package/dist/esm/plugins/deploy/platforms/cloudflare/security-policies.mjs +0 -167
- package/dist/esm/plugins/deploy/platforms/cloudflare/types.mjs +0 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare/utils.mjs +0 -12
- package/dist/esm/plugins/deploy/platforms/cloudflare/worker-manifest.mjs +0 -148
- package/dist/esm/plugins/deploy/platforms/cloudflare/wrangler-config.mjs +0 -150
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-contract.mjs +0 -31
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-plan.mjs +0 -45
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/identity.mjs +0 -45
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/issues.mjs +0 -10
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/manifest.mjs +0 -51
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.mjs +0 -99
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +0 -313
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +0 -251
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +0 -191
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +0 -514
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +0 -1012
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +0 -363
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +0 -93
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/esm/types/config/cloudflareDeploy.mjs +0 -0
- package/dist/esm/ultramodern-release-envelope/canonical.mjs +0 -21
- package/dist/esm/ultramodern-release-envelope/framework-output.mjs +0 -573
- package/dist/esm/ultramodern-release-envelope/index.mjs +0 -335
- package/dist/esm/ultramodern-release-envelope/types.mjs +0 -7
- package/dist/esm/ultramodern-release-identity.mjs +0 -66
- package/dist/esm-node/builder/shared/builderPlugins/adapterLazyCompilation.mjs +0 -37
- package/dist/esm-node/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.mjs +0 -31
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/artifacts.mjs +0 -65
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/constants.mjs +0 -35
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/delivery-unit.mjs +0 -89
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/i18n-worker.mjs +0 -98
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/index.mjs +0 -103
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/security-policies.mjs +0 -168
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/types.mjs +0 -1
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/utils.mjs +0 -13
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/worker-manifest.mjs +0 -149
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/wrangler-config.mjs +0 -151
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-contract.mjs +0 -32
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-plan.mjs +0 -46
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/identity.mjs +0 -46
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/issues.mjs +0 -11
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/manifest.mjs +0 -52
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.mjs +0 -100
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +0 -314
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +0 -251
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +0 -191
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +0 -514
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +0 -1012
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +0 -363
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +0 -93
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/esm-node/types/config/cloudflareDeploy.mjs +0 -1
- package/dist/esm-node/ultramodern-release-envelope/canonical.mjs +0 -22
- package/dist/esm-node/ultramodern-release-envelope/framework-output.mjs +0 -574
- package/dist/esm-node/ultramodern-release-envelope/index.mjs +0 -336
- package/dist/esm-node/ultramodern-release-envelope/types.mjs +0 -8
- package/dist/esm-node/ultramodern-release-identity.mjs +0 -67
- package/dist/types/builder/shared/builderPlugins/adapterLazyCompilation.d.ts +0 -3
- package/dist/types/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.d.ts +0 -6
- package/dist/types/plugins/deploy/platforms/cloudflare/artifacts.d.ts +0 -15
- package/dist/types/plugins/deploy/platforms/cloudflare/constants.d.ts +0 -24
- package/dist/types/plugins/deploy/platforms/cloudflare/delivery-unit.d.ts +0 -23
- package/dist/types/plugins/deploy/platforms/cloudflare/i18n-worker.d.ts +0 -22
- package/dist/types/plugins/deploy/platforms/cloudflare/index.d.ts +0 -2
- package/dist/types/plugins/deploy/platforms/cloudflare/security-policies.d.ts +0 -51
- package/dist/types/plugins/deploy/platforms/cloudflare/types.d.ts +0 -5
- package/dist/types/plugins/deploy/platforms/cloudflare/utils.d.ts +0 -6
- package/dist/types/plugins/deploy/platforms/cloudflare/worker-manifest.d.ts +0 -122
- package/dist/types/plugins/deploy/platforms/cloudflare/wrangler-config.d.ts +0 -46
- package/dist/types/plugins/deploy/platforms/cloudflare-output-contract.d.ts +0 -14
- package/dist/types/plugins/deploy/platforms/cloudflare-output-plan.d.ts +0 -34
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/identity.d.ts +0 -4
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/issues.d.ts +0 -14
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/manifest.d.ts +0 -2
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.d.ts +0 -14
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.d.ts +0 -20
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.d.mts +0 -1
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.d.mts +0 -1
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.d.mts +0 -1
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.d.mts +0 -1
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.d.mts +0 -1
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.d.mts +0 -4
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.d.mts +0 -5
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.d.mts +0 -48
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +0 -13
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-path.d.mts +0 -21
- package/dist/types/types/config/cloudflareDeploy.d.ts +0 -161
- package/dist/types/ultramodern-release-envelope/canonical.d.ts +0 -5
- package/dist/types/ultramodern-release-envelope/framework-output.d.ts +0 -32
- package/dist/types/ultramodern-release-envelope/index.d.ts +0 -6
- package/dist/types/ultramodern-release-envelope/types.d.ts +0 -62
- package/dist/types/ultramodern-release-identity.d.ts +0 -16
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
const nodeVersion = /^(\d+)\.(\d+)\.(\d+)$/.exec(process.versions.node);
|
|
3
|
+
if (
|
|
4
|
+
!nodeVersion ||
|
|
5
|
+
+nodeVersion[1] < 26 ||
|
|
6
|
+
(+nodeVersion[1] === 26 && +nodeVersion[2] < 7)
|
|
7
|
+
) {
|
|
8
|
+
console.error(
|
|
9
|
+
`UltraModern.js requires Node.js >=26.7.0; detected v${process.versions.node}. Legacy Node runtimes and transpiler fallbacks are unsupported.`,
|
|
10
|
+
);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
2
13
|
// The CLI body lives in the compiled ESM output; a CommonJS shim keeps the
|
|
3
14
|
// shebang and stays executable on any Node without a loader.
|
|
4
15
|
const path = require('path');
|
package/bin/modern.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
const nodeVersion = /^(\d+)\.(\d+)\.(\d+)$/.exec(process.versions.node);
|
|
3
|
+
if (
|
|
4
|
+
!nodeVersion ||
|
|
5
|
+
+nodeVersion[1] < 26 ||
|
|
6
|
+
(+nodeVersion[1] === 26 && +nodeVersion[2] < 7)
|
|
7
|
+
) {
|
|
8
|
+
console.error(
|
|
9
|
+
`UltraModern.js requires Node.js >=26.7.0; detected v${process.versions.node}. Legacy Node runtimes and transpiler fallbacks are unsupported.`,
|
|
10
|
+
);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
2
13
|
const { INTERNAL_RUNTIME_PLUGINS } = require('@modern-js/utils');
|
|
3
14
|
|
|
4
15
|
const { version } = require('../package.json');
|
|
@@ -37,10 +37,7 @@ var __webpack_require__ = {};
|
|
|
37
37
|
var __webpack_exports__ = {};
|
|
38
38
|
__webpack_require__.r(__webpack_exports__);
|
|
39
39
|
__webpack_require__.d(__webpack_exports__, {
|
|
40
|
-
|
|
41
|
-
applyCloudflareWorkerRspackConfig: ()=>applyCloudflareWorkerRspackConfig,
|
|
42
|
-
getBuilderEnvironments: ()=>getBuilderEnvironments,
|
|
43
|
-
getCloudflareWorkerRspackConfig: ()=>getCloudflareWorkerRspackConfig
|
|
40
|
+
getBuilderEnvironments: ()=>getBuilderEnvironments
|
|
44
41
|
});
|
|
45
42
|
const external_node_fs_namespaceObject = require("node:fs");
|
|
46
43
|
var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
|
|
@@ -48,30 +45,6 @@ const external_node_path_namespaceObject = require("node:path");
|
|
|
48
45
|
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
49
46
|
const builder_namespaceObject = require("@modern-js/builder");
|
|
50
47
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
51
|
-
const cloudflare_output_contract_js_namespaceObject = require("../../plugins/deploy/platforms/cloudflare-output-contract.js");
|
|
52
|
-
const BFF_EFFECT_WORKER_ENTRY_NAME = '__modern_bff_effect';
|
|
53
|
-
const BFF_EFFECT_WORKER_RUNTIME_QUERY = 'modern-bff-runtime';
|
|
54
|
-
const MF_SSR_DATA_FETCH_RUNTIME_PLUGIN = '@module-federation/modern-js-v3/ssr-inject-data-fetch-function-plugin';
|
|
55
|
-
const MF_SSR_DEV_RUNTIME_PLUGIN = '@module-federation/modern-js-v3/ssr-dev-plugin';
|
|
56
|
-
const JS_OR_TS_EXTS = [
|
|
57
|
-
'.js',
|
|
58
|
-
'.jsx',
|
|
59
|
-
'.ts',
|
|
60
|
-
'.tsx',
|
|
61
|
-
'.mjs',
|
|
62
|
-
'.mts',
|
|
63
|
-
'.cjs',
|
|
64
|
-
'.cts'
|
|
65
|
-
];
|
|
66
|
-
const CLOUDFLARE_WORKER_COMPAT_TEMPLATE_DIR = external_node_path_default().resolve(__dirname, '../../plugins/deploy/platforms/templates');
|
|
67
|
-
function findExistingFile(candidates) {
|
|
68
|
-
return candidates.find((candidate)=>external_node_fs_default().existsSync(candidate));
|
|
69
|
-
}
|
|
70
|
-
function resolveJsOrTsEntry(entryWithoutOrWithExt) {
|
|
71
|
-
const extension = external_node_path_default().extname(entryWithoutOrWithExt);
|
|
72
|
-
if (JS_OR_TS_EXTS.includes(extension)) return external_node_fs_default().existsSync(entryWithoutOrWithExt) ? entryWithoutOrWithExt : void 0;
|
|
73
|
-
return findExistingFile(JS_OR_TS_EXTS.map((extension)=>`${entryWithoutOrWithExt}${extension}`));
|
|
74
|
-
}
|
|
75
48
|
function resolvePackageEntry(packageName, paths) {
|
|
76
49
|
try {
|
|
77
50
|
return external_node_fs_default().realpathSync(require.resolve(packageName, {
|
|
@@ -115,94 +88,6 @@ function findPackageRoot(entryFile, packageName) {
|
|
|
115
88
|
function setAliasIfPresent(alias, name, value) {
|
|
116
89
|
if (value) alias.set(name, value);
|
|
117
90
|
}
|
|
118
|
-
function getCloudflareWorkerCompatFile(file) {
|
|
119
|
-
return external_node_path_default().join(CLOUDFLARE_WORKER_COMPAT_TEMPLATE_DIR, file);
|
|
120
|
-
}
|
|
121
|
-
function getCloudflareWorkerNodeExternals() {
|
|
122
|
-
return Object.fromEntries(cloudflare_output_contract_js_namespaceObject.CLOUDFLARE_WORKER_NODE_BUILTINS.flatMap((builtin)=>{
|
|
123
|
-
const nodeBuiltin = `node:${builtin}`;
|
|
124
|
-
return [
|
|
125
|
-
[
|
|
126
|
-
builtin,
|
|
127
|
-
`module-import ${nodeBuiltin}`
|
|
128
|
-
],
|
|
129
|
-
[
|
|
130
|
-
nodeBuiltin,
|
|
131
|
-
`module-import ${nodeBuiltin}`
|
|
132
|
-
]
|
|
133
|
-
];
|
|
134
|
-
}));
|
|
135
|
-
}
|
|
136
|
-
const reserveWorkerChunkName = (baseName, reservedOutputNames)=>{
|
|
137
|
-
let name = baseName;
|
|
138
|
-
while(reservedOutputNames.has(normalizeWorkerOutputName(name)))name = `${name}_`;
|
|
139
|
-
return name;
|
|
140
|
-
};
|
|
141
|
-
const normalizeWorkerOutputName = (name)=>external_node_path_default().posix.normalize(name.replace(/\\/gu, '/')).toLowerCase();
|
|
142
|
-
function getCloudflareWorkerRspackConfig(workerEntryNames) {
|
|
143
|
-
const entryNames = [
|
|
144
|
-
...workerEntryNames
|
|
145
|
-
];
|
|
146
|
-
for (const entryName of entryNames){
|
|
147
|
-
const slashName = entryName.replace(/\\/gu, '/');
|
|
148
|
-
const normalizedName = external_node_path_default().posix.normalize(slashName);
|
|
149
|
-
if (entryName !== slashName || normalizedName !== slashName || '.' === normalizedName || normalizedName.startsWith('../') || external_node_path_default().posix.isAbsolute(normalizedName) || external_node_path_default().win32.isAbsolute(slashName) || /^[A-Za-z]:/u.test(slashName)) throw new Error(`Cloudflare worker entry name "${entryName}" must be a canonical relative output path without dot segments or backslashes.`);
|
|
150
|
-
}
|
|
151
|
-
const reservedNames = new Set(entryNames.map(normalizeWorkerOutputName));
|
|
152
|
-
const runtimeName = reserveWorkerChunkName('__modern_worker_runtime', reservedNames);
|
|
153
|
-
reservedNames.add(normalizeWorkerOutputName(runtimeName));
|
|
154
|
-
const sharedName = reserveWorkerChunkName('__modern_worker_shared', reservedNames);
|
|
155
|
-
return {
|
|
156
|
-
experiments: {
|
|
157
|
-
outputModule: true
|
|
158
|
-
},
|
|
159
|
-
externals: getCloudflareWorkerNodeExternals(),
|
|
160
|
-
externalsType: 'module-import',
|
|
161
|
-
module: {
|
|
162
|
-
parser: {
|
|
163
|
-
javascript: {
|
|
164
|
-
dynamicImportMode: 'eager'
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
optimization: {
|
|
169
|
-
runtimeChunk: {
|
|
170
|
-
name: runtimeName
|
|
171
|
-
},
|
|
172
|
-
splitChunks: {
|
|
173
|
-
chunks: 'all',
|
|
174
|
-
minSize: 0,
|
|
175
|
-
name: sharedName
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
function applyCloudflareWorkerRspackConfig(chain, workerEntryNames) {
|
|
181
|
-
const config = getCloudflareWorkerRspackConfig(workerEntryNames);
|
|
182
|
-
chain.experiments(config.experiments);
|
|
183
|
-
chain.externals(config.externals);
|
|
184
|
-
chain.externalsType(config.externalsType);
|
|
185
|
-
chain.module.parser.merge(config.module.parser);
|
|
186
|
-
chain.optimization.runtimeChunk(config.optimization.runtimeChunk);
|
|
187
|
-
chain.optimization.splitChunks(config.optimization.splitChunks);
|
|
188
|
-
}
|
|
189
|
-
function applyCloudflareWorkerMfRuntimeBoundary(chain) {
|
|
190
|
-
chain.plugins.delete('plugin-module-federation');
|
|
191
|
-
chain.resolve.alias.set(`${MF_SSR_DATA_FETCH_RUNTIME_PLUGIN}$`, getCloudflareWorkerCompatFile('cloudflare-worker-mf-ssr-runtime-plugin.mjs'));
|
|
192
|
-
chain.resolve.alias.set(`${MF_SSR_DEV_RUNTIME_PLUGIN}$`, getCloudflareWorkerCompatFile('cloudflare-worker-mf-ssr-runtime-plugin.mjs'));
|
|
193
|
-
}
|
|
194
|
-
function getEffectBffEntry(normalizedConfig, appContext) {
|
|
195
|
-
if (!normalizedConfig.bff || 'hono' === normalizedConfig.bff.runtimeFramework) return;
|
|
196
|
-
const configuredEntry = normalizedConfig.bff.effect?.entry;
|
|
197
|
-
if (configuredEntry) {
|
|
198
|
-
const entryWithoutOrWithExtension = external_node_path_default().isAbsolute(configuredEntry) ? configuredEntry : external_node_path_default().resolve(appContext.appDirectory, configuredEntry);
|
|
199
|
-
return resolveJsOrTsEntry(entryWithoutOrWithExtension);
|
|
200
|
-
}
|
|
201
|
-
return resolveJsOrTsEntry(external_node_path_default().resolve(appContext.apiDirectory, 'index'));
|
|
202
|
-
}
|
|
203
|
-
function isCloudflareWorkerDeploy(normalizedConfig) {
|
|
204
|
-
return normalizedConfig.deploy?.target === 'cloudflare' || 'cloudflare' === process.env.MODERNJS_DEPLOY;
|
|
205
|
-
}
|
|
206
91
|
function getConsumingReactRuntimeAliases(appContext) {
|
|
207
92
|
const resolvePaths = [
|
|
208
93
|
appContext.appDirectory,
|
|
@@ -256,11 +141,6 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
|
|
|
256
141
|
const v = entries[entry];
|
|
257
142
|
serverEntries[entry] = v.map((entry)=>entry.replace('index.jsx', 'index.server.jsx')).map((entry)=>entry.replace('bootstrap.jsx', 'bootstrap.server.jsx'));
|
|
258
143
|
}
|
|
259
|
-
const cloudflareWorkerServerEntries = {};
|
|
260
|
-
for(const entry in entries){
|
|
261
|
-
const v = entries[entry];
|
|
262
|
-
cloudflareWorkerServerEntries[entry] = v.map((entry)=>entry.replace('index.jsx', 'index.server.jsx')).map((entry)=>entry.replace('bootstrap.jsx', 'index.server.jsx'));
|
|
263
|
-
}
|
|
264
144
|
const environments = {
|
|
265
145
|
client: {
|
|
266
146
|
output: {
|
|
@@ -285,133 +165,25 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
|
|
|
285
165
|
}
|
|
286
166
|
};
|
|
287
167
|
const useWorkerTarget = (0, utils_namespaceObject.isServiceWorker)(normalizedConfig);
|
|
288
|
-
if (useWorkerTarget) {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
const renderRscWorkerFile = useCloudflareModuleWorker ? resolvePackageFile('@modern-js/render', 'dist/esm/rscWorker.mjs', [
|
|
300
|
-
appContext.appDirectory,
|
|
301
|
-
process.cwd()
|
|
302
|
-
]) : void 0;
|
|
303
|
-
const reactFile = useCloudflareModuleWorker ? resolvePackageFile('react', 'index.js', [
|
|
304
|
-
appContext.appDirectory,
|
|
305
|
-
process.cwd()
|
|
306
|
-
]) : void 0;
|
|
307
|
-
const reactJsxRuntimeFile = useCloudflareModuleWorker ? resolvePackageFile('react', 'jsx-runtime.js', [
|
|
308
|
-
appContext.appDirectory,
|
|
309
|
-
process.cwd()
|
|
310
|
-
]) : void 0;
|
|
311
|
-
const reactJsxDevRuntimeFile = useCloudflareModuleWorker ? resolvePackageFile('react', 'jsx-dev-runtime.js', [
|
|
312
|
-
appContext.appDirectory,
|
|
313
|
-
process.cwd()
|
|
314
|
-
]) : void 0;
|
|
315
|
-
const reactDomFile = useCloudflareModuleWorker ? resolvePackageFile('react-dom', 'index.js', [
|
|
316
|
-
appContext.appDirectory,
|
|
317
|
-
process.cwd()
|
|
318
|
-
]) : void 0;
|
|
319
|
-
const reactDomServerEdgeFile = useCloudflareModuleWorker ? resolvePackageFile('react-dom', 'server.edge.js', [
|
|
320
|
-
appContext.appDirectory,
|
|
321
|
-
process.cwd()
|
|
322
|
-
]) : void 0;
|
|
323
|
-
const loadableComponentFile = useCloudflareModuleWorker ? resolvePackageFile('@loadable/component', 'dist/esm/loadable.esm.mjs', [
|
|
324
|
-
appContext.appDirectory,
|
|
325
|
-
process.cwd(),
|
|
326
|
-
CLOUDFLARE_WORKER_COMPAT_TEMPLATE_DIR
|
|
327
|
-
]) : void 0;
|
|
328
|
-
const loadableServerWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-loadable-server.mjs') : void 0;
|
|
329
|
-
const fsPromisesWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-fs-promises.mjs') : void 0;
|
|
330
|
-
const pathWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-path.mjs') : void 0;
|
|
331
|
-
const baseWorkerEntries = useCloudflareModuleWorker ? cloudflareWorkerServerEntries : serverEntries;
|
|
332
|
-
const workerEntries = effectApiEntry ? {
|
|
333
|
-
...baseWorkerEntries,
|
|
334
|
-
[BFF_EFFECT_WORKER_ENTRY_NAME]: [
|
|
335
|
-
`${effectApiEntry}?${BFF_EFFECT_WORKER_RUNTIME_QUERY}`
|
|
336
|
-
]
|
|
337
|
-
} : baseWorkerEntries;
|
|
338
|
-
environments[builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME] = {
|
|
339
|
-
output: {
|
|
340
|
-
target: useCloudflareModuleWorker ? 'web' : 'web-worker',
|
|
341
|
-
...useCloudflareModuleWorker ? {
|
|
342
|
-
module: true
|
|
343
|
-
} : {}
|
|
344
|
-
},
|
|
345
|
-
source: {
|
|
346
|
-
entry: workerEntries
|
|
347
|
-
},
|
|
348
|
-
tools: {
|
|
349
|
-
htmlPlugin: false,
|
|
350
|
-
...useCloudflareModuleWorker ? {
|
|
351
|
-
bundlerChain: (chain)=>{
|
|
352
|
-
applyCloudflareWorkerRspackConfig(chain, Object.keys(workerEntries));
|
|
353
|
-
chain.output.module(true).library({
|
|
354
|
-
type: 'module'
|
|
355
|
-
}).publicPath('/').chunkFormat('module').chunkLoading('import').workerChunkLoading('import');
|
|
356
|
-
for (const condition of [
|
|
357
|
-
'workerd',
|
|
358
|
-
'worker',
|
|
359
|
-
'webpack',
|
|
360
|
-
(0, utils_namespaceObject.isProd)() ? 'production' : 'development',
|
|
361
|
-
'import',
|
|
362
|
-
'require',
|
|
363
|
-
'module'
|
|
364
|
-
])chain.resolve.conditionNames.add(condition);
|
|
365
|
-
applyCloudflareWorkerMfRuntimeBoundary(chain);
|
|
366
|
-
if (tanstackRouterSsrServerFile) {
|
|
367
|
-
chain.resolve.alias.set('@tanstack/router-core/ssr/server$', tanstackRouterSsrServerFile);
|
|
368
|
-
chain.resolve.alias.set('@tanstack/router-core/ssr/server', tanstackRouterSsrServerFile);
|
|
369
|
-
}
|
|
370
|
-
if (runtimeRscWorkerFile) {
|
|
371
|
-
chain.resolve.alias.set('@modern-js/runtime/rsc/server$', runtimeRscWorkerFile);
|
|
372
|
-
chain.resolve.alias.set('@modern-js/runtime/rsc/server', runtimeRscWorkerFile);
|
|
373
|
-
}
|
|
374
|
-
if (renderRscWorkerFile) {
|
|
375
|
-
chain.resolve.alias.set('@modern-js/render/rsc$', renderRscWorkerFile);
|
|
376
|
-
chain.resolve.alias.set('@modern-js/render/rsc', renderRscWorkerFile);
|
|
377
|
-
chain.resolve.alias.set('@modern-js/render/rsc-worker$', renderRscWorkerFile);
|
|
378
|
-
}
|
|
379
|
-
setAliasIfPresent(chain.resolve.alias, 'react$', reactFile);
|
|
380
|
-
setAliasIfPresent(chain.resolve.alias, 'react/jsx-runtime$', reactJsxRuntimeFile);
|
|
381
|
-
setAliasIfPresent(chain.resolve.alias, 'react/jsx-dev-runtime$', reactJsxDevRuntimeFile);
|
|
382
|
-
setAliasIfPresent(chain.resolve.alias, 'react-dom$', reactDomFile);
|
|
383
|
-
setAliasIfPresent(chain.resolve.alias, 'react-dom/server.edge$', reactDomServerEdgeFile);
|
|
384
|
-
setAliasIfPresent(chain.resolve.alias, '@loadable/component$', loadableComponentFile);
|
|
385
|
-
setAliasIfPresent(chain.resolve.alias, '@loadable/server$', loadableServerWorkerFile);
|
|
386
|
-
setAliasIfPresent(chain.resolve.alias, 'fs/promises$', fsPromisesWorkerFile);
|
|
387
|
-
setAliasIfPresent(chain.resolve.alias, 'node:fs/promises$', fsPromisesWorkerFile);
|
|
388
|
-
setAliasIfPresent(chain.resolve.alias, 'path$', pathWorkerFile);
|
|
389
|
-
setAliasIfPresent(chain.resolve.alias, 'node:path$', pathWorkerFile);
|
|
390
|
-
chain.resolve.alias.set('react-server-dom-rspack/server.node$', 'react-server-dom-rspack/server.edge');
|
|
391
|
-
chain.resolve.alias.set('react-server-dom-rspack/server.node', 'react-server-dom-rspack/server.edge');
|
|
392
|
-
chain.resolve.alias.set('react-server-dom-rspack/client.node$', 'react-server-dom-rspack/client.edge');
|
|
393
|
-
chain.resolve.alias.set('react-server-dom-rspack/client.node', 'react-server-dom-rspack/client.edge');
|
|
394
|
-
chain.resolve.fallback.set('fs', false);
|
|
395
|
-
chain.resolve.fallback.set('node:fs', false);
|
|
396
|
-
}
|
|
397
|
-
} : {}
|
|
398
|
-
}
|
|
399
|
-
};
|
|
400
|
-
}
|
|
168
|
+
if (useWorkerTarget) environments[builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME] = {
|
|
169
|
+
output: {
|
|
170
|
+
target: 'web-worker'
|
|
171
|
+
},
|
|
172
|
+
source: {
|
|
173
|
+
entry: serverEntries
|
|
174
|
+
},
|
|
175
|
+
tools: {
|
|
176
|
+
htmlPlugin: false
|
|
177
|
+
}
|
|
178
|
+
};
|
|
401
179
|
return {
|
|
402
180
|
environments,
|
|
403
181
|
builderConfig: tempBuilderConfig
|
|
404
182
|
};
|
|
405
183
|
}
|
|
406
|
-
exports.applyCloudflareWorkerMfRuntimeBoundary = __webpack_exports__.applyCloudflareWorkerMfRuntimeBoundary;
|
|
407
|
-
exports.applyCloudflareWorkerRspackConfig = __webpack_exports__.applyCloudflareWorkerRspackConfig;
|
|
408
184
|
exports.getBuilderEnvironments = __webpack_exports__.getBuilderEnvironments;
|
|
409
|
-
exports.getCloudflareWorkerRspackConfig = __webpack_exports__.getCloudflareWorkerRspackConfig;
|
|
410
185
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
411
|
-
"
|
|
412
|
-
"applyCloudflareWorkerRspackConfig",
|
|
413
|
-
"getBuilderEnvironments",
|
|
414
|
-
"getCloudflareWorkerRspackConfig"
|
|
186
|
+
"getBuilderEnvironments"
|
|
415
187
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
416
188
|
Object.defineProperty(exports, '__esModule', {
|
|
417
189
|
value: true
|
|
@@ -70,7 +70,6 @@ async function generateBuilder(options, bundlerType) {
|
|
|
70
70
|
async function applyBuilderPlugins(builder, options) {
|
|
71
71
|
builder.addPlugins([
|
|
72
72
|
(0, index_js_namespaceObject.builderPluginAdapterBasic)(options),
|
|
73
|
-
(0, index_js_namespaceObject.builderPluginAdapterLazyCompilation)(options),
|
|
74
73
|
(0, index_js_namespaceObject.builderPluginAdapterSSR)(options),
|
|
75
74
|
(0, index_js_namespaceObject.builderPluginAdapterHtml)(options),
|
|
76
75
|
(0, index_js_namespaceObject.builderPluginAdapterPrecompress)(options),
|
|
@@ -28,26 +28,37 @@ var __webpack_require__ = {};
|
|
|
28
28
|
var __webpack_exports__ = {};
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
-
builderPluginAdapterSSR: ()=>builderPluginAdapterSSR
|
|
31
|
+
builderPluginAdapterSSR: ()=>builderPluginAdapterSSR,
|
|
32
|
+
getSSRLazyCompilation: ()=>getSSRLazyCompilation
|
|
32
33
|
});
|
|
34
|
+
const app_tools_extensions_namespaceObject = require("@modern-js/app-tools-extensions");
|
|
33
35
|
const builder_namespaceObject = require("@modern-js/builder");
|
|
34
36
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
35
37
|
const core_namespaceObject = require("@rsbuild/core");
|
|
36
38
|
const external_path_namespaceObject = require("path");
|
|
37
39
|
const utils_js_namespaceObject = require("../../../plugins/analyze/utils.js");
|
|
38
40
|
const index_js_namespaceObject = require("../bundlerPlugins/index.js");
|
|
41
|
+
const external_lazyCompilation_js_namespaceObject = require("../lazyCompilation.js");
|
|
39
42
|
const builderPluginAdapterSSR = (options)=>({
|
|
40
43
|
name: 'builder-plugin-adapter-modern-ssr',
|
|
41
44
|
setup (api) {
|
|
42
|
-
const { normalizedConfig, appContext } = options;
|
|
43
|
-
api.modifyRsbuildConfig((config)=>
|
|
45
|
+
const { normalizedConfig, appContext, eagerRouteComponentFilesByEntry } = options;
|
|
46
|
+
api.modifyRsbuildConfig((config)=>{
|
|
47
|
+
const merged = (0, core_namespaceObject.mergeRsbuildConfig)(config, {
|
|
44
48
|
html: {
|
|
45
49
|
inject: isStreamingSSR(normalizedConfig) ? 'head' : void 0
|
|
46
50
|
},
|
|
47
51
|
server: {
|
|
48
52
|
compress: isStreamingSSR(normalizedConfig) || (0, utils_namespaceObject.isUseRsc)(normalizedConfig) ? false : void 0
|
|
49
53
|
}
|
|
50
|
-
})
|
|
54
|
+
});
|
|
55
|
+
const lazyCompilation = getSSRLazyCompilation(merged.dev?.lazyCompilation, normalizedConfig, appContext, eagerRouteComponentFilesByEntry);
|
|
56
|
+
if (void 0 !== lazyCompilation) merged.dev = {
|
|
57
|
+
...merged.dev,
|
|
58
|
+
lazyCompilation
|
|
59
|
+
};
|
|
60
|
+
return merged;
|
|
61
|
+
});
|
|
51
62
|
api.modifyBundlerChain(async (chain, { target, isProd, HtmlPlugin: HtmlBundlerPlugin, isServer, environment })=>{
|
|
52
63
|
const builderConfig = environment.config;
|
|
53
64
|
const { normalizedConfig } = options;
|
|
@@ -83,6 +94,22 @@ const isStreamingSSR = (userConfig)=>{
|
|
|
83
94
|
}
|
|
84
95
|
return false;
|
|
85
96
|
};
|
|
97
|
+
function getSSRLazyCompilation(current, normalizedConfig, appContext, eagerRouteComponentFilesByEntry) {
|
|
98
|
+
if (!current || (0, utils_namespaceObject.isUseRsc)(normalizedConfig) || !isStreamingSSR(normalizedConfig)) return;
|
|
99
|
+
const plan = (0, external_lazyCompilation_js_namespaceObject.planSSRLazyCompilation)(current, (0, external_lazyCompilation_js_namespaceObject.aggregateEagerRouteComponentFiles)(eagerRouteComponentFilesByEntry));
|
|
100
|
+
if (!plan.apply) {
|
|
101
|
+
if (plan.unresolvedByEntry) warnUnresolvedRouteComponents(appContext.appDirectory, plan.unresolvedByEntry);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
return plan.lazyCompilation;
|
|
105
|
+
}
|
|
106
|
+
const warnedLazyApps = new Set();
|
|
107
|
+
function warnUnresolvedRouteComponents(appDirectory, unresolvedByEntry) {
|
|
108
|
+
if (warnedLazyApps.has(appDirectory)) return;
|
|
109
|
+
warnedLazyApps.add(appDirectory);
|
|
110
|
+
const detail = Array.from(unresolvedByEntry).map(([entry, comps])=>`${entry}: ${comps.join(', ')}`).join('; ');
|
|
111
|
+
utils_namespaceObject.logger.warn(`[lazyCompilation] Skipped stream SSR route-eager optimization because some route components could not be resolved to a file (${detail}). Lazy compilation may break first-screen CSS/JS for these routes.`);
|
|
112
|
+
}
|
|
86
113
|
function applyAsyncChunkHtmlPlugin({ chain, modernConfig, HtmlBundlerPlugin }) {
|
|
87
114
|
if (isStreamingSSR(modernConfig) || (0, utils_namespaceObject.isUseRsc)(modernConfig)) chain.plugin('html-async-chunk').use(index_js_namespaceObject.HtmlAsyncChunkPlugin, [
|
|
88
115
|
HtmlBundlerPlugin
|
|
@@ -96,7 +123,7 @@ function applyRouterPlugin(chain, pluginName, options, HtmlBundlerPlugin) {
|
|
|
96
123
|
const { enableInlineRouteManifests, disableInlineRouteManifests } = normalizedConfig.output;
|
|
97
124
|
const inlineRouteManifests = disableInlineRouteManifests ? !disableInlineRouteManifests : enableInlineRouteManifests;
|
|
98
125
|
if (existNestedRoutes || workerSSR) {
|
|
99
|
-
chain.plugin(`${pluginName}-css-extract-runtime`).use(
|
|
126
|
+
chain.plugin(`${pluginName}-css-extract-runtime`).use(app_tools_extensions_namespaceObject.CssExtractRuntimePlugin);
|
|
100
127
|
chain.plugin(pluginName).use(index_js_namespaceObject.RouterPlugin, [
|
|
101
128
|
{
|
|
102
129
|
HtmlBundlerPlugin,
|
|
@@ -130,10 +157,9 @@ function applyFilterEntriesBySSRConfig({ isProd, chain, appNormalizedConfig }) {
|
|
|
130
157
|
});
|
|
131
158
|
}
|
|
132
159
|
async function applySSRLoaderEntry(chain, optinos, isServer) {
|
|
133
|
-
const { appContext
|
|
160
|
+
const { appContext } = optinos;
|
|
134
161
|
const { internalDirectory } = appContext;
|
|
135
162
|
const { entrypoints } = appContext;
|
|
136
|
-
const isRsc = (0, utils_namespaceObject.isUseRsc)(normalizedConfig);
|
|
137
163
|
await Promise.all(entrypoints.map(async (entrypoint)=>{
|
|
138
164
|
const { entryName } = entrypoint;
|
|
139
165
|
const serverLoadersFile = (0, utils_js_namespaceObject.getServerCombinedModuleFile)(internalDirectory, entryName);
|
|
@@ -141,7 +167,7 @@ async function applySSRLoaderEntry(chain, optinos, isServer) {
|
|
|
141
167
|
await utils_namespaceObject.fs.access(serverLoadersFile, utils_namespaceObject.fs.constants.F_OK);
|
|
142
168
|
chain.entry(`${entryName}-server-loaders`).add(serverLoadersFile);
|
|
143
169
|
} catch (err) {}
|
|
144
|
-
else if (
|
|
170
|
+
else if ((0, utils_namespaceObject.isUseRsc)(optinos.normalizedConfig)) chain.entry(`${entryName}-server-loaders`).add("data:text/javascript,export%20{};");
|
|
145
171
|
}));
|
|
146
172
|
}
|
|
147
173
|
function applySSRDataLoader(chain, options) {
|
|
@@ -153,8 +179,10 @@ function applySSRDataLoader(chain, options) {
|
|
|
153
179
|
chain.module.rule('ssr-data-loader').test(reg).use('data-loader').loader(require.resolve('@modern-js/plugin-data-loader/loader')).end();
|
|
154
180
|
}
|
|
155
181
|
exports.builderPluginAdapterSSR = __webpack_exports__.builderPluginAdapterSSR;
|
|
182
|
+
exports.getSSRLazyCompilation = __webpack_exports__.getSSRLazyCompilation;
|
|
156
183
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
157
|
-
"builderPluginAdapterSSR"
|
|
184
|
+
"builderPluginAdapterSSR",
|
|
185
|
+
"getSSRLazyCompilation"
|
|
158
186
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
159
187
|
Object.defineProperty(exports, '__esModule', {
|
|
160
188
|
value: true
|
|
@@ -6,9 +6,6 @@ var __webpack_modules__ = {
|
|
|
6
6
|
"./adapterHtml" (module) {
|
|
7
7
|
module.exports = require("./adapterHtml.js");
|
|
8
8
|
},
|
|
9
|
-
"./adapterLazyCompilation" (module) {
|
|
10
|
-
module.exports = require("./adapterLazyCompilation.js");
|
|
11
|
-
},
|
|
12
9
|
"./adapterPrecompress" (module) {
|
|
13
10
|
module.exports = require("./adapterPrecompress.js");
|
|
14
11
|
},
|
|
@@ -74,21 +71,17 @@ var __webpack_exports__ = {};
|
|
|
74
71
|
var __rspack_reexport = {};
|
|
75
72
|
for(const __rspack_import_key in _adapterHtml__rspack_import_1)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_adapterHtml__rspack_import_1[__rspack_import_key];
|
|
76
73
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
77
|
-
var
|
|
78
|
-
var __rspack_reexport = {};
|
|
79
|
-
for(const __rspack_import_key in _adapterLazyCompilation__rspack_import_2)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_adapterLazyCompilation__rspack_import_2[__rspack_import_key];
|
|
80
|
-
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
81
|
-
var _adapterPrecompress__rspack_import_3 = __webpack_require__("./adapterPrecompress");
|
|
74
|
+
var _adapterPrecompress__rspack_import_2 = __webpack_require__("./adapterPrecompress");
|
|
82
75
|
var __rspack_reexport = {};
|
|
83
|
-
for(const __rspack_import_key in
|
|
76
|
+
for(const __rspack_import_key in _adapterPrecompress__rspack_import_2)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_adapterPrecompress__rspack_import_2[__rspack_import_key];
|
|
84
77
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
85
|
-
var
|
|
78
|
+
var _adapterSSR__rspack_import_3 = __webpack_require__("./adapterSSR");
|
|
86
79
|
var __rspack_reexport = {};
|
|
87
|
-
for(const __rspack_import_key in
|
|
80
|
+
for(const __rspack_import_key in _adapterSSR__rspack_import_3)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_adapterSSR__rspack_import_3[__rspack_import_key];
|
|
88
81
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
89
|
-
var
|
|
82
|
+
var _builderHooks__rspack_import_4 = __webpack_require__("./builderHooks");
|
|
90
83
|
var __rspack_reexport = {};
|
|
91
|
-
for(const __rspack_import_key in
|
|
84
|
+
for(const __rspack_import_key in _builderHooks__rspack_import_4)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_builderHooks__rspack_import_4[__rspack_import_key];
|
|
92
85
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
93
86
|
})();
|
|
94
87
|
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_modules__ = {
|
|
3
|
-
"./CssExtractRuntimePlugin" (module) {
|
|
4
|
-
module.exports = require("./CssExtractRuntimePlugin.js");
|
|
5
|
-
},
|
|
6
3
|
"./HtmlAsyncChunkPlugin" (module) {
|
|
7
4
|
module.exports = require("./HtmlAsyncChunkPlugin.js");
|
|
8
5
|
},
|
|
@@ -60,21 +57,17 @@ function __webpack_require__(moduleId) {
|
|
|
60
57
|
var __webpack_exports__ = {};
|
|
61
58
|
(()=>{
|
|
62
59
|
__webpack_require__.r(__webpack_exports__);
|
|
63
|
-
var
|
|
64
|
-
var __rspack_reexport = {};
|
|
65
|
-
for(const __rspack_import_key in _CssExtractRuntimePlugin__rspack_import_0)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_CssExtractRuntimePlugin__rspack_import_0[__rspack_import_key];
|
|
66
|
-
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
67
|
-
var _HtmlAsyncChunkPlugin__rspack_import_1 = __webpack_require__("./HtmlAsyncChunkPlugin");
|
|
60
|
+
var _HtmlAsyncChunkPlugin__rspack_import_0 = __webpack_require__("./HtmlAsyncChunkPlugin");
|
|
68
61
|
var __rspack_reexport = {};
|
|
69
|
-
for(const __rspack_import_key in
|
|
62
|
+
for(const __rspack_import_key in _HtmlAsyncChunkPlugin__rspack_import_0)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_HtmlAsyncChunkPlugin__rspack_import_0[__rspack_import_key];
|
|
70
63
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
71
|
-
var
|
|
64
|
+
var _HtmlBottomTemplate__rspack_import_1 = __webpack_require__("./HtmlBottomTemplate");
|
|
72
65
|
var __rspack_reexport = {};
|
|
73
|
-
for(const __rspack_import_key in
|
|
66
|
+
for(const __rspack_import_key in _HtmlBottomTemplate__rspack_import_1)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_HtmlBottomTemplate__rspack_import_1[__rspack_import_key];
|
|
74
67
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
75
|
-
var
|
|
68
|
+
var _RouterPlugin__rspack_import_2 = __webpack_require__("./RouterPlugin");
|
|
76
69
|
var __rspack_reexport = {};
|
|
77
|
-
for(const __rspack_import_key in
|
|
70
|
+
for(const __rspack_import_key in _RouterPlugin__rspack_import_2)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_RouterPlugin__rspack_import_2[__rspack_import_key];
|
|
78
71
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
79
72
|
})();
|
|
80
73
|
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
@@ -29,10 +29,10 @@ var __webpack_exports__ = {};
|
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
31
|
aggregateEagerRouteComponentFiles: ()=>aggregateEagerRouteComponentFiles,
|
|
32
|
-
|
|
32
|
+
buildSSRLazyCompilationTest: ()=>buildSSRLazyCompilationTest,
|
|
33
33
|
collectRouteComponentFiles: ()=>utils_namespaceObject.collectRouteComponentFiles,
|
|
34
34
|
normalizeModulePath: ()=>utils_namespaceObject.normalizeModulePath,
|
|
35
|
-
|
|
35
|
+
planSSRLazyCompilation: ()=>planSSRLazyCompilation
|
|
36
36
|
});
|
|
37
37
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
38
38
|
function aggregateEagerRouteComponentFiles(byEntry) {
|
|
@@ -47,7 +47,7 @@ function aggregateEagerRouteComponentFiles(byEntry) {
|
|
|
47
47
|
unresolvedByEntry
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function buildSSRLazyCompilationTest(eagerRouteFiles, userTest) {
|
|
51
51
|
const userTestFn = 'function' == typeof userTest ? userTest : userTest instanceof RegExp ? (m)=>userTest.test(m.resource || '') : ()=>true;
|
|
52
52
|
return (m)=>{
|
|
53
53
|
const resource = m.resource;
|
|
@@ -56,7 +56,7 @@ function buildRouteEagerLazyCompilationTest(eagerRouteFiles, userTest) {
|
|
|
56
56
|
return userTestFn(m);
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
|
-
function
|
|
59
|
+
function planSSRLazyCompilation(current, info) {
|
|
60
60
|
if (!current) return {
|
|
61
61
|
apply: false
|
|
62
62
|
};
|
|
@@ -73,21 +73,21 @@ function planRouteEagerLazyCompilation(current, info) {
|
|
|
73
73
|
apply: true,
|
|
74
74
|
lazyCompilation: {
|
|
75
75
|
...base,
|
|
76
|
-
test:
|
|
76
|
+
test: buildSSRLazyCompilationTest(info.files, userTest)
|
|
77
77
|
}
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
exports.aggregateEagerRouteComponentFiles = __webpack_exports__.aggregateEagerRouteComponentFiles;
|
|
81
|
-
exports.
|
|
81
|
+
exports.buildSSRLazyCompilationTest = __webpack_exports__.buildSSRLazyCompilationTest;
|
|
82
82
|
exports.collectRouteComponentFiles = __webpack_exports__.collectRouteComponentFiles;
|
|
83
83
|
exports.normalizeModulePath = __webpack_exports__.normalizeModulePath;
|
|
84
|
-
exports.
|
|
84
|
+
exports.planSSRLazyCompilation = __webpack_exports__.planSSRLazyCompilation;
|
|
85
85
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
86
86
|
"aggregateEagerRouteComponentFiles",
|
|
87
|
-
"
|
|
87
|
+
"buildSSRLazyCompilationTest",
|
|
88
88
|
"collectRouteComponentFiles",
|
|
89
89
|
"normalizeModulePath",
|
|
90
|
-
"
|
|
90
|
+
"planSSRLazyCompilation"
|
|
91
91
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
92
92
|
Object.defineProperty(exports, '__esModule', {
|
|
93
93
|
value: true
|
package/dist/cjs/bundleDocs.js
CHANGED
|
@@ -65,7 +65,7 @@ function bundleDocs({ source, target, indexFile = DEFAULT_INDEX_FILE, excludedDi
|
|
|
65
65
|
withFileTypes: true
|
|
66
66
|
})){
|
|
67
67
|
if (!entry.isFile()) continue;
|
|
68
|
-
const from = external_node_path_default().join(entry.parentPath
|
|
68
|
+
const from = external_node_path_default().join(entry.parentPath, entry.name);
|
|
69
69
|
const rel = external_node_path_default().relative(source, from);
|
|
70
70
|
if (!isBundled(rel)) continue;
|
|
71
71
|
const to = external_node_path_default().join(target, rel);
|