@bleedingdev/modern-js-plugin-bff-extensions 3.8.3-ultramodern.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +29 -0
  3. package/dist/cjs/backend-federation/edge-runtime.js +230 -0
  4. package/dist/cjs/backend-federation/edge.js +80 -0
  5. package/dist/cjs/backend-federation/entry.js +94 -0
  6. package/dist/cjs/backend-federation/identity.js +82 -0
  7. package/dist/cjs/backend-federation/index.js +61 -0
  8. package/dist/cjs/backend-federation/legacy-warning.js +40 -0
  9. package/dist/cjs/backend-federation/load.js +72 -0
  10. package/dist/cjs/backend-federation/node.js +50 -0
  11. package/dist/cjs/backend-federation/plugin.js +63 -0
  12. package/dist/cjs/backend-federation/remotes.js +51 -0
  13. package/dist/cjs/backend-federation/runtime.js +128 -0
  14. package/dist/cjs/backend-federation/types.js +18 -0
  15. package/dist/cjs/backend-federation/utils.js +48 -0
  16. package/dist/cjs/backend-federation/validate-loaded.js +56 -0
  17. package/dist/cjs/backend-federation-manifest/errors.js +83 -0
  18. package/dist/cjs/backend-federation-manifest/index.js +48 -0
  19. package/dist/cjs/backend-federation-manifest/load.js +173 -0
  20. package/dist/cjs/backend-federation-manifest/metadata.js +101 -0
  21. package/dist/cjs/backend-federation-manifest/node.js +50 -0
  22. package/dist/cjs/backend-federation-manifest/reference.js +132 -0
  23. package/dist/cjs/backend-federation-manifest/remote.js +81 -0
  24. package/dist/cjs/backend-federation-manifest/types.js +18 -0
  25. package/dist/cjs/backend-federation-manifest/validation.js +110 -0
  26. package/dist/cjs/client-generator/built-entry.js +84 -0
  27. package/dist/cjs/client-generator/generator.js +73 -0
  28. package/dist/cjs/client-generator/index.js +54 -0
  29. package/dist/cjs/client-generator/paths.js +62 -0
  30. package/dist/cjs/client-generator/rendering.js +253 -0
  31. package/dist/cjs/client-generator/runtime.js +68 -0
  32. package/dist/cjs/client-generator/types.js +18 -0
  33. package/dist/cjs/cross-project-generation/index.js +40 -0
  34. package/dist/cjs/cross-project-generation/render.js +53 -0
  35. package/dist/cjs/cross-project-policy/evaluation.js +75 -0
  36. package/dist/cjs/cross-project-policy/index.js +40 -0
  37. package/dist/cjs/cross-project-policy/node.js +76 -0
  38. package/dist/cjs/effect-adapter/cross-project-policy.js +64 -0
  39. package/dist/cjs/effect-adapter/entry.js +98 -0
  40. package/dist/cjs/effect-adapter/error-response.js +75 -0
  41. package/dist/cjs/effect-adapter/index.js +187 -0
  42. package/dist/cjs/effect-source-loader/index.js +51 -0
  43. package/dist/cjs/effect-source-loader/loader.js +341 -0
  44. package/dist/cjs/effect-source-loader/worker-runtime-wrapper.js +97 -0
  45. package/dist/cjs/hono/bind-route-handlers.js +76 -0
  46. package/dist/cjs/hono/cross-project-policy.js +48 -0
  47. package/dist/cjs/hono/index.js +40 -0
  48. package/dist/esm/backend-federation/edge-runtime.mjs +186 -0
  49. package/dist/esm/backend-federation/edge.mjs +21 -0
  50. package/dist/esm/backend-federation/entry.mjs +56 -0
  51. package/dist/esm/backend-federation/identity.mjs +41 -0
  52. package/dist/esm/backend-federation/index.mjs +4 -0
  53. package/dist/esm/backend-federation/legacy-warning.mjs +2 -0
  54. package/dist/esm/backend-federation/load.mjs +34 -0
  55. package/dist/esm/backend-federation/node.mjs +12 -0
  56. package/dist/esm/backend-federation/plugin.mjs +25 -0
  57. package/dist/esm/backend-federation/remotes.mjs +13 -0
  58. package/dist/esm/backend-federation/runtime.mjs +90 -0
  59. package/dist/esm/backend-federation/types.mjs +0 -0
  60. package/dist/esm/backend-federation/utils.mjs +7 -0
  61. package/dist/esm/backend-federation/validate-loaded.mjs +18 -0
  62. package/dist/esm/backend-federation-manifest/errors.mjs +32 -0
  63. package/dist/esm/backend-federation-manifest/index.mjs +3 -0
  64. package/dist/esm/backend-federation-manifest/load.mjs +135 -0
  65. package/dist/esm/backend-federation-manifest/metadata.mjs +42 -0
  66. package/dist/esm/backend-federation-manifest/node.mjs +12 -0
  67. package/dist/esm/backend-federation-manifest/reference.mjs +88 -0
  68. package/dist/esm/backend-federation-manifest/remote.mjs +43 -0
  69. package/dist/esm/backend-federation-manifest/types.mjs +0 -0
  70. package/dist/esm/backend-federation-manifest/validation.mjs +66 -0
  71. package/dist/esm/client-generator/built-entry.mjs +40 -0
  72. package/dist/esm/client-generator/generator.mjs +32 -0
  73. package/dist/esm/client-generator/index.mjs +3 -0
  74. package/dist/esm/client-generator/paths.mjs +24 -0
  75. package/dist/esm/client-generator/rendering.mjs +209 -0
  76. package/dist/esm/client-generator/runtime.mjs +27 -0
  77. package/dist/esm/client-generator/types.mjs +0 -0
  78. package/dist/esm/cross-project-generation/index.mjs +1 -0
  79. package/dist/esm/cross-project-generation/render.mjs +15 -0
  80. package/dist/esm/cross-project-policy/evaluation.mjs +34 -0
  81. package/dist/esm/cross-project-policy/index.mjs +1 -0
  82. package/dist/esm/cross-project-policy/node.mjs +28 -0
  83. package/dist/esm/effect-adapter/cross-project-policy.mjs +26 -0
  84. package/dist/esm/effect-adapter/entry.mjs +50 -0
  85. package/dist/esm/effect-adapter/error-response.mjs +37 -0
  86. package/dist/esm/effect-adapter/index.mjs +139 -0
  87. package/dist/esm/effect-source-loader/index.mjs +3 -0
  88. package/dist/esm/effect-source-loader/loader.mjs +285 -0
  89. package/dist/esm/effect-source-loader/worker-runtime-wrapper.mjs +56 -0
  90. package/dist/esm/hono/bind-route-handlers.mjs +38 -0
  91. package/dist/esm/hono/cross-project-policy.mjs +10 -0
  92. package/dist/esm/hono/index.mjs +1 -0
  93. package/dist/esm-node/backend-federation/edge-runtime.mjs +187 -0
  94. package/dist/esm-node/backend-federation/edge.mjs +22 -0
  95. package/dist/esm-node/backend-federation/entry.mjs +57 -0
  96. package/dist/esm-node/backend-federation/identity.mjs +42 -0
  97. package/dist/esm-node/backend-federation/index.mjs +5 -0
  98. package/dist/esm-node/backend-federation/legacy-warning.mjs +3 -0
  99. package/dist/esm-node/backend-federation/load.mjs +35 -0
  100. package/dist/esm-node/backend-federation/node.mjs +13 -0
  101. package/dist/esm-node/backend-federation/plugin.mjs +26 -0
  102. package/dist/esm-node/backend-federation/remotes.mjs +14 -0
  103. package/dist/esm-node/backend-federation/runtime.mjs +91 -0
  104. package/dist/esm-node/backend-federation/types.mjs +1 -0
  105. package/dist/esm-node/backend-federation/utils.mjs +8 -0
  106. package/dist/esm-node/backend-federation/validate-loaded.mjs +19 -0
  107. package/dist/esm-node/backend-federation-manifest/errors.mjs +33 -0
  108. package/dist/esm-node/backend-federation-manifest/index.mjs +4 -0
  109. package/dist/esm-node/backend-federation-manifest/load.mjs +136 -0
  110. package/dist/esm-node/backend-federation-manifest/metadata.mjs +43 -0
  111. package/dist/esm-node/backend-federation-manifest/node.mjs +13 -0
  112. package/dist/esm-node/backend-federation-manifest/reference.mjs +89 -0
  113. package/dist/esm-node/backend-federation-manifest/remote.mjs +44 -0
  114. package/dist/esm-node/backend-federation-manifest/types.mjs +1 -0
  115. package/dist/esm-node/backend-federation-manifest/validation.mjs +67 -0
  116. package/dist/esm-node/client-generator/built-entry.mjs +41 -0
  117. package/dist/esm-node/client-generator/generator.mjs +33 -0
  118. package/dist/esm-node/client-generator/index.mjs +4 -0
  119. package/dist/esm-node/client-generator/paths.mjs +25 -0
  120. package/dist/esm-node/client-generator/rendering.mjs +210 -0
  121. package/dist/esm-node/client-generator/runtime.mjs +29 -0
  122. package/dist/esm-node/client-generator/types.mjs +1 -0
  123. package/dist/esm-node/cross-project-generation/index.mjs +2 -0
  124. package/dist/esm-node/cross-project-generation/render.mjs +16 -0
  125. package/dist/esm-node/cross-project-policy/evaluation.mjs +35 -0
  126. package/dist/esm-node/cross-project-policy/index.mjs +2 -0
  127. package/dist/esm-node/cross-project-policy/node.mjs +29 -0
  128. package/dist/esm-node/effect-adapter/cross-project-policy.mjs +27 -0
  129. package/dist/esm-node/effect-adapter/entry.mjs +51 -0
  130. package/dist/esm-node/effect-adapter/error-response.mjs +38 -0
  131. package/dist/esm-node/effect-adapter/index.mjs +140 -0
  132. package/dist/esm-node/effect-source-loader/index.mjs +4 -0
  133. package/dist/esm-node/effect-source-loader/loader.mjs +286 -0
  134. package/dist/esm-node/effect-source-loader/worker-runtime-wrapper.mjs +57 -0
  135. package/dist/esm-node/hono/bind-route-handlers.mjs +39 -0
  136. package/dist/esm-node/hono/cross-project-policy.mjs +11 -0
  137. package/dist/esm-node/hono/index.mjs +2 -0
  138. package/dist/types/backend-federation/edge-runtime.d.ts +46 -0
  139. package/dist/types/backend-federation/edge.d.ts +28 -0
  140. package/dist/types/backend-federation/entry.d.ts +2 -0
  141. package/dist/types/backend-federation/identity.d.ts +30 -0
  142. package/dist/types/backend-federation/index.d.ts +6 -0
  143. package/dist/types/backend-federation/legacy-warning.d.ts +1 -0
  144. package/dist/types/backend-federation/load.d.ts +13 -0
  145. package/dist/types/backend-federation/node.d.ts +4 -0
  146. package/dist/types/backend-federation/plugin.d.ts +3 -0
  147. package/dist/types/backend-federation/remotes.d.ts +2 -0
  148. package/dist/types/backend-federation/runtime.d.ts +3 -0
  149. package/dist/types/backend-federation/types.d.ts +76 -0
  150. package/dist/types/backend-federation/utils.d.ts +2 -0
  151. package/dist/types/backend-federation/validate-loaded.d.ts +8 -0
  152. package/dist/types/backend-federation-manifest/errors.d.ts +11 -0
  153. package/dist/types/backend-federation-manifest/index.d.ts +5 -0
  154. package/dist/types/backend-federation-manifest/load.d.ts +3 -0
  155. package/dist/types/backend-federation-manifest/metadata.d.ts +18 -0
  156. package/dist/types/backend-federation-manifest/node.d.ts +3 -0
  157. package/dist/types/backend-federation-manifest/reference.d.ts +4 -0
  158. package/dist/types/backend-federation-manifest/remote.d.ts +3 -0
  159. package/dist/types/backend-federation-manifest/types.d.ts +49 -0
  160. package/dist/types/backend-federation-manifest/validation.d.ts +5 -0
  161. package/dist/types/client-generator/built-entry.d.ts +16 -0
  162. package/dist/types/client-generator/generator.d.ts +3 -0
  163. package/dist/types/client-generator/index.d.ts +4 -0
  164. package/dist/types/client-generator/paths.d.ts +5 -0
  165. package/dist/types/client-generator/rendering.d.ts +24 -0
  166. package/dist/types/client-generator/runtime.d.ts +12 -0
  167. package/dist/types/client-generator/types.d.ts +33 -0
  168. package/dist/types/cross-project-generation/index.d.ts +1 -0
  169. package/dist/types/cross-project-generation/render.d.ts +1 -0
  170. package/dist/types/cross-project-policy/evaluation.d.ts +4 -0
  171. package/dist/types/cross-project-policy/index.d.ts +1 -0
  172. package/dist/types/cross-project-policy/node.d.ts +4 -0
  173. package/dist/types/effect-adapter/cross-project-policy.d.ts +4 -0
  174. package/dist/types/effect-adapter/entry.d.ts +2 -0
  175. package/dist/types/effect-adapter/error-response.d.ts +2 -0
  176. package/dist/types/effect-adapter/index.d.ts +19 -0
  177. package/dist/types/effect-source-loader/index.d.ts +3 -0
  178. package/dist/types/effect-source-loader/loader.d.ts +17 -0
  179. package/dist/types/effect-source-loader/worker-runtime-wrapper.d.ts +25 -0
  180. package/dist/types/hono/bind-route-handlers.d.ts +10 -0
  181. package/dist/types/hono/cross-project-policy.d.ts +3 -0
  182. package/dist/types/hono/index.d.ts +1 -0
  183. package/package.json +213 -0
  184. package/src/backend-federation/edge-runtime.ts +258 -0
  185. package/src/backend-federation/edge.ts +128 -0
  186. package/src/backend-federation/entry.ts +125 -0
  187. package/src/backend-federation/identity.ts +97 -0
  188. package/src/backend-federation/index.ts +30 -0
  189. package/src/backend-federation/legacy-warning.ts +2 -0
  190. package/src/backend-federation/load.ts +102 -0
  191. package/src/backend-federation/node.ts +33 -0
  192. package/src/backend-federation/plugin.ts +35 -0
  193. package/src/backend-federation/remotes.ts +17 -0
  194. package/src/backend-federation/runtime.ts +99 -0
  195. package/src/backend-federation/types.ts +103 -0
  196. package/src/backend-federation/utils.ts +7 -0
  197. package/src/backend-federation/validate-loaded.ts +72 -0
  198. package/src/backend-federation-manifest/errors.ts +85 -0
  199. package/src/backend-federation-manifest/index.ts +11 -0
  200. package/src/backend-federation-manifest/load.ts +266 -0
  201. package/src/backend-federation-manifest/metadata.ts +73 -0
  202. package/src/backend-federation-manifest/node.ts +19 -0
  203. package/src/backend-federation-manifest/reference.ts +240 -0
  204. package/src/backend-federation-manifest/remote.ts +102 -0
  205. package/src/backend-federation-manifest/types.ts +73 -0
  206. package/src/backend-federation-manifest/validation.ts +255 -0
  207. package/src/client-generator/built-entry.ts +70 -0
  208. package/src/client-generator/generator.ts +52 -0
  209. package/src/client-generator/index.ts +10 -0
  210. package/src/client-generator/paths.ts +40 -0
  211. package/src/client-generator/rendering.ts +307 -0
  212. package/src/client-generator/runtime.ts +69 -0
  213. package/src/client-generator/types.ts +35 -0
  214. package/src/cross-project-generation/index.ts +1 -0
  215. package/src/cross-project-generation/render.ts +14 -0
  216. package/src/cross-project-policy/evaluation.ts +70 -0
  217. package/src/cross-project-policy/index.ts +1 -0
  218. package/src/cross-project-policy/node.ts +63 -0
  219. package/src/effect-adapter/cross-project-policy.ts +63 -0
  220. package/src/effect-adapter/entry.ts +95 -0
  221. package/src/effect-adapter/error-response.ts +68 -0
  222. package/src/effect-adapter/index.ts +246 -0
  223. package/src/effect-source-loader/index.ts +6 -0
  224. package/src/effect-source-loader/loader.ts +397 -0
  225. package/src/effect-source-loader/worker-runtime-wrapper.ts +90 -0
  226. package/src/hono/bind-route-handlers.ts +62 -0
  227. package/src/hono/cross-project-policy.ts +26 -0
  228. package/src/hono/index.ts +4 -0
@@ -0,0 +1,72 @@
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
+ loadBackendFederatedEffectApi: ()=>loadBackendFederatedEffectApi
32
+ });
33
+ const universal_namespaceObject = require("@modern-js/utils/universal");
34
+ const Effect_namespaceObject = require("effect/Effect");
35
+ const Logger_namespaceObject = require("effect/Logger");
36
+ const external_legacy_warning_js_namespaceObject = require("./legacy-warning.js");
37
+ const external_remotes_js_namespaceObject = require("./remotes.js");
38
+ const external_runtime_js_namespaceObject = require("./runtime.js");
39
+ const external_utils_js_namespaceObject = require("./utils.js");
40
+ const external_validate_loaded_js_namespaceObject = require("./validate-loaded.js");
41
+ const legacyWarningLogger = Logger_namespaceObject.withLeveledConsole(Logger_namespaceObject.formatLogFmt);
42
+ function warnLegacyLoad() {
43
+ Effect_namespaceObject.runSync(Effect_namespaceObject.provideService(Effect_namespaceObject.logWarning(external_legacy_warning_js_namespaceObject.LEGACY_LOAD_WARNING), Logger_namespaceObject.CurrentLoggers, new Set([
44
+ legacyWarningLogger
45
+ ])));
46
+ }
47
+ function loadBackendFederatedEffectApi(options) {
48
+ const remoteName = options.remote?.name ?? options.remoteName;
49
+ if (void 0 === remoteName || 0 === remoteName.length) return Promise.reject(new Error('[BFF][Effect] Missing backend federation remote name.'));
50
+ if (void 0 === options.expected) warnLegacyLoad();
51
+ if (void 0 !== options.runtime) {
52
+ const configuredRemote = (0, external_remotes_js_namespaceObject.collectRemotes)(options).find((remote)=>remote.name === remoteName);
53
+ if (void 0 === configuredRemote || !/^(?:binding|service|static):/u.test(configuredRemote.entry)) return Promise.reject(new Error('[BFF][Effect] A custom Module Federation runtime requires a caller-pinned static or service-binding remote and cannot execute network backend federation entries.'));
54
+ if (void 0 !== configuredRemote.verification || options.entryPolicy?.expected !== void 0) return Promise.reject(new Error('[BFF][Effect] A custom Module Federation runtime cannot bypass verified backend entry loading.'));
55
+ }
56
+ const runtime = options.runtime ?? (0, external_runtime_js_namespaceObject.createBackendFederationRuntime)(options);
57
+ const expose = options.expose ?? options.remote?.expose ?? universal_namespaceObject.BACKEND_FEDERATION_EFFECT_EXPOSE;
58
+ const remoteRequest = `${remoteName}/${(0, external_utils_js_namespaceObject.normalizeExpose)(expose)}`;
59
+ return runtime.loadRemote(remoteRequest).then((loaded)=>(0, external_validate_loaded_js_namespaceObject.validateLoadedBackendFederatedEffectApi)(loaded, {
60
+ allowMissingIdentityMetadata: options.allowMissingIdentityMetadata,
61
+ expected: options.expected,
62
+ remoteName,
63
+ remoteRequest
64
+ }));
65
+ }
66
+ exports.loadBackendFederatedEffectApi = __webpack_exports__.loadBackendFederatedEffectApi;
67
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
68
+ "loadBackendFederatedEffectApi"
69
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
70
+ Object.defineProperty(exports, '__esModule', {
71
+ value: true
72
+ });
@@ -0,0 +1,50 @@
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
+ loadBackendFederatedEffectApi: ()=>loadBackendFederatedEffectApi
32
+ });
33
+ const node_namespaceObject = require("@modern-js/server-runtime-extensions/backend-federation-security/node");
34
+ const external_load_js_namespaceObject = require("./load.js");
35
+ function loadBackendFederatedEffectApi(options) {
36
+ return (0, external_load_js_namespaceObject.loadBackendFederatedEffectApi)({
37
+ ...options,
38
+ entryPolicy: {
39
+ ...options.entryPolicy,
40
+ evaluateCommonJs: options.entryPolicy?.evaluateCommonJs ?? node_namespaceObject.evaluateNodeBackendFederationCommonJs
41
+ }
42
+ });
43
+ }
44
+ exports.loadBackendFederatedEffectApi = __webpack_exports__.loadBackendFederatedEffectApi;
45
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
46
+ "loadBackendFederatedEffectApi"
47
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
48
+ Object.defineProperty(exports, '__esModule', {
49
+ value: true
50
+ });
@@ -0,0 +1,63 @@
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
+ function createBackendFederationLoadEntryPlugin(options) {
31
+ return {
32
+ name: 'modernjs-backend-federation-load-entry',
33
+ loadEntry ({ remoteInfo }) {
34
+ return Promise.resolve(options.resolveEntry({
35
+ name: remoteInfo.name,
36
+ entry: remoteInfo.entry,
37
+ type: remoteInfo.type,
38
+ entryGlobalName: remoteInfo.entryGlobalName,
39
+ shareScope: remoteInfo.shareScope
40
+ })).then((entry)=>{
41
+ if (void 0 === entry) return;
42
+ return {
43
+ get (id) {
44
+ return ()=>Promise.resolve(entry.get(id)).then((factory)=>factory());
45
+ },
46
+ init (...args) {
47
+ return entry.init?.(...args);
48
+ }
49
+ };
50
+ });
51
+ }
52
+ };
53
+ }
54
+ __webpack_require__.d(__webpack_exports__, {
55
+ createBackendFederationLoadEntryPlugin: ()=>createBackendFederationLoadEntryPlugin
56
+ });
57
+ exports.createBackendFederationLoadEntryPlugin = __webpack_exports__.createBackendFederationLoadEntryPlugin;
58
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
59
+ "createBackendFederationLoadEntryPlugin"
60
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
61
+ Object.defineProperty(exports, '__esModule', {
62
+ value: true
63
+ });
@@ -0,0 +1,51 @@
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
+ function collectRemotes(options) {
31
+ const remotes = [
32
+ ...options.remotes ?? []
33
+ ];
34
+ const configuredRemote = options.remote;
35
+ if (void 0 !== configuredRemote) {
36
+ const existingIndex = remotes.findIndex((remote)=>remote.name === configuredRemote.name);
37
+ if (existingIndex >= 0) remotes[existingIndex] = configuredRemote;
38
+ else remotes.push(configuredRemote);
39
+ }
40
+ return remotes;
41
+ }
42
+ __webpack_require__.d(__webpack_exports__, {
43
+ collectRemotes: ()=>collectRemotes
44
+ });
45
+ exports.collectRemotes = __webpack_exports__.collectRemotes;
46
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
47
+ "collectRemotes"
48
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
49
+ Object.defineProperty(exports, '__esModule', {
50
+ value: true
51
+ });
@@ -0,0 +1,128 @@
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
+ createBackendFederationRuntime: ()=>createBackendFederationRuntime
32
+ });
33
+ const runtime_namespaceObject = require("@module-federation/runtime");
34
+ const external_entry_js_namespaceObject = require("./entry.js");
35
+ const external_plugin_js_namespaceObject = require("./plugin.js");
36
+ const external_remotes_js_namespaceObject = require("./remotes.js");
37
+ function _check_private_redeclaration(obj, privateCollection) {
38
+ if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
39
+ }
40
+ function _class_apply_descriptor_get(receiver, descriptor) {
41
+ if (descriptor.get) return descriptor.get.call(receiver);
42
+ return descriptor.value;
43
+ }
44
+ function _class_apply_descriptor_set(receiver, descriptor, value) {
45
+ if (descriptor.set) descriptor.set.call(receiver, value);
46
+ else {
47
+ if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
48
+ descriptor.value = value;
49
+ }
50
+ }
51
+ function _class_extract_field_descriptor(receiver, privateMap, action) {
52
+ if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
53
+ return privateMap.get(receiver);
54
+ }
55
+ function _class_private_field_get(receiver, privateMap) {
56
+ var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
57
+ return _class_apply_descriptor_get(receiver, descriptor);
58
+ }
59
+ function _class_private_field_init(obj, privateMap, value) {
60
+ _check_private_redeclaration(obj, privateMap);
61
+ privateMap.set(obj, value);
62
+ }
63
+ function _class_private_field_set(receiver, privateMap, value) {
64
+ var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
65
+ _class_apply_descriptor_set(receiver, descriptor, value);
66
+ return value;
67
+ }
68
+ let nextRuntimeId = 0;
69
+ function parseRemoteRequest(request) {
70
+ const [remoteName, ...exposeParts] = request.split('/');
71
+ if (void 0 === remoteName || 0 === remoteName.length || 0 === exposeParts.length) return;
72
+ return remoteName;
73
+ }
74
+ function createLocalEntryPlugin(options, remotes) {
75
+ return (0, external_plugin_js_namespaceObject.createBackendFederationLoadEntryPlugin)({
76
+ resolveEntry (resolvedRemote) {
77
+ const remote = remotes.find((candidate)=>candidate.name === resolvedRemote.name);
78
+ if (void 0 === remote) return;
79
+ return {
80
+ get (expose) {
81
+ return ()=>(0, external_entry_js_namespaceObject.loadBackendFederationExpose)(remote, expose, options);
82
+ }
83
+ };
84
+ }
85
+ });
86
+ }
87
+ function isolateRegisteredRemoteEntries(remotes) {
88
+ const runtimeId = nextRuntimeId;
89
+ nextRuntimeId += 1;
90
+ return remotes.map((remote)=>({
91
+ ...remote,
92
+ entry: `${remote.entry}#modernjs-backend-runtime-${runtimeId}`
93
+ }));
94
+ }
95
+ var _remoteNames = /*#__PURE__*/ new WeakMap();
96
+ class BackendFederationRuntime extends runtime_namespaceObject.ModuleFederation {
97
+ loadRemote(request, loadOptions) {
98
+ const remoteName = parseRemoteRequest(request);
99
+ if (void 0 === remoteName) return Promise.reject(new Error(`[BFF][Effect] Invalid backend federation request ${request}.`));
100
+ if (!_class_private_field_get(this, _remoteNames).has(remoteName)) return Promise.reject(new Error(`[BFF][Effect] Missing backend federation remote ${remoteName}.`));
101
+ return super.loadRemote(request, loadOptions);
102
+ }
103
+ constructor(options, remotes){
104
+ super({
105
+ name: options.hostName,
106
+ remotes: isolateRegisteredRemoteEntries(remotes),
107
+ shared: {},
108
+ plugins: [
109
+ createLocalEntryPlugin(options, remotes)
110
+ ]
111
+ }), _class_private_field_init(this, _remoteNames, {
112
+ writable: true,
113
+ value: void 0
114
+ });
115
+ _class_private_field_set(this, _remoteNames, new Set(remotes.map((remote)=>remote.name)));
116
+ }
117
+ }
118
+ function createBackendFederationRuntime(options) {
119
+ const remotes = (0, external_remotes_js_namespaceObject.collectRemotes)(options);
120
+ return new BackendFederationRuntime(options, remotes);
121
+ }
122
+ exports.createBackendFederationRuntime = __webpack_exports__.createBackendFederationRuntime;
123
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
124
+ "createBackendFederationRuntime"
125
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
126
+ Object.defineProperty(exports, '__esModule', {
127
+ value: true
128
+ });
@@ -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,48 @@
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
+ function normalizeExpose(expose) {
31
+ return expose.replace(/^\.\//u, '');
32
+ }
33
+ function isRecord(value) {
34
+ return 'object' == typeof value && null !== value;
35
+ }
36
+ __webpack_require__.d(__webpack_exports__, {
37
+ isRecord: ()=>isRecord,
38
+ normalizeExpose: ()=>normalizeExpose
39
+ });
40
+ exports.isRecord = __webpack_exports__.isRecord;
41
+ exports.normalizeExpose = __webpack_exports__.normalizeExpose;
42
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
43
+ "isRecord",
44
+ "normalizeExpose"
45
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
46
+ Object.defineProperty(exports, '__esModule', {
47
+ value: true
48
+ });
@@ -0,0 +1,56 @@
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
+ validateLoadedBackendFederatedEffectApi: ()=>validateLoadedBackendFederatedEffectApi
32
+ });
33
+ const external_identity_js_namespaceObject = require("./identity.js");
34
+ const external_utils_js_namespaceObject = require("./utils.js");
35
+ function validateLoadedBackendFederatedEffectApi(loaded, options) {
36
+ if (!(0, external_utils_js_namespaceObject.isRecord)(loaded)) throw new Error(`[BFF][Effect] Backend federation expose ${options.remoteRequest} must load an object module.`);
37
+ const backendContract = loaded.backendFederationContract;
38
+ if (!(0, external_utils_js_namespaceObject.isRecord)(backendContract) || true !== backendContract.strictEffectApproach) throw new Error(`[BFF][Effect] Backend federation expose ${options.remoteRequest} must expose strict Effect metadata (strictEffectApproach: true).`);
39
+ if ('effect' !== backendContract.runtimeFramework) throw new Error(`[BFF][Effect] Backend federation expose ${options.remoteRequest} must expose strict Effect metadata (runtimeFramework: "effect").`);
40
+ if ('string' == typeof backendContract.name && backendContract.name !== options.remoteName) throw new Error(`[BFF][Effect] Backend federation expose ${options.remoteRequest} metadata name mismatch: expected ${options.remoteName}, received ${backendContract.name}.`);
41
+ if (!('runtime' in loaded)) throw new Error(`[BFF][Effect] Backend federation expose ${options.remoteRequest} must expose runtime.`);
42
+ if (void 0 !== options.expected) {
43
+ const issues = (0, external_identity_js_namespaceObject.validateExpectedBackendFederationIdentity)(loaded, options.expected, {
44
+ allowMissingIdentityMetadata: true === options.allowMissingIdentityMetadata
45
+ });
46
+ if (issues.length > 0) throw new Error(`[BFF][Effect] Backend federation expose ${options.remoteRequest} delivery-unit identity mismatch: ${(0, external_identity_js_namespaceObject.formatBackendFederationIdentityIssues)(issues)}.`);
47
+ }
48
+ return loaded;
49
+ }
50
+ exports.validateLoadedBackendFederatedEffectApi = __webpack_exports__.validateLoadedBackendFederatedEffectApi;
51
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
52
+ "validateLoadedBackendFederatedEffectApi"
53
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
54
+ Object.defineProperty(exports, '__esModule', {
55
+ value: true
56
+ });
@@ -0,0 +1,83 @@
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
+ const BACKEND_FEDERATION_MANIFEST_ADAPTER_FAILURE_EVENT = 'modernjs:microvertical-server-fallback';
31
+ class BackendFederationManifestAdapterError extends Error {
32
+ constructor(code, message, cause, details){
33
+ super(message), this.failureEvent = BACKEND_FEDERATION_MANIFEST_ADAPTER_FAILURE_EVENT;
34
+ this.name = 'BackendFederationManifestAdapterError';
35
+ this.code = code;
36
+ if (details) this.details = details;
37
+ if (void 0 !== cause) this.cause = cause;
38
+ }
39
+ }
40
+ function assertManifestAdapter(condition, code, message) {
41
+ if (!condition) throw new BackendFederationManifestAdapterError(code, message);
42
+ }
43
+ function assertVersionValue(actual, expected, label, details) {
44
+ if (void 0 === expected) return;
45
+ if (actual !== expected) throw new BackendFederationManifestAdapterError('version_mismatch', `[BFF][Effect] Backend federation ${label} mismatch: expected ${expected}, received ${actual ?? 'undefined'}.`, void 0, {
46
+ label,
47
+ expected,
48
+ received: actual,
49
+ ...details
50
+ });
51
+ }
52
+ function assertConsistentValue(left, right, label, details) {
53
+ if (void 0 === left || void 0 === right || left === right) return;
54
+ throw new BackendFederationManifestAdapterError('version_mismatch', `[BFF][Effect] Backend federation ${label} mismatch: expected ${left}, received ${right}.`, void 0, {
55
+ label,
56
+ expected: left,
57
+ received: right,
58
+ ...details
59
+ });
60
+ }
61
+ __webpack_require__.d(__webpack_exports__, {
62
+ BackendFederationManifestAdapterError: ()=>BackendFederationManifestAdapterError,
63
+ assertConsistentValue: ()=>assertConsistentValue,
64
+ assertManifestAdapter: ()=>assertManifestAdapter,
65
+ assertVersionValue: ()=>assertVersionValue
66
+ }, {
67
+ BACKEND_FEDERATION_MANIFEST_ADAPTER_FAILURE_EVENT: BACKEND_FEDERATION_MANIFEST_ADAPTER_FAILURE_EVENT
68
+ });
69
+ exports.BACKEND_FEDERATION_MANIFEST_ADAPTER_FAILURE_EVENT = __webpack_exports__.BACKEND_FEDERATION_MANIFEST_ADAPTER_FAILURE_EVENT;
70
+ exports.BackendFederationManifestAdapterError = __webpack_exports__.BackendFederationManifestAdapterError;
71
+ exports.assertConsistentValue = __webpack_exports__.assertConsistentValue;
72
+ exports.assertManifestAdapter = __webpack_exports__.assertManifestAdapter;
73
+ exports.assertVersionValue = __webpack_exports__.assertVersionValue;
74
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
75
+ "BACKEND_FEDERATION_MANIFEST_ADAPTER_FAILURE_EVENT",
76
+ "BackendFederationManifestAdapterError",
77
+ "assertConsistentValue",
78
+ "assertManifestAdapter",
79
+ "assertVersionValue"
80
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
81
+ Object.defineProperty(exports, '__esModule', {
82
+ value: true
83
+ });
@@ -0,0 +1,48 @@
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
+ BackendFederationManifestAdapterError: ()=>external_errors_js_namespaceObject.BackendFederationManifestAdapterError,
32
+ loadBackendFederationManifest: ()=>external_reference_js_namespaceObject.loadBackendFederationManifest,
33
+ resolveBackendFederationRemoteFromManifest: ()=>external_remote_js_namespaceObject.resolveBackendFederationRemoteFromManifest
34
+ });
35
+ const external_errors_js_namespaceObject = require("./errors.js");
36
+ const external_reference_js_namespaceObject = require("./reference.js");
37
+ const external_remote_js_namespaceObject = require("./remote.js");
38
+ exports.BackendFederationManifestAdapterError = __webpack_exports__.BackendFederationManifestAdapterError;
39
+ exports.loadBackendFederationManifest = __webpack_exports__.loadBackendFederationManifest;
40
+ exports.resolveBackendFederationRemoteFromManifest = __webpack_exports__.resolveBackendFederationRemoteFromManifest;
41
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
42
+ "BackendFederationManifestAdapterError",
43
+ "loadBackendFederationManifest",
44
+ "resolveBackendFederationRemoteFromManifest"
45
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
46
+ Object.defineProperty(exports, '__esModule', {
47
+ value: true
48
+ });