@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,173 @@
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
+ loadBackendFederatedEffectApiFromManifest: ()=>loadBackendFederatedEffectApiFromManifest
32
+ });
33
+ const index_js_namespaceObject = require("../backend-federation/index.js");
34
+ const load_js_namespaceObject = require("../backend-federation/load.js");
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
+ const external_validation_js_namespaceObject = require("./validation.js");
39
+ function createManifestLoadScope(options) {
40
+ const controller = new AbortController();
41
+ const policyTimeouts = [
42
+ options.manifestPolicy?.timeoutMs,
43
+ options.entryPolicy?.timeoutMs
44
+ ].filter((timeout)=>void 0 !== timeout);
45
+ const configuredTimeouts = [
46
+ options.timeoutMs,
47
+ ...policyTimeouts
48
+ ].filter((timeout)=>void 0 !== timeout);
49
+ for (const timeout of configuredTimeouts)if (!Number.isSafeInteger(timeout) || timeout < 0) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('manifest_invalid', '[BFF][Effect] Backend federation timeoutMs must be a non-negative safe integer.');
50
+ const timeoutMs = options.timeoutMs ?? (policyTimeouts.length > 0 ? Math.min(...policyTimeouts) : 0);
51
+ const inputSignals = [
52
+ options.signal,
53
+ options.manifestPolicy?.signal,
54
+ options.entryPolicy?.signal
55
+ ].filter((signal)=>void 0 !== signal);
56
+ const abortListeners = [];
57
+ let timedOut = false;
58
+ const forwardAbort = (signal)=>{
59
+ controller.abort(signal.reason);
60
+ };
61
+ for (const signal of inputSignals){
62
+ if (signal.aborted) {
63
+ forwardAbort(signal);
64
+ break;
65
+ }
66
+ const listener = ()=>forwardAbort(signal);
67
+ abortListeners.push([
68
+ signal,
69
+ listener
70
+ ]);
71
+ signal.addEventListener('abort', listener, {
72
+ once: true
73
+ });
74
+ }
75
+ const timeout = timeoutMs > 0 ? setTimeout(()=>{
76
+ if (controller.signal.aborted) return;
77
+ timedOut = true;
78
+ controller.abort(new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('timeout', `[BFF][Effect] Backend federation load timed out after ${timeoutMs}ms.`));
79
+ }, timeoutMs) : void 0;
80
+ return {
81
+ cleanup () {
82
+ if (timeout) clearTimeout(timeout);
83
+ for (const [signal, listener] of abortListeners)signal.removeEventListener('abort', listener);
84
+ },
85
+ signal: controller.signal,
86
+ timedOut: ()=>timedOut,
87
+ timeoutMs
88
+ };
89
+ }
90
+ function isRemoteManifestReference(options) {
91
+ if (void 0 !== options.manifest || options.manifestPath) return false;
92
+ return Boolean(options.manifestUrl || options.manifestEnv);
93
+ }
94
+ function hasPinnedRemoteEntryExpectation(options) {
95
+ const expected = options.entryPolicy?.expected;
96
+ return 'number' == typeof expected?.byteLength && 'string' == typeof expected.entryUrl && 'string' == typeof expected.remoteName && 'string' == typeof expected.sha256;
97
+ }
98
+ function isCallerPinnedStaticRemote(options, remote) {
99
+ return options.remote?.entry === remote.entry && options.remote?.name === remote.name && /^(?:binding|service|static):/u.test(remote.entry);
100
+ }
101
+ function throwIfManifestLoadAborted(signal) {
102
+ if (signal.aborted) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('remote_unavailable', '[BFF][Effect] Backend federation load was aborted before remote execution.', signal.reason);
103
+ }
104
+ async function loadBackendFederatedEffectApiFromManifest(options) {
105
+ let manifest;
106
+ let remote;
107
+ let scope;
108
+ try {
109
+ scope = createManifestLoadScope(options);
110
+ throwIfManifestLoadAborted(scope.signal);
111
+ manifest = await (0, external_reference_js_namespaceObject.loadBackendFederationManifest)({
112
+ ...options,
113
+ manifestPolicy: {
114
+ ...options.manifestPolicy,
115
+ signal: scope.signal,
116
+ timeoutMs: 0
117
+ },
118
+ signal: scope.signal,
119
+ timeoutMs: 0
120
+ });
121
+ (0, external_validation_js_namespaceObject.validateBackendFederationManifest)(manifest, options.expected);
122
+ remote = (0, external_remote_js_namespaceObject.resolveBackendFederationRemoteFromManifest)(manifest, options.remote);
123
+ throwIfManifestLoadAborted(scope.signal);
124
+ const remoteManifest = isRemoteManifestReference(options);
125
+ if (remoteManifest && void 0 !== options.runtime) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('manifest_invalid', `[BFF][Effect] Backend federation remote ${remote.name} cannot use a custom runtime selected by a network manifest.`);
126
+ if (remoteManifest && !/^https?:\/\//iu.test(remote.entry) && !isCallerPinnedStaticRemote(options, remote)) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('manifest_invalid', `[BFF][Effect] Backend federation network manifests cannot select local, global, or plugin entry ${remote.entry}. Pin a static/service binding in caller configuration or use a verified HTTP(S) entry.`);
127
+ if (remoteManifest && /^https?:\/\//iu.test(remote.entry) && !hasPinnedRemoteEntryExpectation(options)) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('manifest_invalid', `[BFF][Effect] Backend federation remote ${remote.name} from a network manifest requires caller-pinned entryUrl, remoteName, sha256, and byteLength values.`);
128
+ if (/^https?:\/\//iu.test(remote.entry) && void 0 === remote.verification && options.entryPolicy?.expected === void 0) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('manifest_invalid', `[BFF][Effect] Backend federation remote ${remote.name} requires entry.sha256 and entry.byteLength before network execution.`);
129
+ if (/^https?:\/\//iu.test(remote.entry) && void 0 !== options.runtime) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('manifest_invalid', `[BFF][Effect] Backend federation remote ${remote.name} cannot use a custom runtime for network entry execution.`);
130
+ const loaded = await (0, load_js_namespaceObject.loadBackendFederatedEffectApi)({
131
+ hostName: options.hostName,
132
+ remote,
133
+ ...options.plugins ? {
134
+ plugins: options.plugins
135
+ } : {},
136
+ entryPolicy: {
137
+ ...options.entryPolicy,
138
+ signal: scope.signal,
139
+ timeoutMs: 0
140
+ },
141
+ ...options.runtime ? {
142
+ runtime: options.runtime
143
+ } : {},
144
+ ...options.expected?.unitId && options.expected.buildMarker ? {
145
+ expected: {
146
+ unitId: options.expected.unitId,
147
+ buildMarker: options.expected.buildMarker
148
+ },
149
+ allowMissingIdentityMetadata: true
150
+ } : {}
151
+ }).catch((error)=>{
152
+ throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError(scope?.timedOut() === true ? 'timeout' : (0, external_validation_js_namespaceObject.classifyLoadError)(error), `[BFF][Effect] Backend federation remote ${remote?.name ?? 'unknown'} could not load ${remote?.expose ?? index_js_namespaceObject.BACKEND_FEDERATION_EFFECT_EXPOSE}.`, error);
153
+ });
154
+ (0, external_validation_js_namespaceObject.validateLoadedBackendFederationContract)(loaded, manifest, remote);
155
+ return loaded;
156
+ } catch (error) {
157
+ const adapterError = scope?.timedOut() === true ? new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('timeout', `[BFF][Effect] Backend federation load timed out after ${scope.timeoutMs}ms.`, error) : error instanceof external_errors_js_namespaceObject.BackendFederationManifestAdapterError ? error : new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('remote_unavailable', '[BFF][Effect] Backend federation manifest adapter failed.', error);
158
+ if (options.fallback) return options.fallback(adapterError, {
159
+ manifest,
160
+ remote
161
+ });
162
+ throw adapterError;
163
+ } finally{
164
+ scope?.cleanup();
165
+ }
166
+ }
167
+ exports.loadBackendFederatedEffectApiFromManifest = __webpack_exports__.loadBackendFederatedEffectApiFromManifest;
168
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
169
+ "loadBackendFederatedEffectApiFromManifest"
170
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
171
+ Object.defineProperty(exports, '__esModule', {
172
+ value: true
173
+ });
@@ -0,0 +1,101 @@
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
+ backendFederationMetadata: ()=>backendFederationMetadata,
32
+ deliveryUnitMetadata: ()=>deliveryUnitMetadata,
33
+ isRecord: ()=>isRecord,
34
+ manifestDeliveryUnit: ()=>manifestDeliveryUnit,
35
+ recordField: ()=>recordField,
36
+ resolveRemoteEntryFromMetadata: ()=>resolveRemoteEntryFromMetadata,
37
+ stringValue: ()=>stringValue,
38
+ versionBoundaryMetadata: ()=>versionBoundaryMetadata
39
+ });
40
+ const universal_namespaceObject = require("@modern-js/utils/universal");
41
+ function stringValue(value) {
42
+ return 'string' == typeof value && value.length > 0 ? value : void 0;
43
+ }
44
+ function isRecord(value) {
45
+ return 'object' == typeof value && null !== value;
46
+ }
47
+ function recordField(value, field) {
48
+ const fieldValue = value?.[field];
49
+ return isRecord(fieldValue) ? fieldValue : void 0;
50
+ }
51
+ function resolveRemoteEntryFromMetadata(manifest) {
52
+ const metaData = recordField(manifest, 'metaData');
53
+ const remoteEntry = recordField(metaData, 'remoteEntry');
54
+ const publicPath = stringValue(metaData?.publicPath) ?? stringValue(metaData?.ssrPublicPath);
55
+ const entryName = stringValue(remoteEntry?.name);
56
+ if (!publicPath || !entryName) return;
57
+ const entryPath = stringValue(remoteEntry?.path) ?? '';
58
+ const normalizedBase = publicPath.replace(/\/+$/u, '');
59
+ const normalizedPath = entryPath.replace(/^\/+|\/+$/gu, '');
60
+ return [
61
+ normalizedBase,
62
+ normalizedPath,
63
+ entryName
64
+ ].filter(Boolean).join('/');
65
+ }
66
+ function backendFederationMetadata(manifest) {
67
+ return (0, universal_namespaceObject.backendFederationMetadata)(manifest);
68
+ }
69
+ function versionBoundaryMetadata(manifest) {
70
+ return (0, universal_namespaceObject.backendFederationVersionBoundary)(manifest);
71
+ }
72
+ function deliveryUnitMetadata(record) {
73
+ return recordField(record, 'deliveryUnit');
74
+ }
75
+ function manifestDeliveryUnit(backendFederation, boundary) {
76
+ return {
77
+ boundary: deliveryUnitMetadata(boundary),
78
+ top: deliveryUnitMetadata(backendFederation)
79
+ };
80
+ }
81
+ exports.backendFederationMetadata = __webpack_exports__.backendFederationMetadata;
82
+ exports.deliveryUnitMetadata = __webpack_exports__.deliveryUnitMetadata;
83
+ exports.isRecord = __webpack_exports__.isRecord;
84
+ exports.manifestDeliveryUnit = __webpack_exports__.manifestDeliveryUnit;
85
+ exports.recordField = __webpack_exports__.recordField;
86
+ exports.resolveRemoteEntryFromMetadata = __webpack_exports__.resolveRemoteEntryFromMetadata;
87
+ exports.stringValue = __webpack_exports__.stringValue;
88
+ exports.versionBoundaryMetadata = __webpack_exports__.versionBoundaryMetadata;
89
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
90
+ "backendFederationMetadata",
91
+ "deliveryUnitMetadata",
92
+ "isRecord",
93
+ "manifestDeliveryUnit",
94
+ "recordField",
95
+ "resolveRemoteEntryFromMetadata",
96
+ "stringValue",
97
+ "versionBoundaryMetadata"
98
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
99
+ Object.defineProperty(exports, '__esModule', {
100
+ value: true
101
+ });
@@ -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
+ loadBackendFederatedEffectApiFromManifest: ()=>loadBackendFederatedEffectApiFromManifest
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 loadBackendFederatedEffectApiFromManifest(options) {
36
+ return (0, external_load_js_namespaceObject.loadBackendFederatedEffectApiFromManifest)({
37
+ ...options,
38
+ entryPolicy: {
39
+ ...options.entryPolicy,
40
+ evaluateCommonJs: options.entryPolicy?.evaluateCommonJs ?? node_namespaceObject.evaluateNodeBackendFederationCommonJs
41
+ }
42
+ });
43
+ }
44
+ exports.loadBackendFederatedEffectApiFromManifest = __webpack_exports__.loadBackendFederatedEffectApiFromManifest;
45
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
46
+ "loadBackendFederatedEffectApiFromManifest"
47
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
48
+ Object.defineProperty(exports, '__esModule', {
49
+ value: true
50
+ });
@@ -0,0 +1,132 @@
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
+ loadBackendFederationManifest: ()=>loadBackendFederationManifest,
32
+ resolveBackendFederationManifestReference: ()=>resolveBackendFederationManifestReference,
33
+ withTimeout: ()=>withTimeout
34
+ });
35
+ const backend_federation_security_namespaceObject = require("@modern-js/server-runtime-extensions/backend-federation-security");
36
+ const index_js_namespaceObject = require("../backend-federation/index.js");
37
+ const external_errors_js_namespaceObject = require("./errors.js");
38
+ const external_metadata_js_namespaceObject = require("./metadata.js");
39
+ function getProcessEnv() {
40
+ return "u" > typeof process ? process.env : void 0;
41
+ }
42
+ function resolveManifestReferenceSource(options) {
43
+ if (options.manifestPath) return 'path';
44
+ if (options.manifestUrl) return 'url';
45
+ if (options.manifestEnv) return 'env';
46
+ }
47
+ function resolveBackendFederationManifestReference(options) {
48
+ if (options.manifestPath) return options.manifestPath;
49
+ if (options.manifestUrl) return options.manifestUrl;
50
+ if (!options.manifestEnv) return;
51
+ return options.env?.[options.manifestEnv] ?? getProcessEnv()?.[options.manifestEnv];
52
+ }
53
+ function assertExpectedIdentityForReference(options, source) {
54
+ if (void 0 === source || 'path' === source) return;
55
+ if (options.expected?.unitId && options.expected.buildMarker) return;
56
+ throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('version_mismatch', `[BFF][Effect] Backend federation ${source} manifest references require expected.unitId and expected.buildMarker.`, void 0, {
57
+ label: 'expected.deliveryUnit',
58
+ expected: 'unitId + buildMarker',
59
+ received: options.expected,
60
+ referenceSource: source
61
+ });
62
+ }
63
+ function isHttpUrl(value) {
64
+ return /^https?:\/\//iu.test(value);
65
+ }
66
+ function referenceForDiagnostics(reference) {
67
+ return isHttpUrl(reference) ? (0, backend_federation_security_namespaceObject.redactBackendFederationUrl)(reference) : '[local manifest]';
68
+ }
69
+ async function readFileReference(reference) {
70
+ const [{ fileURLToPath }, fs] = await Promise.all([
71
+ import("node:url"),
72
+ import("node:fs/promises")
73
+ ]);
74
+ const filePath = reference.startsWith('file:') ? fileURLToPath(reference) : reference;
75
+ return fs.readFile(filePath, 'utf8');
76
+ }
77
+ async function withTimeout(promise, timeoutMs, label) {
78
+ if (!timeoutMs || timeoutMs <= 0) return promise;
79
+ let timeout;
80
+ try {
81
+ return await Promise.race([
82
+ promise,
83
+ new Promise((_, reject)=>{
84
+ timeout = setTimeout(()=>{
85
+ reject(new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('timeout', `[BFF][Effect] ${label} timed out after ${timeoutMs}ms.`));
86
+ }, timeoutMs);
87
+ })
88
+ ]);
89
+ } finally{
90
+ if (timeout) clearTimeout(timeout);
91
+ }
92
+ }
93
+ async function loadBackendFederationManifest(options) {
94
+ if (options.manifest) return options.manifest;
95
+ const reference = resolveBackendFederationManifestReference(options);
96
+ if (!reference) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('manifest_unavailable', `[BFF][Effect] Backend federation manifest reference is missing. Pass manifest, manifestPath, manifestUrl, or manifestEnv for ${index_js_namespaceObject.BACKEND_FEDERATION_MANIFEST_FILE}.`);
97
+ assertExpectedIdentityForReference(options, resolveManifestReferenceSource(options));
98
+ const referenceSource = resolveManifestReferenceSource(options);
99
+ if ('path' === referenceSource && isHttpUrl(reference)) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('manifest_unavailable', '[BFF][Effect] Backend federation manifestPath must identify an explicit local file. Use manifestUrl for HTTP(S) manifests.');
100
+ if (('url' === referenceSource || 'env' === referenceSource) && !isHttpUrl(reference)) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('manifest_unavailable', `[BFF][Effect] Backend federation ${referenceSource} manifest references must use HTTP(S). Use manifestPath for an explicit local file.`);
101
+ try {
102
+ const diagnosticReference = referenceForDiagnostics(reference);
103
+ const source = isHttpUrl(reference) ? new TextDecoder('utf-8', {
104
+ fatal: true
105
+ }).decode(await (0, backend_federation_security_namespaceObject.loadBoundedBackendFederationResource)(reference, {
106
+ allowInsecureHttp: options.manifestPolicy?.allowInsecureHttp === true,
107
+ fetch: options.fetch,
108
+ kind: 'manifest',
109
+ maxBytes: options.manifestPolicy?.maxBytes,
110
+ signal: options.manifestPolicy?.signal ?? options.signal,
111
+ timeoutMs: options.manifestPolicy?.timeoutMs ?? options.timeoutMs
112
+ })) : await withTimeout(readFileReference(reference), options.manifestPolicy?.timeoutMs ?? options.timeoutMs, 'Backend federation local manifest');
113
+ const manifest = JSON.parse(source);
114
+ (0, external_errors_js_namespaceObject.assertManifestAdapter)((0, external_metadata_js_namespaceObject.isRecord)(manifest), 'manifest_invalid', `[BFF][Effect] Backend federation manifest ${diagnosticReference} must be a JSON object.`);
115
+ return manifest;
116
+ } catch (error) {
117
+ if (error instanceof external_errors_js_namespaceObject.BackendFederationManifestAdapterError) throw error;
118
+ if (error instanceof backend_federation_security_namespaceObject.BackendFederationRemoteEntryError) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('timeout' === error.code ? 'timeout' : 'manifest_unavailable', `[BFF][Effect] ${error.message}`, error, error.details);
119
+ throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('manifest_unavailable', `[BFF][Effect] Backend federation manifest ${referenceForDiagnostics(reference)} could not be loaded.`, error);
120
+ }
121
+ }
122
+ exports.loadBackendFederationManifest = __webpack_exports__.loadBackendFederationManifest;
123
+ exports.resolveBackendFederationManifestReference = __webpack_exports__.resolveBackendFederationManifestReference;
124
+ exports.withTimeout = __webpack_exports__.withTimeout;
125
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
126
+ "loadBackendFederationManifest",
127
+ "resolveBackendFederationManifestReference",
128
+ "withTimeout"
129
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
130
+ Object.defineProperty(exports, '__esModule', {
131
+ value: true
132
+ });
@@ -0,0 +1,81 @@
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
+ resolveBackendFederationRemoteFromManifest: ()=>resolveBackendFederationRemoteFromManifest
32
+ });
33
+ const backend_federation_security_namespaceObject = require("@modern-js/server-runtime-extensions/backend-federation-security");
34
+ const universal_namespaceObject = require("@modern-js/utils/universal");
35
+ const index_js_namespaceObject = require("../backend-federation/index.js");
36
+ const external_errors_js_namespaceObject = require("./errors.js");
37
+ const external_metadata_js_namespaceObject = require("./metadata.js");
38
+ function resolveBackendFederationRemoteFromManifest(manifest, remoteOverride = {}) {
39
+ const backendFederation = (0, external_metadata_js_namespaceObject.backendFederationMetadata)(manifest);
40
+ const entry = (0, external_metadata_js_namespaceObject.recordField)(manifest, 'entry');
41
+ const metaData = (0, external_metadata_js_namespaceObject.recordField)(manifest, 'metaData');
42
+ const remoteEntry = (0, external_metadata_js_namespaceObject.recordField)(metaData, 'remoteEntry');
43
+ const remoteName = remoteOverride.name ?? (0, external_metadata_js_namespaceObject.stringValue)(backendFederation?.name) ?? (0, external_metadata_js_namespaceObject.stringValue)(manifest.name) ?? (0, external_metadata_js_namespaceObject.stringValue)(manifest.id);
44
+ const manifestEntryUrl = (0, external_metadata_js_namespaceObject.stringValue)(backendFederation?.containerEntry) ?? (0, external_metadata_js_namespaceObject.stringValue)(entry?.url) ?? (0, external_metadata_js_namespaceObject.resolveRemoteEntryFromMetadata)(manifest);
45
+ const remoteEntryUrl = remoteOverride.entry ?? manifestEntryUrl;
46
+ const remoteType = remoteOverride.type ?? (0, external_metadata_js_namespaceObject.stringValue)(backendFederation?.remoteType) ?? (0, external_metadata_js_namespaceObject.stringValue)(entry?.type) ?? (0, external_metadata_js_namespaceObject.stringValue)(remoteEntry?.type) ?? 'module';
47
+ const expose = remoteOverride.expose ?? (0, universal_namespaceObject.backendFederationExposeNames)(backendFederation)[0] ?? index_js_namespaceObject.BACKEND_FEDERATION_EFFECT_EXPOSE;
48
+ let verification;
49
+ try {
50
+ const manifestVerification = (0, backend_federation_security_namespaceObject.resolveBackendFederationRemoteEntryVerification)(manifest);
51
+ verification = remoteOverride.verification ?? (remoteEntryUrl === manifestEntryUrl ? manifestVerification : void 0);
52
+ } catch (cause) {
53
+ if (cause instanceof backend_federation_security_namespaceObject.BackendFederationRemoteEntryError) throw new external_errors_js_namespaceObject.BackendFederationManifestAdapterError('identity_mismatch' === cause.code ? 'version_mismatch' : 'manifest_invalid', `[BFF][Effect] ${cause.message}`, cause, cause.details);
54
+ throw cause;
55
+ }
56
+ (0, external_errors_js_namespaceObject.assertManifestAdapter)(remoteName, 'manifest_invalid', '[BFF][Effect] Backend federation manifest must declare a remote name.');
57
+ (0, external_errors_js_namespaceObject.assertManifestAdapter)(remoteEntryUrl, 'manifest_invalid', '[BFF][Effect] Backend federation manifest must declare a backend remote entry URL.');
58
+ (0, external_errors_js_namespaceObject.assertManifestAdapter)(expose === index_js_namespaceObject.BACKEND_FEDERATION_EFFECT_EXPOSE, 'manifest_invalid', `[BFF][Effect] Backend federation manifest expose must be ${index_js_namespaceObject.BACKEND_FEDERATION_EFFECT_EXPOSE}.`);
59
+ return {
60
+ name: remoteName,
61
+ entry: remoteEntryUrl,
62
+ type: remoteType,
63
+ ...verification ? {
64
+ verification
65
+ } : {},
66
+ ...remoteOverride.entryGlobalName ? {
67
+ entryGlobalName: remoteOverride.entryGlobalName
68
+ } : {},
69
+ expose,
70
+ ...remoteOverride.shareScope ? {
71
+ shareScope: remoteOverride.shareScope
72
+ } : {}
73
+ };
74
+ }
75
+ exports.resolveBackendFederationRemoteFromManifest = __webpack_exports__.resolveBackendFederationRemoteFromManifest;
76
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
77
+ "resolveBackendFederationRemoteFromManifest"
78
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
79
+ Object.defineProperty(exports, '__esModule', {
80
+ value: true
81
+ });
@@ -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
+ });