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