@bleedingdev/modern-js-federation-runtime 3.9.0-ultramodern.9 → 3.9.3-ultramodern.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/module-federation/consume-surface.js +6 -16
- package/dist/cjs/module-federation/distributed-ssr.js +6 -1
- package/dist/cjs/module-federation/index.js +13 -239
- package/dist/cjs/module-federation/manifest-recovery-runtime-plugin.js +1 -1
- package/dist/cjs/module-federation/renderer-contract.js +159 -0
- package/dist/cjs/module-federation/renderer-runtime-plugin.js +265 -0
- package/dist/cjs/module-federation/telemetry.js +214 -0
- package/dist/esm/module-federation/consume-surface.mjs +3 -13
- package/dist/esm/module-federation/distributed-ssr.mjs +6 -1
- package/dist/esm/module-federation/index.mjs +1 -111
- package/dist/esm/module-federation/manifest-recovery-runtime-plugin.mjs +1 -1
- package/dist/esm/module-federation/renderer-contract.mjs +103 -0
- package/dist/esm/module-federation/renderer-runtime-plugin.mjs +222 -0
- package/dist/esm/module-federation/telemetry.mjs +142 -0
- package/dist/esm-node/module-federation/consume-surface.mjs +3 -13
- package/dist/esm-node/module-federation/distributed-ssr.mjs +6 -1
- package/dist/esm-node/module-federation/index.mjs +1 -111
- package/dist/esm-node/module-federation/manifest-recovery-runtime-plugin.mjs +1 -1
- package/dist/esm-node/module-federation/renderer-contract.mjs +104 -0
- package/dist/esm-node/module-federation/renderer-runtime-plugin.mjs +223 -0
- package/dist/esm-node/module-federation/telemetry.mjs +143 -0
- package/dist/types/module-federation/consume-surface.d.ts +5 -5
- package/dist/types/module-federation/distributed-ssr.d.ts +18 -1
- package/dist/types/module-federation/index.d.ts +1 -67
- package/dist/types/module-federation/renderer-contract.d.ts +20 -0
- package/dist/types/module-federation/renderer-runtime-plugin.d.ts +98 -0
- package/dist/types/module-federation/telemetry.d.ts +71 -0
- package/package.json +54 -18
- package/src/module-federation/consume-surface.ts +18 -33
- package/src/module-federation/distributed-ssr.tsx +27 -2
- package/src/module-federation/index.ts +1 -267
- package/src/module-federation/manifest-recovery-runtime-plugin.ts +5 -1
- package/src/module-federation/renderer-contract.ts +176 -0
- package/src/module-federation/renderer-runtime-plugin.ts +396 -0
- package/src/module-federation/telemetry.ts +297 -0
|
@@ -31,8 +31,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
31
31
|
consumeSurface: ()=>consumeSurface,
|
|
32
32
|
createSurfaceConsumer: ()=>createSurfaceConsumer
|
|
33
33
|
});
|
|
34
|
-
const external_index_js_namespaceObject = require("./index.js");
|
|
35
34
|
const external_surface_resolution_types_js_namespaceObject = require("./surface-resolution-types.js");
|
|
35
|
+
const external_telemetry_js_namespaceObject = require("./telemetry.js");
|
|
36
36
|
function classifyDiscoveryError(code) {
|
|
37
37
|
switch(code){
|
|
38
38
|
case 'major-not-published':
|
|
@@ -53,7 +53,7 @@ function toRemoteString(ref) {
|
|
|
53
53
|
}
|
|
54
54
|
async function reportFailure(options, ref, base) {
|
|
55
55
|
const remote = toRemoteString(ref);
|
|
56
|
-
const telemetry = (0,
|
|
56
|
+
const telemetry = (0, external_telemetry_js_namespaceObject.createModuleFederationFallbackTelemetry)({
|
|
57
57
|
appName: options.appName,
|
|
58
58
|
classification: base.classification,
|
|
59
59
|
error: base.error ?? base.discoveryError,
|
|
@@ -71,17 +71,7 @@ async function reportFailure(options, ref, base) {
|
|
|
71
71
|
remote,
|
|
72
72
|
status: 'degraded'
|
|
73
73
|
});
|
|
74
|
-
|
|
75
|
-
await (0, external_index_js_namespaceObject.emitModuleFederationFallbackTelemetry)({
|
|
76
|
-
appName: options.appName,
|
|
77
|
-
classification: base.classification,
|
|
78
|
-
error: base.error ?? base.discoveryError,
|
|
79
|
-
metadata: telemetry.metadata,
|
|
80
|
-
phase: base.phase,
|
|
81
|
-
remote,
|
|
82
|
-
status: 'degraded'
|
|
83
|
-
}, options.telemetry ?? {});
|
|
84
|
-
} catch {}
|
|
74
|
+
(0, external_telemetry_js_namespaceObject.emitModuleFederationFallbackPayload)(telemetry, options.telemetry);
|
|
85
75
|
const failure = {
|
|
86
76
|
ref,
|
|
87
77
|
env: options.env,
|
|
@@ -101,7 +91,7 @@ async function reportFailure(options, ref, base) {
|
|
|
101
91
|
degradedValue = await options.degraded(failure);
|
|
102
92
|
} catch (handlerError) {
|
|
103
93
|
try {
|
|
104
|
-
|
|
94
|
+
(0, external_telemetry_js_namespaceObject.emitModuleFederationFallbackTelemetry)({
|
|
105
95
|
appName: options.appName,
|
|
106
96
|
classification: base.classification,
|
|
107
97
|
error: handlerError,
|
|
@@ -150,7 +140,7 @@ async function consumeSurface(options) {
|
|
|
150
140
|
} catch (error) {
|
|
151
141
|
return reportFailure(options, ref, {
|
|
152
142
|
phase: 'discovery',
|
|
153
|
-
classification: (0,
|
|
143
|
+
classification: (0, external_telemetry_js_namespaceObject.classifyModuleFederationFallback)(error),
|
|
154
144
|
error
|
|
155
145
|
});
|
|
156
146
|
}
|
|
@@ -174,7 +164,7 @@ async function consumeSurface(options) {
|
|
|
174
164
|
} catch (error) {
|
|
175
165
|
return reportFailure(options, ref, {
|
|
176
166
|
phase: 'load',
|
|
177
|
-
classification: (0,
|
|
167
|
+
classification: (0, external_telemetry_js_namespaceObject.classifyModuleFederationFallback)(error),
|
|
178
168
|
error,
|
|
179
169
|
resolved
|
|
180
170
|
});
|
|
@@ -99,7 +99,12 @@ function DistributedSsrBoundary({ children, expose, fallback, fragmentProps, rem
|
|
|
99
99
|
function createDistributedSsrComponent({ createComponent, expose, fallback, remote }) {
|
|
100
100
|
let RemoteComponent;
|
|
101
101
|
function DeferredRemoteComponent(props) {
|
|
102
|
-
RemoteComponent ??= createComponent(
|
|
102
|
+
RemoteComponent ??= createComponent({
|
|
103
|
+
export: 'default',
|
|
104
|
+
fallback,
|
|
105
|
+
injectLink: false,
|
|
106
|
+
loading: null
|
|
107
|
+
});
|
|
103
108
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(RemoteComponent, {
|
|
104
109
|
...props
|
|
105
110
|
});
|
|
@@ -3,9 +3,6 @@ var __webpack_modules__ = {
|
|
|
3
3
|
"./consume-surface" (module) {
|
|
4
4
|
module.exports = require("./consume-surface.js");
|
|
5
5
|
},
|
|
6
|
-
"./distributed-ssr" (module) {
|
|
7
|
-
module.exports = require("./distributed-ssr.js");
|
|
8
|
-
},
|
|
9
6
|
"./last-known-good" (module) {
|
|
10
7
|
module.exports = require("./last-known-good.js");
|
|
11
8
|
},
|
|
@@ -14,6 +11,9 @@ var __webpack_modules__ = {
|
|
|
14
11
|
},
|
|
15
12
|
"./surface-resolution-types" (module) {
|
|
16
13
|
module.exports = require("./surface-resolution-types.js");
|
|
14
|
+
},
|
|
15
|
+
"./telemetry" (module) {
|
|
16
|
+
module.exports = require("./telemetry.js");
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
var __webpack_module_cache__ = {};
|
|
@@ -65,252 +65,26 @@ var __webpack_exports__ = {};
|
|
|
65
65
|
__webpack_require__.r(__webpack_exports__);
|
|
66
66
|
var _consume_surface__rspack_import_0 = __webpack_require__("./consume-surface");
|
|
67
67
|
var __rspack_reexport = {};
|
|
68
|
-
for(const __rspack_import_key in _consume_surface__rspack_import_0)if ([
|
|
69
|
-
"MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT",
|
|
70
|
-
"MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT",
|
|
71
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT",
|
|
72
|
-
"createModuleFederationFallbackTelemetry",
|
|
73
|
-
"toModuleFederationFallbackAttributes",
|
|
74
|
-
"ModuleFederationRemoteComponentContractError",
|
|
75
|
-
"emitModuleFederationFallbackTelemetry",
|
|
76
|
-
"default",
|
|
77
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER",
|
|
78
|
-
"classifyModuleFederationFallback",
|
|
79
|
-
"ModuleFederationRemoteLoadTimeoutError",
|
|
80
|
-
"useDistributedSsrFragmentProps",
|
|
81
|
-
"ModuleFederationRemoteLoadError",
|
|
82
|
-
"DISTRIBUTED_SSR_FRAGMENT_REQUEST_LOCALS_KEY"
|
|
83
|
-
].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_consume_surface__rspack_import_0[__rspack_import_key];
|
|
68
|
+
for(const __rspack_import_key in _consume_surface__rspack_import_0)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_consume_surface__rspack_import_0[__rspack_import_key];
|
|
84
69
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
85
|
-
var
|
|
70
|
+
var _last_known_good__rspack_import_1 = __webpack_require__("./last-known-good");
|
|
86
71
|
var __rspack_reexport = {};
|
|
87
|
-
for(const __rspack_import_key in
|
|
88
|
-
"MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT",
|
|
89
|
-
"MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT",
|
|
90
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT",
|
|
91
|
-
"createModuleFederationFallbackTelemetry",
|
|
92
|
-
"toModuleFederationFallbackAttributes",
|
|
93
|
-
"ModuleFederationRemoteComponentContractError",
|
|
94
|
-
"emitModuleFederationFallbackTelemetry",
|
|
95
|
-
"default",
|
|
96
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER",
|
|
97
|
-
"classifyModuleFederationFallback",
|
|
98
|
-
"ModuleFederationRemoteLoadTimeoutError",
|
|
99
|
-
"useDistributedSsrFragmentProps",
|
|
100
|
-
"ModuleFederationRemoteLoadError",
|
|
101
|
-
"DISTRIBUTED_SSR_FRAGMENT_REQUEST_LOCALS_KEY"
|
|
102
|
-
].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_distributed_ssr__rspack_import_1[__rspack_import_key];
|
|
72
|
+
for(const __rspack_import_key in _last_known_good__rspack_import_1)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_last_known_good__rspack_import_1[__rspack_import_key];
|
|
103
73
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
104
|
-
var
|
|
74
|
+
var _manifest_recovery_runtime_plugin__rspack_import_2 = __webpack_require__("./manifest-recovery-runtime-plugin");
|
|
105
75
|
var __rspack_reexport = {};
|
|
106
|
-
for(const __rspack_import_key in
|
|
107
|
-
"MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT",
|
|
108
|
-
"MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT",
|
|
109
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT",
|
|
110
|
-
"createModuleFederationFallbackTelemetry",
|
|
111
|
-
"toModuleFederationFallbackAttributes",
|
|
112
|
-
"ModuleFederationRemoteComponentContractError",
|
|
113
|
-
"emitModuleFederationFallbackTelemetry",
|
|
114
|
-
"default",
|
|
115
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER",
|
|
116
|
-
"classifyModuleFederationFallback",
|
|
117
|
-
"ModuleFederationRemoteLoadTimeoutError",
|
|
118
|
-
"useDistributedSsrFragmentProps",
|
|
119
|
-
"ModuleFederationRemoteLoadError",
|
|
120
|
-
"DISTRIBUTED_SSR_FRAGMENT_REQUEST_LOCALS_KEY"
|
|
121
|
-
].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_last_known_good__rspack_import_2[__rspack_import_key];
|
|
76
|
+
for(const __rspack_import_key in _manifest_recovery_runtime_plugin__rspack_import_2)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_manifest_recovery_runtime_plugin__rspack_import_2[__rspack_import_key];
|
|
122
77
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
123
|
-
var
|
|
78
|
+
var _surface_resolution_types__rspack_import_3 = __webpack_require__("./surface-resolution-types");
|
|
124
79
|
var __rspack_reexport = {};
|
|
125
|
-
for(const __rspack_import_key in
|
|
126
|
-
"MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT",
|
|
127
|
-
"MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT",
|
|
128
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT",
|
|
129
|
-
"createModuleFederationFallbackTelemetry",
|
|
130
|
-
"toModuleFederationFallbackAttributes",
|
|
131
|
-
"ModuleFederationRemoteComponentContractError",
|
|
132
|
-
"emitModuleFederationFallbackTelemetry",
|
|
133
|
-
"default",
|
|
134
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER",
|
|
135
|
-
"classifyModuleFederationFallback",
|
|
136
|
-
"ModuleFederationRemoteLoadTimeoutError",
|
|
137
|
-
"useDistributedSsrFragmentProps",
|
|
138
|
-
"ModuleFederationRemoteLoadError",
|
|
139
|
-
"DISTRIBUTED_SSR_FRAGMENT_REQUEST_LOCALS_KEY"
|
|
140
|
-
].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_manifest_recovery_runtime_plugin__rspack_import_3[__rspack_import_key];
|
|
80
|
+
for(const __rspack_import_key in _surface_resolution_types__rspack_import_3)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_surface_resolution_types__rspack_import_3[__rspack_import_key];
|
|
141
81
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
142
|
-
var
|
|
82
|
+
var _telemetry__rspack_import_4 = __webpack_require__("./telemetry");
|
|
143
83
|
var __rspack_reexport = {};
|
|
144
|
-
for(const __rspack_import_key in
|
|
145
|
-
"MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT",
|
|
146
|
-
"MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT",
|
|
147
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT",
|
|
148
|
-
"createModuleFederationFallbackTelemetry",
|
|
149
|
-
"toModuleFederationFallbackAttributes",
|
|
150
|
-
"ModuleFederationRemoteComponentContractError",
|
|
151
|
-
"emitModuleFederationFallbackTelemetry",
|
|
152
|
-
"default",
|
|
153
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER",
|
|
154
|
-
"classifyModuleFederationFallback",
|
|
155
|
-
"ModuleFederationRemoteLoadTimeoutError",
|
|
156
|
-
"useDistributedSsrFragmentProps",
|
|
157
|
-
"ModuleFederationRemoteLoadError",
|
|
158
|
-
"DISTRIBUTED_SSR_FRAGMENT_REQUEST_LOCALS_KEY"
|
|
159
|
-
].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_surface_resolution_types__rspack_import_4[__rspack_import_key];
|
|
84
|
+
for(const __rspack_import_key in _telemetry__rspack_import_4)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_telemetry__rspack_import_4[__rspack_import_key];
|
|
160
85
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
161
|
-
const MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT = 'modernjs:mf-runtime-fallback';
|
|
162
|
-
const MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT = 'modernjs:mf-runtime-recovery';
|
|
163
|
-
const DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT = '/_modern/contract-gates/runtime-fallback';
|
|
164
|
-
const DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER = 'x-modernjs-runtime-signal-token';
|
|
165
|
-
class ModuleFederationRemoteLoadTimeoutError extends Error {
|
|
166
|
-
constructor(remote, timeoutMs){
|
|
167
|
-
super(`Loading remote "${remote}" timed out after ${timeoutMs}ms`);
|
|
168
|
-
this.name = 'ModuleFederationRemoteLoadTimeoutError';
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
class ModuleFederationRemoteLoadError extends Error {
|
|
172
|
-
constructor(remote, attempts, causeError){
|
|
173
|
-
super(`Unable to load remote "${remote}" after ${attempts} attempt${attempts > 1 ? 's' : ''}: ${causeError.message}`);
|
|
174
|
-
this.name = 'ModuleFederationRemoteLoadError';
|
|
175
|
-
this.remote = remote;
|
|
176
|
-
this.attempts = attempts;
|
|
177
|
-
this.causeError = causeError;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
class ModuleFederationRemoteComponentContractError extends Error {
|
|
181
|
-
constructor(remote, exportName){
|
|
182
|
-
super(`Remote "${remote}" export "${exportName}" is not a valid React component`);
|
|
183
|
-
this.name = 'ModuleFederationRemoteComponentContractError';
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
function toError(error) {
|
|
187
|
-
if (error instanceof Error) return error;
|
|
188
|
-
return new Error('string' == typeof error ? error : 'Unknown remote load error');
|
|
189
|
-
}
|
|
190
|
-
function classifyModuleFederationFallback(error) {
|
|
191
|
-
const normalizedError = toError(error);
|
|
192
|
-
if (normalizedError instanceof ModuleFederationRemoteLoadError) return classifyModuleFederationFallback(normalizedError.causeError);
|
|
193
|
-
if (normalizedError instanceof ModuleFederationRemoteLoadTimeoutError) return 'timeout';
|
|
194
|
-
if (normalizedError instanceof ModuleFederationRemoteComponentContractError) return 'contract';
|
|
195
|
-
const message = normalizedError.message;
|
|
196
|
-
if (/version|requiredVersion|singleton|share scope|shared module/i.test(message)) return 'version-skew';
|
|
197
|
-
if (/network|fetch|script|timeout|chunk|loading/i.test(message)) return 'network';
|
|
198
|
-
return 'remote-unavailable';
|
|
199
|
-
}
|
|
200
|
-
function createModuleFederationFallbackTelemetry(input) {
|
|
201
|
-
const error = void 0 !== input.error ? toError(input.error) : void 0;
|
|
202
|
-
const status = input.status ?? 'degraded';
|
|
203
|
-
const eventName = input.eventName ?? ('recovered' === status ? MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT : MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT);
|
|
204
|
-
const metadata = {
|
|
205
|
-
...input.metadata ?? {},
|
|
206
|
-
classification: input.classification,
|
|
207
|
-
remote: input.remote,
|
|
208
|
-
status
|
|
209
|
-
};
|
|
210
|
-
if (void 0 !== input.exportName) metadata.exportName = input.exportName;
|
|
211
|
-
if (void 0 !== input.runtimeDigest) metadata.runtimeDigest = input.runtimeDigest;
|
|
212
|
-
if (void 0 !== error) {
|
|
213
|
-
metadata.errorName = error.name;
|
|
214
|
-
metadata.errorMessage = error.message;
|
|
215
|
-
}
|
|
216
|
-
const payload = {
|
|
217
|
-
appName: input.appName,
|
|
218
|
-
eventName,
|
|
219
|
-
metadata,
|
|
220
|
-
phase: input.phase,
|
|
221
|
-
reason: input.classification,
|
|
222
|
-
schemaVersion: 1
|
|
223
|
-
};
|
|
224
|
-
if (void 0 !== input.entry) payload.entry = input.entry;
|
|
225
|
-
if (void 0 !== input.runtimeDigest) payload.runtimeDigest = input.runtimeDigest;
|
|
226
|
-
return payload;
|
|
227
|
-
}
|
|
228
|
-
function toModuleFederationFallbackAttributes(payload) {
|
|
229
|
-
return {
|
|
230
|
-
'data-mf-fallback-app': payload.appName,
|
|
231
|
-
'data-mf-fallback-classification': payload.reason,
|
|
232
|
-
'data-mf-fallback-phase': payload.phase,
|
|
233
|
-
'data-mf-fallback-remote': String(payload.metadata.remote),
|
|
234
|
-
'data-mf-fallback-status': String(payload.metadata.status),
|
|
235
|
-
'data-mf-telemetry-event': payload.eventName
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
async function emitModuleFederationFallbackTelemetry(input, options = {}) {
|
|
239
|
-
const payload = createModuleFederationFallbackTelemetry(input);
|
|
240
|
-
if ("u" > typeof window && 'function' == typeof window.dispatchEvent && "u" > typeof CustomEvent) window.dispatchEvent(new CustomEvent(payload.eventName, {
|
|
241
|
-
detail: payload
|
|
242
|
-
}));
|
|
243
|
-
const shouldPost = true === options.postSignal || Boolean(options.endpoint);
|
|
244
|
-
if (!shouldPost) return {
|
|
245
|
-
dispatched: true,
|
|
246
|
-
posted: false
|
|
247
|
-
};
|
|
248
|
-
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
249
|
-
if ('function' != typeof fetchImpl) return {
|
|
250
|
-
dispatched: true,
|
|
251
|
-
posted: false
|
|
252
|
-
};
|
|
253
|
-
const headers = new Headers({
|
|
254
|
-
'content-type': 'application/json'
|
|
255
|
-
});
|
|
256
|
-
if (void 0 !== options.authToken && options.authToken.length > 0) headers.set(options.authHeaderName ?? DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER, options.authToken);
|
|
257
|
-
const response = await fetchImpl(options.endpoint ?? DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT, {
|
|
258
|
-
body: JSON.stringify(payload),
|
|
259
|
-
headers,
|
|
260
|
-
method: 'POST',
|
|
261
|
-
keepalive: true
|
|
262
|
-
});
|
|
263
|
-
return {
|
|
264
|
-
dispatched: true,
|
|
265
|
-
posted: true,
|
|
266
|
-
postStatus: response.status
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
270
|
-
DISTRIBUTED_SSR_FRAGMENT_REQUEST_LOCALS_KEY: ()=>_distributed_ssr__rspack_import_1.DISTRIBUTED_SSR_FRAGMENT_REQUEST_LOCALS_KEY,
|
|
271
|
-
ModuleFederationRemoteComponentContractError: ()=>ModuleFederationRemoteComponentContractError,
|
|
272
|
-
ModuleFederationRemoteLoadError: ()=>ModuleFederationRemoteLoadError,
|
|
273
|
-
ModuleFederationRemoteLoadTimeoutError: ()=>ModuleFederationRemoteLoadTimeoutError,
|
|
274
|
-
classifyModuleFederationFallback: ()=>classifyModuleFederationFallback,
|
|
275
|
-
createModuleFederationFallbackTelemetry: ()=>createModuleFederationFallbackTelemetry,
|
|
276
|
-
emitModuleFederationFallbackTelemetry: ()=>emitModuleFederationFallbackTelemetry,
|
|
277
|
-
toModuleFederationFallbackAttributes: ()=>toModuleFederationFallbackAttributes,
|
|
278
|
-
useDistributedSsrFragmentProps: ()=>_distributed_ssr__rspack_import_1.useDistributedSsrFragmentProps
|
|
279
|
-
}, {
|
|
280
|
-
DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER: DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER,
|
|
281
|
-
DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT: DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT,
|
|
282
|
-
MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT: MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT,
|
|
283
|
-
MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT: MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT
|
|
284
|
-
});
|
|
285
86
|
})();
|
|
286
|
-
exports
|
|
287
|
-
exports.DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT = __webpack_exports__.DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT;
|
|
288
|
-
exports.DISTRIBUTED_SSR_FRAGMENT_REQUEST_LOCALS_KEY = __webpack_exports__.DISTRIBUTED_SSR_FRAGMENT_REQUEST_LOCALS_KEY;
|
|
289
|
-
exports.MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT = __webpack_exports__.MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT;
|
|
290
|
-
exports.MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT = __webpack_exports__.MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT;
|
|
291
|
-
exports.ModuleFederationRemoteComponentContractError = __webpack_exports__.ModuleFederationRemoteComponentContractError;
|
|
292
|
-
exports.ModuleFederationRemoteLoadError = __webpack_exports__.ModuleFederationRemoteLoadError;
|
|
293
|
-
exports.ModuleFederationRemoteLoadTimeoutError = __webpack_exports__.ModuleFederationRemoteLoadTimeoutError;
|
|
294
|
-
exports.classifyModuleFederationFallback = __webpack_exports__.classifyModuleFederationFallback;
|
|
295
|
-
exports.createModuleFederationFallbackTelemetry = __webpack_exports__.createModuleFederationFallbackTelemetry;
|
|
296
|
-
exports.emitModuleFederationFallbackTelemetry = __webpack_exports__.emitModuleFederationFallbackTelemetry;
|
|
297
|
-
exports.toModuleFederationFallbackAttributes = __webpack_exports__.toModuleFederationFallbackAttributes;
|
|
298
|
-
exports.useDistributedSsrFragmentProps = __webpack_exports__.useDistributedSsrFragmentProps;
|
|
299
|
-
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
300
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER",
|
|
301
|
-
"DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT",
|
|
302
|
-
"DISTRIBUTED_SSR_FRAGMENT_REQUEST_LOCALS_KEY",
|
|
303
|
-
"MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT",
|
|
304
|
-
"MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT",
|
|
305
|
-
"ModuleFederationRemoteComponentContractError",
|
|
306
|
-
"ModuleFederationRemoteLoadError",
|
|
307
|
-
"ModuleFederationRemoteLoadTimeoutError",
|
|
308
|
-
"classifyModuleFederationFallback",
|
|
309
|
-
"createModuleFederationFallbackTelemetry",
|
|
310
|
-
"emitModuleFederationFallbackTelemetry",
|
|
311
|
-
"toModuleFederationFallbackAttributes",
|
|
312
|
-
"useDistributedSsrFragmentProps"
|
|
313
|
-
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
87
|
+
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
314
88
|
Object.defineProperty(exports, '__esModule', {
|
|
315
89
|
value: true
|
|
316
90
|
});
|
|
@@ -60,7 +60,7 @@ const getErrorStatus = (error)=>{
|
|
|
60
60
|
if ('object' == typeof error && null !== error && 'status' in error && 'number' == typeof error.status) return error.status;
|
|
61
61
|
};
|
|
62
62
|
const isRetryableError = (error)=>{
|
|
63
|
-
if (error instanceof SyntaxError) return
|
|
63
|
+
if (error instanceof SyntaxError) return true;
|
|
64
64
|
const message = getErrorMessage(error);
|
|
65
65
|
if (NON_RETRYABLE_ERROR_PATTERNS.some((pattern)=>pattern.test(message))) return false;
|
|
66
66
|
const status = getErrorStatus(error);
|
|
@@ -0,0 +1,159 @@
|
|
|
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
|
+
RENDERER_FEDERATION_METADATA_KEY: ()=>RENDERER_FEDERATION_METADATA_KEY,
|
|
32
|
+
RENDERER_FEDERATION_SCHEMA: ()=>RENDERER_FEDERATION_SCHEMA,
|
|
33
|
+
RENDERER_FEDERATION_SCHEMA_VERSION: ()=>RENDERER_FEDERATION_SCHEMA_VERSION,
|
|
34
|
+
assertRendererFederationCompatibility: ()=>assertRendererFederationCompatibility,
|
|
35
|
+
readRendererFederationCompatibility: ()=>readRendererFederationCompatibility,
|
|
36
|
+
readRendererFederationContract: ()=>readRendererFederationContract,
|
|
37
|
+
rendererFederationError: ()=>rendererFederationError
|
|
38
|
+
});
|
|
39
|
+
const backend_federation_contracts_namespaceObject = require("@modern-js/backend-federation-contracts");
|
|
40
|
+
const RENDERER_FEDERATION_METADATA_KEY = 'ultramodernRenderer';
|
|
41
|
+
const RENDERER_FEDERATION_SCHEMA = 'ultramodern.renderer-federation';
|
|
42
|
+
const RENDERER_FEDERATION_SCHEMA_VERSION = 1;
|
|
43
|
+
const rendererFederationError = (message)=>new Error(`Renderer federation manifest contract: ${message}`);
|
|
44
|
+
const record = (value)=>null !== value && 'object' == typeof value && !Array.isArray(value);
|
|
45
|
+
const exactFields = (value, fields, label)=>{
|
|
46
|
+
const unknown = Object.keys(value).filter((key)=>!fields.includes(key));
|
|
47
|
+
const missing = fields.filter((key)=>!Object.hasOwn(value, key));
|
|
48
|
+
if (unknown.length || missing.length) throw rendererFederationError(`${label} fields differ (unknown=${unknown.join(',')}; missing=${missing.join(',')}).`);
|
|
49
|
+
};
|
|
50
|
+
const assertProfile = (value)=>{
|
|
51
|
+
const result = (0, backend_federation_contracts_namespaceObject.validateRendererProfile)(value, 'rendererProfile');
|
|
52
|
+
if (!result.ok) throw rendererFederationError((0, backend_federation_contracts_namespaceObject.formatBackendFederationValidationErrors)(result.errors));
|
|
53
|
+
const profile = value;
|
|
54
|
+
return Object.freeze({
|
|
55
|
+
...profile,
|
|
56
|
+
compiler: Object.freeze({
|
|
57
|
+
...profile.compiler
|
|
58
|
+
}),
|
|
59
|
+
hydration: Object.freeze({
|
|
60
|
+
...profile.hydration
|
|
61
|
+
}),
|
|
62
|
+
router: Object.freeze({
|
|
63
|
+
...profile.router
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
const assertPackage = (value, profile, label)=>{
|
|
68
|
+
const result = (0, backend_federation_contracts_namespaceObject.validateRendererProfile)({
|
|
69
|
+
...profile,
|
|
70
|
+
compiler: value
|
|
71
|
+
}, label);
|
|
72
|
+
if (!result.ok) throw rendererFederationError((0, backend_federation_contracts_namespaceObject.formatBackendFederationValidationErrors)(result.errors));
|
|
73
|
+
return Object.freeze({
|
|
74
|
+
...value
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
function readRendererFederationCompatibility(value) {
|
|
78
|
+
if (!record(value)) throw rendererFederationError('the consuming renderer tuple is absent.');
|
|
79
|
+
exactFields(value, [
|
|
80
|
+
'profile',
|
|
81
|
+
'runtime',
|
|
82
|
+
'bootstrap'
|
|
83
|
+
], 'compatibility');
|
|
84
|
+
const profile = assertProfile(value.profile);
|
|
85
|
+
return Object.freeze({
|
|
86
|
+
profile,
|
|
87
|
+
runtime: assertPackage(value.runtime, profile, 'runtime'),
|
|
88
|
+
bootstrap: assertPackage(value.bootstrap, profile, 'bootstrap')
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function readRendererFederationContract(value) {
|
|
92
|
+
if (!record(value)) throw rendererFederationError('renderer publication metadata is absent.');
|
|
93
|
+
exactFields(value, [
|
|
94
|
+
'schema',
|
|
95
|
+
'schemaVersion',
|
|
96
|
+
'profile',
|
|
97
|
+
'runtime',
|
|
98
|
+
'bootstrap',
|
|
99
|
+
'identities'
|
|
100
|
+
], 'publication');
|
|
101
|
+
if (value.schema !== RENDERER_FEDERATION_SCHEMA || value.schemaVersion !== RENDERER_FEDERATION_SCHEMA_VERSION) throw rendererFederationError('unsupported renderer publication schema.');
|
|
102
|
+
const compatibility = readRendererFederationCompatibility({
|
|
103
|
+
profile: value.profile,
|
|
104
|
+
runtime: value.runtime,
|
|
105
|
+
bootstrap: value.bootstrap
|
|
106
|
+
});
|
|
107
|
+
if (!record(value.identities) || !Object.keys(value.identities).length) throw rendererFederationError('finalized application entry identities are absent.');
|
|
108
|
+
const identities = Object.create(null);
|
|
109
|
+
let appId;
|
|
110
|
+
for (const [entryName, valueIdentity] of Object.entries(value.identities)){
|
|
111
|
+
const result = (0, backend_federation_contracts_namespaceObject.validateRendererIdentity)(valueIdentity, `identities.${entryName}`);
|
|
112
|
+
if (!result.ok) throw rendererFederationError((0, backend_federation_contracts_namespaceObject.formatBackendFederationValidationErrors)(result.errors));
|
|
113
|
+
const identity = valueIdentity;
|
|
114
|
+
if (identity.entryName !== entryName || identity.renderer !== compatibility.profile.renderer || identity.protocolVersion !== compatibility.profile.protocolVersion || void 0 !== appId && identity.appId !== appId) throw rendererFederationError(`incoherent publication identity for ${entryName}.`);
|
|
115
|
+
appId = identity.appId;
|
|
116
|
+
identities[entryName] = Object.freeze({
|
|
117
|
+
...identity
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
return Object.freeze({
|
|
121
|
+
schema: RENDERER_FEDERATION_SCHEMA,
|
|
122
|
+
schemaVersion: RENDERER_FEDERATION_SCHEMA_VERSION,
|
|
123
|
+
...compatibility,
|
|
124
|
+
identities: Object.freeze(identities)
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
function assertRendererFederationCompatibility(expected, actual) {
|
|
128
|
+
try {
|
|
129
|
+
(0, backend_federation_contracts_namespaceObject.assertRendererProfileCompatibility)(expected.profile, actual.profile);
|
|
130
|
+
} catch (error) {
|
|
131
|
+
throw rendererFederationError(error instanceof Error ? error.message : String(error));
|
|
132
|
+
}
|
|
133
|
+
for (const field of [
|
|
134
|
+
'runtime',
|
|
135
|
+
'bootstrap'
|
|
136
|
+
])for (const key of [
|
|
137
|
+
'name',
|
|
138
|
+
'version'
|
|
139
|
+
])if (expected[field][key] !== actual[field][key]) throw rendererFederationError(`${field}.${key} must match the consuming renderer tuple.`);
|
|
140
|
+
}
|
|
141
|
+
exports.RENDERER_FEDERATION_METADATA_KEY = __webpack_exports__.RENDERER_FEDERATION_METADATA_KEY;
|
|
142
|
+
exports.RENDERER_FEDERATION_SCHEMA = __webpack_exports__.RENDERER_FEDERATION_SCHEMA;
|
|
143
|
+
exports.RENDERER_FEDERATION_SCHEMA_VERSION = __webpack_exports__.RENDERER_FEDERATION_SCHEMA_VERSION;
|
|
144
|
+
exports.assertRendererFederationCompatibility = __webpack_exports__.assertRendererFederationCompatibility;
|
|
145
|
+
exports.readRendererFederationCompatibility = __webpack_exports__.readRendererFederationCompatibility;
|
|
146
|
+
exports.readRendererFederationContract = __webpack_exports__.readRendererFederationContract;
|
|
147
|
+
exports.rendererFederationError = __webpack_exports__.rendererFederationError;
|
|
148
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
149
|
+
"RENDERER_FEDERATION_METADATA_KEY",
|
|
150
|
+
"RENDERER_FEDERATION_SCHEMA",
|
|
151
|
+
"RENDERER_FEDERATION_SCHEMA_VERSION",
|
|
152
|
+
"assertRendererFederationCompatibility",
|
|
153
|
+
"readRendererFederationCompatibility",
|
|
154
|
+
"readRendererFederationContract",
|
|
155
|
+
"rendererFederationError"
|
|
156
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
157
|
+
Object.defineProperty(exports, '__esModule', {
|
|
158
|
+
value: true
|
|
159
|
+
});
|