@bleedingdev/modern-js-app-tools-extensions 3.9.0-ultramodern.2 → 3.9.0-ultramodern.21

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 (217) hide show
  1. package/dist/cjs/backend-federation-build/codegen.js +267 -0
  2. package/dist/cjs/backend-federation-build/config.js +239 -0
  3. package/dist/cjs/backend-federation-build/emit.js +154 -0
  4. package/dist/cjs/backend-federation-build/index.js +53 -0
  5. package/dist/cjs/build-config/build-environment.js +129 -0
  6. package/dist/cjs/build-config/precompress/plugin.js +124 -0
  7. package/dist/cjs/build-config/precompress/types.js +18 -0
  8. package/dist/cjs/build-config/public.js +43 -0
  9. package/dist/cjs/build-config/remote-address.js +58 -0
  10. package/dist/cjs/cloudflare/artifacts.js +8 -19
  11. package/dist/cjs/cloudflare/constants.js +1 -1
  12. package/dist/cjs/cloudflare/delivery-unit.js +23 -42
  13. package/dist/cjs/cloudflare/index.js +10 -2
  14. package/dist/cjs/cloudflare/worker-manifest.js +13 -4
  15. package/dist/cjs/cloudflare/wrangler-config.js +35 -7
  16. package/dist/cjs/cloudflare-builder.js +252 -75
  17. package/dist/cjs/cloudflare-output-contract.js +69 -3
  18. package/dist/cjs/cloudflare-output-verifier/identity.js +29 -27
  19. package/dist/cjs/cloudflare-output-verifier/index.js +10 -0
  20. package/dist/cjs/cloudflare-output-verifier/manifest.js +46 -0
  21. package/dist/cjs/cloudflare-output-verifier/mutation-policy.js +7 -1
  22. package/dist/cjs/cloudflare-output-verifier/worker-bundles.js +14 -6
  23. package/dist/cjs/config.js +34 -1
  24. package/dist/cjs/deploy-output/npmAliases.js +251 -0
  25. package/dist/cjs/deploy-output/plugin.js +97 -0
  26. package/dist/cjs/deploy-output/public-assets.js +146 -0
  27. package/dist/cjs/deploy-output/target.js +104 -0
  28. package/dist/cjs/deploy-output/trace-files.js +90 -0
  29. package/dist/cjs/native-type-checker.js +193 -0
  30. package/dist/cjs/policy-defaults.js +101 -0
  31. package/dist/cjs/release-envelope/framework-output.js +153 -79
  32. package/dist/cjs/release-envelope/index.js +10 -4
  33. package/dist/cjs/release-envelope/plugin.js +18 -13
  34. package/dist/cjs/release-identity.js +5 -6
  35. package/dist/cjs/runtime-package-resolution.js +118 -0
  36. package/dist/cjs/templates/cloudflare-entry.001-bootstrap-security.mjs +0 -3
  37. package/dist/cjs/templates/cloudflare-entry.002-assets-routes.mjs +1 -1
  38. package/dist/cjs/templates/cloudflare-entry.004-rendering-css.mjs +5 -1
  39. package/dist/cjs/templates/cloudflare-entry.005-worker-dispatch.mjs +98 -10
  40. package/dist/cjs/templates/cloudflare-entry.006-fetch-handler.mjs +9 -2
  41. package/dist/cjs/templates/cloudflare-worker-route-data.mjs +1069 -0
  42. package/dist/esm/backend-federation-build/codegen.mjs +216 -0
  43. package/dist/esm/backend-federation-build/config.mjs +163 -0
  44. package/dist/esm/backend-federation-build/emit.mjs +103 -0
  45. package/dist/esm/backend-federation-build/index.mjs +1 -0
  46. package/dist/esm/build-config/build-environment.mjs +88 -0
  47. package/dist/esm/build-config/precompress/plugin.mjs +76 -0
  48. package/dist/esm/build-config/precompress/types.mjs +0 -0
  49. package/dist/esm/build-config/public.mjs +1 -0
  50. package/dist/esm/build-config/remote-address.mjs +20 -0
  51. package/dist/esm/cloudflare/artifacts.mjs +8 -19
  52. package/dist/esm/cloudflare/constants.mjs +1 -1
  53. package/dist/esm/cloudflare/delivery-unit.mjs +17 -36
  54. package/dist/esm/cloudflare/index.mjs +10 -2
  55. package/dist/esm/cloudflare/worker-manifest.mjs +13 -4
  56. package/dist/esm/cloudflare/wrangler-config.mjs +35 -7
  57. package/dist/esm/cloudflare-builder.mjs +246 -75
  58. package/dist/esm/cloudflare-output-contract.mjs +59 -2
  59. package/dist/esm/cloudflare-output-verifier/identity.mjs +27 -25
  60. package/dist/esm/cloudflare-output-verifier/index.mjs +10 -0
  61. package/dist/esm/cloudflare-output-verifier/manifest.mjs +46 -0
  62. package/dist/esm/cloudflare-output-verifier/mutation-policy.mjs +7 -1
  63. package/dist/esm/cloudflare-output-verifier/worker-bundles.mjs +15 -7
  64. package/dist/esm/config.mjs +3 -0
  65. package/dist/esm/deploy-output/npmAliases.mjs +199 -0
  66. package/dist/esm/deploy-output/plugin.mjs +46 -0
  67. package/dist/esm/deploy-output/public-assets.mjs +82 -0
  68. package/dist/esm/deploy-output/target.mjs +57 -0
  69. package/dist/esm/deploy-output/trace-files.mjs +38 -0
  70. package/dist/esm/native-type-checker.mjs +142 -0
  71. package/dist/esm/policy-defaults.mjs +45 -0
  72. package/dist/esm/release-envelope/framework-output.mjs +130 -56
  73. package/dist/esm/release-envelope/index.mjs +10 -4
  74. package/dist/esm/release-envelope/plugin.mjs +18 -13
  75. package/dist/esm/release-identity.mjs +5 -6
  76. package/dist/esm/runtime-package-resolution.mjs +60 -0
  77. package/dist/esm/templates/cloudflare-entry.001-bootstrap-security.mjs +0 -3
  78. package/dist/esm/templates/cloudflare-entry.002-assets-routes.mjs +1 -1
  79. package/dist/esm/templates/cloudflare-entry.004-rendering-css.mjs +5 -1
  80. package/dist/esm/templates/cloudflare-entry.005-worker-dispatch.mjs +98 -10
  81. package/dist/esm/templates/cloudflare-entry.006-fetch-handler.mjs +9 -2
  82. package/dist/esm/templates/cloudflare-worker-route-data.mjs +1069 -0
  83. package/dist/esm-node/backend-federation-build/codegen.mjs +217 -0
  84. package/dist/esm-node/backend-federation-build/config.mjs +164 -0
  85. package/dist/esm-node/backend-federation-build/emit.mjs +104 -0
  86. package/dist/esm-node/backend-federation-build/index.mjs +2 -0
  87. package/dist/esm-node/build-config/build-environment.mjs +89 -0
  88. package/dist/esm-node/build-config/precompress/plugin.mjs +77 -0
  89. package/dist/esm-node/build-config/precompress/types.mjs +1 -0
  90. package/dist/esm-node/build-config/public.mjs +2 -0
  91. package/dist/esm-node/build-config/remote-address.mjs +21 -0
  92. package/dist/esm-node/cloudflare/artifacts.mjs +8 -19
  93. package/dist/esm-node/cloudflare/constants.mjs +1 -1
  94. package/dist/esm-node/cloudflare/delivery-unit.mjs +17 -36
  95. package/dist/esm-node/cloudflare/index.mjs +10 -2
  96. package/dist/esm-node/cloudflare/worker-manifest.mjs +13 -4
  97. package/dist/esm-node/cloudflare/wrangler-config.mjs +35 -7
  98. package/dist/esm-node/cloudflare-builder.mjs +246 -75
  99. package/dist/esm-node/cloudflare-output-contract.mjs +59 -2
  100. package/dist/esm-node/cloudflare-output-verifier/identity.mjs +27 -25
  101. package/dist/esm-node/cloudflare-output-verifier/index.mjs +10 -0
  102. package/dist/esm-node/cloudflare-output-verifier/manifest.mjs +46 -0
  103. package/dist/esm-node/cloudflare-output-verifier/mutation-policy.mjs +7 -1
  104. package/dist/esm-node/cloudflare-output-verifier/worker-bundles.mjs +15 -7
  105. package/dist/esm-node/config.mjs +3 -0
  106. package/dist/esm-node/deploy-output/npmAliases.mjs +200 -0
  107. package/dist/esm-node/deploy-output/plugin.mjs +49 -0
  108. package/dist/esm-node/deploy-output/public-assets.mjs +83 -0
  109. package/dist/esm-node/deploy-output/target.mjs +58 -0
  110. package/dist/esm-node/deploy-output/trace-files.mjs +39 -0
  111. package/dist/esm-node/native-type-checker.mjs +143 -0
  112. package/dist/esm-node/policy-defaults.mjs +46 -0
  113. package/dist/esm-node/release-envelope/framework-output.mjs +130 -56
  114. package/dist/esm-node/release-envelope/index.mjs +10 -4
  115. package/dist/esm-node/release-envelope/plugin.mjs +18 -13
  116. package/dist/esm-node/release-identity.mjs +5 -6
  117. package/dist/esm-node/runtime-package-resolution.mjs +61 -0
  118. package/dist/esm-node/templates/cloudflare-entry.001-bootstrap-security.mjs +0 -3
  119. package/dist/esm-node/templates/cloudflare-entry.002-assets-routes.mjs +1 -1
  120. package/dist/esm-node/templates/cloudflare-entry.004-rendering-css.mjs +5 -1
  121. package/dist/esm-node/templates/cloudflare-entry.005-worker-dispatch.mjs +98 -10
  122. package/dist/esm-node/templates/cloudflare-entry.006-fetch-handler.mjs +9 -2
  123. package/dist/esm-node/templates/cloudflare-worker-route-data.mjs +1069 -0
  124. package/dist/types/backend-federation-build/codegen.d.ts +116 -0
  125. package/dist/types/backend-federation-build/config.d.ts +121 -0
  126. package/dist/types/backend-federation-build/emit.d.ts +21 -0
  127. package/dist/types/backend-federation-build/index.d.ts +2 -0
  128. package/dist/types/build-config/build-environment.d.ts +14 -0
  129. package/dist/types/build-config/precompress/plugin.d.ts +4 -0
  130. package/dist/types/build-config/precompress/types.d.ts +19 -0
  131. package/dist/types/build-config/public.d.ts +2 -0
  132. package/dist/types/build-config/remote-address.d.ts +3 -0
  133. package/dist/types/cloudflare/artifacts.d.ts +7 -6
  134. package/dist/types/cloudflare/constants.d.ts +1 -1
  135. package/dist/types/cloudflare/delivery-unit.d.ts +3 -3
  136. package/dist/types/cloudflare/worker-manifest.d.ts +2 -2
  137. package/dist/types/cloudflare/wrangler-config.d.ts +6 -0
  138. package/dist/types/cloudflare-builder.d.ts +49 -9
  139. package/dist/types/cloudflare-output-contract.d.ts +4 -1
  140. package/dist/types/cloudflare-output-verifier/identity.d.ts +1 -1
  141. package/dist/types/cloudflare-output-verifier/worker-bundles.d.ts +2 -2
  142. package/dist/types/config.d.ts +29 -1
  143. package/dist/types/deploy-output/npmAliases.d.ts +14 -0
  144. package/dist/types/deploy-output/plugin.d.ts +35 -0
  145. package/dist/types/deploy-output/public-assets.d.ts +51 -0
  146. package/dist/types/deploy-output/target.d.ts +29 -0
  147. package/dist/types/deploy-output/trace-files.d.ts +17 -0
  148. package/dist/types/native-type-checker.d.ts +15 -0
  149. package/dist/types/policy-defaults.d.ts +46 -0
  150. package/dist/types/precompress/LICENSE +20 -0
  151. package/dist/types/precompress/index.d.ts +76 -0
  152. package/dist/types/release-envelope/framework-output.d.ts +8 -3
  153. package/dist/types/release-envelope/plugin.d.ts +7 -7
  154. package/dist/types/runtime-package-resolution.d.ts +28 -0
  155. package/dist/types/templates/cloudflare-worker-route-data.d.mts +14 -0
  156. package/package.json +97 -15
  157. package/src/backend-federation-build/codegen.ts +254 -0
  158. package/src/backend-federation-build/config.ts +492 -0
  159. package/src/backend-federation-build/emit.ts +213 -0
  160. package/src/backend-federation-build/index.ts +2 -0
  161. package/src/build-config/build-environment.ts +160 -0
  162. package/src/build-config/precompress/plugin.ts +140 -0
  163. package/src/build-config/precompress/types.ts +26 -0
  164. package/src/build-config/public.ts +5 -0
  165. package/src/build-config/remote-address.ts +33 -0
  166. package/src/cloudflare/artifacts.ts +22 -43
  167. package/src/cloudflare/constants.ts +1 -1
  168. package/src/cloudflare/delivery-unit.ts +42 -53
  169. package/src/cloudflare/index.ts +24 -11
  170. package/src/cloudflare/worker-manifest.ts +20 -3
  171. package/src/cloudflare/wrangler-config.ts +86 -10
  172. package/src/cloudflare-builder.ts +475 -151
  173. package/src/cloudflare-output-contract.ts +70 -0
  174. package/src/cloudflare-output-verifier/identity.ts +5 -1
  175. package/src/cloudflare-output-verifier/index.ts +20 -0
  176. package/src/cloudflare-output-verifier/manifest.ts +77 -0
  177. package/src/cloudflare-output-verifier/mutation-policy.ts +11 -1
  178. package/src/cloudflare-output-verifier/worker-bundles.ts +32 -14
  179. package/src/config.ts +34 -6
  180. package/src/deploy-output/npmAliases.ts +382 -0
  181. package/src/deploy-output/plugin.ts +86 -0
  182. package/src/deploy-output/public-assets.ts +224 -0
  183. package/src/deploy-output/target.ts +106 -0
  184. package/src/deploy-output/trace-files.ts +67 -0
  185. package/src/native-type-checker.ts +183 -0
  186. package/src/policy-defaults.ts +127 -0
  187. package/src/release-envelope/framework-output.ts +346 -94
  188. package/src/release-envelope/index.ts +26 -5
  189. package/src/release-envelope/plugin.ts +43 -40
  190. package/src/release-identity.ts +13 -2
  191. package/src/runtime-package-resolution.ts +115 -0
  192. package/src/templates/cloudflare-entry.001-bootstrap-security.mjs +0 -3
  193. package/src/templates/cloudflare-entry.002-assets-routes.mjs +1 -1
  194. package/src/templates/cloudflare-entry.004-rendering-css.mjs +5 -1
  195. package/src/templates/cloudflare-entry.005-worker-dispatch.mjs +98 -10
  196. package/src/templates/cloudflare-entry.006-fetch-handler.mjs +9 -2
  197. package/src/templates/cloudflare-worker-route-data.mjs +1069 -0
  198. package/dist/cjs/templates/cloudflare-worker-fs-promises.mjs +0 -11
  199. package/dist/cjs/templates/cloudflare-worker-loadable-server.mjs +0 -281
  200. package/dist/cjs/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  201. package/dist/cjs/templates/cloudflare-worker-path.mjs +0 -98
  202. package/dist/esm/templates/cloudflare-worker-fs-promises.mjs +0 -11
  203. package/dist/esm/templates/cloudflare-worker-loadable-server.mjs +0 -281
  204. package/dist/esm/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  205. package/dist/esm/templates/cloudflare-worker-path.mjs +0 -98
  206. package/dist/esm-node/templates/cloudflare-worker-fs-promises.mjs +0 -11
  207. package/dist/esm-node/templates/cloudflare-worker-loadable-server.mjs +0 -281
  208. package/dist/esm-node/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  209. package/dist/esm-node/templates/cloudflare-worker-path.mjs +0 -98
  210. package/dist/types/templates/cloudflare-worker-fs-promises.d.mts +0 -5
  211. package/dist/types/templates/cloudflare-worker-loadable-server.d.mts +0 -48
  212. package/dist/types/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +0 -13
  213. package/dist/types/templates/cloudflare-worker-path.d.mts +0 -21
  214. package/src/templates/cloudflare-worker-fs-promises.mjs +0 -11
  215. package/src/templates/cloudflare-worker-loadable-server.mjs +0 -281
  216. package/src/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  217. package/src/templates/cloudflare-worker-path.mjs +0 -98
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
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");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ default: ()=>external_emit_js_default(),
41
+ emitBackendFederationArtifacts: ()=>external_emit_js_namespaceObject.emitBackendFederationArtifacts
42
+ });
43
+ const external_emit_js_namespaceObject = require("./emit.js");
44
+ var external_emit_js_default = /*#__PURE__*/ __webpack_require__.n(external_emit_js_namespaceObject);
45
+ exports["default"] = __webpack_exports__["default"];
46
+ exports.emitBackendFederationArtifacts = __webpack_exports__.emitBackendFederationArtifacts;
47
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
48
+ "default",
49
+ "emitBackendFederationArtifacts"
50
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
51
+ Object.defineProperty(exports, '__esModule', {
52
+ value: true
53
+ });
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
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");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ getBuildConfigEnvironment: ()=>getBuildConfigEnvironment,
32
+ resolveEffectTsgoCompiler: ()=>resolveEffectTsgoCompiler
33
+ });
34
+ const external_node_child_process_namespaceObject = require("node:child_process");
35
+ const external_node_crypto_namespaceObject = require("node:crypto");
36
+ const external_node_fs_namespaceObject = require("node:fs");
37
+ const external_node_module_namespaceObject = require("node:module");
38
+ const external_node_os_namespaceObject = require("node:os");
39
+ const external_node_path_namespaceObject = require("node:path");
40
+ const EFFECT_TSGO_PACKAGE = '@effect/tsgo';
41
+ const EFFECT_TSGO_BIN = 'effect-tsgo';
42
+ const EFFECT_TSGO_RESOLUTION_ERROR = 'Unable to resolve the Effect TS-Go compiler. Install "@effect/tsgo" and a native TypeScript backend for this build config, or set EFFECT_TSGO_BIN.';
43
+ const executableEffectTsgoCompilers = new Map();
44
+ function resolveEffectTsgoCli(from) {
45
+ const projectRequire = (0, external_node_module_namespaceObject.createRequire)(from);
46
+ const packageJsonPath = projectRequire.resolve(`${EFFECT_TSGO_PACKAGE}/package.json`);
47
+ const packageJson = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(packageJsonPath, 'utf-8'));
48
+ const bin = 'string' == typeof packageJson.bin ? packageJson.bin : packageJson.bin?.[EFFECT_TSGO_BIN];
49
+ if (!bin) throw new Error(EFFECT_TSGO_RESOLUTION_ERROR);
50
+ return (0, external_node_path_namespaceObject.resolve)((0, external_node_path_namespaceObject.dirname)(packageJsonPath), bin);
51
+ }
52
+ function resolveExecutableEffectTsgoCompiler(compilerPath) {
53
+ if ('win32' === process.platform) return compilerPath;
54
+ const sourcePath = (0, external_node_fs_namespaceObject.realpathSync)(compilerPath);
55
+ const source = (0, external_node_fs_namespaceObject.lstatSync)(sourcePath);
56
+ if (!source.isFile()) throw new Error(EFFECT_TSGO_RESOLUTION_ERROR);
57
+ try {
58
+ (0, external_node_fs_namespaceObject.accessSync)(sourcePath, external_node_fs_namespaceObject.constants.X_OK);
59
+ return compilerPath;
60
+ } catch {}
61
+ const cachedCompiler = executableEffectTsgoCompilers.get(sourcePath);
62
+ if (cachedCompiler) try {
63
+ (0, external_node_fs_namespaceObject.accessSync)(cachedCompiler, external_node_fs_namespaceObject.constants.X_OK);
64
+ return cachedCompiler;
65
+ } catch {
66
+ executableEffectTsgoCompilers.delete(sourcePath);
67
+ }
68
+ const compilerBytes = (0, external_node_fs_namespaceObject.readFileSync)(sourcePath);
69
+ const compilerDigest = (0, external_node_crypto_namespaceObject.createHash)('sha256').update(compilerBytes).digest('hex');
70
+ const compilerDirectory = (0, external_node_path_namespaceObject.join)((0, external_node_os_namespaceObject.tmpdir)(), 'modern-js', 'effect-tsgo', compilerDigest);
71
+ (0, external_node_fs_namespaceObject.mkdirSync)(compilerDirectory, {
72
+ recursive: true,
73
+ mode: 448
74
+ });
75
+ const executableCompiler = (0, external_node_path_namespaceObject.join)(compilerDirectory, (0, external_node_path_namespaceObject.basename)(sourcePath));
76
+ try {
77
+ (0, external_node_fs_namespaceObject.accessSync)(executableCompiler, external_node_fs_namespaceObject.constants.X_OK);
78
+ } catch {
79
+ const temporaryCompiler = (0, external_node_path_namespaceObject.join)(compilerDirectory, `.${(0, external_node_path_namespaceObject.basename)(sourcePath)}.${process.pid}.tmp`);
80
+ (0, external_node_fs_namespaceObject.rmSync)(temporaryCompiler, {
81
+ force: true
82
+ });
83
+ try {
84
+ (0, external_node_fs_namespaceObject.writeFileSync)(temporaryCompiler, compilerBytes, {
85
+ flag: 'wx',
86
+ mode: 448
87
+ });
88
+ (0, external_node_fs_namespaceObject.chmodSync)(temporaryCompiler, 448);
89
+ (0, external_node_fs_namespaceObject.renameSync)(temporaryCompiler, executableCompiler);
90
+ } finally{
91
+ (0, external_node_fs_namespaceObject.rmSync)(temporaryCompiler, {
92
+ force: true
93
+ });
94
+ }
95
+ }
96
+ (0, external_node_fs_namespaceObject.accessSync)(executableCompiler, external_node_fs_namespaceObject.constants.X_OK);
97
+ executableEffectTsgoCompilers.set(sourcePath, executableCompiler);
98
+ return executableCompiler;
99
+ }
100
+ function getBuildConfigEnvironment(name) {
101
+ return process.env[name];
102
+ }
103
+ function resolveEffectTsgoCompiler(options) {
104
+ const configuredCompiler = getBuildConfigEnvironment('EFFECT_TSGO_BIN')?.trim();
105
+ if (configuredCompiler) try {
106
+ return resolveExecutableEffectTsgoCompiler(configuredCompiler);
107
+ } catch {
108
+ throw new Error(EFFECT_TSGO_RESOLUTION_ERROR);
109
+ }
110
+ try {
111
+ const compiler = (0, external_node_child_process_namespaceObject.execFileSync)(process.execPath, [
112
+ resolveEffectTsgoCli(options.from),
113
+ 'get-exe-path'
114
+ ], {
115
+ encoding: 'utf-8'
116
+ }).trim();
117
+ if (compiler) return resolveExecutableEffectTsgoCompiler(compiler);
118
+ } catch {}
119
+ throw new Error(EFFECT_TSGO_RESOLUTION_ERROR);
120
+ }
121
+ exports.getBuildConfigEnvironment = __webpack_exports__.getBuildConfigEnvironment;
122
+ exports.resolveEffectTsgoCompiler = __webpack_exports__.resolveEffectTsgoCompiler;
123
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
124
+ "getBuildConfigEnvironment",
125
+ "resolveEffectTsgoCompiler"
126
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
127
+ Object.defineProperty(exports, '__esModule', {
128
+ value: true
129
+ });
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
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");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ builderPluginAdapterPrecompress: ()=>builderPluginAdapterPrecompress
41
+ });
42
+ const external_node_zlib_namespaceObject = require("node:zlib");
43
+ const external_compression_webpack_plugin_namespaceObject = require("compression-webpack-plugin");
44
+ var external_compression_webpack_plugin_default = /*#__PURE__*/ __webpack_require__.n(external_compression_webpack_plugin_namespaceObject);
45
+ const DEFAULT_PRECOMPRESS_TEST = /\.(js|mjs|cjs|css|html|svg|json|map)$/i;
46
+ const DEFAULT_PRECOMPRESS_THRESHOLD = 10240;
47
+ const DEFAULT_PRECOMPRESS_MIN_RATIO = 0.8;
48
+ const createDefaultGzipOptions = ()=>({
49
+ algorithm: 'gzip',
50
+ filename: '[path][base].gz',
51
+ test: DEFAULT_PRECOMPRESS_TEST,
52
+ threshold: DEFAULT_PRECOMPRESS_THRESHOLD,
53
+ minRatio: DEFAULT_PRECOMPRESS_MIN_RATIO,
54
+ compressionOptions: {
55
+ level: 6
56
+ }
57
+ });
58
+ const createDefaultBrotliOptions = ()=>({
59
+ algorithm: 'brotliCompress',
60
+ filename: '[path][base].br',
61
+ test: DEFAULT_PRECOMPRESS_TEST,
62
+ threshold: DEFAULT_PRECOMPRESS_THRESHOLD,
63
+ minRatio: DEFAULT_PRECOMPRESS_MIN_RATIO,
64
+ compressionOptions: {
65
+ params: {
66
+ [external_node_zlib_namespaceObject.constants.BROTLI_PARAM_QUALITY]: 9
67
+ }
68
+ }
69
+ });
70
+ const mergeCompressionOptions = (base, next)=>{
71
+ const merged = {
72
+ ...base,
73
+ ...next
74
+ };
75
+ if (base.compressionOptions || next.compressionOptions) {
76
+ const baseCompressionOptions = base.compressionOptions;
77
+ const nextCompressionOptions = next.compressionOptions;
78
+ const mergedCompressionOptions = {
79
+ ...baseCompressionOptions,
80
+ ...nextCompressionOptions
81
+ };
82
+ if (baseCompressionOptions?.params || nextCompressionOptions?.params) mergedCompressionOptions.params = {
83
+ ...baseCompressionOptions?.params,
84
+ ...nextCompressionOptions?.params
85
+ };
86
+ merged.compressionOptions = mergedCompressionOptions;
87
+ }
88
+ return merged;
89
+ };
90
+ const resolveCodecOptions = (codecConfig, createDefaultOptions)=>{
91
+ if (false === codecConfig) return null;
92
+ if (void 0 === codecConfig || true === codecConfig) return createDefaultOptions();
93
+ return mergeCompressionOptions(createDefaultOptions(), codecConfig);
94
+ };
95
+ const resolvePrecompressConfig = (precompress)=>{
96
+ if (false === precompress || void 0 === precompress) return false;
97
+ if (true === precompress) return {};
98
+ return precompress;
99
+ };
100
+ const builderPluginAdapterPrecompress = (precompress)=>({
101
+ name: 'builder-plugin-adapter-modern-precompress',
102
+ setup (api) {
103
+ api.modifyBundlerChain((chain, { isProd, target })=>{
104
+ if (!isProd || 'web' !== target) return;
105
+ const precompressConfig = resolvePrecompressConfig(precompress);
106
+ if (false === precompressConfig) return;
107
+ const gzipOptions = resolveCodecOptions(precompressConfig.gzip, createDefaultGzipOptions);
108
+ if (gzipOptions) chain.plugin('modern-precompress-gzip').use(external_compression_webpack_plugin_default(), [
109
+ gzipOptions
110
+ ]);
111
+ const brotliOptions = resolveCodecOptions(precompressConfig.brotli, createDefaultBrotliOptions);
112
+ if (brotliOptions) chain.plugin('modern-precompress-brotli').use(external_compression_webpack_plugin_default(), [
113
+ brotliOptions
114
+ ]);
115
+ });
116
+ }
117
+ });
118
+ exports.builderPluginAdapterPrecompress = __webpack_exports__.builderPluginAdapterPrecompress;
119
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
120
+ "builderPluginAdapterPrecompress"
121
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
122
+ Object.defineProperty(exports, '__esModule', {
123
+ value: true
124
+ });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
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");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ getBuildConfigEnvironment: ()=>external_build_environment_js_namespaceObject.getBuildConfigEnvironment,
32
+ resolveEffectTsgoCompiler: ()=>external_build_environment_js_namespaceObject.resolveEffectTsgoCompiler
33
+ });
34
+ const external_build_environment_js_namespaceObject = require("./build-environment.js");
35
+ exports.getBuildConfigEnvironment = __webpack_exports__.getBuildConfigEnvironment;
36
+ exports.resolveEffectTsgoCompiler = __webpack_exports__.resolveEffectTsgoCompiler;
37
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
38
+ "getBuildConfigEnvironment",
39
+ "resolveEffectTsgoCompiler"
40
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
41
+ Object.defineProperty(exports, '__esModule', {
42
+ value: true
43
+ });
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
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");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ createRemoteManifestUrl: ()=>createRemoteManifestUrl
32
+ });
33
+ const surface_resolution_namespaceObject = require("@modern-js/surface-resolution");
34
+ const target_js_namespaceObject = require("../deploy-output/target.js");
35
+ const external_build_environment_js_namespaceObject = require("./build-environment.js");
36
+ function createRemoteManifestUrl(options) {
37
+ const env = {
38
+ ...Object.fromEntries([
39
+ options.manifestEnv,
40
+ options.publicUrlEnv,
41
+ 'ULTRAMODERN_CLOUDFLARE_WORKERS_DEV_SUBDOMAIN'
42
+ ].map((name)=>[
43
+ name,
44
+ (0, external_build_environment_js_namespaceObject.getBuildConfigEnvironment)(name)
45
+ ])),
46
+ MODERNJS_DEPLOY: (0, target_js_namespaceObject.resolveDeployTarget)().target
47
+ };
48
+ const address = (0, surface_resolution_namespaceObject.resolveBrowserManifestAddress)(env, options, (0, external_build_environment_js_namespaceObject.getBuildConfigEnvironment)('NODE_ENV') ?? 'production');
49
+ if (!address.ok) throw new Error(`Remote ${options.mfName}: ${address.reason}`);
50
+ return env[options.manifestEnv]?.trim() || `${options.mfName}@${address.manifestUrl}`;
51
+ }
52
+ exports.createRemoteManifestUrl = __webpack_exports__.createRemoteManifestUrl;
53
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
54
+ "createRemoteManifestUrl"
55
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
56
+ Object.defineProperty(exports, '__esModule', {
57
+ value: true
58
+ });
@@ -47,6 +47,7 @@ __webpack_require__.d(__webpack_exports__, {
47
47
  const external_node_path_namespaceObject = require("node:path");
48
48
  var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
49
49
  const utils_namespaceObject = require("@modern-js/utils");
50
+ const public_assets_js_namespaceObject = require("../deploy-output/public-assets.js");
50
51
  const external_constants_js_namespaceObject = require("./constants.js");
51
52
  const external_utils_js_namespaceObject = require("./utils.js");
52
53
  const normalizeCloudflareArtifact = (artifact, index)=>{
@@ -62,18 +63,7 @@ const normalizeCloudflareArtifact = (artifact, index)=>{
62
63
  };
63
64
  };
64
65
  const getCloudflareArtifacts = (modernConfig)=>(modernConfig.deploy?.worker?.artifacts ?? []).map(normalizeCloudflareArtifact);
65
- const normalizeCloudflarePublicAsset = (asset, index)=>{
66
- const from = (0, external_utils_js_namespaceObject.normalizeRelativePath)(asset.from, `deploy.worker.publicAssets[${index}].from`, 'app root');
67
- const to = (0, external_utils_js_namespaceObject.normalizeRelativePath)(asset.to, `deploy.worker.publicAssets[${index}].to`, 'Cloudflare public output', {
68
- allowRoot: true
69
- });
70
- return {
71
- from,
72
- to,
73
- index
74
- };
75
- };
76
- const getCloudflarePublicAssets = (modernConfig)=>(modernConfig.deploy?.worker?.publicAssets ?? []).map(normalizeCloudflarePublicAsset);
66
+ const getCloudflarePublicAssets = (modernConfig)=>(0, public_assets_js_namespaceObject.normalizeDeclaredPublicAssets)(modernConfig.deploy?.worker?.publicAssets, public_assets_js_namespaceObject.CLOUDFLARE_PUBLIC_ASSET_SCOPE);
77
67
  const copyCloudflareArtifacts = async (appDirectory, outputDirectory, artifacts)=>{
78
68
  for (const artifact of artifacts){
79
69
  const sourcePath = external_node_path_default().join(appDirectory, artifact.from);
@@ -81,13 +71,12 @@ const copyCloudflareArtifacts = async (appDirectory, outputDirectory, artifacts)
81
71
  await utils_namespaceObject.fs.copy(sourcePath, external_node_path_default().join(outputDirectory, artifact.to));
82
72
  }
83
73
  };
84
- const copyCloudflarePublicAssets = async (appDirectory, publicDirectory, publicAssets)=>{
85
- for (const asset of publicAssets){
86
- const sourcePath = external_node_path_default().join(appDirectory, asset.from);
87
- if (!await utils_namespaceObject.fs.pathExists(sourcePath)) throw new Error(`deploy.worker.publicAssets[${asset.index}].from does not exist: ${asset.from}`);
88
- await utils_namespaceObject.fs.copy(sourcePath, external_node_path_default().join(publicDirectory, asset.to));
89
- }
90
- };
74
+ const copyCloudflarePublicAssets = async (appDirectory, outputDirectory, publicAssets)=>(0, public_assets_js_namespaceObject.stageDeclaredPublicAssets)({
75
+ appDirectory,
76
+ outputDirectory,
77
+ assets: publicAssets,
78
+ scope: public_assets_js_namespaceObject.CLOUDFLARE_PUBLIC_ASSET_SCOPE
79
+ });
91
80
  const copyCloudflareD1Migrations = async (appDirectory, outputDirectory, modernConfig)=>{
92
81
  for (const [index, database] of (modernConfig.deploy?.worker?.d1Databases ?? []).entries()){
93
82
  if (!database.migrationsDir) continue;
@@ -73,7 +73,7 @@ const DEFAULT_SERVER_ONLY_PUBLIC_ASSET_EXCLUDES = [
73
73
  ];
74
74
  const BFF_EFFECT_WORKER_ENTRY = `${WORKER_BUNDLE_DIRECTORY}/__modern_bff_effect.js`;
75
75
  const BFF_EFFECT_WORKER_DISPATCHER_EXPORT = '__modern_create_effect_bff_dispatcher';
76
- const EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE = 'Ensure the Effect API entry exists at api/index.ts or bff.effect.entry, and import Cloudflare edge handlers from @modern-js/plugin-bff/effect-edge instead of lambda/Hono server helpers.';
76
+ const EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE = 'Ensure the Effect API entry exists at api/index.ts or bff.effect.entry, and import Cloudflare edge handlers from @modern-js/bff-effect/effect-edge instead of lambda/Hono server helpers.';
77
77
  const DEFAULT_COMPATIBILITY_DATE = '2026-06-02';
78
78
  const COMPATIBILITY_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/u;
79
79
  const REQUIRED_COMPATIBILITY_FLAGS = external_cloudflare_output_contract_js_namespaceObject.CLOUDFLARE_REQUIRED_COMPATIBILITY_FLAGS;
@@ -42,15 +42,15 @@ __webpack_require__.d(__webpack_exports__, {
42
42
  });
43
43
  const external_node_path_namespaceObject = require("node:path");
44
44
  var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
45
+ const backend_federation_contracts_namespaceObject = require("@modern-js/backend-federation-contracts");
45
46
  const utils_namespaceObject = require("@modern-js/utils");
46
- const universal_namespaceObject = require("@modern-js/utils/universal");
47
47
  const external_release_identity_js_namespaceObject = require("../release-identity.js");
48
48
  const external_utils_js_namespaceObject = require("./utils.js");
49
- const COMPACT_CONFIG_PATH = '.modernjs/ultramodern.json';
49
+ const TOPOLOGY_PATH = 'topology/reference-topology.json';
50
50
  const findWorkspaceRoot = async (appDirectory)=>{
51
51
  let current = external_node_path_default().resolve(appDirectory);
52
52
  for(;;){
53
- if (await utils_namespaceObject.fs.pathExists(external_node_path_default().join(current, COMPACT_CONFIG_PATH))) return current;
53
+ if (await utils_namespaceObject.fs.pathExists(external_node_path_default().join(current, TOPOLOGY_PATH))) return current;
54
54
  const parent = external_node_path_default().dirname(current);
55
55
  if (parent === current) return;
56
56
  current = parent;
@@ -67,41 +67,30 @@ const stampReleaseIdentity = (identity, workspaceRoot)=>{
67
67
  })
68
68
  };
69
69
  };
70
- const resolveCompactApp = async (appDirectory)=>{
70
+ const resolveTopologyApp = async (appDirectory)=>{
71
71
  const workspaceRoot = await findWorkspaceRoot(appDirectory);
72
72
  if (!workspaceRoot) return;
73
- let compactConfig;
74
- try {
75
- compactConfig = await utils_namespaceObject.fs.readJSON(external_node_path_default().join(workspaceRoot, COMPACT_CONFIG_PATH));
76
- } catch {
77
- return {
78
- workspaceRoot
79
- };
80
- }
81
- if (!(0, external_utils_js_namespaceObject.isRecord)(compactConfig)) return {
82
- workspaceRoot
83
- };
84
- const topology = (0, external_utils_js_namespaceObject.isRecord)(compactConfig.topology) ? compactConfig.topology : void 0;
85
- const apps = Array.isArray(topology?.apps) ? topology.apps : void 0;
86
- if (!apps) return {
87
- app: compactConfig,
88
- workspaceRoot
89
- };
73
+ const topology = await utils_namespaceObject.fs.readJSON(external_node_path_default().join(workspaceRoot, TOPOLOGY_PATH));
74
+ if (!(0, external_utils_js_namespaceObject.isRecord)(topology) || !(0, external_utils_js_namespaceObject.isRecord)(topology.shell) || !Array.isArray(topology.verticals) || void 0 !== topology.shells && !Array.isArray(topology.shells)) throw new Error('[cloudflare-delivery-unit] Invalid declared reference topology.');
75
+ const apps = [
76
+ topology.shell,
77
+ ...topology.verticals,
78
+ ...Array.isArray(topology.shells) ? topology.shells : []
79
+ ];
90
80
  const resolvedAppDirectory = external_node_path_default().resolve(appDirectory);
91
81
  const app = apps.find((candidate)=>{
92
82
  if (!(0, external_utils_js_namespaceObject.isRecord)(candidate)) return false;
93
- const appPath = (0, universal_namespaceObject.nonEmptyString)(candidate.path);
83
+ const appPath = (0, backend_federation_contracts_namespaceObject.nonEmptyString)(candidate.path);
94
84
  return void 0 !== appPath && external_node_path_default().resolve(workspaceRoot, appPath.replace(/^\.\/+/u, '')) === resolvedAppDirectory;
95
85
  });
86
+ if (!(0, external_utils_js_namespaceObject.isRecord)(app)) throw new Error(`[cloudflare-delivery-unit] ${appDirectory} is missing from the declared reference topology.`);
96
87
  return {
97
- ...(0, external_utils_js_namespaceObject.isRecord)(app) ? {
98
- app
99
- } : {},
88
+ app,
100
89
  workspaceRoot
101
90
  };
102
91
  };
103
92
  const createDeliveryUnitStamp = (identity, app)=>{
104
- const surfaceProfile = (0, universal_namespaceObject.nonEmptyString)(app?.surfaceProfile);
93
+ const surfaceProfile = (0, backend_federation_contracts_namespaceObject.nonEmptyString)(app?.surfaceProfile);
105
94
  const emitsUi = 'api-only' !== surfaceProfile;
106
95
  const emitsApi = 'ui-only' !== surfaceProfile;
107
96
  return {
@@ -123,30 +112,22 @@ const createDeliveryUnitStamp = (identity, app)=>{
123
112
  };
124
113
  };
125
114
  const resolveTopologyDeliveryUnit = async (appDirectory)=>{
126
- const resolved = await resolveCompactApp(appDirectory);
115
+ const resolved = await resolveTopologyApp(appDirectory);
127
116
  if (!resolved?.app) return;
128
- const identity = (0, universal_namespaceObject.toDeliveryUnitIdentity)(resolved.app.deliveryUnit);
129
- return identity ? createDeliveryUnitStamp(stampReleaseIdentity(identity, resolved.workspaceRoot), resolved.app) : void 0;
117
+ const identity = (0, backend_federation_contracts_namespaceObject.toDeliveryUnitIdentity)(resolved.app.deliveryUnit);
118
+ if (!identity) throw new Error('[cloudflare-delivery-unit] Declared app is missing a valid delivery-unit identity.');
119
+ return createDeliveryUnitStamp(stampReleaseIdentity(identity, resolved.workspaceRoot), resolved.app);
130
120
  };
131
121
  const resolveWorkerDeliveryUnitStamp = async (appDirectory)=>{
132
- const buildArtifactPath = external_node_path_default().join(appDirectory, universal_namespaceObject.ULTRAMODERN_BUILD_ARTIFACT_PATH);
133
- const buildModulePath = external_node_path_default().join(appDirectory, universal_namespaceObject.ULTRAMODERN_BUILD_MODULE_PATH);
122
+ const buildArtifactPath = external_node_path_default().join(appDirectory, backend_federation_contracts_namespaceObject.ULTRAMODERN_BUILD_ARTIFACT_PATH);
134
123
  let identity;
135
124
  if (await utils_namespaceObject.fs.pathExists(buildArtifactPath)) {
136
125
  const artifact = await utils_namespaceObject.fs.readJSON(buildArtifactPath);
137
- if (!(0, universal_namespaceObject.isUltramodernBuildArtifact)(artifact)) return;
138
- identity = (0, universal_namespaceObject.toDeliveryUnitIdentity)(artifact.deliveryUnit);
139
- } else if (await utils_namespaceObject.fs.pathExists(buildModulePath)) {
140
- console.warn(`[cloudflare] ${buildArtifactPath} missing; falling back to legacy regex parsing of ${buildModulePath}. Regenerate the workspace to emit ultramodern-build.json.`);
141
- const source = await utils_namespaceObject.fs.readFile(buildModulePath, 'utf8');
142
- identity = (0, universal_namespaceObject.toDeliveryUnitIdentity)({
143
- buildMarker: source.match(/\bbuild:\s*['"]([^'"]+)['"]/u)?.[1],
144
- unitId: source.match(/\bunitId:\s*['"]([^'"]+)['"]/u)?.[1],
145
- sourceRevision: source.match(/\bsourceRevision:\s*['"]([^'"]+)['"]/u)?.[1]
146
- });
126
+ if (!(0, backend_federation_contracts_namespaceObject.isUltramodernBuildArtifact)(artifact)) return;
127
+ identity = (0, backend_federation_contracts_namespaceObject.toDeliveryUnitIdentity)(artifact.deliveryUnit);
147
128
  }
148
129
  if (!identity) return;
149
- const resolved = await resolveCompactApp(appDirectory);
130
+ const resolved = await resolveTopologyApp(appDirectory);
150
131
  if (resolved) identity = stampReleaseIdentity(identity, resolved.workspaceRoot);
151
132
  return createDeliveryUnitStamp(identity, resolved?.app);
152
133
  };
@@ -41,6 +41,7 @@ __webpack_require__.d(__webpack_exports__, {
41
41
  });
42
42
  const external_node_path_namespaceObject = require("node:path");
43
43
  var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
44
+ const backend_federation_contracts_namespaceObject = require("@modern-js/backend-federation-contracts");
44
45
  const utils_namespaceObject = require("@modern-js/utils");
45
46
  const external_cloudflare_output_plan_js_namespaceObject = require("../cloudflare-output-plan.js");
46
47
  const index_js_namespaceObject = require("../cloudflare-output-verifier/index.js");
@@ -73,12 +74,13 @@ const createCloudflarePreset = ({ api, appContext, modernConfig })=>{
73
74
  const publicAssetExcludes = (0, external_worker_manifest_js_namespaceObject.getPublicAssetExcludes)(appDirectory, modernConfig);
74
75
  const releaseEnvelopeEnabled = api.isPluginExists('@modern-js/ultramodern-release-envelope');
75
76
  let hasReleaseEnvelope = false;
77
+ let declaredPublicAssets = [];
76
78
  return {
77
79
  async prepare () {
78
80
  await utils_namespaceObject.fs.remove(outputDirectory);
79
81
  },
80
82
  async writeOutput () {
81
- if (releaseEnvelopeEnabled && await utils_namespaceObject.fs.pathExists(external_node_path_default().join(distDirectory, framework_output_js_namespaceObject.MICROVERTICAL_RELEASE_ENVELOPE_PATH))) await (0, framework_output_js_namespaceObject.emitFrameworkMicroVerticalReleaseEnvelope)({
83
+ if (releaseEnvelopeEnabled) await (0, framework_output_js_namespaceObject.emitFrameworkMicroVerticalReleaseEnvelope)({
82
84
  apiOnly,
83
85
  distDirectory,
84
86
  target: 'cloudflare'
@@ -87,6 +89,11 @@ const createCloudflarePreset = ({ api, appContext, modernConfig })=>{
87
89
  await utils_namespaceObject.fs.copy(distDirectory, publicDirectory, {
88
90
  filter: (src)=>{
89
91
  const relativePath = external_node_path_default().relative(distDirectory, src).replace(/\\/gu, '/');
92
+ if (apiOnly && '' !== relativePath && ![
93
+ backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_MANIFEST_FILE,
94
+ backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_REMOTE_ENTRY_FILE,
95
+ backend_federation_contracts_namespaceObject.ULTRAMODERN_BUILD_ARTIFACT_FILE
96
+ ].includes(relativePath)) return false;
90
97
  return 'release' !== relativePath && !relativePath.startsWith('release/') && 'public' !== relativePath && !relativePath.startsWith('public/') && (0, external_worker_manifest_js_namespaceObject.shouldCopyToPublicAssets)(src, distDirectory, publicAssetExcludes);
91
98
  }
92
99
  });
@@ -110,7 +117,7 @@ const createCloudflarePreset = ({ api, appContext, modernConfig })=>{
110
117
  await utils_namespaceObject.fs.writeJSON(outputPlan.paths.workerPackage, outputPlan.packages.worker);
111
118
  }
112
119
  await (0, external_artifacts_js_namespaceObject.copyCloudflareArtifacts)(appDirectory, outputDirectory, cloudflareArtifacts);
113
- await (0, external_artifacts_js_namespaceObject.copyCloudflarePublicAssets)(appDirectory, publicDirectory, (0, external_artifacts_js_namespaceObject.getCloudflarePublicAssets)(modernConfig));
120
+ declaredPublicAssets = await (0, external_artifacts_js_namespaceObject.copyCloudflarePublicAssets)(appDirectory, outputDirectory, (0, external_artifacts_js_namespaceObject.getCloudflarePublicAssets)(modernConfig));
114
121
  await (0, external_artifacts_js_namespaceObject.copyCloudflareD1Migrations)(appDirectory, outputDirectory, modernConfig);
115
122
  await utils_namespaceObject.fs.writeJSON(wranglerConfigPath, (0, external_wrangler_config_js_namespaceObject.createWranglerConfig)(appDirectory, modernConfig), {
116
123
  spaces: 2
@@ -139,6 +146,7 @@ const createCloudflarePreset = ({ api, appContext, modernConfig })=>{
139
146
  });
140
147
  if (hasReleaseEnvelope) {
141
148
  await (0, framework_output_js_namespaceObject.emitCloudflareStagedReleaseEnvelope)({
149
+ declaredPublicAssets,
142
150
  distDirectory,
143
151
  outputDirectory
144
152
  });