@bleedingdev/modern-js-app-tools-extensions 3.9.0-ultramodern.8 → 3.9.3-ultramodern.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/dist/cjs/backend-federation-build/codegen.js +29 -18
- package/dist/cjs/backend-federation-build/config.js +84 -45
- package/dist/cjs/backend-federation-build/emit.js +63 -22
- package/dist/cjs/build-config/build-environment.js +25 -162
- package/dist/cjs/build-config/internal-effect-discovery.js +143 -0
- package/dist/cjs/build-config/public.js +2 -5
- package/dist/cjs/build-config/remote-address.js +58 -0
- package/dist/cjs/cloudflare/artifacts.js +8 -19
- package/dist/cjs/cloudflare/delivery-unit.js +125 -43
- package/dist/cjs/cloudflare/index.js +14 -4
- package/dist/cjs/cloudflare/native-renderer.js +100 -0
- package/dist/cjs/cloudflare/renderer-identity.js +106 -0
- package/dist/cjs/cloudflare/worker-manifest.js +54 -13
- package/dist/cjs/cloudflare/worker-options.js +48 -0
- package/dist/cjs/cloudflare/wrangler-config.js +210 -13
- package/dist/cjs/cloudflare-builder.js +307 -89
- package/dist/cjs/cloudflare-output-contract.js +36 -4
- package/dist/cjs/cloudflare-output-verifier/identity.js +112 -23
- package/dist/cjs/cloudflare-output-verifier/index.js +10 -0
- package/dist/cjs/cloudflare-output-verifier/manifest.js +46 -0
- package/dist/cjs/cloudflare-output-verifier/mutation-policy.js +7 -1
- package/dist/cjs/cloudflare-output-verifier/worker-bundles.js +10 -5
- package/dist/cjs/config.js +10 -5
- package/dist/cjs/deploy-output/npmAliases.js +92 -6
- package/dist/cjs/deploy-output/plugin.js +27 -6
- package/dist/cjs/deploy-output/public-assets.js +146 -0
- package/dist/cjs/deploy-output/target.js +57 -1
- package/dist/cjs/deploy-output/trace-files.js +99 -0
- package/dist/cjs/module-federation-config/exposes.js +70 -0
- package/dist/cjs/module-federation-config/index.js +73 -0
- package/dist/cjs/module-federation-config/inspect.js +103 -0
- package/dist/cjs/module-federation-config/object-literal.js +87 -0
- package/dist/cjs/module-federation-config/syntax.js +151 -0
- package/dist/cjs/module-federation-config/types.js +18 -0
- package/dist/cjs/native-type-checker.js +164 -18
- package/dist/cjs/policy-defaults.js +110 -0
- package/dist/cjs/release-envelope/canonical.js +2 -9
- package/dist/cjs/release-envelope/contract.js +68 -0
- package/dist/cjs/release-envelope/framework-output.js +296 -105
- package/dist/cjs/release-envelope/index.js +150 -36
- package/dist/cjs/release-envelope/plugin.js +24 -15
- package/dist/cjs/release-envelope/renderer-output-stamp.js +170 -0
- package/dist/cjs/release-envelope/types.js +10 -8
- package/dist/cjs/release-identity.js +8 -5
- package/dist/cjs/renderer-build-identity.js +134 -0
- package/dist/cjs/runtime-package-resolution.js +118 -0
- package/dist/cjs/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/dist/cjs/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/dist/cjs/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/dist/cjs/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/dist/cjs/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/dist/cjs/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/dist/cjs/workspace-topology.js +84 -0
- package/dist/esm/backend-federation-build/codegen.mjs +29 -18
- package/dist/esm/backend-federation-build/config.mjs +74 -38
- package/dist/esm/backend-federation-build/emit.mjs +64 -23
- package/dist/esm/build-config/build-environment.mjs +26 -160
- package/dist/esm/build-config/internal-effect-discovery.mjs +102 -0
- package/dist/esm/build-config/public.mjs +1 -1
- package/dist/esm/build-config/remote-address.mjs +20 -0
- package/dist/esm/cloudflare/artifacts.mjs +8 -19
- package/dist/esm/cloudflare/delivery-unit.mjs +124 -45
- package/dist/esm/cloudflare/index.mjs +15 -5
- package/dist/esm/cloudflare/native-renderer.mjs +48 -0
- package/dist/esm/cloudflare/renderer-identity.mjs +57 -0
- package/dist/esm/cloudflare/worker-manifest.mjs +55 -14
- package/dist/esm/cloudflare/worker-options.mjs +10 -0
- package/dist/esm/cloudflare/wrangler-config.mjs +203 -12
- package/dist/esm/cloudflare-builder.mjs +301 -89
- package/dist/esm/cloudflare-output-contract.mjs +29 -3
- package/dist/esm/cloudflare-output-verifier/identity.mjs +113 -24
- package/dist/esm/cloudflare-output-verifier/index.mjs +10 -0
- package/dist/esm/cloudflare-output-verifier/manifest.mjs +46 -0
- package/dist/esm/cloudflare-output-verifier/mutation-policy.mjs +7 -1
- package/dist/esm/cloudflare-output-verifier/worker-bundles.mjs +11 -6
- package/dist/esm/config.mjs +3 -1
- package/dist/esm/deploy-output/npmAliases.mjs +92 -6
- package/dist/esm/deploy-output/plugin.mjs +24 -6
- package/dist/esm/deploy-output/public-assets.mjs +82 -0
- package/dist/esm/deploy-output/target.mjs +50 -3
- package/dist/esm/deploy-output/trace-files.mjs +47 -0
- package/dist/esm/module-federation-config/exposes.mjs +18 -0
- package/dist/esm/module-federation-config/index.mjs +4 -0
- package/dist/esm/module-federation-config/inspect.mjs +65 -0
- package/dist/esm/module-federation-config/object-literal.mjs +43 -0
- package/dist/esm/module-federation-config/syntax.mjs +101 -0
- package/dist/esm/module-federation-config/types.mjs +0 -0
- package/dist/esm/native-type-checker.mjs +158 -18
- package/dist/esm/policy-defaults.mjs +51 -0
- package/dist/esm/release-envelope/canonical.mjs +2 -9
- package/dist/esm/release-envelope/contract.mjs +21 -0
- package/dist/esm/release-envelope/framework-output.mjs +297 -106
- package/dist/esm/release-envelope/index.mjs +149 -38
- package/dist/esm/release-envelope/plugin.mjs +24 -15
- package/dist/esm/release-envelope/renderer-output-stamp.mjs +112 -0
- package/dist/esm/release-envelope/types.mjs +2 -3
- package/dist/esm/release-identity.mjs +8 -5
- package/dist/esm/renderer-build-identity.mjs +82 -0
- package/dist/esm/runtime-package-resolution.mjs +60 -0
- package/dist/esm/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/dist/esm/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/dist/esm/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/dist/esm/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/dist/esm/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/dist/esm/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/dist/esm/workspace-topology.mjs +21 -0
- package/dist/esm-node/backend-federation-build/codegen.mjs +29 -18
- package/dist/esm-node/backend-federation-build/config.mjs +74 -38
- package/dist/esm-node/backend-federation-build/emit.mjs +64 -23
- package/dist/esm-node/build-config/build-environment.mjs +26 -160
- package/dist/esm-node/build-config/internal-effect-discovery.mjs +103 -0
- package/dist/esm-node/build-config/public.mjs +1 -1
- package/dist/esm-node/build-config/remote-address.mjs +21 -0
- package/dist/esm-node/cloudflare/artifacts.mjs +8 -19
- package/dist/esm-node/cloudflare/delivery-unit.mjs +124 -45
- package/dist/esm-node/cloudflare/index.mjs +15 -5
- package/dist/esm-node/cloudflare/native-renderer.mjs +49 -0
- package/dist/esm-node/cloudflare/renderer-identity.mjs +58 -0
- package/dist/esm-node/cloudflare/worker-manifest.mjs +55 -14
- package/dist/esm-node/cloudflare/worker-options.mjs +11 -0
- package/dist/esm-node/cloudflare/wrangler-config.mjs +203 -12
- package/dist/esm-node/cloudflare-builder.mjs +301 -89
- package/dist/esm-node/cloudflare-output-contract.mjs +29 -3
- package/dist/esm-node/cloudflare-output-verifier/identity.mjs +113 -24
- package/dist/esm-node/cloudflare-output-verifier/index.mjs +10 -0
- package/dist/esm-node/cloudflare-output-verifier/manifest.mjs +46 -0
- package/dist/esm-node/cloudflare-output-verifier/mutation-policy.mjs +7 -1
- package/dist/esm-node/cloudflare-output-verifier/worker-bundles.mjs +11 -6
- package/dist/esm-node/config.mjs +3 -1
- package/dist/esm-node/deploy-output/npmAliases.mjs +92 -6
- package/dist/esm-node/deploy-output/plugin.mjs +24 -6
- package/dist/esm-node/deploy-output/public-assets.mjs +83 -0
- package/dist/esm-node/deploy-output/target.mjs +50 -3
- package/dist/esm-node/deploy-output/trace-files.mjs +48 -0
- package/dist/esm-node/module-federation-config/exposes.mjs +19 -0
- package/dist/esm-node/module-federation-config/index.mjs +5 -0
- package/dist/esm-node/module-federation-config/inspect.mjs +66 -0
- package/dist/esm-node/module-federation-config/object-literal.mjs +44 -0
- package/dist/esm-node/module-federation-config/syntax.mjs +102 -0
- package/dist/esm-node/module-federation-config/types.mjs +1 -0
- package/dist/esm-node/native-type-checker.mjs +158 -18
- package/dist/esm-node/policy-defaults.mjs +52 -0
- package/dist/esm-node/release-envelope/canonical.mjs +2 -9
- package/dist/esm-node/release-envelope/contract.mjs +22 -0
- package/dist/esm-node/release-envelope/framework-output.mjs +297 -106
- package/dist/esm-node/release-envelope/index.mjs +149 -38
- package/dist/esm-node/release-envelope/plugin.mjs +24 -15
- package/dist/esm-node/release-envelope/renderer-output-stamp.mjs +113 -0
- package/dist/esm-node/release-envelope/types.mjs +2 -3
- package/dist/esm-node/release-identity.mjs +8 -5
- package/dist/esm-node/renderer-build-identity.mjs +83 -0
- package/dist/esm-node/runtime-package-resolution.mjs +61 -0
- package/dist/esm-node/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/dist/esm-node/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/dist/esm-node/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/dist/esm-node/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/dist/esm-node/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/dist/esm-node/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/dist/esm-node/workspace-topology.mjs +22 -0
- package/dist/types/backend-federation-build/codegen.d.ts +30 -0
- package/dist/types/backend-federation-build/config.d.ts +10 -57
- package/dist/types/backend-federation-build/emit.d.ts +12 -2
- package/dist/types/backend-federation-build/index.d.ts +1 -1
- package/dist/types/build-config/build-environment.d.ts +1 -9
- package/dist/types/build-config/internal-effect-discovery.d.ts +4 -0
- package/dist/types/build-config/public.d.ts +1 -1
- package/dist/types/build-config/remote-address.d.ts +3 -0
- package/dist/types/cloudflare/artifacts.d.ts +7 -6
- package/dist/types/cloudflare/constants.d.ts +1 -1
- package/dist/types/cloudflare/delivery-unit.d.ts +38 -7
- package/dist/types/cloudflare/native-renderer.d.ts +30 -0
- package/dist/types/cloudflare/renderer-identity.d.ts +25 -0
- package/dist/types/cloudflare/worker-manifest.d.ts +17 -2
- package/dist/types/cloudflare/worker-options.d.ts +20 -0
- package/dist/types/cloudflare/wrangler-config.d.ts +55 -2
- package/dist/types/cloudflare-builder.d.ts +51 -8
- package/dist/types/cloudflare-output-contract.d.ts +5 -3
- package/dist/types/cloudflare-output-verifier/identity.d.ts +7 -3
- package/dist/types/cloudflare-output-verifier/worker-bundles.d.ts +2 -2
- package/dist/types/config.d.ts +98 -13
- package/dist/types/deploy-output/plugin.d.ts +29 -9
- package/dist/types/deploy-output/public-assets.d.ts +51 -0
- package/dist/types/deploy-output/target.d.ts +28 -5
- package/dist/types/deploy-output/trace-files.d.ts +17 -0
- package/dist/types/module-federation-config/exposes.d.ts +11 -0
- package/dist/types/module-federation-config/index.d.ts +5 -0
- package/dist/types/module-federation-config/inspect.d.ts +2 -0
- package/dist/types/module-federation-config/object-literal.d.ts +4 -0
- package/dist/types/module-federation-config/syntax.d.ts +7 -0
- package/dist/types/module-federation-config/types.d.ts +20 -0
- package/dist/types/native-type-checker.d.ts +26 -3
- package/dist/types/policy-defaults.d.ts +56 -0
- package/dist/types/release-envelope/canonical.d.ts +5 -5
- package/dist/types/release-envelope/contract.d.mts +8 -0
- package/dist/types/release-envelope/framework-output.d.ts +23 -13
- package/dist/types/release-envelope/index.d.ts +17 -5
- package/dist/types/release-envelope/plugin.d.ts +10 -6
- package/dist/types/release-envelope/renderer-output-stamp.d.ts +34 -0
- package/dist/types/release-envelope/types.d.ts +42 -4
- package/dist/types/release-identity.d.ts +3 -2
- package/dist/types/renderer-build-identity.d.ts +30 -0
- package/dist/types/runtime-package-resolution.d.ts +28 -0
- package/dist/types/templates/cloudflare-worker-route-data.d.mts +14 -0
- package/dist/types/workspace-topology.d.ts +91 -0
- package/package.json +97 -26
- package/src/backend-federation-build/codegen.ts +28 -19
- package/src/backend-federation-build/config.ts +189 -123
- package/src/backend-federation-build/emit.ts +119 -38
- package/src/backend-federation-build/index.ts +4 -1
- package/src/build-config/build-environment.ts +59 -285
- package/src/build-config/internal-effect-discovery.ts +239 -0
- package/src/build-config/public.ts +0 -1
- package/src/build-config/remote-address.ts +33 -0
- package/src/cloudflare/artifacts.ts +22 -43
- package/src/cloudflare/delivery-unit.ts +283 -60
- package/src/cloudflare/index.ts +35 -19
- package/src/cloudflare/native-renderer.ts +117 -0
- package/src/cloudflare/renderer-identity.ts +171 -0
- package/src/cloudflare/worker-manifest.ts +108 -10
- package/src/cloudflare/worker-options.ts +60 -0
- package/src/cloudflare/wrangler-config.ts +390 -14
- package/src/cloudflare-builder.ts +543 -170
- package/src/cloudflare-output-contract.ts +45 -2
- package/src/cloudflare-output-verifier/identity.ts +138 -7
- package/src/cloudflare-output-verifier/index.ts +20 -0
- package/src/cloudflare-output-verifier/manifest.ts +77 -0
- package/src/cloudflare-output-verifier/mutation-policy.ts +11 -1
- package/src/cloudflare-output-verifier/worker-bundles.ts +27 -11
- package/src/config.ts +101 -19
- package/src/deploy-output/npmAliases.ts +141 -4
- package/src/deploy-output/plugin.ts +55 -18
- package/src/deploy-output/public-assets.ts +224 -0
- package/src/deploy-output/target.ts +97 -14
- package/src/deploy-output/trace-files.ts +80 -0
- package/src/module-federation-config/exposes.ts +46 -0
- package/src/module-federation-config/index.ts +22 -0
- package/src/module-federation-config/inspect.ts +157 -0
- package/src/module-federation-config/object-literal.ts +76 -0
- package/src/module-federation-config/syntax.ts +212 -0
- package/src/module-federation-config/types.ts +22 -0
- package/src/native-type-checker.ts +281 -26
- package/src/policy-defaults.ts +157 -0
- package/src/release-envelope/canonical.ts +6 -18
- package/src/release-envelope/contract.mjs +28 -0
- package/src/release-envelope/framework-output.ts +681 -156
- package/src/release-envelope/index.ts +315 -60
- package/src/release-envelope/plugin.ts +54 -38
- package/src/release-envelope/renderer-output-stamp.ts +210 -0
- package/src/release-envelope/types.ts +75 -6
- package/src/release-identity.ts +19 -2
- package/src/renderer-build-identity.ts +168 -0
- package/src/runtime-package-resolution.ts +115 -0
- package/src/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/src/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/src/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/src/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/src/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/src/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/src/workspace-topology.ts +125 -0
- package/dist/cjs/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/cjs/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/cjs/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/cjs/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/esm/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/esm/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/esm/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/esm/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/esm-node/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/esm-node/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/esm-node/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/esm-node/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/types/templates/cloudflare-worker-fs-promises.d.mts +0 -5
- package/dist/types/templates/cloudflare-worker-loadable-server.d.mts +0 -48
- package/dist/types/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +0 -13
- package/dist/types/templates/cloudflare-worker-path.d.mts +0 -21
- package/src/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/src/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/src/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/src/templates/cloudflare-worker-path.mjs +0 -98
|
@@ -41,9 +41,11 @@ var __webpack_exports__ = {};
|
|
|
41
41
|
__webpack_require__.r(__webpack_exports__);
|
|
42
42
|
__webpack_require__.d(__webpack_exports__, {
|
|
43
43
|
applyCloudflareBuilderEnvironments: ()=>applyCloudflareBuilderEnvironments,
|
|
44
|
-
applyCloudflareWorkerMfRuntimeBoundary: ()=>applyCloudflareWorkerMfRuntimeBoundary,
|
|
45
44
|
applyCloudflareWorkerRspackConfig: ()=>applyCloudflareWorkerRspackConfig,
|
|
45
|
+
claimsByFunctionExternal: ()=>claimsByFunctionExternal,
|
|
46
|
+
createAbsentOptionalDependencyFilter: ()=>createAbsentOptionalDependencyFilter,
|
|
46
47
|
createCloudflareBuilderPlugin: ()=>createCloudflareBuilderPlugin,
|
|
48
|
+
createRequestRedirectMatcher: ()=>createRequestRedirectMatcher,
|
|
47
49
|
getCloudflareBuilderEnvironments: ()=>getCloudflareBuilderEnvironments,
|
|
48
50
|
getCloudflareWorkerRspackConfig: ()=>getCloudflareWorkerRspackConfig
|
|
49
51
|
});
|
|
@@ -54,14 +56,50 @@ const external_node_path_namespaceObject = require("node:path");
|
|
|
54
56
|
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
55
57
|
const builder_namespaceObject = require("@modern-js/builder");
|
|
56
58
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
57
|
-
const external_std_env_namespaceObject = require("std-env");
|
|
58
59
|
const external_cloudflare_output_contract_js_namespaceObject = require("./cloudflare-output-contract.js");
|
|
59
60
|
const external_read_template_js_namespaceObject = require("./read-template.js");
|
|
60
61
|
const moduleRequire = (0, external_node_module_namespaceObject.createRequire)(__rslib_import_meta_url__);
|
|
61
62
|
const BFF_EFFECT_WORKER_ENTRY_NAME = '__modern_bff_effect';
|
|
62
63
|
const BFF_EFFECT_WORKER_RUNTIME_QUERY = 'modern-bff-runtime';
|
|
63
|
-
const
|
|
64
|
-
const
|
|
64
|
+
const SERVER_LOADER_COMBINED_FILE = 'server-loader-combined.js';
|
|
65
|
+
const ROUTE_SERVER_LOADERS_FILE = 'route-server-loaders.js';
|
|
66
|
+
const WORKER_ROUTE_DATA_FILE = 'cloudflare-worker-route-data.js';
|
|
67
|
+
const WORKER_ROUTE_DATA_TEMPLATE = 'cloudflare-worker-route-data.mjs';
|
|
68
|
+
const DATA_LOADER_CLIENT_TRANSFORM = /plugin-data-loader[\\/](?:.+[\\/])?loader\.[cm]?js$/u;
|
|
69
|
+
const WORKER_DEPENDENCY_CONDITIONS = [
|
|
70
|
+
[
|
|
71
|
+
'esm',
|
|
72
|
+
'import'
|
|
73
|
+
],
|
|
74
|
+
[
|
|
75
|
+
'wasm',
|
|
76
|
+
'import'
|
|
77
|
+
],
|
|
78
|
+
[
|
|
79
|
+
'loaderImport',
|
|
80
|
+
'import'
|
|
81
|
+
],
|
|
82
|
+
[
|
|
83
|
+
'worker',
|
|
84
|
+
'import'
|
|
85
|
+
],
|
|
86
|
+
[
|
|
87
|
+
'commonjs',
|
|
88
|
+
'require'
|
|
89
|
+
],
|
|
90
|
+
[
|
|
91
|
+
'amd',
|
|
92
|
+
'require'
|
|
93
|
+
],
|
|
94
|
+
[
|
|
95
|
+
'loader',
|
|
96
|
+
'require'
|
|
97
|
+
],
|
|
98
|
+
[
|
|
99
|
+
'unknown',
|
|
100
|
+
'require'
|
|
101
|
+
]
|
|
102
|
+
];
|
|
65
103
|
const JS_OR_TS_EXTENSIONS = new Set([
|
|
66
104
|
'.js',
|
|
67
105
|
'.jsx',
|
|
@@ -121,19 +159,155 @@ const resolvePackageFile = (packageName, filePath, paths)=>{
|
|
|
121
159
|
const setAliasIfPresent = (alias, name, value)=>{
|
|
122
160
|
if (value) alias.set(name, value);
|
|
123
161
|
};
|
|
124
|
-
const getCloudflareWorkerNodeExternals = ()=>Object.fromEntries(
|
|
125
|
-
|
|
162
|
+
const getCloudflareWorkerNodeExternals = ()=>Object.fromEntries([
|
|
163
|
+
...external_cloudflare_output_contract_js_namespaceObject.CLOUDFLARE_WORKER_NODE_BUILTINS.flatMap((builtin)=>{
|
|
164
|
+
const nodeBuiltin = `node:${builtin}`;
|
|
165
|
+
const external = `module-import ${nodeBuiltin}`;
|
|
166
|
+
return (0, external_node_module_namespaceObject.isBuiltin)(builtin) ? [
|
|
167
|
+
[
|
|
168
|
+
builtin,
|
|
169
|
+
external
|
|
170
|
+
],
|
|
171
|
+
[
|
|
172
|
+
nodeBuiltin,
|
|
173
|
+
external
|
|
174
|
+
]
|
|
175
|
+
] : [
|
|
176
|
+
[
|
|
177
|
+
nodeBuiltin,
|
|
178
|
+
external
|
|
179
|
+
]
|
|
180
|
+
];
|
|
181
|
+
}),
|
|
182
|
+
...external_cloudflare_output_contract_js_namespaceObject.CLOUDFLARE_WORKER_PLATFORM_MODULES.map((platformModule)=>[
|
|
183
|
+
platformModule,
|
|
184
|
+
`module-import ${platformModule}`
|
|
185
|
+
])
|
|
186
|
+
]);
|
|
187
|
+
const getPackageNameFromRequest = (request)=>{
|
|
188
|
+
if (request.startsWith('.') || request.startsWith('/') || request.includes(':') || external_node_path_default().isAbsolute(request)) return;
|
|
189
|
+
const segments = request.split('/');
|
|
190
|
+
return request.startsWith('@') ? segments.length > 1 ? `${segments[0]}/${segments[1]}` : void 0 : segments[0];
|
|
191
|
+
};
|
|
192
|
+
const isRedirectedByAliasField = (manifest, aliasFields, request)=>aliasFields.some((field)=>{
|
|
193
|
+
let value = manifest;
|
|
194
|
+
for (const key of 'string' == typeof field ? [
|
|
195
|
+
field
|
|
196
|
+
] : field)value = value && 'object' == typeof value ? value[key] : void 0;
|
|
197
|
+
return 'object' == typeof value && null !== value && Object.hasOwn(value, request);
|
|
198
|
+
});
|
|
199
|
+
const findOwningPackageManifest = (directory, cache)=>{
|
|
200
|
+
if (cache.has(directory)) return cache.get(directory);
|
|
201
|
+
let manifest;
|
|
202
|
+
const packageJsonPath = external_node_path_default().join(directory, 'package.json');
|
|
203
|
+
if (external_node_fs_default().existsSync(packageJsonPath)) try {
|
|
204
|
+
manifest = JSON.parse(external_node_fs_default().readFileSync(packageJsonPath, 'utf-8'));
|
|
205
|
+
} catch {
|
|
206
|
+
manifest = void 0;
|
|
207
|
+
}
|
|
208
|
+
else if (external_node_path_default().dirname(directory) !== directory) manifest = findOwningPackageManifest(external_node_path_default().dirname(directory), cache);
|
|
209
|
+
cache.set(directory, manifest);
|
|
210
|
+
return manifest;
|
|
211
|
+
};
|
|
212
|
+
const isPackageInstalled = (packageName, directory, moduleDirectories)=>moduleDirectories.some((moduleDirectory)=>{
|
|
213
|
+
if (external_node_path_default().isAbsolute(moduleDirectory)) return external_node_fs_default().existsSync(external_node_path_default().join(moduleDirectory, packageName));
|
|
214
|
+
let current = directory;
|
|
215
|
+
while(true){
|
|
216
|
+
if (external_node_fs_default().existsSync(external_node_path_default().join(current, moduleDirectory, packageName))) return true;
|
|
217
|
+
const parent = external_node_path_default().dirname(current);
|
|
218
|
+
if (parent === current) return false;
|
|
219
|
+
current = parent;
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
const createAbsentOptionalDependencyFilter = (isRedirected = ()=>false, moduleDirectories = [
|
|
223
|
+
'node_modules'
|
|
224
|
+
], aliasFields = [])=>{
|
|
225
|
+
const manifests = new Map();
|
|
226
|
+
return (request, context)=>{
|
|
227
|
+
const packageName = getPackageNameFromRequest(request);
|
|
228
|
+
if (!packageName || !context || isRedirected(request)) return false;
|
|
229
|
+
const manifest = findOwningPackageManifest(context, manifests);
|
|
230
|
+
if (!manifest) return false;
|
|
231
|
+
const optional = manifest.peerDependenciesMeta?.[packageName]?.optional === true || Object.hasOwn(manifest.optionalDependencies ?? {}, packageName);
|
|
232
|
+
return optional && !isRedirectedByAliasField(manifest, aliasFields, request) && !isPackageInstalled(packageName, context, moduleDirectories);
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
const getAliasNames = (alias)=>alias ? Array.isArray(alias) ? alias.map((entry)=>entry.onlyModule ? `${entry.name}$` : entry.name) : Object.keys(alias) : [];
|
|
236
|
+
const getExternalMatchers = (externals)=>{
|
|
237
|
+
if (Array.isArray(externals)) return externals.flatMap(getExternalMatchers);
|
|
238
|
+
if ('string' == typeof externals) return [
|
|
239
|
+
(request)=>request === externals
|
|
240
|
+
];
|
|
241
|
+
if (externals instanceof RegExp) return [
|
|
242
|
+
(request)=>{
|
|
243
|
+
externals.lastIndex = 0;
|
|
244
|
+
return externals.test(request);
|
|
245
|
+
}
|
|
246
|
+
];
|
|
247
|
+
if (externals && 'object' == typeof externals) {
|
|
248
|
+
const names = new Set(Object.entries(externals).filter(([, value])=>false !== value).map(([name])=>name));
|
|
126
249
|
return [
|
|
127
|
-
|
|
128
|
-
builtin,
|
|
129
|
-
`module-import ${nodeBuiltin}`
|
|
130
|
-
],
|
|
131
|
-
[
|
|
132
|
-
nodeBuiltin,
|
|
133
|
-
`module-import ${nodeBuiltin}`
|
|
134
|
-
]
|
|
250
|
+
(request)=>names.has(request)
|
|
135
251
|
];
|
|
136
|
-
}
|
|
252
|
+
}
|
|
253
|
+
return [];
|
|
254
|
+
};
|
|
255
|
+
const createRequestRedirectMatcher = (options)=>{
|
|
256
|
+
const aliasNames = [
|
|
257
|
+
...getAliasNames(options.resolve?.alias),
|
|
258
|
+
...getAliasNames(options.resolve?.fallback)
|
|
259
|
+
];
|
|
260
|
+
const externalMatchers = getExternalMatchers(options.externals);
|
|
261
|
+
return (request)=>externalMatchers.some((matches)=>matches(request)) || aliasNames.some((name)=>name.endsWith('$') ? request === name.slice(0, -1) : request === name || request.startsWith(`${name}/`));
|
|
262
|
+
};
|
|
263
|
+
const getFunctionExternals = (externals)=>Array.isArray(externals) ? externals.flatMap(getFunctionExternals) : 'function' == typeof externals ? [
|
|
264
|
+
externals
|
|
265
|
+
] : [];
|
|
266
|
+
const callFunctionExternal = (external, data)=>new Promise((resolve, reject)=>{
|
|
267
|
+
const returned = external(data, (error, result)=>error ? reject(error) : resolve(result));
|
|
268
|
+
if (null !== returned && 'object' == typeof returned && 'function' == typeof returned.then) returned.then(resolve, reject);
|
|
269
|
+
else if (1 === external.length) resolve(returned);
|
|
270
|
+
});
|
|
271
|
+
const claimsByFunctionExternal = async (externals, data)=>{
|
|
272
|
+
for (const external of externals)try {
|
|
273
|
+
const result = await callFunctionExternal(external, data);
|
|
274
|
+
if (null != result && false !== result) return true;
|
|
275
|
+
} catch {
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
278
|
+
return false;
|
|
279
|
+
};
|
|
280
|
+
const PLUGIN_NAME = 'AbsentOptionalDependencyPlugin';
|
|
281
|
+
class AbsentOptionalDependencyPlugin {
|
|
282
|
+
apply(compiler) {
|
|
283
|
+
const isAbsent = createAbsentOptionalDependencyFilter(createRequestRedirectMatcher(compiler.options), compiler.options.resolve.modules, compiler.options.resolve.aliasFields);
|
|
284
|
+
const functionExternals = getFunctionExternals(compiler.options.externals);
|
|
285
|
+
compiler.hooks.normalModuleFactory.tap(PLUGIN_NAME, (factory)=>{
|
|
286
|
+
factory.hooks.beforeResolve.tapPromise(PLUGIN_NAME, async (data)=>{
|
|
287
|
+
if (!isAbsent(data.request, data.context)) return;
|
|
288
|
+
const claimed = await claimsByFunctionExternal(functionExternals, {
|
|
289
|
+
context: data.context,
|
|
290
|
+
contextInfo: {
|
|
291
|
+
issuer: data.contextInfo.issuer,
|
|
292
|
+
issuerLayer: data.contextInfo.issuerLayer ?? null
|
|
293
|
+
},
|
|
294
|
+
getResolve: (options)=>{
|
|
295
|
+
const resolver = factory.getResolver('normal', options ?? {});
|
|
296
|
+
function resolveRequest(context, request, callback) {
|
|
297
|
+
if (callback) return void resolver.resolve({}, context, request, {}, callback);
|
|
298
|
+
return new Promise((resolve, reject)=>{
|
|
299
|
+
resolver.resolve({}, context, request, {}, (error, result)=>error ? reject(error) : resolve(result || void 0));
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
return resolveRequest;
|
|
303
|
+
},
|
|
304
|
+
request: data.request
|
|
305
|
+
});
|
|
306
|
+
return claimed ? void 0 : false;
|
|
307
|
+
});
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
}
|
|
137
311
|
const normalizeWorkerOutputName = (name)=>external_node_path_default().posix.normalize(name.replace(/\\/gu, '/')).toLowerCase();
|
|
138
312
|
const reserveWorkerChunkName = (baseName, reservedOutputNames)=>{
|
|
139
313
|
let name = baseName;
|
|
@@ -183,11 +357,8 @@ function applyCloudflareWorkerRspackConfig(chain, workerEntryNames) {
|
|
|
183
357
|
chain.optimization.runtimeChunk(config.optimization.runtimeChunk);
|
|
184
358
|
chain.optimization.splitChunks(config.optimization.splitChunks);
|
|
185
359
|
}
|
|
186
|
-
function
|
|
187
|
-
const
|
|
188
|
-
chain.plugins.delete('plugin-module-federation');
|
|
189
|
-
chain.resolve.alias.set(`${MF_SSR_DATA_FETCH_RUNTIME_PLUGIN}$`, runtimePlugin);
|
|
190
|
-
chain.resolve.alias.set(`${MF_SSR_DEV_RUNTIME_PLUGIN}$`, runtimePlugin);
|
|
360
|
+
function removeCloudflareWorkerDataLoaderClientTransform(chain) {
|
|
361
|
+
for (const [name, rule] of Object.entries(chain.module.rules.entries() ?? {}))if (rule.uses.values().some((use)=>DATA_LOADER_CLIENT_TRANSFORM.test(String(use.get('loader'))))) chain.module.rules.delete(name);
|
|
191
362
|
}
|
|
192
363
|
const getEffectBffEntry = (normalizedConfig, appContext)=>{
|
|
193
364
|
if (!normalizedConfig.bff || 'hono' === normalizedConfig.bff.runtimeFramework) return;
|
|
@@ -198,18 +369,6 @@ const getEffectBffEntry = (normalizedConfig, appContext)=>{
|
|
|
198
369
|
}
|
|
199
370
|
return resolveJsOrTsEntry(external_node_path_default().resolve(appContext.apiDirectory, 'index'));
|
|
200
371
|
};
|
|
201
|
-
const CLOUDFLARE_DEPLOY_PROVIDERS = new Set([
|
|
202
|
-
'cloudflare',
|
|
203
|
-
'cloudflare_pages',
|
|
204
|
-
'cloudflare_workers'
|
|
205
|
-
]);
|
|
206
|
-
const resolveStdEnvDeployProvider = ()=>external_std_env_namespaceObject.provider;
|
|
207
|
-
const isCloudflareWorkerDeploy = (normalizedConfig, resolveDeployProvider)=>{
|
|
208
|
-
const explicitTarget = normalizedConfig.deploy?.target || process.env.MODERNJS_DEPLOY;
|
|
209
|
-
if (explicitTarget) return 'cloudflare' === explicitTarget;
|
|
210
|
-
const detectedProvider = resolveDeployProvider();
|
|
211
|
-
return detectedProvider ? CLOUDFLARE_DEPLOY_PROVIDERS.has(detectedProvider) : false;
|
|
212
|
-
};
|
|
213
372
|
const rewriteWorkerEntryPath = (entry)=>entry.replace('index.jsx', 'index.server.jsx').replace('bootstrap.server.jsx', 'index.server.jsx').replace('bootstrap.jsx', 'index.server.jsx');
|
|
214
373
|
const rewriteWorkerEntryDescription = (description)=>{
|
|
215
374
|
const entryImport = description.import;
|
|
@@ -237,28 +396,60 @@ const rewriteWorkerEntries = (entries)=>Object.fromEntries(Object.entries(entrie
|
|
|
237
396
|
rewriteWorkerEntryDescription(value)
|
|
238
397
|
];
|
|
239
398
|
}));
|
|
240
|
-
const prependBundlerChain = (environment, handler)=>{
|
|
399
|
+
const prependBundlerChain = (environment, handler, finalHandler)=>{
|
|
241
400
|
const bundlerChain = environment.tools?.bundlerChain;
|
|
401
|
+
const handlers = [
|
|
402
|
+
handler,
|
|
403
|
+
...bundlerChain ? Array.isArray(bundlerChain) ? bundlerChain : [
|
|
404
|
+
bundlerChain
|
|
405
|
+
] : [],
|
|
406
|
+
...finalHandler ? [
|
|
407
|
+
finalHandler
|
|
408
|
+
] : []
|
|
409
|
+
];
|
|
242
410
|
return {
|
|
243
411
|
...environment,
|
|
244
412
|
tools: {
|
|
245
413
|
...environment.tools,
|
|
246
414
|
htmlPlugin: false,
|
|
247
|
-
bundlerChain:
|
|
248
|
-
handler,
|
|
249
|
-
...bundlerChain
|
|
250
|
-
] : [
|
|
251
|
-
handler,
|
|
252
|
-
bundlerChain
|
|
253
|
-
] : handler
|
|
415
|
+
bundlerChain: handlers
|
|
254
416
|
}
|
|
255
417
|
};
|
|
256
418
|
};
|
|
419
|
+
const createWorkerRouteDataModule = ()=>[
|
|
420
|
+
`import { routes } from './${ROUTE_SERVER_LOADERS_FILE}';`,
|
|
421
|
+
`import { createRouteDataRequestHandler } from ${JSON.stringify((0, external_read_template_js_namespaceObject.getTemplatePath)(WORKER_ROUTE_DATA_TEMPLATE))};`,
|
|
422
|
+
'',
|
|
423
|
+
`export const ${external_cloudflare_output_contract_js_namespaceObject.CLOUDFLARE_ROUTE_DATA_HANDLER_EXPORT} =`,
|
|
424
|
+
' createRouteDataRequestHandler(routes);',
|
|
425
|
+
''
|
|
426
|
+
].join('\n');
|
|
427
|
+
const getWorkerRouteDataEntries = (appContext)=>{
|
|
428
|
+
const { entrypoints, internalDirectory } = appContext;
|
|
429
|
+
if (!entrypoints || !internalDirectory) return {};
|
|
430
|
+
return Object.fromEntries(entrypoints.flatMap(({ entryName })=>{
|
|
431
|
+
const entryDirectory = external_node_path_default().join(internalDirectory, entryName);
|
|
432
|
+
if (!external_node_fs_default().existsSync(external_node_path_default().join(entryDirectory, SERVER_LOADER_COMBINED_FILE)) || !external_node_fs_default().existsSync(external_node_path_default().join(entryDirectory, ROUTE_SERVER_LOADERS_FILE))) return [];
|
|
433
|
+
const routeDataFile = external_node_path_default().join(entryDirectory, WORKER_ROUTE_DATA_FILE);
|
|
434
|
+
external_node_fs_default().writeFileSync(routeDataFile, createWorkerRouteDataModule());
|
|
435
|
+
return [
|
|
436
|
+
[
|
|
437
|
+
(0, external_cloudflare_output_contract_js_namespaceObject.getCloudflareWorkerRouteDataEntryName)(entryName),
|
|
438
|
+
[
|
|
439
|
+
routeDataFile
|
|
440
|
+
]
|
|
441
|
+
]
|
|
442
|
+
];
|
|
443
|
+
}));
|
|
444
|
+
};
|
|
257
445
|
const getWorkerEntries = (environment, normalizedConfig, appContext)=>{
|
|
258
446
|
const configuredEntries = environment.source?.entry;
|
|
259
|
-
if (!configuredEntries) return;
|
|
260
|
-
const entries = rewriteWorkerEntries(configuredEntries);
|
|
261
447
|
const effectApiEntry = getEffectBffEntry(normalizedConfig, appContext);
|
|
448
|
+
if (!configuredEntries && !effectApiEntry) return;
|
|
449
|
+
const entries = configuredEntries ? {
|
|
450
|
+
...rewriteWorkerEntries(configuredEntries),
|
|
451
|
+
...getWorkerRouteDataEntries(appContext)
|
|
452
|
+
} : {};
|
|
262
453
|
return effectApiEntry ? {
|
|
263
454
|
...entries,
|
|
264
455
|
[BFF_EFFECT_WORKER_ENTRY_NAME]: [
|
|
@@ -266,14 +457,11 @@ const getWorkerEntries = (environment, normalizedConfig, appContext)=>{
|
|
|
266
457
|
]
|
|
267
458
|
} : entries;
|
|
268
459
|
};
|
|
269
|
-
const createCloudflareBundlerChain = (appContext, workerEntryNames)=>{
|
|
460
|
+
const createCloudflareBundlerChain = (appContext, workerEntryNames, rscEnabled)=>{
|
|
270
461
|
const resolvePaths = [
|
|
271
462
|
appContext.appDirectory,
|
|
272
463
|
process.cwd()
|
|
273
464
|
];
|
|
274
|
-
const tanstackRouterSsrServerFile = resolvePackageFile('@tanstack/router-core', 'dist/esm/ssr/ssr-server.js', resolvePaths);
|
|
275
|
-
const runtimeRscWorkerFile = resolvePackageFile('@modern-js/runtime', 'dist/esm/rsc/server.worker.mjs', resolvePaths);
|
|
276
|
-
const renderRscWorkerFile = resolvePackageFile('@modern-js/render', 'dist/esm/rscWorker.mjs', resolvePaths);
|
|
277
465
|
const reactFile = resolvePackageFile('react', 'index.js', resolvePaths);
|
|
278
466
|
const reactJsxRuntimeFile = resolvePackageFile('react', 'jsx-runtime.js', resolvePaths);
|
|
279
467
|
const reactJsxDevRuntimeFile = resolvePackageFile('react', 'jsx-dev-runtime.js', resolvePaths);
|
|
@@ -283,62 +471,52 @@ const createCloudflareBundlerChain = (appContext, workerEntryNames)=>{
|
|
|
283
471
|
...resolvePaths,
|
|
284
472
|
(0, external_read_template_js_namespaceObject.getTemplatePath)('')
|
|
285
473
|
]);
|
|
286
|
-
const loadableServerWorkerFile = (0, external_read_template_js_namespaceObject.getTemplatePath)('cloudflare-worker-loadable-server.mjs');
|
|
287
|
-
const fsPromisesWorkerFile = (0, external_read_template_js_namespaceObject.getTemplatePath)('cloudflare-worker-fs-promises.mjs');
|
|
288
|
-
const pathWorkerFile = (0, external_read_template_js_namespaceObject.getTemplatePath)('cloudflare-worker-path.mjs');
|
|
289
474
|
const entryNames = [
|
|
290
475
|
...workerEntryNames
|
|
291
476
|
];
|
|
292
477
|
return (chain)=>{
|
|
293
478
|
applyCloudflareWorkerRspackConfig(chain, entryNames);
|
|
479
|
+
removeCloudflareWorkerDataLoaderClientTransform(chain);
|
|
480
|
+
if (rscEnabled) chain.optimization.runtimeChunk(false);
|
|
294
481
|
chain.output.module(true).library({
|
|
295
482
|
type: 'module'
|
|
296
483
|
}).publicPath('/').chunkFormat('module').chunkLoading('import').workerChunkLoading('import');
|
|
484
|
+
chain.node.set('__dirname', 'mock').set('__filename', 'mock');
|
|
297
485
|
for (const condition of [
|
|
298
486
|
'workerd',
|
|
299
487
|
'worker',
|
|
300
488
|
'webpack',
|
|
301
489
|
(0, utils_namespaceObject.isProd)() ? 'production' : 'development',
|
|
302
|
-
'import',
|
|
303
|
-
'require',
|
|
304
490
|
'module'
|
|
305
491
|
])chain.resolve.conditionNames.add(condition);
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
chain.resolve.alias
|
|
317
|
-
chain.resolve.alias
|
|
318
|
-
chain.resolve.alias
|
|
492
|
+
for (const [dependencyType, condition] of WORKER_DEPENDENCY_CONDITIONS)chain.resolve.byDependency.set(dependencyType, {
|
|
493
|
+
conditionNames: [
|
|
494
|
+
condition,
|
|
495
|
+
'...'
|
|
496
|
+
]
|
|
497
|
+
});
|
|
498
|
+
chain.plugin('cloudflare-worker-absent-optional-dependencies').use(AbsentOptionalDependencyPlugin);
|
|
499
|
+
chain.plugins.delete('plugin-module-federation');
|
|
500
|
+
if (!rscEnabled) {
|
|
501
|
+
setAliasIfPresent(chain.resolve.alias, 'react$', reactFile);
|
|
502
|
+
setAliasIfPresent(chain.resolve.alias, 'react/jsx-runtime$', reactJsxRuntimeFile);
|
|
503
|
+
setAliasIfPresent(chain.resolve.alias, 'react/jsx-dev-runtime$', reactJsxDevRuntimeFile);
|
|
504
|
+
setAliasIfPresent(chain.resolve.alias, 'react-dom$', reactDomFile);
|
|
505
|
+
setAliasIfPresent(chain.resolve.alias, 'react-dom/server.edge$', reactDomServerEdgeFile);
|
|
319
506
|
}
|
|
320
|
-
setAliasIfPresent(chain.resolve.alias, 'react$', reactFile);
|
|
321
|
-
setAliasIfPresent(chain.resolve.alias, 'react/jsx-runtime$', reactJsxRuntimeFile);
|
|
322
|
-
setAliasIfPresent(chain.resolve.alias, 'react/jsx-dev-runtime$', reactJsxDevRuntimeFile);
|
|
323
|
-
setAliasIfPresent(chain.resolve.alias, 'react-dom$', reactDomFile);
|
|
324
|
-
setAliasIfPresent(chain.resolve.alias, 'react-dom/server.edge$', reactDomServerEdgeFile);
|
|
325
507
|
setAliasIfPresent(chain.resolve.alias, '@loadable/component$', loadableComponentFile);
|
|
326
|
-
setAliasIfPresent(chain.resolve.alias, '@loadable/server$', loadableServerWorkerFile);
|
|
327
|
-
setAliasIfPresent(chain.resolve.alias, 'fs/promises$', fsPromisesWorkerFile);
|
|
328
|
-
setAliasIfPresent(chain.resolve.alias, 'node:fs/promises$', fsPromisesWorkerFile);
|
|
329
|
-
setAliasIfPresent(chain.resolve.alias, 'path$', pathWorkerFile);
|
|
330
|
-
setAliasIfPresent(chain.resolve.alias, 'node:path$', pathWorkerFile);
|
|
331
|
-
chain.resolve.alias.set('react-server-dom-rspack/server.node$', 'react-server-dom-rspack/server.edge');
|
|
332
|
-
chain.resolve.alias.set('react-server-dom-rspack/server.node', 'react-server-dom-rspack/server.edge');
|
|
333
|
-
chain.resolve.alias.set('react-server-dom-rspack/client.node$', 'react-server-dom-rspack/client.edge');
|
|
334
|
-
chain.resolve.alias.set('react-server-dom-rspack/client.node', 'react-server-dom-rspack/client.edge');
|
|
335
|
-
chain.resolve.fallback.set('fs', false);
|
|
336
|
-
chain.resolve.fallback.set('node:fs', false);
|
|
337
508
|
};
|
|
338
509
|
};
|
|
339
|
-
function getCloudflareBuilderEnvironments({ appContext, environments, normalizedConfig
|
|
340
|
-
if (
|
|
341
|
-
const workerEnvironment = environments[builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME]
|
|
510
|
+
function getCloudflareBuilderEnvironments({ appContext, environments, normalizedConfig }) {
|
|
511
|
+
if (appContext.deployTarget?.target !== 'cloudflare') return environments;
|
|
512
|
+
const workerEnvironment = environments[builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME] ?? (appContext.apiOnly ? {
|
|
513
|
+
output: {
|
|
514
|
+
target: 'web-worker'
|
|
515
|
+
},
|
|
516
|
+
source: {
|
|
517
|
+
entry: {}
|
|
518
|
+
}
|
|
519
|
+
} : void 0);
|
|
342
520
|
if (!workerEnvironment) return environments;
|
|
343
521
|
const workerEntries = getWorkerEntries(workerEnvironment, normalizedConfig, appContext);
|
|
344
522
|
if (!workerEntries) return environments;
|
|
@@ -353,7 +531,44 @@ function getCloudflareBuilderEnvironments({ appContext, environments, normalized
|
|
|
353
531
|
...workerEnvironment.source,
|
|
354
532
|
entry: workerEntries
|
|
355
533
|
}
|
|
356
|
-
}, createCloudflareBundlerChain(appContext, Object.keys(workerEntries)))
|
|
534
|
+
}, createCloudflareBundlerChain(appContext, Object.keys(workerEntries), Boolean(normalizedConfig.server?.rsc)), normalizedConfig.server?.rsc ? (chain)=>{
|
|
535
|
+
for (const [name, packageName, file] of [
|
|
536
|
+
[
|
|
537
|
+
'react$',
|
|
538
|
+
'react',
|
|
539
|
+
'index.js'
|
|
540
|
+
],
|
|
541
|
+
[
|
|
542
|
+
'react/jsx-runtime$',
|
|
543
|
+
'react',
|
|
544
|
+
'jsx-runtime.js'
|
|
545
|
+
],
|
|
546
|
+
[
|
|
547
|
+
'react/jsx-dev-runtime$',
|
|
548
|
+
'react',
|
|
549
|
+
'jsx-dev-runtime.js'
|
|
550
|
+
],
|
|
551
|
+
[
|
|
552
|
+
'react-dom$',
|
|
553
|
+
'react-dom',
|
|
554
|
+
'index.js'
|
|
555
|
+
],
|
|
556
|
+
[
|
|
557
|
+
'react-dom/server.edge$',
|
|
558
|
+
'react-dom',
|
|
559
|
+
'server.edge.js'
|
|
560
|
+
]
|
|
561
|
+
]){
|
|
562
|
+
const target = resolvePackageFile(packageName, file, [
|
|
563
|
+
appContext.appDirectory,
|
|
564
|
+
process.cwd()
|
|
565
|
+
]);
|
|
566
|
+
if (target && chain.resolve.alias.get(name) === target) chain.resolve.alias.delete(name);
|
|
567
|
+
}
|
|
568
|
+
} : void 0);
|
|
569
|
+
if (appContext.apiOnly) return {
|
|
570
|
+
[builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME]: cloudflareWorkerEnvironment
|
|
571
|
+
};
|
|
357
572
|
return {
|
|
358
573
|
...environments,
|
|
359
574
|
[builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME]: cloudflareWorkerEnvironment
|
|
@@ -364,28 +579,31 @@ function applyCloudflareBuilderEnvironments(options) {
|
|
|
364
579
|
environments: getCloudflareBuilderEnvironments(options)
|
|
365
580
|
};
|
|
366
581
|
}
|
|
367
|
-
const createCloudflareBuilderPlugin = (
|
|
582
|
+
const createCloudflareBuilderPlugin = ()=>({
|
|
368
583
|
name: '@modern-js/cloudflare-builder',
|
|
369
584
|
setup (api) {
|
|
370
585
|
api.modifyBuilderEnvironments(({ environments })=>applyCloudflareBuilderEnvironments({
|
|
371
586
|
appContext: api.getAppContext(),
|
|
372
587
|
environments,
|
|
373
|
-
normalizedConfig: api.getNormalizedConfig()
|
|
374
|
-
resolveDeployProvider
|
|
588
|
+
normalizedConfig: api.getNormalizedConfig()
|
|
375
589
|
}));
|
|
376
590
|
}
|
|
377
591
|
});
|
|
378
592
|
exports.applyCloudflareBuilderEnvironments = __webpack_exports__.applyCloudflareBuilderEnvironments;
|
|
379
|
-
exports.applyCloudflareWorkerMfRuntimeBoundary = __webpack_exports__.applyCloudflareWorkerMfRuntimeBoundary;
|
|
380
593
|
exports.applyCloudflareWorkerRspackConfig = __webpack_exports__.applyCloudflareWorkerRspackConfig;
|
|
594
|
+
exports.claimsByFunctionExternal = __webpack_exports__.claimsByFunctionExternal;
|
|
595
|
+
exports.createAbsentOptionalDependencyFilter = __webpack_exports__.createAbsentOptionalDependencyFilter;
|
|
381
596
|
exports.createCloudflareBuilderPlugin = __webpack_exports__.createCloudflareBuilderPlugin;
|
|
597
|
+
exports.createRequestRedirectMatcher = __webpack_exports__.createRequestRedirectMatcher;
|
|
382
598
|
exports.getCloudflareBuilderEnvironments = __webpack_exports__.getCloudflareBuilderEnvironments;
|
|
383
599
|
exports.getCloudflareWorkerRspackConfig = __webpack_exports__.getCloudflareWorkerRspackConfig;
|
|
384
600
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
385
601
|
"applyCloudflareBuilderEnvironments",
|
|
386
|
-
"applyCloudflareWorkerMfRuntimeBoundary",
|
|
387
602
|
"applyCloudflareWorkerRspackConfig",
|
|
603
|
+
"claimsByFunctionExternal",
|
|
604
|
+
"createAbsentOptionalDependencyFilter",
|
|
388
605
|
"createCloudflareBuilderPlugin",
|
|
606
|
+
"createRequestRedirectMatcher",
|
|
389
607
|
"getCloudflareBuilderEnvironments",
|
|
390
608
|
"getCloudflareWorkerRspackConfig"
|
|
391
609
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
@@ -39,27 +39,49 @@ const CLOUDFLARE_RUNTIME_TYPE = 'cloudflare-module-worker';
|
|
|
39
39
|
const CLOUDFLARE_OUTPUT_PACKAGE_TYPE = 'module';
|
|
40
40
|
const CLOUDFLARE_WORKER_PACKAGE_TYPE = 'commonjs';
|
|
41
41
|
const CLOUDFLARE_WORKER_BUNDLE_FORMAT = 'commonjs';
|
|
42
|
+
const CLOUDFLARE_ROUTE_DATA_HANDLER_EXPORT = 'handleRouteDataRequest';
|
|
43
|
+
const getCloudflareWorkerRouteDataEntryName = (entryName)=>`${entryName}-server-loaders`;
|
|
42
44
|
const CLOUDFLARE_WORKER_NODE_BUILTINS = [
|
|
45
|
+
'_http_agent',
|
|
46
|
+
'_http_client',
|
|
47
|
+
'_http_common',
|
|
48
|
+
'_http_incoming',
|
|
49
|
+
'_http_outgoing',
|
|
50
|
+
'_http_server',
|
|
51
|
+
'_tls_common',
|
|
52
|
+
'_tls_wrap',
|
|
43
53
|
'assert',
|
|
44
54
|
'assert/strict',
|
|
45
55
|
'async_hooks',
|
|
46
56
|
'buffer',
|
|
47
57
|
'child_process',
|
|
58
|
+
'cluster',
|
|
59
|
+
'console',
|
|
60
|
+
'constants',
|
|
48
61
|
'crypto',
|
|
49
62
|
'dgram',
|
|
63
|
+
'diagnostics_channel',
|
|
50
64
|
'dns',
|
|
65
|
+
'dns/promises',
|
|
51
66
|
'domain',
|
|
52
67
|
'events',
|
|
53
68
|
'fs',
|
|
54
69
|
'fs/promises',
|
|
55
70
|
'http',
|
|
56
71
|
'http2',
|
|
72
|
+
'https',
|
|
57
73
|
'inspector',
|
|
74
|
+
'inspector/promises',
|
|
58
75
|
'module',
|
|
59
76
|
'net',
|
|
60
77
|
'os',
|
|
61
78
|
'path',
|
|
79
|
+
'path/posix',
|
|
80
|
+
'path/win32',
|
|
81
|
+
'perf_hooks',
|
|
62
82
|
'process',
|
|
83
|
+
'punycode',
|
|
84
|
+
'querystring',
|
|
63
85
|
'readline',
|
|
64
86
|
'readline/promises',
|
|
65
87
|
'repl',
|
|
@@ -69,6 +91,8 @@ const CLOUDFLARE_WORKER_NODE_BUILTINS = [
|
|
|
69
91
|
'stream/promises',
|
|
70
92
|
'stream/web',
|
|
71
93
|
'string_decoder',
|
|
94
|
+
'sys',
|
|
95
|
+
'test',
|
|
72
96
|
'timers',
|
|
73
97
|
'timers/promises',
|
|
74
98
|
'tls',
|
|
@@ -84,11 +108,13 @@ const CLOUDFLARE_WORKER_NODE_BUILTINS = [
|
|
|
84
108
|
'zlib'
|
|
85
109
|
];
|
|
86
110
|
const CLOUDFLARE_WORKER_PLATFORM_MODULES = [
|
|
87
|
-
'cloudflare:sockets'
|
|
111
|
+
'cloudflare:sockets',
|
|
112
|
+
'cloudflare:workers'
|
|
88
113
|
];
|
|
89
114
|
const CLOUDFLARE_REQUIRED_COMPATIBILITY_FLAGS = [
|
|
90
115
|
'nodejs_compat',
|
|
91
|
-
'global_fetch_strictly_public'
|
|
116
|
+
'global_fetch_strictly_public',
|
|
117
|
+
'enable_request_signal'
|
|
92
118
|
];
|
|
93
119
|
__webpack_require__.d(__webpack_exports__, {}, {
|
|
94
120
|
CLOUDFLARE_ASSETS_BINDING: CLOUDFLARE_ASSETS_BINDING,
|
|
@@ -96,6 +122,7 @@ __webpack_require__.d(__webpack_exports__, {}, {
|
|
|
96
122
|
CLOUDFLARE_OUTPUT_PACKAGE_TYPE: CLOUDFLARE_OUTPUT_PACKAGE_TYPE,
|
|
97
123
|
CLOUDFLARE_PUBLIC_ASSETS_DIRECTORY: CLOUDFLARE_PUBLIC_ASSETS_DIRECTORY,
|
|
98
124
|
CLOUDFLARE_REQUIRED_COMPATIBILITY_FLAGS: CLOUDFLARE_REQUIRED_COMPATIBILITY_FLAGS,
|
|
125
|
+
CLOUDFLARE_ROUTE_DATA_HANDLER_EXPORT: CLOUDFLARE_ROUTE_DATA_HANDLER_EXPORT,
|
|
99
126
|
CLOUDFLARE_RUNTIME_TYPE: CLOUDFLARE_RUNTIME_TYPE,
|
|
100
127
|
CLOUDFLARE_WORKER_BUNDLE_DIRECTORY: CLOUDFLARE_WORKER_BUNDLE_DIRECTORY,
|
|
101
128
|
CLOUDFLARE_WORKER_BUNDLE_FORMAT: CLOUDFLARE_WORKER_BUNDLE_FORMAT,
|
|
@@ -105,13 +132,15 @@ __webpack_require__.d(__webpack_exports__, {}, {
|
|
|
105
132
|
CLOUDFLARE_WORKER_PACKAGE_FILE: CLOUDFLARE_WORKER_PACKAGE_FILE,
|
|
106
133
|
CLOUDFLARE_WORKER_PACKAGE_TYPE: CLOUDFLARE_WORKER_PACKAGE_TYPE,
|
|
107
134
|
CLOUDFLARE_WORKER_PLATFORM_MODULES: CLOUDFLARE_WORKER_PLATFORM_MODULES,
|
|
108
|
-
CLOUDFLARE_WRANGLER_CONFIG_FILE: CLOUDFLARE_WRANGLER_CONFIG_FILE
|
|
135
|
+
CLOUDFLARE_WRANGLER_CONFIG_FILE: CLOUDFLARE_WRANGLER_CONFIG_FILE,
|
|
136
|
+
getCloudflareWorkerRouteDataEntryName: getCloudflareWorkerRouteDataEntryName
|
|
109
137
|
});
|
|
110
138
|
exports.CLOUDFLARE_ASSETS_BINDING = __webpack_exports__.CLOUDFLARE_ASSETS_BINDING;
|
|
111
139
|
exports.CLOUDFLARE_OUTPUT_PACKAGE_FILE = __webpack_exports__.CLOUDFLARE_OUTPUT_PACKAGE_FILE;
|
|
112
140
|
exports.CLOUDFLARE_OUTPUT_PACKAGE_TYPE = __webpack_exports__.CLOUDFLARE_OUTPUT_PACKAGE_TYPE;
|
|
113
141
|
exports.CLOUDFLARE_PUBLIC_ASSETS_DIRECTORY = __webpack_exports__.CLOUDFLARE_PUBLIC_ASSETS_DIRECTORY;
|
|
114
142
|
exports.CLOUDFLARE_REQUIRED_COMPATIBILITY_FLAGS = __webpack_exports__.CLOUDFLARE_REQUIRED_COMPATIBILITY_FLAGS;
|
|
143
|
+
exports.CLOUDFLARE_ROUTE_DATA_HANDLER_EXPORT = __webpack_exports__.CLOUDFLARE_ROUTE_DATA_HANDLER_EXPORT;
|
|
115
144
|
exports.CLOUDFLARE_RUNTIME_TYPE = __webpack_exports__.CLOUDFLARE_RUNTIME_TYPE;
|
|
116
145
|
exports.CLOUDFLARE_WORKER_BUNDLE_DIRECTORY = __webpack_exports__.CLOUDFLARE_WORKER_BUNDLE_DIRECTORY;
|
|
117
146
|
exports.CLOUDFLARE_WORKER_BUNDLE_FORMAT = __webpack_exports__.CLOUDFLARE_WORKER_BUNDLE_FORMAT;
|
|
@@ -122,12 +151,14 @@ exports.CLOUDFLARE_WORKER_PACKAGE_FILE = __webpack_exports__.CLOUDFLARE_WORKER_P
|
|
|
122
151
|
exports.CLOUDFLARE_WORKER_PACKAGE_TYPE = __webpack_exports__.CLOUDFLARE_WORKER_PACKAGE_TYPE;
|
|
123
152
|
exports.CLOUDFLARE_WORKER_PLATFORM_MODULES = __webpack_exports__.CLOUDFLARE_WORKER_PLATFORM_MODULES;
|
|
124
153
|
exports.CLOUDFLARE_WRANGLER_CONFIG_FILE = __webpack_exports__.CLOUDFLARE_WRANGLER_CONFIG_FILE;
|
|
154
|
+
exports.getCloudflareWorkerRouteDataEntryName = __webpack_exports__.getCloudflareWorkerRouteDataEntryName;
|
|
125
155
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
126
156
|
"CLOUDFLARE_ASSETS_BINDING",
|
|
127
157
|
"CLOUDFLARE_OUTPUT_PACKAGE_FILE",
|
|
128
158
|
"CLOUDFLARE_OUTPUT_PACKAGE_TYPE",
|
|
129
159
|
"CLOUDFLARE_PUBLIC_ASSETS_DIRECTORY",
|
|
130
160
|
"CLOUDFLARE_REQUIRED_COMPATIBILITY_FLAGS",
|
|
161
|
+
"CLOUDFLARE_ROUTE_DATA_HANDLER_EXPORT",
|
|
131
162
|
"CLOUDFLARE_RUNTIME_TYPE",
|
|
132
163
|
"CLOUDFLARE_WORKER_BUNDLE_DIRECTORY",
|
|
133
164
|
"CLOUDFLARE_WORKER_BUNDLE_FORMAT",
|
|
@@ -137,7 +168,8 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
137
168
|
"CLOUDFLARE_WORKER_PACKAGE_FILE",
|
|
138
169
|
"CLOUDFLARE_WORKER_PACKAGE_TYPE",
|
|
139
170
|
"CLOUDFLARE_WORKER_PLATFORM_MODULES",
|
|
140
|
-
"CLOUDFLARE_WRANGLER_CONFIG_FILE"
|
|
171
|
+
"CLOUDFLARE_WRANGLER_CONFIG_FILE",
|
|
172
|
+
"getCloudflareWorkerRouteDataEntryName"
|
|
141
173
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
142
174
|
Object.defineProperty(exports, '__esModule', {
|
|
143
175
|
value: true
|