@bleedingdev/modern-js-app-tools 3.2.0-ultramodern.12 → 3.2.0-ultramodern.120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/bin/modern.js +0 -0
  2. package/dist/cjs/baseline.js +51 -5
  3. package/dist/cjs/builder/builder-rspack/index.js +9 -5
  4. package/dist/cjs/builder/generator/adapterCopy.js +9 -5
  5. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +9 -5
  6. package/dist/cjs/builder/generator/createCopyPattern.js +9 -5
  7. package/dist/cjs/builder/generator/getBuilderEnvironments.js +199 -12
  8. package/dist/cjs/builder/generator/index.js +9 -5
  9. package/dist/cjs/builder/index.js +9 -5
  10. package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +50 -10
  11. package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +10 -6
  12. package/dist/cjs/builder/shared/builderPlugins/adapterPrecompress.js +9 -5
  13. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +12 -6
  14. package/dist/cjs/builder/shared/builderPlugins/builderHooks.js +12 -8
  15. package/dist/cjs/builder/shared/builderPlugins/index.js +9 -5
  16. package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +9 -5
  17. package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +12 -8
  18. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +9 -5
  19. package/dist/cjs/builder/shared/bundlerPlugins/index.js +9 -5
  20. package/dist/cjs/builder/shared/createCopyInfo.js +9 -5
  21. package/dist/cjs/builder/shared/index.js +9 -5
  22. package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +12 -8
  23. package/dist/cjs/commands/build.js +9 -5
  24. package/dist/cjs/commands/deploy.js +9 -5
  25. package/dist/cjs/commands/dev.js +9 -5
  26. package/dist/cjs/commands/index.js +9 -5
  27. package/dist/cjs/commands/info.js +9 -5
  28. package/dist/cjs/commands/inspect.js +12 -8
  29. package/dist/cjs/commands/runtime.js +15 -11
  30. package/dist/cjs/commands/serve.js +9 -5
  31. package/dist/cjs/compat/hooks.js +9 -5
  32. package/dist/cjs/compat/index.js +9 -5
  33. package/dist/cjs/compat/utils.js +9 -5
  34. package/dist/cjs/config/default.js +9 -5
  35. package/dist/cjs/config/index.js +9 -5
  36. package/dist/cjs/config/initialize/index.js +9 -5
  37. package/dist/cjs/config/initialize/inits.js +9 -5
  38. package/dist/cjs/constants.js +13 -9
  39. package/dist/cjs/defineConfig.js +12 -8
  40. package/dist/cjs/esm/register-esm.js +12 -8
  41. package/dist/cjs/esm/ts-paths-loader.js +9 -5
  42. package/dist/cjs/index.js +21 -16
  43. package/dist/cjs/locale/en.js +12 -8
  44. package/dist/cjs/locale/index.js +9 -5
  45. package/dist/cjs/locale/zh.js +12 -8
  46. package/dist/cjs/plugins/analyze/constants.js +14 -10
  47. package/dist/cjs/plugins/analyze/getBundleEntry.js +9 -5
  48. package/dist/cjs/plugins/analyze/getFileSystemEntry.js +9 -5
  49. package/dist/cjs/plugins/analyze/getHtmlTemplate.js +9 -5
  50. package/dist/cjs/plugins/analyze/getServerRoutes.js +9 -5
  51. package/dist/cjs/plugins/analyze/index.js +9 -5
  52. package/dist/cjs/plugins/analyze/isDefaultExportFunction.js +9 -5
  53. package/dist/cjs/plugins/analyze/templates.js +12 -8
  54. package/dist/cjs/plugins/analyze/utils.js +9 -5
  55. package/dist/cjs/plugins/deploy/index.js +26 -11
  56. package/dist/cjs/plugins/deploy/platforms/cloudflare.js +384 -0
  57. package/dist/cjs/plugins/deploy/platforms/gh-pages.js +9 -5
  58. package/dist/cjs/plugins/deploy/platforms/netlify.js +9 -5
  59. package/dist/cjs/plugins/deploy/platforms/node.js +9 -5
  60. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.mjs +502 -0
  61. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +7 -0
  62. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +185 -0
  63. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +59 -0
  64. package/dist/cjs/plugins/deploy/platforms/vercel.js +9 -5
  65. package/dist/cjs/plugins/deploy/utils/generator.js +9 -5
  66. package/dist/cjs/plugins/deploy/utils/index.js +9 -5
  67. package/dist/cjs/plugins/initialize/index.js +9 -5
  68. package/dist/cjs/plugins/serverBuild.js +9 -5
  69. package/dist/cjs/plugins/serverRuntime.js +12 -8
  70. package/dist/cjs/presetUltramodern.js +9 -5
  71. package/dist/cjs/rsbuild.js +12 -5
  72. package/dist/cjs/run/index.js +9 -5
  73. package/dist/cjs/types/config/index.js +9 -5
  74. package/dist/cjs/types/index.js +9 -5
  75. package/dist/cjs/ultramodern/designSystem.js +16 -12
  76. package/dist/cjs/utils/config.js +9 -5
  77. package/dist/cjs/utils/createServer.js +14 -10
  78. package/dist/cjs/utils/env.js +9 -5
  79. package/dist/cjs/utils/generateWatchFiles.js +9 -5
  80. package/dist/cjs/utils/getConfigFile.js +9 -5
  81. package/dist/cjs/utils/getSelectedEntries.js +9 -5
  82. package/dist/cjs/utils/initAppContext.js +9 -5
  83. package/dist/cjs/utils/loadPlugins.js +9 -5
  84. package/dist/cjs/utils/printInstructions.js +9 -5
  85. package/dist/cjs/utils/register.js +9 -5
  86. package/dist/cjs/utils/restart.js +9 -5
  87. package/dist/cjs/utils/routes.js +9 -5
  88. package/dist/esm/baseline.mjs +33 -1
  89. package/dist/esm/builder/generator/getBuilderEnvironments.mjs +180 -8
  90. package/dist/esm/builder/shared/builderPlugins/adapterBasic.mjs +41 -5
  91. package/dist/esm/builder/shared/builderPlugins/adapterHtml.mjs +1 -1
  92. package/dist/esm/builder/shared/builderPlugins/adapterSSR.mjs +3 -1
  93. package/dist/esm/plugins/deploy/index.mjs +10 -4
  94. package/dist/esm/plugins/deploy/platforms/cloudflare.mjs +336 -0
  95. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.mjs +502 -0
  96. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +7 -0
  97. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +185 -0
  98. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +59 -0
  99. package/dist/esm/rsbuild.mjs +5 -2
  100. package/dist/esm-node/baseline.mjs +33 -1
  101. package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +185 -9
  102. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.mjs +41 -5
  103. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.mjs +1 -1
  104. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.mjs +3 -1
  105. package/dist/esm-node/plugins/deploy/index.mjs +10 -4
  106. package/dist/esm-node/plugins/deploy/platforms/cloudflare.mjs +337 -0
  107. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.mjs +502 -0
  108. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +7 -0
  109. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +185 -0
  110. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +59 -0
  111. package/dist/esm-node/rsbuild.mjs +5 -2
  112. package/dist/types/builder/builder-rspack/index.d.ts +1 -1
  113. package/dist/types/builder/generator/index.d.ts +1 -1
  114. package/dist/types/builder/shared/createCopyInfo.d.ts +1 -1
  115. package/dist/types/commands/inspect.d.ts +1 -1
  116. package/dist/types/locale/en.d.ts +1 -1
  117. package/dist/types/locale/index.d.ts +89 -2
  118. package/dist/types/locale/zh.d.ts +1 -1
  119. package/dist/types/plugins/analyze/getFileSystemEntry.d.ts +2 -2
  120. package/dist/types/plugins/analyze/utils.d.ts +1 -1
  121. package/dist/types/plugins/deploy/index.d.ts +4 -1
  122. package/dist/types/plugins/deploy/platforms/cloudflare.d.ts +2 -0
  123. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.d.mts +4 -0
  124. package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.d.mts +5 -0
  125. package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.d.mts +48 -0
  126. package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-path.d.mts +21 -0
  127. package/dist/types/plugins/deploy/utils/generator.d.ts +2 -2
  128. package/dist/types/plugins/deploy/utils/index.d.ts +1 -1
  129. package/dist/types/rsbuild.d.ts +1 -1
  130. package/dist/types/run/index.d.ts +1 -1
  131. package/dist/types/types/config/deploy.d.ts +56 -0
  132. package/dist/types/utils/getConfigFile.d.ts +1 -1
  133. package/dist/types/utils/loadPlugins.d.ts +2 -2
  134. package/package.json +22 -21
package/bin/modern.js CHANGED
File without changes
@@ -1,11 +1,24 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
8
  });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
9
22
  };
10
23
  })();
11
24
  (()=>{
@@ -27,7 +40,37 @@ __webpack_require__.d(__webpack_exports__, {
27
40
  createAppBaselineConfig: ()=>createAppBaselineConfig,
28
41
  withAppBaseline: ()=>withAppBaseline
29
42
  });
43
+ const external_node_module_namespaceObject = require("node:module");
44
+ const external_node_path_namespaceObject = require("node:path");
45
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
30
46
  const cli_namespaceObject = require("@modern-js/plugin/cli");
47
+ const resolveReactRouterPackageDir = ()=>{
48
+ const localRequire = (0, external_node_module_namespaceObject.createRequire)(external_node_path_default().join(process.cwd(), 'package.json'));
49
+ try {
50
+ const reactRouterDomPackageJson = localRequire.resolve('react-router-dom/package.json', {
51
+ paths: [
52
+ process.cwd()
53
+ ]
54
+ });
55
+ const reactRouterPackageJson = localRequire.resolve('react-router/package.json', {
56
+ paths: [
57
+ external_node_path_default().dirname(reactRouterDomPackageJson)
58
+ ]
59
+ });
60
+ return external_node_path_default().dirname(reactRouterPackageJson);
61
+ } catch {
62
+ return;
63
+ }
64
+ };
65
+ const setReactRouterBridgeSafeAliases = (chain)=>{
66
+ const reactRouterPackageDir = resolveReactRouterPackageDir();
67
+ if (!reactRouterPackageDir) return;
68
+ const productionEntry = external_node_path_default().join(reactRouterPackageDir, 'dist/production/index.mjs');
69
+ const developmentEntry = external_node_path_default().join(reactRouterPackageDir, 'dist/development/index.mjs');
70
+ chain.resolve.alias.set('react-router$', productionEntry);
71
+ chain.resolve.alias.set('react-router/dist/production/index.js', productionEntry);
72
+ chain.resolve.alias.set('react-router/dist/development/index.js', developmentEntry);
73
+ };
31
74
  const createAppBaselineConfig = (options = {})=>{
32
75
  const { appId = 'app', enableBffRequestId = true, enableTelemetry = true, enableTelemetryExporters = true, otlpEndpoint = process.env.MODERN_TELEMETRY_OTLP_ENDPOINT || 'http://127.0.0.1:4318/v1/logs', victoriaMetricsEndpoint = process.env.MODERN_TELEMETRY_VICTORIA_ENDPOINT || 'http://127.0.0.1:8428/api/v1/import/prometheus', telemetryFailLoudStartup = true, enableModuleFederationSSR = true } = options;
33
76
  const server = {};
@@ -61,7 +104,10 @@ const createAppBaselineConfig = (options = {})=>{
61
104
  disableClientServer: true
62
105
  }
63
106
  },
64
- server
107
+ server,
108
+ tools: {
109
+ bundlerChain: setReactRouterBridgeSafeAliases
110
+ }
65
111
  };
66
112
  if (enableBffRequestId) baselineConfig.bff = {
67
113
  requestId: appId
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
17
- });
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
18
22
  };
19
23
  })();
20
24
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,24 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
8
  });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
9
22
  };
10
23
  })();
11
24
  (()=>{
@@ -26,8 +39,74 @@ __webpack_require__.r(__webpack_exports__);
26
39
  __webpack_require__.d(__webpack_exports__, {
27
40
  getBuilderEnvironments: ()=>getBuilderEnvironments
28
41
  });
42
+ const external_node_fs_namespaceObject = require("node:fs");
43
+ var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
44
+ const external_node_path_namespaceObject = require("node:path");
45
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
29
46
  const builder_namespaceObject = require("@modern-js/builder");
30
47
  const utils_namespaceObject = require("@modern-js/utils");
48
+ const BFF_EFFECT_WORKER_ENTRY_NAME = '__modern_bff_effect';
49
+ const BFF_EFFECT_WORKER_RUNTIME_QUERY = 'modern-bff-runtime';
50
+ const JS_OR_TS_EXTS = [
51
+ '.ts',
52
+ '.tsx',
53
+ '.js',
54
+ '.jsx',
55
+ '.mjs',
56
+ '.cjs'
57
+ ];
58
+ const CLOUDFLARE_WORKER_COMPAT_TEMPLATE_DIR = external_node_path_default().resolve(__dirname, '../../plugins/deploy/platforms/templates');
59
+ function findExistingFile(candidates) {
60
+ return candidates.find((candidate)=>external_node_fs_default().existsSync(candidate));
61
+ }
62
+ function resolvePackageEntry(packageName, paths) {
63
+ try {
64
+ return external_node_fs_default().realpathSync(require.resolve(packageName, {
65
+ paths
66
+ }));
67
+ } catch {
68
+ return;
69
+ }
70
+ }
71
+ function resolvePackageFile(packageName, filePath, paths) {
72
+ try {
73
+ return external_node_fs_default().realpathSync(require.resolve(`${packageName}/${filePath}`, {
74
+ paths
75
+ }));
76
+ } catch {
77
+ const packageEntry = resolvePackageEntry(packageName, paths);
78
+ if (!packageEntry) return;
79
+ const packageRoot = findPackageRoot(packageEntry, packageName);
80
+ const packageFile = packageRoot ? external_node_path_default().join(packageRoot, filePath) : void 0;
81
+ return packageFile && external_node_fs_default().existsSync(packageFile) ? external_node_fs_default().realpathSync(packageFile) : void 0;
82
+ }
83
+ }
84
+ function findPackageRoot(entryFile, packageName) {
85
+ let directory = external_node_path_default().dirname(entryFile);
86
+ while(directory !== external_node_path_default().dirname(directory)){
87
+ const packageJsonPath = external_node_path_default().join(directory, 'package.json');
88
+ try {
89
+ const packageJson = JSON.parse(external_node_fs_default().readFileSync(packageJsonPath, 'utf-8'));
90
+ if (packageJson.name === packageName) return directory;
91
+ } catch {}
92
+ directory = external_node_path_default().dirname(directory);
93
+ }
94
+ }
95
+ function setAliasIfPresent(alias, name, value) {
96
+ if (value) alias.set(name, value);
97
+ }
98
+ function getCloudflareWorkerCompatFile(file) {
99
+ return external_node_path_default().join(CLOUDFLARE_WORKER_COMPAT_TEMPLATE_DIR, file);
100
+ }
101
+ function getEffectBffEntry(normalizedConfig, appContext) {
102
+ if (!normalizedConfig.bff || 'hono' === normalizedConfig.bff.runtimeFramework) return;
103
+ const configuredEntry = normalizedConfig.bff.effect?.entry;
104
+ const entryWithoutExtension = configuredEntry ? external_node_path_default().isAbsolute(configuredEntry) ? configuredEntry : external_node_path_default().resolve(appContext.appDirectory, configuredEntry) : external_node_path_default().resolve(appContext.apiDirectory, 'effect', 'index');
105
+ return findExistingFile(JS_OR_TS_EXTS.map((extension)=>`${entryWithoutExtension}${extension}`));
106
+ }
107
+ function isCloudflareWorkerDeploy(normalizedConfig) {
108
+ return normalizedConfig.deploy?.target === 'cloudflare' || 'cloudflare' === process.env.MODERNJS_DEPLOY;
109
+ }
31
110
  function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig) {
32
111
  const entries = {};
33
112
  const { entrypoints = [], checkedEntries } = appContext;
@@ -44,6 +123,11 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
44
123
  const v = entries[entry];
45
124
  serverEntries[entry] = v.map((entry)=>entry.replace('index.jsx', 'index.server.jsx')).map((entry)=>entry.replace('bootstrap.jsx', 'bootstrap.server.jsx'));
46
125
  }
126
+ const cloudflareWorkerServerEntries = {};
127
+ for(const entry in entries){
128
+ const v = entries[entry];
129
+ cloudflareWorkerServerEntries[entry] = v.map((entry)=>entry.replace('index.jsx', 'index.server.jsx')).map((entry)=>entry.replace('bootstrap.jsx', 'index.server.jsx'));
130
+ }
47
131
  const environments = {
48
132
  client: {
49
133
  output: {
@@ -68,14 +152,117 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
68
152
  }
69
153
  };
70
154
  const useWorkerTarget = (0, utils_namespaceObject.isServiceWorker)(normalizedConfig);
71
- if (useWorkerTarget) environments[builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME] = {
72
- output: {
73
- target: 'web-worker'
74
- },
75
- source: {
76
- entry: serverEntries
77
- }
78
- };
155
+ if (useWorkerTarget) {
156
+ const useCloudflareModuleWorker = isCloudflareWorkerDeploy(normalizedConfig);
157
+ const effectBffEntry = useCloudflareModuleWorker ? getEffectBffEntry(normalizedConfig, appContext) : void 0;
158
+ const tanstackRouterSsrServerFile = useCloudflareModuleWorker ? resolvePackageFile('@tanstack/router-core', 'dist/esm/ssr/ssr-server.js', [
159
+ appContext.appDirectory,
160
+ process.cwd()
161
+ ]) : void 0;
162
+ const runtimeRscWorkerFile = useCloudflareModuleWorker ? resolvePackageFile('@modern-js/runtime', 'dist/esm/rsc/server.worker.mjs', [
163
+ appContext.appDirectory,
164
+ process.cwd()
165
+ ]) : void 0;
166
+ const renderRscWorkerFile = useCloudflareModuleWorker ? resolvePackageFile('@modern-js/render', 'dist/esm/rscWorker.mjs', [
167
+ appContext.appDirectory,
168
+ process.cwd()
169
+ ]) : void 0;
170
+ const reactFile = useCloudflareModuleWorker ? resolvePackageFile('react', 'index.js', [
171
+ appContext.appDirectory,
172
+ process.cwd()
173
+ ]) : void 0;
174
+ const reactJsxRuntimeFile = useCloudflareModuleWorker ? resolvePackageFile('react', 'jsx-runtime.js', [
175
+ appContext.appDirectory,
176
+ process.cwd()
177
+ ]) : void 0;
178
+ const reactJsxDevRuntimeFile = useCloudflareModuleWorker ? resolvePackageFile('react', 'jsx-dev-runtime.js', [
179
+ appContext.appDirectory,
180
+ process.cwd()
181
+ ]) : void 0;
182
+ const reactDomFile = useCloudflareModuleWorker ? resolvePackageFile('react-dom', 'index.js', [
183
+ appContext.appDirectory,
184
+ process.cwd()
185
+ ]) : void 0;
186
+ const reactDomServerEdgeFile = useCloudflareModuleWorker ? resolvePackageFile('react-dom', 'server.edge.js', [
187
+ appContext.appDirectory,
188
+ process.cwd()
189
+ ]) : void 0;
190
+ const loadableComponentFile = useCloudflareModuleWorker ? resolvePackageFile('@loadable/component', 'dist/esm/loadable.esm.mjs', [
191
+ appContext.appDirectory,
192
+ process.cwd(),
193
+ CLOUDFLARE_WORKER_COMPAT_TEMPLATE_DIR
194
+ ]) : void 0;
195
+ const loadableServerWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-loadable-server.mjs') : void 0;
196
+ const fsPromisesWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-fs-promises.mjs') : void 0;
197
+ const pathWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-path.mjs') : void 0;
198
+ const baseWorkerEntries = useCloudflareModuleWorker ? cloudflareWorkerServerEntries : serverEntries;
199
+ const workerEntries = effectBffEntry ? {
200
+ ...baseWorkerEntries,
201
+ [BFF_EFFECT_WORKER_ENTRY_NAME]: [
202
+ `${effectBffEntry}?${BFF_EFFECT_WORKER_RUNTIME_QUERY}`
203
+ ]
204
+ } : baseWorkerEntries;
205
+ environments[builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME] = {
206
+ output: {
207
+ target: useCloudflareModuleWorker ? 'web' : 'web-worker',
208
+ ...useCloudflareModuleWorker ? {
209
+ module: true
210
+ } : {}
211
+ },
212
+ source: {
213
+ entry: workerEntries
214
+ },
215
+ tools: {
216
+ htmlPlugin: false,
217
+ ...useCloudflareModuleWorker ? {
218
+ bundlerChain: (chain)=>{
219
+ chain.merge({
220
+ experiments: {
221
+ outputModule: true
222
+ }
223
+ });
224
+ chain.output.module(true).library({
225
+ type: 'module'
226
+ }).chunkFormat('module').chunkLoading('import').workerChunkLoading('import');
227
+ chain.target('webworker');
228
+ chain.plugins.delete('plugin-module-federation');
229
+ if (tanstackRouterSsrServerFile) {
230
+ chain.resolve.alias.set('@tanstack/router-core/ssr/server$', tanstackRouterSsrServerFile);
231
+ chain.resolve.alias.set('@tanstack/router-core/ssr/server', tanstackRouterSsrServerFile);
232
+ }
233
+ if (runtimeRscWorkerFile) {
234
+ chain.resolve.alias.set('@modern-js/runtime/rsc/server$', runtimeRscWorkerFile);
235
+ chain.resolve.alias.set('@modern-js/runtime/rsc/server', runtimeRscWorkerFile);
236
+ }
237
+ if (renderRscWorkerFile) {
238
+ chain.resolve.alias.set('@modern-js/render/rsc$', renderRscWorkerFile);
239
+ chain.resolve.alias.set('@modern-js/render/rsc', renderRscWorkerFile);
240
+ chain.resolve.alias.set('@modern-js/render/rsc-worker$', renderRscWorkerFile);
241
+ }
242
+ setAliasIfPresent(chain.resolve.alias, 'react$', reactFile);
243
+ setAliasIfPresent(chain.resolve.alias, 'react/jsx-runtime$', reactJsxRuntimeFile);
244
+ setAliasIfPresent(chain.resolve.alias, 'react/jsx-dev-runtime$', reactJsxDevRuntimeFile);
245
+ setAliasIfPresent(chain.resolve.alias, 'react-dom$', reactDomFile);
246
+ setAliasIfPresent(chain.resolve.alias, 'react-dom/server.edge$', reactDomServerEdgeFile);
247
+ setAliasIfPresent(chain.resolve.alias, '@loadable/component$', loadableComponentFile);
248
+ setAliasIfPresent(chain.resolve.alias, '@loadable/server$', loadableServerWorkerFile);
249
+ setAliasIfPresent(chain.resolve.alias, 'fs/promises$', fsPromisesWorkerFile);
250
+ setAliasIfPresent(chain.resolve.alias, 'node:fs/promises$', fsPromisesWorkerFile);
251
+ setAliasIfPresent(chain.resolve.alias, 'path$', pathWorkerFile);
252
+ setAliasIfPresent(chain.resolve.alias, 'node:path$', pathWorkerFile);
253
+ chain.resolve.alias.set('react-server-dom-rspack/server.node$', 'react-server-dom-rspack/server.edge');
254
+ chain.resolve.alias.set('react-server-dom-rspack/server.node', 'react-server-dom-rspack/server.edge');
255
+ chain.resolve.alias.set('react-server-dom-rspack/client.node$', 'react-server-dom-rspack/client.edge');
256
+ chain.resolve.alias.set('react-server-dom-rspack/client.node', 'react-server-dom-rspack/client.edge');
257
+ chain.resolve.fallback.set('async_hooks', false);
258
+ chain.resolve.fallback.set('node:async_hooks', false);
259
+ chain.resolve.fallback.set('fs', false);
260
+ chain.resolve.fallback.set('node:fs', false);
261
+ }
262
+ } : {}
263
+ }
264
+ };
265
+ }
79
266
  return {
80
267
  environments,
81
268
  builderConfig: tempBuilderConfig
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
17
- });
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
18
22
  };
19
23
  })();
20
24
  (()=>{
@@ -43,8 +47,11 @@ const builderPluginAdapterBasic = (options)=>({
43
47
  setup (api) {
44
48
  api.modifyBundlerChain((chain, { target, CHAIN_ID, environment })=>{
45
49
  const isServiceWorker = environment.name === builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME;
46
- if ('node' === target || isServiceWorker) applyNodeCompat(isServiceWorker, chain);
47
- if ('web' === target) {
50
+ const isWebTargetServiceWorker = isServiceWorker && 'web' === target;
51
+ if ('node' === target || isServiceWorker) applyNodeCompat(isServiceWorker, chain, {
52
+ includeNodeExtensions: !isWebTargetServiceWorker
53
+ });
54
+ if ('web' === target && !isServiceWorker) {
48
55
  const bareServerModuleReg = /\.(server|node)\.[tj]sx?$/;
49
56
  const depExt = 'js';
50
57
  chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
@@ -60,8 +67,40 @@ const builderPluginAdapterBasic = (options)=>({
60
67
  });
61
68
  api.modifyRspackConfig((config, { target, environment })=>{
62
69
  const isServiceWorker = environment.name === builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME;
70
+ const isWebTargetServiceWorker = isServiceWorker && 'web' === target;
63
71
  if ('node' === target || isServiceWorker) {
64
- const extensionAlias = {
72
+ const extensionAlias = isWebTargetServiceWorker ? {
73
+ '.js': [
74
+ '.worker.js',
75
+ '.server.js',
76
+ '.js'
77
+ ],
78
+ '.jsx': [
79
+ '.worker.jsx',
80
+ '.server.jsx',
81
+ '.jsx'
82
+ ],
83
+ '.ts': [
84
+ '.worker.ts',
85
+ '.server.ts',
86
+ '.ts'
87
+ ],
88
+ '.tsx': [
89
+ '.worker.tsx',
90
+ '.server.tsx',
91
+ '.tsx'
92
+ ],
93
+ '.mjs': [
94
+ '.worker.mjs',
95
+ '.server.mjs',
96
+ '.mjs'
97
+ ],
98
+ '.json': [
99
+ '.worker.json',
100
+ '.server.json',
101
+ '.json'
102
+ ]
103
+ } : {
65
104
  '.js': [
66
105
  '.node.js',
67
106
  '.server.js',
@@ -102,7 +141,8 @@ const builderPluginAdapterBasic = (options)=>({
102
141
  });
103
142
  }
104
143
  });
105
- function applyNodeCompat(isServiceWorker, chain) {
144
+ function applyNodeCompat(isServiceWorker, chain, options = {}) {
145
+ const { includeNodeExtensions = true } = options;
106
146
  const nodeExts = [
107
147
  '.node.js',
108
148
  '.node.jsx',
@@ -121,7 +161,7 @@ function applyNodeCompat(isServiceWorker, chain) {
121
161
  '.worker.ts',
122
162
  '.worker.tsx'
123
163
  ];
124
- for (const ext of nodeExts)chain.resolve.extensions.prepend(ext);
164
+ if (includeNodeExtensions) for (const ext of nodeExts)chain.resolve.extensions.prepend(ext);
125
165
  if (isServiceWorker) for (const ext of webWorkerExts)chain.resolve.extensions.prepend(ext);
126
166
  }
127
167
  exports.builderPluginAdapterBasic = __webpack_exports__.builderPluginAdapterBasic;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -66,7 +70,7 @@ function applyBottomHtmlPlugin({ chain, options, CHAIN_ID, HtmlBundlerPlugin, ht
66
70
  const baseTemplateParams = {
67
71
  entryName,
68
72
  title: modernConfig.html.title,
69
- mountId: modernConfig.html.templateParameters
73
+ mountId: modernConfig.html.mountId
70
74
  };
71
75
  chain.plugin(`${CHAIN_ID.PLUGIN.HTML}-${entryName}`).tap((args)=>[
72
76
  {
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
17
- });
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
18
22
  };
19
23
  })();
20
24
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -122,9 +126,10 @@ function applyFilterEntriesBySSRConfig({ isProd, chain, appNormalizedConfig }) {
122
126
  });
123
127
  }
124
128
  async function applySSRLoaderEntry(chain, optinos, isServer) {
125
- const { appContext } = optinos;
129
+ const { appContext, normalizedConfig } = optinos;
126
130
  const { internalDirectory } = appContext;
127
131
  const { entrypoints } = appContext;
132
+ const isRsc = (0, utils_namespaceObject.isUseRsc)(normalizedConfig);
128
133
  await Promise.all(entrypoints.map(async (entrypoint)=>{
129
134
  const { entryName } = entrypoint;
130
135
  const serverLoadersFile = (0, utils_js_namespaceObject.getServerCombinedModuleFile)(internalDirectory, entryName);
@@ -132,6 +137,7 @@ async function applySSRLoaderEntry(chain, optinos, isServer) {
132
137
  await utils_namespaceObject.fs.access(serverLoadersFile, utils_namespaceObject.fs.constants.F_OK);
133
138
  chain.entry(`${entryName}-server-loaders`).add(serverLoadersFile);
134
139
  } catch (err) {}
140
+ else if (isRsc) chain.entry(`${entryName}-server-loaders`).add("data:text/javascript,export%20{};");
135
141
  }));
136
142
  }
137
143
  function applySSRDataLoader(chain, options) {