@fulgurjs/federation 4.3.0 → 4.3.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/CHANGELOG.md +6 -0
- package/README.md +9 -9
- package/dist/{chunk-FMV5BXGS.js → chunk-LU3MBKB2.js} +1 -1
- package/dist/{chunk-AD2XIMBJ.js → chunk-NOMYWDZN.js} +2 -2
- package/dist/cli.js +1 -1
- package/dist/context.cjs +5 -5
- package/dist/context.js +5 -5
- package/dist/index.cjs +74 -89
- package/dist/index.js +74 -89
- package/dist/runtime.js +22 -10
- package/dist/vue-adapter.cjs +2 -2
- package/dist/vue-adapter.js +1 -1
- package/dist/vue.cjs +68 -51
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -43,7 +43,7 @@ var import_node_fs = __toESM(require("fs"), 1);
|
|
|
43
43
|
var import_node_path = __toESM(require("path"), 1);
|
|
44
44
|
|
|
45
45
|
// src/version.ts
|
|
46
|
-
var RUNTIME_VERSION = "4.3.
|
|
46
|
+
var RUNTIME_VERSION = "4.3.1";
|
|
47
47
|
|
|
48
48
|
// src/dev-cors.ts
|
|
49
49
|
function normalizeDevCorsOrigins(input) {
|
|
@@ -98,7 +98,7 @@ function joinUrl(base, file) {
|
|
|
98
98
|
function normalizeRemoteValue(key, value, filename, warnings) {
|
|
99
99
|
if (typeof value === "function") {
|
|
100
100
|
warnings.push(
|
|
101
|
-
|
|
101
|
+
`\u8FDC\u7A0B\u5E94\u7528 "${key}" \u4F7F\u7528\u52A8\u6001 Promise \u914D\u7F6E\uFF0C\u65E0\u6CD5\u76F4\u63A5\u5199\u5165\u6784\u5EFA\u4EA7\u7269\u3002\u8BF7\u5728\u8FD0\u884C\u65F6\u8C03\u7528 registerRemote() \u6CE8\u518C\uFF1B\u914D\u7F6E\u4E2D\u7684\u952E\u4ECD\u7528\u4E8E\u6539\u5199 import \u8BED\u6CD5\u3002`
|
|
102
102
|
);
|
|
103
103
|
return {
|
|
104
104
|
key,
|
|
@@ -118,7 +118,7 @@ function normalizeRemoteValue(key, value, filename, warnings) {
|
|
|
118
118
|
selfName = raw.slice(0, at);
|
|
119
119
|
raw = raw.slice(at + 1);
|
|
120
120
|
} else if (at === 0 || at === raw.length - 1) {
|
|
121
|
-
throw new Error(
|
|
121
|
+
throw new Error(`\u8FDC\u7A0B\u5E94\u7528 "${key}" \u7684\u5730\u5740 "${raw}" \u65E0\u6548\uFF1A@ \u4F4D\u7F6E\u9519\u8BEF\u3002\u8BF7\u4F7F\u7528 name@url\uFF0C\u6216\u76F4\u63A5\u586B\u5199\u8FDC\u7A0B\u5730\u5740\u3002`);
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
const resolveEntry = (rawUrl, mode) => {
|
|
@@ -181,10 +181,10 @@ function normalizeShared(shared, shareScopeDefault, pkgDependencies, root, warni
|
|
|
181
181
|
for (const [configKey, hint] of entries) {
|
|
182
182
|
if (hint.eager && hint.import === false) {
|
|
183
183
|
configError(
|
|
184
|
-
`CFG-008
|
|
184
|
+
`CFG-008\uFF1Ashared["${configKey}"] \u4E0D\u80FD\u540C\u65F6\u914D\u7F6E eager \u548C import:false`,
|
|
185
185
|
hint,
|
|
186
|
-
"eager
|
|
187
|
-
`shared: { '${configKey}': { eager: true } } //
|
|
186
|
+
"eager \u9700\u8981\u5C06\u672C\u5730\u526F\u672C\u6253\u8FDB\u521D\u59CB chunk\uFF0C\u800C import:false \u8868\u793A\u6CA1\u6709\u672C\u5730\u526F\u672C",
|
|
187
|
+
`shared: { '${configKey}': { eager: true } } // \u6216\u53D6\u6D88 eager\uFF1A{ '${configKey}': { import: false } }`
|
|
188
188
|
);
|
|
189
189
|
}
|
|
190
190
|
const canonical = configKey.endsWith("/") ? configKey.slice(0, -1) : configKey;
|
|
@@ -195,10 +195,10 @@ function normalizeShared(shared, shareScopeDefault, pkgDependencies, root, warni
|
|
|
195
195
|
const dup = out.find((s) => s.shareKey === shareKeyOfHint && s.shareScope === shareScopeOfHint);
|
|
196
196
|
if (dup) {
|
|
197
197
|
configError(
|
|
198
|
-
`CFG-008
|
|
198
|
+
`CFG-008\uFF1A\u5171\u4EAB\u952E "${shareKeyOfHint}" \u5728\u4F5C\u7528\u57DF "${shareScopeOfHint}" \u4E2D\u91CD\u590D\u58F0\u660E\uFF08\u914D\u7F6E\u952E "${dup.configKey}" \u4E0E "${configKey}"\uFF09`,
|
|
199
199
|
configKey,
|
|
200
|
-
"
|
|
201
|
-
|
|
200
|
+
"\u6BCF\u4E2A\u5171\u4EAB\u4F5C\u7528\u57DF\u5185\uFF0C\u540C\u4E00 shareKey \u53EA\u80FD\u58F0\u660E\u4E00\u6B21",
|
|
201
|
+
`\u5408\u5E76\u914D\u7F6E\uFF1A{ '${shareKeyOfHint}': { singleton: true } } // \u6216\u4F7F\u7528\u4E0D\u540C\u7684 shareKey`
|
|
202
202
|
);
|
|
203
203
|
}
|
|
204
204
|
let requiredVersion;
|
|
@@ -213,7 +213,7 @@ function normalizeShared(shared, shareScopeDefault, pkgDependencies, root, warni
|
|
|
213
213
|
} else {
|
|
214
214
|
requiredVersion = false;
|
|
215
215
|
warnings.push(
|
|
216
|
-
|
|
216
|
+
`\u5171\u4EAB\u4F9D\u8D56 "${configKey}" \u65E0\u6CD5\u4ECE package.json \u63A8\u65AD requiredVersion\uFF0C\u6682\u63A5\u53D7\u4EFB\u610F\u7248\u672C\u3002\u5EFA\u8BAE\u663E\u5F0F\u586B\u5199\u7248\u672C\u7EA6\u675F\u3002`
|
|
217
217
|
);
|
|
218
218
|
}
|
|
219
219
|
}
|
|
@@ -227,7 +227,7 @@ function normalizeShared(shared, shareScopeDefault, pkgDependencies, root, warni
|
|
|
227
227
|
} else {
|
|
228
228
|
version = "0.0.0";
|
|
229
229
|
warnings.push(
|
|
230
|
-
|
|
230
|
+
`\u5171\u4EAB\u4F9D\u8D56 "${configKey}" \u672A\u627E\u5230\u5DF2\u5B89\u88C5\u7248\u672C\uFF0C\u6682\u6309 0.0.0 \u6CE8\u518C\uFF1B\u4ECD\u53EF\u4F7F\u7528\uFF0C\u4F46\u7248\u672C\u9009\u62E9\u4F18\u5148\u7EA7\u6700\u4F4E\u3002\u8BF7\u68C0\u67E5\u4F9D\u8D56\u662F\u5426\u5B89\u88C5\u6216\u663E\u5F0F\u586B\u5199 shared.version\u3002`
|
|
231
231
|
);
|
|
232
232
|
}
|
|
233
233
|
}
|
|
@@ -258,33 +258,33 @@ function configError(what, got, expect, example) {
|
|
|
258
258
|
const gotText = typeof got === "string" ? `"${got}"` : JSON.stringify(got);
|
|
259
259
|
throw new Error(
|
|
260
260
|
[
|
|
261
|
-
`[fulgurjs]
|
|
262
|
-
`
|
|
263
|
-
`
|
|
264
|
-
`
|
|
261
|
+
`[fulgurjs] federation() \u914D\u7F6E\u65E0\u6548\uFF1A${what}`,
|
|
262
|
+
` \u5F53\u524D\u503C\uFF1A${gotText}`,
|
|
263
|
+
` \u9884\u671F\u503C\uFF1A${expect}`,
|
|
264
|
+
` \u4FEE\u6CD5\u793A\u4F8B\uFF1A${example}`
|
|
265
265
|
].join("\n")
|
|
266
266
|
);
|
|
267
267
|
}
|
|
268
268
|
function validateOptions(options) {
|
|
269
269
|
if (options.name === void 0 || options.name === null || options.name === "") {
|
|
270
270
|
configError(
|
|
271
|
-
"
|
|
271
|
+
"\u7F3A\u5C11\u5FC5\u586B\u7684 name\uFF08\u5BB9\u5668\u540D\u79F0\uFF0C\u4E5F\u662F\u9875\u9762\u5185\u7684\u552F\u4E00\u6807\u8BC6\uFF09",
|
|
272
272
|
options.name,
|
|
273
|
-
"
|
|
273
|
+
"\u540C\u4E00\u9875\u9762\u7684\u5BBF\u4E3B\u4E0E\u8FDC\u7A0B\u4E4B\u95F4\u552F\u4E00\u7684\u975E\u7A7A\u5B57\u7B26\u4E32",
|
|
274
274
|
`federation({ name: 'my-app', ... })`
|
|
275
275
|
);
|
|
276
276
|
}
|
|
277
277
|
if (typeof options.name !== "string" || !/^[a-zA-Z][\w.-]*$/.test(options.name)) {
|
|
278
278
|
configError(
|
|
279
|
-
"
|
|
279
|
+
"name \u683C\u5F0F\u4E0D\u6B63\u786E\uFF1A\u5FC5\u987B\u4EE5\u82F1\u6587\u5B57\u6BCD\u5F00\u5934\uFF0C\u4E0D\u80FD\u5305\u542B\u7A7A\u683C\u6216\u659C\u6760",
|
|
280
280
|
options.name,
|
|
281
|
-
'
|
|
281
|
+
'\u4F8B\u5982 "my-app" \u6216 "host-app"',
|
|
282
282
|
`federation({ name: 'my-app', ... })`
|
|
283
283
|
);
|
|
284
284
|
}
|
|
285
285
|
if (options.remoteType !== void 0 && options.remoteType !== "module") {
|
|
286
286
|
configError(
|
|
287
|
-
'CFG-011
|
|
287
|
+
'CFG-011\uFF1AremoteType \u76EE\u524D\u4EC5\u652F\u6301 "module"',
|
|
288
288
|
options.remoteType,
|
|
289
289
|
'"module"\uFF08\u7F3A\u7701\u5373\u53EF\uFF09\u2014\u2014webpack script/var remote \u4E92\u64CD\u4F5C\u672A\u5B9E\u73B0',
|
|
290
290
|
`// \u5220\u9664 remoteType \u914D\u7F6E\uFF08fulgurjs \u53EA\u4EA7\u51FA ESM module remote\uFF09`
|
|
@@ -292,7 +292,7 @@ function validateOptions(options) {
|
|
|
292
292
|
}
|
|
293
293
|
if (options.library?.type !== void 0 && options.library.type !== "module" && options.library.type !== "esm") {
|
|
294
294
|
configError(
|
|
295
|
-
'CFG-011
|
|
295
|
+
'CFG-011\uFF1Alibrary.type \u76EE\u524D\u4EC5\u652F\u6301 "module" \u6216 "esm"',
|
|
296
296
|
options.library.type,
|
|
297
297
|
'"module" \u6216 "esm"\uFF08\u7F3A\u7701\u5373\u53EF\uFF09\u2014\u2014webpack UMD/var \u8F93\u51FA\u4E92\u64CD\u4F5C\u672A\u5B9E\u73B0',
|
|
298
298
|
`// \u5220\u9664 library \u914D\u7F6E\uFF08fulgurjs remoteEntry \u6052\u4E3A ESM\uFF09`
|
|
@@ -300,7 +300,7 @@ function validateOptions(options) {
|
|
|
300
300
|
}
|
|
301
301
|
if (options.automaticAsyncBoundary === false) {
|
|
302
302
|
configError(
|
|
303
|
-
"CFG-011
|
|
303
|
+
"CFG-011\uFF1A\u4E0D\u80FD\u5173\u95ED\u81EA\u52A8\u5F02\u6B65\u8FB9\u754C\uFF08automaticAsyncBoundary=false\uFF09",
|
|
304
304
|
options.automaticAsyncBoundary,
|
|
305
305
|
"\u7F3A\u7701\u6216 true\u2014\u2014fulgurjs \u4F7F\u7528 TLA \u81EA\u52A8\u5F02\u6B65\u8FB9\u754C\uFF0C\u4E0D\u5B58\u5728\u624B\u5DE5 bootstrap \u6A21\u5F0F",
|
|
306
306
|
`// \u5220\u9664 automaticAsyncBoundary \u914D\u7F6E\uFF08\u5BB9\u5668\u534F\u8BAE\u5929\u7136\u5F02\u6B65\uFF09`
|
|
@@ -310,9 +310,9 @@ function validateOptions(options) {
|
|
|
310
310
|
const norm = key.startsWith("./") ? key : `./${key}`;
|
|
311
311
|
if (norm === SETUP_EXPOSE_KEY) {
|
|
312
312
|
configError(
|
|
313
|
-
`CFG-012
|
|
313
|
+
`CFG-012\uFF1Aexposes \u952E "${norm}" \u5DF2\u7531\u8054\u90A6 setup \u5165\u53E3\u4FDD\u7559`,
|
|
314
314
|
key,
|
|
315
|
-
|
|
315
|
+
`\u4F7F\u7528\u5176\u4ED6\u516C\u5F00 expose \u540D\u79F0\uFF1B\u5185\u90E8\u4FDD\u7559\u952E "${SETUP_EXPOSE_KEY}" \u7531 setup \u9009\u9879\u81EA\u52A8\u751F\u6210`,
|
|
316
316
|
`// \u628A\u8BE5 expose \u6539\u540D\uFF0C\u6216\u5220\u9664\u5B83\u5E76\u628A\u539F\u6587\u4EF6\u8DEF\u5F84\u914D\u7F6E\u5230 federation({ setup })`
|
|
317
317
|
);
|
|
318
318
|
}
|
|
@@ -320,29 +320,29 @@ function validateOptions(options) {
|
|
|
320
320
|
if (options.setup !== void 0) {
|
|
321
321
|
if (typeof options.setup !== "string" || options.setup.trim() === "") {
|
|
322
322
|
configError(
|
|
323
|
-
"CFG-012
|
|
323
|
+
"CFG-012\uFF1Asetup \u5FC5\u987B\u662F\u76F8\u5BF9\u5E94\u7528\u6839\u76EE\u5F55\u7684\u975E\u7A7A\u6A21\u5757\u8DEF\u5F84",
|
|
324
324
|
options.setup,
|
|
325
|
-
'
|
|
325
|
+
'\u4F8B\u5982 "./src/fulgurjs/setup.ts"\uFF08\u9ED8\u8BA4\u5BFC\u51FA setup(context)\uFF0C\u53EF\u9009\u5177\u540D\u5BFC\u51FA onSession(context)\uFF09',
|
|
326
326
|
`federation({ name: 'my-app', setup: './src/fulgurjs/setup.ts', ... })`
|
|
327
327
|
);
|
|
328
328
|
}
|
|
329
329
|
}
|
|
330
330
|
if (options.exposes !== void 0 && typeof options.exposes !== "object") {
|
|
331
|
-
configError("
|
|
331
|
+
configError("exposes \u5FC5\u987B\u662F\u5BF9\u8C61", options.exposes, '\u5F62\u5982 { "./Module": "./src/path" } \u7684\u5BF9\u8C61', `exposes: { './Button': './src/Button.vue' }`);
|
|
332
332
|
}
|
|
333
333
|
if (options.remotes !== void 0 && typeof options.remotes !== "object") {
|
|
334
|
-
configError("
|
|
334
|
+
configError("remotes \u5FC5\u987B\u662F\u5BF9\u8C61", options.remotes, "\u5F62\u5982 { \u540D\u79F0: \u5730\u5740 | { dev, prod } | \u52A8\u6001\u52A0\u8F7D\u51FD\u6570 } \u7684\u5BF9\u8C61", `remotes: { 'remote-a': 'http://localhost:5101' }`);
|
|
335
335
|
}
|
|
336
336
|
if (options.shared !== void 0 && typeof options.shared !== "object") {
|
|
337
|
-
configError("
|
|
337
|
+
configError("shared \u5FC5\u987B\u662F\u6570\u7EC4\u6216\u5BF9\u8C61", options.shared, '["vue"] \u6216 { vue: { singleton: true } }', `shared: { vue: { singleton: true } }`);
|
|
338
338
|
}
|
|
339
339
|
for (const [key, val] of Object.entries(options.exposes ?? {})) {
|
|
340
340
|
const importPath = typeof val === "string" ? val : val?.import;
|
|
341
341
|
if (!importPath || typeof importPath !== "string") {
|
|
342
342
|
configError(
|
|
343
|
-
`exposes["${key}"].import
|
|
343
|
+
`exposes["${key}"].import \u7F3A\u5931`,
|
|
344
344
|
val,
|
|
345
|
-
'
|
|
345
|
+
'\u6E90\u7801\u8DEF\u5F84\u5B57\u7B26\u4E32\uFF0C\u6216 { import: "./src/path" }',
|
|
346
346
|
`exposes: { '${key.startsWith("./") ? key : "./" + key}': './src/views/Home.vue' }`
|
|
347
347
|
);
|
|
348
348
|
}
|
|
@@ -350,32 +350,32 @@ function validateOptions(options) {
|
|
|
350
350
|
for (const [key, val] of Object.entries(options.remotes ?? {})) {
|
|
351
351
|
if (/[/@\s]/.test(key)) {
|
|
352
352
|
configError(
|
|
353
|
-
`remotes
|
|
353
|
+
`remotes \u952E "${key}" \u5305\u542B\u975E\u6CD5\u5B57\u7B26\uFF08@\u3001/ \u6216\u7A7A\u767D\u5B57\u7B26\uFF09`,
|
|
354
354
|
key,
|
|
355
|
-
'
|
|
355
|
+
'\u4F5C\u4E3A import \u524D\u7F00\u4F7F\u7528\u7684\u7EAF\u6A21\u5757\u540D\uFF0C\u4F8B\u5982 "remote-a"',
|
|
356
356
|
`remotes: { 'remote-a': '...' } // then: import X from 'remote-a/Button'`
|
|
357
357
|
);
|
|
358
358
|
}
|
|
359
359
|
if (typeof val === "function") continue;
|
|
360
360
|
const cfg = typeof val === "string" ? { external: val } : val;
|
|
361
361
|
if (typeof val === "string" && val.trim() === "") {
|
|
362
|
-
configError(`remotes["${key}"]
|
|
362
|
+
configError(`remotes["${key}"] \u662F\u7A7A\u5B57\u7B26\u4E32`, val, "\u8FDC\u7A0B\u57FA\u7840\u5730\u5740\u6216\u5B8C\u6574\u5165\u53E3\u5730\u5740", `remotes: { '${key}': 'http://localhost:5101' }`);
|
|
363
363
|
}
|
|
364
364
|
if (typeof val !== "string" && typeof cfg !== "object") {
|
|
365
|
-
configError(`remotes["${key}"]
|
|
365
|
+
configError(`remotes["${key}"] \u7684\u503C\u7C7B\u578B\u4E0D\u53D7\u652F\u6301`, val, "\u5B57\u7B26\u4E32\u3001{ dev?, prod?, external? } \u5BF9\u8C61\u6216\u52A8\u6001\u52A0\u8F7D\u51FD\u6570", `remotes: { '${key}': { dev: 'http://localhost:5101', prod: '/remote-a' } }`);
|
|
366
366
|
}
|
|
367
367
|
if (!cfg?.external && !cfg?.dev && !cfg?.prod) {
|
|
368
368
|
configError(
|
|
369
|
-
`remotes["${key}"]
|
|
369
|
+
`remotes["${key}"] \u6CA1\u6709\u5730\u5740\uFF08external\u3001dev\u3001prod \u81F3\u5C11\u586B\u5199\u4E00\u4E2A\uFF09`,
|
|
370
370
|
val,
|
|
371
|
-
"
|
|
371
|
+
"\u81F3\u5C11\u4E00\u4E2A\u5730\u5740\uFF1B\u53EA\u586B\u4E00\u4E2A\u5730\u5740\u65F6\u5F00\u53D1\u4E0E\u751F\u4EA7\u5171\u7528",
|
|
372
372
|
`remotes: { '${key}': 'http://localhost:5101' }
|
|
373
|
-
//
|
|
373
|
+
// \u6216\u5206\u522B\u586B\u5199\uFF1A{ '${key}': { dev: 'http://localhost:5101', prod: '/${key}' } }`
|
|
374
374
|
);
|
|
375
375
|
}
|
|
376
376
|
if (cfg.timeout !== void 0 && (typeof cfg.timeout !== "number" || !Number.isFinite(cfg.timeout) || cfg.timeout <= 0)) {
|
|
377
377
|
configError(
|
|
378
|
-
`CFG-009
|
|
378
|
+
`CFG-009\uFF1Aremotes["${key}"].timeout \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6709\u9650\u6BEB\u79D2\u6570`,
|
|
379
379
|
cfg.timeout,
|
|
380
380
|
"e.g. 15000\uFF08\u7701\u7565\u7528\u9ED8\u8BA4 15s\uFF09",
|
|
381
381
|
`remotes: { '${key}': { external: '\u2026', timeout: 15000 } }`
|
|
@@ -383,7 +383,7 @@ function validateOptions(options) {
|
|
|
383
383
|
}
|
|
384
384
|
if (cfg.retries !== void 0 && (typeof cfg.retries !== "number" || !Number.isInteger(cfg.retries) || cfg.retries < 0 || cfg.retries > 10)) {
|
|
385
385
|
configError(
|
|
386
|
-
`CFG-009
|
|
386
|
+
`CFG-009\uFF1Aremotes["${key}"].retries \u5FC5\u987B\u662F 0 \u5230 10 \u7684\u6574\u6570`,
|
|
387
387
|
cfg.retries,
|
|
388
388
|
"e.g. 2\uFF08\u7701\u7565\u7528\u9ED8\u8BA4 2\uFF1B\u4E0A\u9650 10 \u9632\u9000\u907F\u98CE\u66B4\uFF09",
|
|
389
389
|
`remotes: { '${key}': { external: '\u2026', retries: 2 } }`
|
|
@@ -393,7 +393,7 @@ function validateOptions(options) {
|
|
|
393
393
|
if (brk) {
|
|
394
394
|
if (brk.threshold !== void 0 && (typeof brk.threshold !== "number" || !Number.isFinite(brk.threshold) || brk.threshold <= 0)) {
|
|
395
395
|
configError(
|
|
396
|
-
`CFG-009
|
|
396
|
+
`CFG-009\uFF1Aremotes["${key}"].breaker.threshold \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6709\u9650\u6570\u5B57`,
|
|
397
397
|
brk.threshold,
|
|
398
398
|
"e.g. 5\uFF08\u8FDE\u7EED\u5931\u8D25 5 \u6B21\u540E\u7194\u65AD\uFF09",
|
|
399
399
|
`remotes: { '${key}': { external: '\u2026', breaker: { threshold: 5, resetMs: 30000 } } }`
|
|
@@ -401,7 +401,7 @@ function validateOptions(options) {
|
|
|
401
401
|
}
|
|
402
402
|
if (brk.resetMs !== void 0 && (typeof brk.resetMs !== "number" || !Number.isFinite(brk.resetMs) || brk.resetMs <= 0)) {
|
|
403
403
|
configError(
|
|
404
|
-
`CFG-009
|
|
404
|
+
`CFG-009\uFF1Aremotes["${key}"].breaker.resetMs \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6709\u9650\u6BEB\u79D2\u6570`,
|
|
405
405
|
brk.resetMs,
|
|
406
406
|
"e.g. 30000\uFF08\u7194\u65AD 30s \u540E\u534A\u5F00\uFF09",
|
|
407
407
|
`remotes: { '${key}': { external: '\u2026', breaker: { threshold: 5, resetMs: 30000 } } }`
|
|
@@ -411,15 +411,15 @@ function validateOptions(options) {
|
|
|
411
411
|
for (const slot of ["dev", "prod", "external"]) {
|
|
412
412
|
const v = cfg[slot];
|
|
413
413
|
if (v !== void 0 && typeof v !== "string") {
|
|
414
|
-
configError(`remotes["${key}"].${slot}
|
|
414
|
+
configError(`remotes["${key}"].${slot} \u5FC5\u987B\u662F\u5B57\u7B26\u4E32`, v, "URL \u5B57\u7B26\u4E32", `remotes: { '${key}': { ${slot}: 'http://localhost:5101' } }`);
|
|
415
415
|
}
|
|
416
416
|
if (slot !== "external") {
|
|
417
417
|
const slotUrl = cfg[slot];
|
|
418
418
|
if (typeof slotUrl === "string" && /^[A-Za-z][\w.-]*@/.test(slotUrl)) {
|
|
419
419
|
configError(
|
|
420
|
-
`CFG-007
|
|
420
|
+
`CFG-007\uFF1Aremotes["${key}"].${slot} \u4F7F\u7528\u4E86 name@url \u524D\u7F00\uFF1B\u5BF9\u8C61\u5199\u6CD5\u4E0D\u652F\u6301\u8BE5\u524D\u7F00\uFF0C\u5426\u5219\u4F1A\u62FC\u51FA\u9519\u8BEF\u5730\u5740`,
|
|
421
421
|
slotUrl,
|
|
422
|
-
"
|
|
422
|
+
"\u4E0D\u5E26\u524D\u7F00\u7684 URL\uFF08\u8FDC\u7A0B\u540D\u79F0\u9ED8\u8BA4\u4F7F\u7528\u952E\u540D\uFF09\uFF1B\u9700\u8981\u6539\u540D\u65F6\u6539\u7528\u5B57\u7B26\u4E32\u5199\u6CD5",
|
|
423
423
|
`remotes: { '${key}': 'http://localhost:5101' } // or: remotes: { '${key}': { dev: 'http://localhost:5101', prod: '/${key}' } }`
|
|
424
424
|
);
|
|
425
425
|
}
|
|
@@ -437,7 +437,7 @@ function validateOptions(options) {
|
|
|
437
437
|
}
|
|
438
438
|
if (options.devFsRoot !== void 0 && typeof options.devFsRoot !== "boolean") {
|
|
439
439
|
configError(
|
|
440
|
-
"
|
|
440
|
+
"devFsRoot \u5FC5\u987B\u662F\u5E03\u5C14\u503C",
|
|
441
441
|
options.devFsRoot,
|
|
442
442
|
"true\uFF08dev manifest \u643A\u5E26 fsRoot\uFF0C\u73B0\u72B6\u9ED8\u8BA4\uFF09\u6216 false\uFF08\u4E0D\u66B4\u9732\u672C\u673A\u8DEF\u5F84\uFF09",
|
|
443
443
|
`devFsRoot: false`
|
|
@@ -447,11 +447,11 @@ function validateOptions(options) {
|
|
|
447
447
|
function normalizeOptions(options, root, command) {
|
|
448
448
|
const warnings = [];
|
|
449
449
|
validateOptions(options);
|
|
450
|
-
if (!options.name) throw new Error(
|
|
450
|
+
if (!options.name) throw new Error('[fulgurjs] \u7F3A\u5C11\u5FC5\u586B\u914D\u7F6E name\u3002\u8BF7\u5728 federation({ name: "\u5E94\u7528\u540D" }) \u4E2D\u58F0\u660E\u552F\u4E00\u7684\u5E94\u7528\u540D\u3002');
|
|
451
451
|
const exposes = [];
|
|
452
452
|
for (const [rawName, val] of Object.entries(options.exposes ?? {})) {
|
|
453
453
|
const name = rawName.startsWith("./") ? rawName : `./${rawName}`;
|
|
454
|
-
if (rawName !== name) warnings.push(
|
|
454
|
+
if (rawName !== name) warnings.push(`\u66B4\u9732\u6A21\u5757\u952E "${rawName}" \u5DF2\u89C4\u8303\u5316\u4E3A "${name}"\u3002\u5EFA\u8BAE\u5728 exposes \u4E2D\u76F4\u63A5\u4F7F\u7528\u5E26 ./ \u524D\u7F00\u7684\u952E\u3002`);
|
|
455
455
|
const hint = typeof val === "string" ? { import: val } : val;
|
|
456
456
|
exposes.push({ name, import: hint.import, chunkName: hint.name });
|
|
457
457
|
}
|
|
@@ -471,18 +471,18 @@ function normalizeOptions(options, root, command) {
|
|
|
471
471
|
const seenNames = /* @__PURE__ */ new Map();
|
|
472
472
|
for (const r of remotes) {
|
|
473
473
|
if (seenNames.has(r.name) && seenNames.get(r.name) !== r.key) {
|
|
474
|
-
warnings.push(
|
|
474
|
+
warnings.push(`\u8FDC\u7A0B\u540D\u79F0 "${r.name}" \u88AB\u591A\u4E2A remotes \u952E\u91CD\u590D\u58F0\u660E\uFF1B\u8BF7\u4E3A\u6BCF\u4E2A\u8FDC\u7A0B\u4F7F\u7528\u552F\u4E00\u540D\u79F0\u3002`);
|
|
475
475
|
}
|
|
476
476
|
seenNames.set(r.name, r.key);
|
|
477
477
|
}
|
|
478
478
|
if ((options.exposes === void 0 || Object.keys(options.exposes).length === 0) && (options.remotes === void 0 || Object.keys(options.remotes).length === 0)) {
|
|
479
479
|
warnings.push(
|
|
480
|
-
|
|
480
|
+
"federation() \u672A\u914D\u7F6E exposes \u6216 remotes\uFF0C\u76EE\u524D\u53EA\u4F1A\u6CE8\u518C\u5171\u4EAB\u4F9D\u8D56\u3002\u82E5\u8981\u63D0\u4F9B\u8FDC\u7A0B\u6A21\u5757\uFF0C\u8BF7\u914D\u7F6E exposes\uFF1B\u82E5\u8981\u6D88\u8D39\u8FDC\u7A0B\u5E94\u7528\uFF0C\u8BF7\u914D\u7F6E remotes\u3002"
|
|
481
481
|
);
|
|
482
482
|
}
|
|
483
483
|
if (Object.keys(options.exposes ?? {}).length === 0 && Object.keys(options.remotes ?? {}).length > 0) {
|
|
484
484
|
warnings.push(
|
|
485
|
-
|
|
485
|
+
`\u5E94\u7528 "${options.name}" \u914D\u7F6E\u4E86 remotes\uFF0C\u4F46\u6CA1\u6709 exposes\uFF0C\u56E0\u6B64\u662F\u7EAF\u5BBF\u4E3B\uFF1B\u5176\u4ED6\u5E94\u7528\u65E0\u6CD5\u4ECE\u5B83\u52A0\u8F7D\u6A21\u5757\u3002\u82E5\u5E0C\u671B\u5BF9\u5916\u63D0\u4F9B\u6A21\u5757\uFF0C\u8BF7\u6DFB\u52A0 exposes\u3002`
|
|
486
486
|
);
|
|
487
487
|
}
|
|
488
488
|
return {
|
|
@@ -1345,7 +1345,7 @@ export { ${nsAs[1]} };`);
|
|
|
1345
1345
|
const inner = clauseRaw.slice(clauseRaw.indexOf("{") + 1, clauseRaw.lastIndexOf("}"));
|
|
1346
1346
|
if (/export\s+\*/.test(clauseRaw) && !clauseRaw.includes("{")) {
|
|
1347
1347
|
throw new Error(
|
|
1348
|
-
`[fulgurjs] "export * from '${spec2}'"
|
|
1348
|
+
`[fulgurjs] \u5171\u4EAB\u6A21\u5757\u4E0D\u652F\u6301 "export * from '${spec2}'"\uFF1AESM \u65E0\u6CD5\u4E3A\u52A8\u6001\u534F\u5546\u7684\u6A21\u5757\u521B\u5EFA\u901A\u914D\u7B26\u5BFC\u51FA\u7ED1\u5B9A\u3002\u8BF7\u6539\u4E3A\u660E\u786E\u5217\u51FA\u540D\u79F0\uFF1A"export { a, b } from '${spec2}'"\u3002`
|
|
1349
1349
|
);
|
|
1350
1350
|
}
|
|
1351
1351
|
const bindings = parseBindings(inner).map((b) => b.imported === "default" ? "default" : b.imported);
|
|
@@ -1412,13 +1412,13 @@ async function fetchManifest(devEntry, attempts = 30, delayMs = 2e3) {
|
|
|
1412
1412
|
const parsed = parseManifest(await res.json());
|
|
1413
1413
|
if (parsed.unsupportedVersion) {
|
|
1414
1414
|
console.warn(
|
|
1415
|
-
`[fulgurjs]
|
|
1415
|
+
`[fulgurjs] \u7C7B\u578B\u751F\u6210\uFF1A\u8FDC\u7A0B manifest \u7684\u534F\u8BAE\u7248\u672C\u4E3A ${parsed.unsupportedVersion}\uFF0C\u5F53\u524D\u4EC5\u652F\u6301\u7248\u672C 1\uFF1B\u5DF2\u8DF3\u8FC7\u7C7B\u578B\u6620\u5C04\u3002\u8BF7\u5BF9\u9F50\u5BBF\u4E3B\u4E0E\u8FDC\u7A0B\u7684 @fulgurjs/federation \u7248\u672C\u3002`
|
|
1416
1416
|
);
|
|
1417
1417
|
return null;
|
|
1418
1418
|
}
|
|
1419
1419
|
if (parsed.issues.length > 0) {
|
|
1420
1420
|
console.warn(
|
|
1421
|
-
`[fulgurjs]
|
|
1421
|
+
`[fulgurjs] \u7C7B\u578B\u751F\u6210\uFF1A\u8FDC\u7A0B manifest \u5951\u7EA6\u6821\u9A8C\u5931\u8D25\uFF08${manifestUrl.href}\uFF09\uFF1A` + parsed.issues.map((x) => `${x.field}: ${x.message}`).join("\uFF1B") + `\u3002\u7C7B\u578B\u6620\u5C04\u8DF3\u8FC7\u3002`
|
|
1422
1422
|
);
|
|
1423
1423
|
return null;
|
|
1424
1424
|
}
|
|
@@ -1510,13 +1510,13 @@ async function generateDevTypes(options, _server) {
|
|
|
1510
1510
|
if (!remote.devEntry || remote.promise) continue;
|
|
1511
1511
|
const manifest = await fetchManifest(remote.devEntry);
|
|
1512
1512
|
if (!manifest || !manifest.exposes) {
|
|
1513
|
-
console.warn(`[fulgurjs]
|
|
1513
|
+
console.warn(`[fulgurjs] \u7C7B\u578B\u751F\u6210\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${remote.key}" \u7684\u5F00\u53D1 manifest \u4E0D\u53EF\u7528\uFF0C\u5DF2\u8DF3\u8FC7\u7C7B\u578B\u6620\u5C04\u3002\u8BF7\u68C0\u67E5\u8FDC\u7A0B\u5F00\u53D1\u670D\u52A1\u548C manifest \u5730\u5740\u3002`);
|
|
1514
1514
|
continue;
|
|
1515
1515
|
}
|
|
1516
1516
|
const remoteRoot = manifest.fsRoot;
|
|
1517
1517
|
if (!remoteRoot) {
|
|
1518
1518
|
console.warn(
|
|
1519
|
-
`[fulgurjs]
|
|
1519
|
+
`[fulgurjs] \u7C7B\u578B\u751F\u6210\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${remote.key}" \u7684 manifest \u672A\u643A\u5E26 fsRoot\uFF08\u53EF\u80FD\u5173\u95ED\u4E86 devFsRoot\uFF0C\u6216\u8FDC\u7A0B\u63D2\u4EF6\u7248\u672C\u8FC7\u65E7\uFF09\uFF1B\u7C7B\u578B\u6620\u5C04\u5C06\u964D\u7EA7\u4E3A any\u3002\u540C\u673A\u8054\u8C03\u8BF7\u5728\u8FDC\u7A0B\u542F\u7528 devFsRoot: true\uFF08\u9ED8\u8BA4\u503C\uFF09\u5E76\u91CD\u542F\u5F00\u53D1\u670D\u52A1\u3002`
|
|
1520
1520
|
);
|
|
1521
1521
|
continue;
|
|
1522
1522
|
}
|
|
@@ -1525,7 +1525,7 @@ async function generateDevTypes(options, _server) {
|
|
|
1525
1525
|
realRoot = import_node_fs2.default.realpathSync(remoteRoot);
|
|
1526
1526
|
} catch {
|
|
1527
1527
|
console.warn(
|
|
1528
|
-
`[fulgurjs]
|
|
1528
|
+
`[fulgurjs] \u7C7B\u578B\u751F\u6210\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${remote.key}" \u7684 fsRoot \u5728\u672C\u673A\u4E0D\u53EF\u8BBF\u95EE\uFF0C\u5DF2\u8DF3\u8FC7\u7C7B\u578B\u6620\u5C04\uFF0C\u6A21\u5757\u7C7B\u578B\u5C06\u964D\u7EA7\u4E3A any\u3002\u8BF7\u68C0\u67E5\u9879\u76EE\u4F4D\u7F6E\u6216\u5173\u95ED\u672C\u673A\u7C7B\u578B\u76F4\u8FDE\u3002`
|
|
1529
1529
|
);
|
|
1530
1530
|
continue;
|
|
1531
1531
|
}
|
|
@@ -1536,18 +1536,18 @@ async function generateDevTypes(options, _server) {
|
|
|
1536
1536
|
let accepted = 0;
|
|
1537
1537
|
for (const expose of manifest.exposes ?? []) {
|
|
1538
1538
|
if (manifest.setup && expose.name === manifest.setup) continue;
|
|
1539
|
-
const skipped = (reason) => console.warn(`[fulgurjs]
|
|
1539
|
+
const skipped = (reason) => console.warn(`[fulgurjs] \u7C7B\u578B\u751F\u6210\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${remote.key}" \u7684\u66B4\u9732\u6A21\u5757 ${JSON.stringify(expose.name)} \u5DF2\u8DF3\u8FC7\u3002\u539F\u56E0\uFF1A${reason}\u3002\u8BF7\u68C0\u67E5\u8BE5\u6A21\u5757\u5728\u8FDC\u7A0B manifest \u4E2D\u7684\u6E90\u6587\u4EF6\u8DEF\u5F84\u3002`);
|
|
1540
1540
|
const src = expose.src;
|
|
1541
1541
|
if (!src || typeof src !== "string") {
|
|
1542
1542
|
skipped("src \u7F3A\u5931");
|
|
1543
1543
|
continue;
|
|
1544
1544
|
}
|
|
1545
1545
|
if (src.startsWith("/") || /^[a-z]+:/i.test(src)) {
|
|
1546
|
-
skipped(`src \u5FC5\u987B\u662F\u76F8\u5BF9\u8DEF\u5F84\
|
|
1546
|
+
skipped(`src \u5FC5\u987B\u662F\u76F8\u5BF9\u8DEF\u5F84\uFF0C\u5F53\u524D\u503C\u4E3A ${JSON.stringify(src)}`);
|
|
1547
1547
|
continue;
|
|
1548
1548
|
}
|
|
1549
1549
|
if (src.split("/").includes("..")) {
|
|
1550
|
-
skipped(`src \u4E0D\u5F97\u5305\u542B ..\
|
|
1550
|
+
skipped(`src \u4E0D\u5F97\u5305\u542B ..\uFF0C\u5F53\u524D\u503C\u4E3A ${JSON.stringify(src)}`);
|
|
1551
1551
|
continue;
|
|
1552
1552
|
}
|
|
1553
1553
|
const abs = import_node_path3.default.join(realRoot, src);
|
|
@@ -1599,7 +1599,7 @@ async function generateDevTypes(options, _server) {
|
|
|
1599
1599
|
`);
|
|
1600
1600
|
}
|
|
1601
1601
|
console.log(
|
|
1602
|
-
`[fulgurjs]
|
|
1602
|
+
`[fulgurjs] \u7C7B\u578B\u751F\u6210\uFF1A\u5DF2\u751F\u6210 ${dir}/${remote.key}.d.ts\uFF08\u5DF2\u6536\u5F55 ${accepted}/${manifest.exposes?.length ?? 0} \u4E2A\u66B4\u9732\u6A21\u5757\uFF0C\u6A21\u5F0F ${mode}\uFF09\u3002\u8BF7\u786E\u4FDD tsconfig \u7684 include \u5305\u542B "${dir}"\uFF0C\u4EE5\u83B7\u5F97\u7C7B\u578B\u8865\u5168\u3002`
|
|
1603
1603
|
);
|
|
1604
1604
|
}
|
|
1605
1605
|
}
|
|
@@ -1687,7 +1687,7 @@ async function probeRemotesAndBuildSchema(options) {
|
|
|
1687
1687
|
console.warn(
|
|
1688
1688
|
formatFulgurjsDiagnostic({
|
|
1689
1689
|
code: "DEV-002",
|
|
1690
|
-
symptom:
|
|
1690
|
+
symptom: `\u8FDC\u7A0B\u5E94\u7528 "${remote.key}" \u7684 manifest \u534F\u8BAE\u7248\u672C\u4E3A ${parsed.unsupportedVersion}\uFF0C\u5F53\u524D\u4EC5\u652F\u6301\u7248\u672C 1`,
|
|
1691
1691
|
cause: "\u5BBF\u4E3B\u4E0E\u8FDC\u7A0B\u7684 @fulgurjs/federation \u5927\u7248\u672C\u4E0D\u4E00\u81F4",
|
|
1692
1692
|
fix: "\u5BF9\u9F50\u5BBF\u4E3B\u4E0E\u8FDC\u7A0B\u7684 @fulgurjs/federation \u7248\u672C\u540E\u91CD\u542F dev server",
|
|
1693
1693
|
details: { remote: remote.key, url: u.href }
|
|
@@ -1700,7 +1700,7 @@ async function probeRemotesAndBuildSchema(options) {
|
|
|
1700
1700
|
console.warn(
|
|
1701
1701
|
formatFulgurjsDiagnostic({
|
|
1702
1702
|
code: "DEV-002",
|
|
1703
|
-
symptom:
|
|
1703
|
+
symptom: `\u8FDC\u7A0B\u5E94\u7528 "${remote.key}" \u7684\u5F00\u53D1 manifest \u5951\u7EA6\u6821\u9A8C\u5931\u8D25\uFF08${u.href}\uFF09`,
|
|
1704
1704
|
cause: parsed.issues.map((x) => `${x.field}: ${x.message}`).join("\uFF1B"),
|
|
1705
1705
|
fix: "\u6838\u5BF9 remote \u7684 federation \u914D\u7F6E exposes\uFF0C\u5E76\u786E\u8BA4 @fulgurjs/federation \u7248\u672C\u4E0E\u5BBF\u4E3B\u4E00\u81F4",
|
|
1706
1706
|
details: { remote: remote.key, url: u.href, issues: parsed.issues.slice(0, 5) }
|
|
@@ -1715,7 +1715,7 @@ async function probeRemotesAndBuildSchema(options) {
|
|
|
1715
1715
|
console.warn(
|
|
1716
1716
|
formatFulgurjsDiagnostic({
|
|
1717
1717
|
code: "DEV-002",
|
|
1718
|
-
symptom:
|
|
1718
|
+
symptom: `\u8FDC\u7A0B\u5E94\u7528 "${remote.key}" \u7684\u5F00\u53D1 manifest \u53EF\u8FBE\uFF0C\u4F46 exposes \u4E3A\u7A7A\uFF08${u.href}\uFF09`,
|
|
1719
1719
|
cause: "remote \u4FA7 federation({ exposes }) \u4E3A\u7A7A\uFF0C\u6216\u5176\u63D2\u4EF6\u7248\u672C\u8FC7\u65E7\u5BFC\u81F4 manifest \u7F3A\u5B57\u6BB5",
|
|
1720
1720
|
fix: "\u6838\u5BF9 remote \u7684 federation \u914D\u7F6E exposes\uFF0C\u5E76\u786E\u8BA4 @fulgurjs/federation \u7248\u672C\u4E0E\u5BBF\u4E3B\u4E00\u81F4",
|
|
1721
1721
|
details: { remote: remote.key, url: u.href, pluginVersion: manifest.version }
|
|
@@ -1727,8 +1727,8 @@ async function probeRemotesAndBuildSchema(options) {
|
|
|
1727
1727
|
console.warn(
|
|
1728
1728
|
formatFulgurjsDiagnostic({
|
|
1729
1729
|
code: "DEV-006",
|
|
1730
|
-
symptom: `\u5BBF\u4E3B\u4E0E
|
|
1731
|
-
cause: `\u5BBF\u4E3B ${options.pluginVersion}
|
|
1730
|
+
symptom: `\u5BBF\u4E3B\u4E0E\u8FDC\u7A0B\u5E94\u7528 "${remote.key}" \u7684 @fulgurjs/federation \u7248\u672C\u4E0D\u4E00\u81F4`,
|
|
1731
|
+
cause: `\u5BBF\u4E3B\u4E3A ${options.pluginVersion}\uFF0C\u8FDC\u7A0B\u4E3A ${remoteVersion}\uFF08\u5E38\u89C1\u4E8E pnpm \u5B89\u88C5\u6E90\u65AD\u94FE\u6216\u6F0F\u5347\u7EA7\uFF09`,
|
|
1732
1732
|
fix: "\u7EDF\u4E00\u5347\u7EA7\u5404\u5E94\u7528\u4F9D\u8D56\u5230\u540C\u4E00\u7248\u672C\uFF1Apnpm add -D @fulgurjs/federation@<version> \u5E76\u91CD\u542F dev server",
|
|
1733
1733
|
details: { host: options.pluginVersion, remote: remoteVersion }
|
|
1734
1734
|
})
|
|
@@ -1741,7 +1741,7 @@ async function probeRemotesAndBuildSchema(options) {
|
|
|
1741
1741
|
console.warn(
|
|
1742
1742
|
formatFulgurjsDiagnostic({
|
|
1743
1743
|
code: "DEV-001",
|
|
1744
|
-
symptom:
|
|
1744
|
+
symptom: `\u8FDC\u7A0B\u5E94\u7528 "${remote.key}" \u7684\u5F00\u53D1 manifest \u4E0D\u53EF\u8FBE\uFF08${u.href}\uFF09\u2014\u2014\u5C06\u8DF3\u8FC7\u8BE5\u8FDC\u7A0B\u7684\u8DEF\u7531\u5B58\u5728\u6027\u6821\u9A8C`,
|
|
1745
1745
|
cause: portOpen ? "\u7AEF\u53E3\u6709\u8FDB\u7A0B\u76D1\u542C\u4F46 manifest \u7AEF\u70B9\u5F02\u5E38\uFF1Aremote dev server \u53EF\u80FD\u4EE5\u975E\u8054\u90A6\u914D\u7F6E\u542F\u52A8\uFF0C\u6216 base/\u8DEF\u5F84\u4E0E remotes[].dev \u4E0D\u4E00\u81F4" : "\u7AEF\u53E3\u65E0\u8FDB\u7A0B\u76D1\u542C\uFF1Aremote dev server \u672A\u542F\u52A8\uFF0C\u6216 remotes[].dev \u7AEF\u53E3\u5199\u9519\uFF08server.origin \u9519\u4F4D\u540C\u6B3E\uFF09",
|
|
1746
1746
|
fix: "\u542F\u52A8\u5BF9\u5E94 remote \u7684 dev server\uFF1B\u6838\u5BF9\u5BBF\u4E3B federation({ remotes }) \u7684 dev URL \u4E0E remote \u5B9E\u9645 VITE_PORT/base",
|
|
1747
1747
|
details: { remote: remote.key, url: u.href, port, portOpen, error: String(err?.message ?? err) }
|
|
@@ -1784,7 +1784,7 @@ function syncViteCacheMarker(root, pluginVersion, log) {
|
|
|
1784
1784
|
}
|
|
1785
1785
|
|
|
1786
1786
|
// src/runtime-code.gen.ts
|
|
1787
|
-
var runtime_code_gen_default = 'var pe=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function L(s){let c=pe.exec(String(s).trim());return c?{major:Number(c[1]),minor:Number(c[2]??0),patch:Number(c[3]??0),pre:c[4]?c[4].split("."):[]}:null}function de(s,c){if(s.length===0&&c.length===0)return 0;if(s.length===0)return 1;if(c.length===0)return-1;let l=Math.max(s.length,c.length);for(let n=0;n<l;n++){let g=s[n],y=c[n];if(g===void 0)return-1;if(y===void 0)return 1;let w=/^\\d+$/.test(g),b=/^\\d+$/.test(y);if(w&&b){let T=Number(g)-Number(y);if(T!==0)return T}else{if(w!==b)return w?-1:1;if(g!==y)return g<y?-1:1}}return 0}function x(s,c){let l=L(s),n=L(c);return!l||!n?s<c?-1:s>c?1:0:l.major!==n.major?l.major-n.major:l.minor!==n.minor?l.minor-n.minor:l.patch!==n.patch?l.patch-n.patch:de(l.pre,n.pre)}var ge=/^[a-z]+[+:-]/i;function k(s,c){if(c===!1||c==null||c==="")return!0;let l=String(c).trim();return!l||l==="*"||l==="latest"||ge.test(l)?!0:l.split("||").some(n=>he(s,n.trim()))}function he(s,c){if(!c||c==="*")return!L(s)?.pre.length;let l=c.split(/\\s+-\\s+/);if(l.length===2){let y=l[0].trim(),w=l[1].trim();return!(!k(s,`>=${y}`)||!k(s,`<=${w}`))}let n=L(s);if(!n)return!1;let g=ye(c);if(g===null)return!0;for(let y of g)if(!be(n,s,y))return!1;return!(n.pre.length>0&&!g.some(y=>y.ver.pre.length>0)&&!g.some(w=>w.ver.major===n.major&&w.ver.minor===n.minor&&w.ver.patch===n.patch))}function ye(s){let c=[],l=s.trim().split(/\\s+/).filter(Boolean);if(l.length===0)return null;for(let n of l){let g=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(n);if(!g)return null;let y=g[1],w=g[2],b=Se(y,w);if(b===null)return null;c.push(...b)}return c}function Se(s,c){let l=Ee(c);if(!l)return null;let{ver:n,partial:g}=l;switch(s){case"^":{let y=Re(n);return y?[{op:">=",ver:n},{op:"<",ver:y}]:null}case"~":{let y=g>=2?{major:n.major,minor:n.minor+1,patch:0,pre:[]}:{major:n.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:n},{op:"<",ver:y}]}case">=":return[{op:">=",ver:n}];case">":return g===1?[{op:">=",ver:{major:n.major+1,minor:0,patch:0,pre:[]}}]:g===2?[{op:">=",ver:{major:n.major,minor:n.minor+1,patch:0,pre:[]}}]:[{op:">",ver:n}];case"<":return g===1?[{op:"<",ver:{major:n.major,minor:0,patch:0,pre:[]}}]:g===2?[{op:"<",ver:{major:n.major,minor:n.minor,patch:0,pre:[]}}]:[{op:"<",ver:n}];case"<=":return[{op:"<=",ver:n}];case"=":case void 0:return g===1?[{op:">=",ver:n},{op:"<",ver:{major:n.major+1,minor:0,patch:0,pre:[]}}]:g===2?[{op:">=",ver:n},{op:"<",ver:{major:n.major,minor:n.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:n}];default:return null}}function Re(s){return s.major>0?{major:s.major+1,minor:0,patch:0,pre:[]}:s.minor>0?{major:0,minor:s.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:s.patch+1,pre:[]}}function Ee(s){let c=s.replace(/^v/,"").trim();if(!c||c==="*"||c==="x"||c==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let l=c.split("."),n=[],g=0;for(let b of l.slice(0,3))if(/^\\d+$/.test(b))n.push(Number(b)),g++;else{if(b==="x"||b==="X"||b==="*")break;break}let y=c.split("-"),w=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return g===0&&w.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:n[0]??0,minor:n[1]??0,patch:n[2]??0,pre:w},partial:g}}function we(s,c){switch(c){case">=":return s>=0;case">":return s>0;case"<":return s<0;case"<=":return s<=0;case"=":return s===0}}function be(s,c,l){let n=`${s.major}.${s.minor}.${s.patch}`+(s.pre.length?`-${s.pre.join(".")}`:"");if(l.upper)return!(!(x(n,`${l.ver.major}.${l.ver.minor}.${l.ver.patch}`+(l.ver.pre.length?`-${l.ver.pre.join(".")}`:""))>=0)||!(x(n,`${l.upper.major}.${l.upper.minor}.${l.upper.patch}`)<0));let g=x(n,`${l.ver.major}.${l.ver.minor}.${l.ver.patch}`+(l.ver.pre.length?`-${l.ver.pre.join(".")}`:"")),y=we(g,l.op);return l.ver.pre.length>0&&s.pre.length===0&&(l.op===">"||l.op==="<")?!1:y}var S=class extends Error{code;details;constructor(c,l,n){super(`[fulgurjs:${c}] ${l}`),this.name="FgError",this.code=c,this.details=n}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014"};var J="4.3.0";var Pe="__fulgurjsSetup",_e="__FULGURJS_APP_CONFIG__",D=15e3,B=2,ve=5,Me=3e4,$e=4e3,xe=.2;function Ie(){let s=Object.create(null),c=new Map,l=[],n=new Map,g=new Map,y=new WeakMap,w=new WeakMap,b={},T=()=>{for(let e of l)try{e.init?.(b)}catch(r){console.warn("[fulgurjs] runtimePlugin init failed:",e.name,r)}},U=new Map,j,Y=e=>{let r=U.get(e);return r||U.set(e,r={}),r},V=()=>globalThis[_e]??{};async function K(e,r,t,o){let a=u=>u instanceof S?u:new S(R.SETUP_RUN_FAILED,`${o} of "${e}" threw: ${String(u?.message??u)}\n \\u4FEE\\u6CD5: \\u4FEE\\u590D\\u8BE5 ${o} \\u7684\\u521D\\u59CB\\u5316\\u903B\\u8F91\\u540E\\u91CD\\u65B0\\u52A0\\u8F7D\\uFF08\\u5931\\u8D25\\u7684\\u521D\\u59CB\\u5316\\u7F13\\u5B58\\u5DF2\\u6E05\\u9664\\uFF0C\\u53EF\\u76F4\\u63A5\\u91CD\\u8BD5\\uFF09`,{remote:e,phase:o});j=e;let i;try{i=r(t)}catch(u){throw a(u)}finally{j=void 0}try{await i}catch(u){throw a(u)}}async function Z(e,r,t,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await F(`${e.name}/${t}`)}catch{}let a=await r.get(t),i=a?.default;if(typeof i!="function")throw new S(R.SETUP_INVALID_EXPORT,`setup module "${t}" of "${e.name}": default export is ${a==null?String(a):typeof i}, expected a function\n expected: export default async function setup(context: RemoteSetupContext) { ... }\n \\u4FEE\\u6CD5: \\u5728 federation({ setup }) \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u8865\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u51FD\\u6570\\uFF08\\u5177\\u540D onSession \\u53EF\\u9009\\uFF1B\\u5176\\u4ED6\\u5BFC\\u51FA\\u4E0D\\u4F5C\\u4E3A\\u751F\\u547D\\u5468\\u671F\\u5165\\u53E3\\uFF09`,{remote:e.name,module:t});if(a.onSession!==void 0&&typeof a.onSession!="function")throw new S(R.SETUP_INVALID_EXPORT,`setup module "${t}" of "${e.name}": export "onSession" is ${typeof a.onSession}, expected a function\n \\u4FEE\\u6CD5: \\u5C06 onSession \\u4FEE\\u6B63\\u4E3A\\u51FD\\u6570\\u5BFC\\u51FA\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5177\\u540D\\u5BFC\\u51FA\\uFF08\\u5176\\u4ED6\\u5BFC\\u51FA\\u540D\\u4E0D\\u4F5C\\u4E3A\\u751F\\u547D\\u5468\\u671F\\u5165\\u53E3\\uFF09`,{remote:e.name,module:t});o.setupExports=a,await K(e.name,i,{appContext:V(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(a){throw e.debug.setup="failed",o.setupExports=void 0,a}}async function Q(e,r,t){let o=V(),a=o?.sessionKey;if(typeof a!="string"||a==="")throw new S(R.SETUP_SESSION_KEY_MISSING,`remote "${e.name}" declares onSession but AppContext.sessionKey is ${a===void 0?"missing":JSON.stringify(a)}\n expected: \\u5BBF\\u4E3B\\u767B\\u5F55\\u540E provideAppContext({ ..., sessionKey: \'<\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID>\' })\n \\u4FEE\\u6CD5: \\u5BBF\\u4E3B\\u767B\\u5F55\\u6D41\\u7A0B\\u6BCF\\u6B21\\u6210\\u529F\\u767B\\u5F55/\\u91CD\\u767B\\u751F\\u6210\\u65B0\\u4EE3\\u6B21 ID\\uFF08\\u7981\\u6B62\\u7528 token \\u5145\\u5F53\\uFF09\\uFF0C\\u5E76\\u5728 loadRemote \\u524D\\u63D0\\u4F9B`,{remote:e.name});if(r.sessionPromise&&r.sessionKey===a)return r.sessionPromise;r.controller?.abort();let i=new AbortController;r.controller=i,r.sessionKey=a;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),p=(async()=>{await u,!i.signal.aborted&&await K(e.name,t,{appContext:o,sessionKey:a,signal:i.signal},"onSession")})();return r.sessionPromise=p,p.catch(()=>{r.sessionKey===a&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),p}async function ee(e,r){let t=r?.[Pe];if(typeof t!="string"||t==="")return;let o=Y(e.name);o.setupPromise||(o.setupPromise=Z(e,r,t,o).catch(i=>{throw o.setupPromise=void 0,i})),await o.setupPromise;let a=o.setupExports?.onSession;typeof a=="function"&&await Q(e,o,a)}function re(){for(let e of U.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let A=e=>s[e]??=Object.create(null);function _(e){try{b.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function te(e="default"){return A(e),s}function ne(e,r,t,o,a={}){let i=A(e||"default"),u=Object.hasOwn(i,r)?i[r]:void 0,p=u&&typeof u=="object"?u:void 0;p||(p=Object.create(null),i[r]=p),!(Object.hasOwn(p,t)&&p[t])&&(p[t]={version:t,get:o,from:a.from??"unknown",eager:!!a.eager,loaded:!!a.loaded})}function oe(e){let r=(t,o,a)=>{if(t===void 0)return;if(!(typeof t=="number"&&(a?Number.isInteger(t)&&t>=0&&t<=10:Number.isFinite(t)&&t>0)))throw new Error(`[fulgurjs] registerRemote("${e.name}"): ${o} must be a ${a?"integer 0..10":"finite positive number"}, got ${String(t)}`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function H(e){for(let r of e){oe(r);let t=c.get(r.name);c.set(r.name,{timeout:D,retries:B,...t,...r,breakerThreshold:r.breaker?.threshold??t?.breakerThreshold??ve,breakerResetMs:r.breaker?.resetMs??t?.breakerResetMs??Me,state:t?.state??"idle",breakerState:t?.breakerState??{fails:0,openUntil:0},entryInflight:t?.entryInflight??new Map,debug:t?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function ie(e){H([e])}function se(e){l.push(...e),T()}async function ae(e,r={}){let t=r.shareScope||"default",o=r.shareKey||e,i=A(t)[o]||{},u=Object.keys(i),p=r.requiredVersion,h=u.filter(f=>p===void 0||p===!1||k(f,p)),d;if(r.singleton&&u.length>0){let f=u.filter(m=>i[m].loaded);if(d=[...f.length?f:u].sort(x).pop(),u.length>1||!h.includes(d)){let m=i[d],$=`singleton skew "${o}": req "${p??"any"}" use ${d} from ${m.from}`;if(r.strictVersion){let v=new S(R.SHARE_STRICT_VERSION,$,{shareKey:o,requiredVersion:p});throw _({remote:m.from,error:v}),v}console.warn(`[fulgurjs:MFU-010] ${$}`)}}else if(d=[...h].sort(x).pop(),!d){if(r.strictVersion){let m=new S(R.SHARE_STRICT_VERSION,`no satisfying version for "${o}" (required "${p}") in share scope "${t}"`);throw _({remote:o,error:m}),m}if(r.fallback)return r.fallback();let f=new S(R.SHARE_NOT_AVAILABLE,`shared "${o}" (${p??"any"}) unavailable in scope "${t}" (no local fallback)`,{shareKey:o,requiredVersion:p});throw _({remote:o,error:f}),f}let E=i[d];if(b.resolveShare){let f=await b.resolveShare({shareKey:o,shareScope:t,requiredVersion:p,picked:E,available:Object.values(i)});f&&(E=f)}return E.loaded=!0,E.get()}function ce(e){try{let r=new URL(e,typeof location<"u"?location.href:"http://f.invalid");return r.protocol+"//"+r.host+r.pathname}catch{return String(e).replace(/[?#].*$/,"")}}function q(e,r,t){return new Promise((o,a)=>{let i=setTimeout(()=>a(new Error(`timeout after ${r}ms: ${t}`)),r);e.then(u=>{clearTimeout(i),o(u)},u=>{clearTimeout(i),a(u)})})}let le=e=>new Promise(r=>setTimeout(r,e));function N(e,r){if(!e||typeof e.get!="function")throw new Error(`remoteEntry of "${r.name}" does not export a container interface (get/init)`);if(e.name&&r.name&&e.name!==r.name){let t=`remoteEntry self-reported name "${e.name}" mismatches configured name "${r.name}"`;if(r.promise)console.warn(`[fulgurjs] ${t} (promise-based remote, continuing)`);else throw Object.assign(new Error(t),{code:R.REMOTE_NAME_MISMATCH})}}async function G(e,r){let t=r.entryInflight.get(e),o=t??import(e);return t||(r.entryInflight.set(e,o),o.catch(()=>r.entryInflight.delete(e))),q(o,r.timeout??D,`load remoteEntry ${e}`)}async function X(e,r){let t=e.shareScope||"default";if(e.container){let i=w.get(e.container);if(i&&i!==t)throw new S(R.CONTAINER_REINIT_CONFLICT,`container "${e.name}" already initialized with share scope "${i}", cannot re-init with "${t}"`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let i=new S(R.REMOTE_LOAD_FAILED,`circuit breaker open for remote "${e.name}" until ${new Date(o.openUntil).toISOString()}`,{remote:e.name});throw _({remote:e.name,error:i}),i}e.state="loading",e.debug.status="loading";let a=(async()=>{let i=[];if(e.promise)i.push(async()=>{let f=await q(e.promise(),e.timeout??D,`resolve promise remote "${e.name}"`),m=typeof f=="string"?await G(f,e):f;return N(m,e),m});else for(let f of[e.entry,...e.fallback??[]])i.push(async()=>{let m=await G(f,e);return N(m,e),m});let u,p,h=!1,d=r?.retries??e.retries??B;for(let f of i){for(let m=0;m<=d;m++){let $=performance.now();try{u=await f(),e.lastLoadMs=Math.round(performance.now()-$),e.debug.lastLoadMs=e.lastLoadMs,h=!0;break}catch(v){if(p=v,v?.code)throw v;m<d&&await le(Math.min($e,200*2**m)*(1-xe*(1-2*Math.random())))}}if(h)break}if(!h||!u){let f=ce(e.entry),m=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(m.push(`1. is the remote dev server running? open ${f} in a browser \\u2014 it must return JS, not HTML`),m.push("2. is the URL correct in federation({ remotes })? dev/prod entries can differ"),m.push("3. CORS: the remote dev server must allow cross-origin requests (check its server.cors)")):(m.push(`1. is the remote deployed? open ${f} in a browser \\u2014 it must return JS`),m.push("2. NGINX/CDN routing: the entry path must serve the remoteEntry JS (check try_files)")),new S(R.REMOTE_LOAD_FAILED,`failed to load remote "${e.name}" from ${f}: ${String(p?.message??p)}\n`+m.join(`\n`),{remote:e.name})}N(u,e);let E=w.get(u);if(E&&E!==t)throw new S(R.CONTAINER_REINIT_CONFLICT,`container "${e.name}" already initialized with share scope "${E}", cannot re-init with "${t}"`);return typeof u.init=="function"&&await u.init(s),w.set(u,t),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=a;try{return await a}catch(i){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(i?.message??i),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),i instanceof S)throw _({remote:e.name,error:i}),i;if(i?.code)throw _({remote:e.name,error:i}),i;let u=new S(R.REMOTE_LOAD_FAILED,String(i?.message??i),{remote:e.name});throw _({remote:e.name,error:u}),u}}function C(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:z(e.slice(r+1))}}function z(e){return e?e.startsWith(".")?e:`./${e}`:""}async function ue(e,r){let{remote:t,module:o}=C(e);if(o&&j===t)throw new S(R.SETUP_RECURSION,`loadRemote("${e}") re-entered from setup/onSession of "${t}" \\u2014 the initialization promise would await itself (deadlock)\n \\u4FEE\\u6CD5: setup/onSession \\u5185\\u4E0D loadRemote \\u540C\\u4E00\\u8FDC\\u7A0B\\u7684\\u6A21\\u5757\\uFF1B\\u9700\\u8981\\u7684\\u4E1A\\u52A1\\u6A21\\u5757\\u6539\\u4E3A\\u5728\\u9875\\u9762\\u7EC4\\u4EF6\\u5185\\u52A0\\u8F7D\\uFF0C\\u6216\\u7ECF context \\u901A\\u9053\\u89E3\\u8026`,{remote:t});try{b.beforeLoadRemote?.({remote:t,module:o})}catch(h){console.warn("[fulgurjs] beforeLoadRemote hook error (ignored):",h)}let a=c.get(t);if(!a)throw new S(R.REMOTE_UNKNOWN,`unknown remote "${t}". Register it via federation({ remotes }) or registerRemote().`,{remote:t});let i;try{let h=o&&a.manifestUrl?F(e):Promise.resolve();[i]=await Promise.all([X(a,{retries:r?.retries}),h])}catch(h){if(r?.fallbackModule)return console.error(`[fulgurjs] loadRemote("${e}") failed; returning fallbackModule (\\u663E\\u5F0F\\u964D\\u7EA7\\uFF0C\\u9519\\u8BEF\\u5DF2\\u900F\\u51FA)`,h),_({remote:t,error:h}),await r.fallbackModule();throw h}if(!o)return i;await ee(a,i);let u=`${t}@${a.shareScope||"default"}#${o}`;n.has(u)||n.set(u,i.get(o).catch(h=>{throw n.delete(u),h instanceof S||h?.code?h:new S(R.REMOTE_LOAD_FAILED,`failed to load module "${o}" from remote "${t}": ${String(h?.message??h)}`,{remote:t,module:o})}));let p;try{p=await n.get(u)}catch(h){if(r?.fallbackModule)return console.error(`[fulgurjs] loadRemote("${e}") failed; returning fallbackModule (\\u663E\\u5F0F\\u964D\\u7EA7\\uFF0C\\u9519\\u8BEF\\u5DF2\\u900F\\u51FA)`,h),_({remote:t,error:h}),await r.fallbackModule();throw h}try{b.afterLoadRemote?.({remote:t,module:o,module_ns:p})}catch(h){console.warn("[fulgurjs] afterLoadRemote hook error (ignored):",h)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let h=new S(R.EMPTY_EXPORTS,`no exports: ${o} @ ${t}`,{remote:t,module:o});_({remote:t,error:h}),console.error(`[fulgurjs:MFU-009] ${h.message}`)}return p}function fe(e){let r=c.get(e);if(!r)throw new S(R.REMOTE_UNKNOWN,`unknown remote "${e}"`,{remote:e});return X(r)}async function F(e,r={}){let{remote:t,module:o}=C(e),a=c.get(t);if(!a)throw new S(R.REMOTE_UNKNOWN,`unknown remote "${t}"`,{remote:t});let i=r.mode??"preload",u=(d,E)=>{if(d.sheet)return Promise.resolve();let f=y.get(d);if(f)return f;let m=new Promise($=>{let v=()=>{d.removeEventListener("load",v),d.removeEventListener("error",I),$()},I=()=>{_({remote:t,error:new S(R.PRELOAD_FAILED,`failed to load remote stylesheet ${E}`,{remote:t})}),v()};d.addEventListener("load",v,{once:!0}),d.addEventListener("error",I,{once:!0}),d.sheet&&v()});return y.set(d,m),m},p=(d,E)=>{if(typeof document>"u")return Promise.resolve();let f=document.querySelector(`link[href="${d}"]`);if(f)return E==="style"&&i==="preload"?y.get(f)??Promise.resolve():Promise.resolve();let m=document.createElement("link");m.rel=E==="style"?"stylesheet":"modulepreload",m.href=d,i==="prefetch"&&(m.fetchPriority="low");let $=E==="style"?u(m,d):Promise.resolve();return document.head.appendChild(m),E==="style"&&i==="preload"?$:Promise.resolve()},h=d=>{let E=typeof document<"u"?document.baseURI:void 0,f=new URL(a.entry,E||"http://fulgurjs.invalid/");return!f.pathname.endsWith("/")&&!f.pathname.split("/").pop().includes(".")&&(f.pathname+="/"),new URL(d,f).href};try{if(a.manifestUrl){let d=g.get(a.manifestUrl);d||(d=fetch(a.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(f=>f.ok?f.json():void 0),g.set(a.manifestUrl,d),d.then(f=>{f||g.delete(a.manifestUrl)},()=>g.delete(a.manifestUrl)));let E=await d;if(E){let f=E.schemaVersion;if(typeof f=="number"&&(!Number.isInteger(f)||f>1)){_({remote:t,error:new S(R.PRELOAD_FAILED,`unsupported manifest schemaVersion ${String(f)} (expected 1)`,{remote:t})}),await p(a.entry,"modulepreload");return}await p(a.entry,"modulepreload");let m=E.exposes,$=Array.isArray(m)?m.filter(M=>M&&typeof M=="object").map(M=>[String(M.name??""),M]):m&&typeof m=="object"?Object.entries(m):[],v=o?$.filter(([M,O])=>z(String(O?.name??M))===o):$,I=[];for(let[,M]of v)if(typeof M?.file=="string"&&await p(h(M.file),"modulepreload"),Array.isArray(M?.css))for(let O of M.css){if(typeof O!="string")continue;let me=p(h(O),"style");i==="preload"&&I.push(me)}await Promise.all(I);return}}await p(a.entry,"modulepreload")}catch(d){_({remote:t,error:new S(R.PRELOAD_FAILED,String(d?.message??d),{remote:t})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=s,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,t]of c)e[r]={...t.debug,entry:t.entry};return e},errors:[]}),{shareScopeMap:s,initSharing:te,registerShare:ne,registerRemotes:H,registerRemote:ie,registerPlugins:se,loadShare:ae,loadRemote:ue,getContainer:fe,preloadRemote:F,parseSpec:C,clearSessionState:re}}var W=globalThis,P=W.__FULGURJS_RUNTIME__??Ie();W.__FULGURJS_RUNTIME__=P;try{Object.freeze(P)}catch{}var Ne=J;function Ce(){return P}var Fe=P.initSharing,De=P.registerShare,Ve=P.registerRemotes,Ke=P.registerRemote,He=P.registerPlugins,qe=P.loadShare,Ge=P.loadRemote,Xe=P.getContainer,ze=P.preloadRemote,Je=P.parseSpec,Be=P.clearSessionState,We=P.shareScopeMap;function Ye(s){if(s&&typeof s=="object"&&"default"in s){let c=s.default;return c!==void 0?c:s}return s}var Ze=P;export{Be as clearSessionState,Ze as default,Xe as getContainer,Ce as getRuntime,Fe as initSharing,Ge as loadRemote,qe as loadShare,Je as parseSpec,ze as preloadRemote,He as registerPlugins,Ke as registerRemote,Ve as registerRemotes,De as registerShare,P as runtime,We as shareScopeMap,Ye as unwrapDefault,Ne as version};\n';
|
|
1787
|
+
var runtime_code_gen_default = 'var de=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function L(i){let c=de.exec(String(i).trim());return c?{major:Number(c[1]),minor:Number(c[2]??0),patch:Number(c[3]??0),pre:c[4]?c[4].split("."):[]}:null}function ge(i,c){if(i.length===0&&c.length===0)return 0;if(i.length===0)return 1;if(c.length===0)return-1;let l=Math.max(i.length,c.length);for(let o=0;o<l;o++){let g=i[o],y=c[o];if(g===void 0)return-1;if(y===void 0)return 1;let w=/^\\d+$/.test(g),b=/^\\d+$/.test(y);if(w&&b){let I=Number(g)-Number(y);if(I!==0)return I}else{if(w!==b)return w?-1:1;if(g!==y)return g<y?-1:1}}return 0}function O(i,c){let l=L(i),o=L(c);return!l||!o?i<c?-1:i>c?1:0:l.major!==o.major?l.major-o.major:l.minor!==o.minor?l.minor-o.minor:l.patch!==o.patch?l.patch-o.patch:ge(l.pre,o.pre)}var he=/^[a-z]+[+:-]/i;function j(i,c){if(c===!1||c==null||c==="")return!0;let l=String(c).trim();return!l||l==="*"||l==="latest"||he.test(l)?!0:l.split("||").some(o=>ye(i,o.trim()))}function ye(i,c){if(!c||c==="*")return!L(i)?.pre.length;let l=c.split(/\\s+-\\s+/);if(l.length===2){let y=l[0].trim(),w=l[1].trim();return!(!j(i,`>=${y}`)||!j(i,`<=${w}`))}let o=L(i);if(!o)return!1;let g=Se(c);if(g===null)return!0;for(let y of g)if(!Pe(o,i,y))return!1;return!(o.pre.length>0&&!g.some(y=>y.ver.pre.length>0)&&!g.some(w=>w.ver.major===o.major&&w.ver.minor===o.minor&&w.ver.patch===o.patch))}function Se(i){let c=[],l=i.trim().split(/\\s+/).filter(Boolean);if(l.length===0)return null;for(let o of l){let g=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(o);if(!g)return null;let y=g[1],w=g[2],b=Ee(y,w);if(b===null)return null;c.push(...b)}return c}function Ee(i,c){let l=we(c);if(!l)return null;let{ver:o,partial:g}=l;switch(i){case"^":{let y=Re(o);return y?[{op:">=",ver:o},{op:"<",ver:y}]:null}case"~":{let y=g>=2?{major:o.major,minor:o.minor+1,patch:0,pre:[]}:{major:o.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:o},{op:"<",ver:y}]}case">=":return[{op:">=",ver:o}];case">":return g===1?[{op:">=",ver:{major:o.major+1,minor:0,patch:0,pre:[]}}]:g===2?[{op:">=",ver:{major:o.major,minor:o.minor+1,patch:0,pre:[]}}]:[{op:">",ver:o}];case"<":return g===1?[{op:"<",ver:{major:o.major,minor:0,patch:0,pre:[]}}]:g===2?[{op:"<",ver:{major:o.major,minor:o.minor,patch:0,pre:[]}}]:[{op:"<",ver:o}];case"<=":return[{op:"<=",ver:o}];case"=":case void 0:return g===1?[{op:">=",ver:o},{op:"<",ver:{major:o.major+1,minor:0,patch:0,pre:[]}}]:g===2?[{op:">=",ver:o},{op:"<",ver:{major:o.major,minor:o.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:o}];default:return null}}function Re(i){return i.major>0?{major:i.major+1,minor:0,patch:0,pre:[]}:i.minor>0?{major:0,minor:i.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:i.patch+1,pre:[]}}function we(i){let c=i.replace(/^v/,"").trim();if(!c||c==="*"||c==="x"||c==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let l=c.split("."),o=[],g=0;for(let b of l.slice(0,3))if(/^\\d+$/.test(b))o.push(Number(b)),g++;else{if(b==="x"||b==="X"||b==="*")break;break}let y=c.split("-"),w=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return g===0&&w.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:o[0]??0,minor:o[1]??0,patch:o[2]??0,pre:w},partial:g}}function be(i,c){switch(c){case">=":return i>=0;case">":return i>0;case"<":return i<0;case"<=":return i<=0;case"=":return i===0}}function Pe(i,c,l){let o=`${i.major}.${i.minor}.${i.patch}`+(i.pre.length?`-${i.pre.join(".")}`:"");if(l.upper)return!(!(O(o,`${l.ver.major}.${l.ver.minor}.${l.ver.patch}`+(l.ver.pre.length?`-${l.ver.pre.join(".")}`:""))>=0)||!(O(o,`${l.upper.major}.${l.upper.minor}.${l.upper.patch}`)<0));let g=O(o,`${l.ver.major}.${l.ver.minor}.${l.ver.patch}`+(l.ver.pre.length?`-${l.ver.pre.join(".")}`:"")),y=be(g,l.op);return l.ver.pre.length>0&&i.pre.length===0&&(l.op===">"||l.op==="<")?!1:y}var S=class extends Error{code;details;constructor(c,l,o){super(`[fulgurjs:${c}] ${l}`),this.name="FgError",this.code=c,this.details=o}},E={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014"};var W="4.3.1";var _e="__fulgurjsSetup",$e="__FULGURJS_APP_CONFIG__",D=15e3,z=2,Me=5,ve=3e4,Ie=4e3,Te=.2;function Oe(){let i=Object.create(null),c=new Map,l=[],o=new Set,g=new Map,y=new Map,w=new WeakMap,b=new WeakMap,I={},Z=()=>{for(let e of l)try{e.init?.(I)}catch(r){console.warn("[fulgurjs] \\u8FD0\\u884C\\u65F6\\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BE5\\u6269\\u5C55\\u5C06\\u4E0D\\u53EF\\u7528\\uFF1A",e.name,r)}},k=new Map,A,Q=e=>{let r=k.get(e);return r||k.set(e,r={}),r},V=()=>globalThis[$e]??{};async function K(e,r,t,n){let a=u=>u instanceof S?u:new S(E.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${n} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${String(u?.message??u)}\n\\u4FEE\\u6CD5\\uFF1A\\u68C0\\u67E5\\u5E76\\u4FEE\\u590D\\u8BE5 ${n} \\u51FD\\u6570\\u540E\\u91CD\\u65B0\\u52A0\\u8F7D\\uFF1B\\u5931\\u8D25\\u7F13\\u5B58\\u5DF2\\u6E05\\u9664\\uFF0C\\u53EF\\u4EE5\\u76F4\\u63A5\\u91CD\\u8BD5\\u3002`,{remote:e,phase:n});A=e;let s;try{s=r(t)}catch(u){throw a(u)}finally{A=void 0}try{await s}catch(u){throw a(u)}}async function ee(e,r,t,n){e.debug.setup="pending";try{if(e.manifestUrl)try{await F(`${e.name}/${t}`)}catch{}let a=await r.get(t),s=a?.default;if(typeof s!="function")throw new S(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${t}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${a==null?String(a):typeof s}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728 setup \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u4E2D\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u51FD\\u6570\\uFF0C\\u4F8B\\u5982 export default async function setup(context) { ... }\\uFF1B\\u5177\\u540D onSession \\u53EF\\u9009\\u3002`,{remote:e.name,module:t});if(a.onSession!==void 0&&typeof a.onSession!="function")throw new S(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${t}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof a.onSession}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5C06 onSession \\u6539\\u4E3A\\u5177\\u540D\\u5BFC\\u51FA\\u7684\\u51FD\\u6570\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:t});n.setupExports=a,await K(e.name,s,{appContext:V(),signal:(n.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(a){throw e.debug.setup="failed",n.setupExports=void 0,a}}async function re(e,r,t){let n=V(),a=n?.sessionKey;if(typeof a!="string"||a==="")throw new S(E.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${a===void 0?"\\u7F3A\\u5931":JSON.stringify(a)}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5BBF\\u4E3B\\u6BCF\\u6B21\\u767B\\u5F55\\u6216\\u91CD\\u767B\\u65F6\\u751F\\u6210\\u65B0\\u7684\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID\\uFF0C\\u5E76\\u5728\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u9875\\u9762\\u524D\\u8C03\\u7528 provideAppContext({ ..., sessionKey: \'\\u767B\\u5F55\\u4EE3\\u6B21 ID\' })\\uFF1B\\u4E0D\\u8981\\u4F7F\\u7528 token \\u539F\\u6587\\u3002`,{remote:e.name});if(r.sessionPromise&&r.sessionKey===a)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=a;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),p=(async()=>{await u,!s.signal.aborted&&await K(e.name,t,{appContext:n,sessionKey:a,signal:s.signal},"onSession")})();return r.sessionPromise=p,p.catch(()=>{r.sessionKey===a&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),p}async function te(e,r){let t=r?.[_e];if(typeof t!="string"||t==="")return;let n=Q(e.name);n.setupPromise||(n.setupPromise=ee(e,r,t,n).catch(s=>{throw n.setupPromise=void 0,s})),await n.setupPromise;let a=n.setupExports?.onSession;typeof a=="function"&&await re(e,n,a)}function ne(){for(let e of k.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let U=e=>i[e]??=Object.create(null);function _(e){try{I.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function oe(e="default"){return U(e),i}function se(e,r,t,n,a={}){let s=U(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,p=u&&typeof u=="object"?u:void 0;p||(p=Object.create(null),s[r]=p),!(Object.hasOwn(p,t)&&p[t])&&(p[t]={version:t,get:n,from:a.from??"unknown",eager:!!a.eager,loaded:!!a.loaded})}function ie(e){let r=(t,n,a)=>{if(t===void 0)return;if(!(typeof t=="number"&&(a?Number.isInteger(t)&&t>=0&&t<=10:Number.isFinite(t)&&t>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${n} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(t)}\\uFF0C\\u5E94\\u4E3A${a?" 0 \\u5230 10 \\u7684\\u6574\\u6570":"\\u5927\\u4E8E 0 \\u7684\\u6709\\u9650\\u6570\\u5B57"}\\u3002\\u8BF7\\u4FEE\\u6B63 registerRemote \\u914D\\u7F6E\\u3002`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function H(e){for(let r of e){ie(r);let t=c.get(r.name);c.set(r.name,{timeout:D,retries:z,...t,...r,breakerThreshold:r.breaker?.threshold??t?.breakerThreshold??Me,breakerResetMs:r.breaker?.resetMs??t?.breakerResetMs??ve,state:t?.state??"idle",breakerState:t?.breakerState??{fails:0,openUntil:0},entryInflight:t?.entryInflight??new Map,debug:t?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function ae(e){H([e])}function ce(e){l.push(...e),Z()}async function le(e,r={}){let t=r.shareScope||"default",n=r.shareKey||e,s=U(t)[n]||{},u=Object.keys(s),p=r.requiredVersion,h=u.filter(f=>p===void 0||p===!1||j(f,p)),d;if(r.singleton&&u.length>0){let f=u.filter(m=>s[m].loaded);if(d=[...f.length?f:u].sort(O).pop(),!h.includes(d)){let m=s[d],v=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${n}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${p??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${u.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${m.from} \\u63D0\\u4F9B\\u7684 ${d}\\u3002\n\\u5F71\\u54CD\\uFF1A\\u53EF\\u80FD\\u51FA\\u73B0\\u72B6\\u6001\\u4E0D\\u4E00\\u81F4\\u6216\\u8FD0\\u884C\\u9519\\u8BEF\\uFF0C\\u5177\\u4F53\\u53D6\\u51B3\\u4E8E\\u4E24\\u7AEF API \\u662F\\u5426\\u517C\\u5BB9\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u6838\\u5BF9\\u540E\\u8C03\\u6574 shared.requiredVersion\\uFF1B\\u82E5\\u5FC5\\u987B\\u62D2\\u7EDD\\u4E0D\\u517C\\u5BB9\\u7248\\u672C\\uFF0C\\u8BF7\\u542F\\u7528 strictVersion\\u3002`;if(r.strictVersion){let T=new S(E.SHARE_STRICT_VERSION,v,{shareKey:n,requiredVersion:p});throw _({remote:m.from,error:T}),T}let $=`${t}|${n}|${p??"*"}|${d}|${u.join(",")}`;o.has($)||(o.add($),console.warn(`[fulgurjs:MFU-010] ${v}`))}}else if(d=[...h].sort(O).pop(),!d){if(r.strictVersion){let m=new S(E.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${t}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${n}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${p}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${u.join("\\u3001")||"\\u65E0"}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u4FEE\\u6B63 shared.requiredVersion\\u3002`);throw _({remote:n,error:m}),m}if(r.fallback)return r.fallback();let f=new S(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${n}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${t}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${p??"\\u4EFB\\u610F\\u7248\\u672C"} \\u8981\\u6C42\\u7684\\u7248\\u672C\\uFF0C\\u4E14\\u672A\\u914D\\u7F6E\\u672C\\u5730\\u526F\\u672C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728\\u5BBF\\u4E3B\\u6216\\u8FDC\\u7A0B\\u6CE8\\u518C\\u8BE5\\u4F9D\\u8D56\\uFF0C\\u6216\\u4E3A shared \\u914D\\u7F6E\\u53EF\\u7528\\u7684\\u672C\\u5730\\u526F\\u672C\\u3002`,{shareKey:n,requiredVersion:p});throw _({remote:n,error:f}),f}let R=s[d];if(I.resolveShare){let f=await I.resolveShare({shareKey:n,shareScope:t,requiredVersion:p,picked:R,available:Object.values(s)});f&&(R=f)}return R.loaded=!0,R.get()}function q(e){try{let r=new URL(e,typeof location<"u"?location.href:"http://f.invalid");return r.protocol+"//"+r.host+r.pathname}catch{return String(e).replace(/[?#].*$/,"")}}function G(e,r,t){return new Promise((n,a)=>{let s=setTimeout(()=>a(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${t}`)),r);e.then(u=>{clearTimeout(s),n(u)},u=>{clearTimeout(s),a(u)})})}let ue=e=>new Promise(r=>setTimeout(r,e));function N(e,r){if(!e||typeof e.get!="function")throw new Error(`\\u8FDC\\u7A0B\\u5E94\\u7528 "${r.name}" \\u7684 remoteEntry \\u672A\\u5BFC\\u51FA\\u5BB9\\u5668\\u63A5\\u53E3\\u3002\\u8BF7\\u786E\\u8BA4\\u5165\\u53E3\\u5BFC\\u51FA\\u4E86 get()\\uFF0C\\u5E76\\u68C0\\u67E5\\u8BE5\\u5730\\u5740\\u662F\\u5426\\u8FD4\\u56DE\\u6B63\\u786E\\u7684\\u8054\\u90A6\\u5165\\u53E3 JS\\u3002`);if(e.name&&r.name&&e.name!==r.name){let t=`\\u8FDC\\u7A0B\\u5165\\u53E3\\u81EA\\u62A5\\u540D\\u79F0 "${e.name}" \\u4E0E\\u5BBF\\u4E3B\\u914D\\u7F6E\\u540D\\u79F0 "${r.name}" \\u4E0D\\u4E00\\u81F4\\u3002\\u8BF7\\u7EDF\\u4E00\\u4E24\\u4FA7 federation({ name }) \\u4E0E remotes \\u7684\\u540D\\u79F0\\u3002`;if(r.promise)console.warn(`[fulgurjs] ${t} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`);else throw Object.assign(new Error(t),{code:E.REMOTE_NAME_MISMATCH})}}async function J(e,r){let t=r.entryInflight.get(e),n=t??import(e);return t||(r.entryInflight.set(e,n),n.catch(()=>r.entryInflight.delete(e))),G(n,r.timeout??D,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${q(e)}`)}async function X(e,r){let t=e.shareScope||"default";if(e.container){let s=b.get(e.container);if(s&&s!==t)throw new S(E.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${t}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let n=e.breakerState;if(n.openUntil>Date.now()){let s=new S(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(n.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name});throw _({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let a=(async()=>{let s=[];if(e.promise)s.push(async()=>{let f=await G(e.promise(),e.timeout??D,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),m=typeof f=="string"?await J(f,e):f;return N(m,e),m});else for(let f of[e.entry,...e.fallback??[]])s.push(async()=>{let m=await J(f,e);return N(m,e),m});let u,p,h=!1,d=r?.retries??e.retries??z;for(let f of s){for(let m=0;m<=d;m++){let v=performance.now();try{u=await f(),e.lastLoadMs=Math.round(performance.now()-v),e.debug.lastLoadMs=e.lastLoadMs,h=!0;break}catch($){if(p=$,$?.code)throw $;m<d&&await ue(Math.min(Ie,200*2**m)*(1-Te*(1-2*Math.random())))}}if(h)break}if(!h||!u){let f=q(e.entry),m=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(m.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${f}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),m.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),m.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(m.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${f}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),m.push("2. \\u68C0\\u67E5 Nginx/CDN \\u7684\\u5165\\u53E3\\u8DEF\\u5F84\\u6620\\u5C04\\uFF1B\\u8BE5\\u5730\\u5740\\u4E0D\\u80FD\\u56DE\\u9000\\u5230 index.html\\u3002")),new S(E.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${f} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(p?.message??p)}\n\\u4FEE\\u6CD5\\uFF1A\n${m.join(`\n`)}`,{remote:e.name})}N(u,e);let R=b.get(u);if(R&&R!==t)throw new S(E.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${R}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${t}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(i),b.set(u,t),e.container=u,e.state="loaded",e.debug.status="loaded",n.fails=0,u})();e.containerPromise=a;try{return await a}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(s?.message??s),n.fails+=1,n.fails>=e.breakerThreshold&&(n.openUntil=Date.now()+e.breakerResetMs,n.fails=0),s instanceof S)throw _({remote:e.name,error:s}),s;if(s?.code)throw _({remote:e.name,error:s}),s;let u=new S(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(s?.message??s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name});throw _({remote:e.name,error:u}),u}}function C(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:B(e.slice(r+1))}}function B(e){return e?e.startsWith(".")?e:`./${e}`:""}async function fe(e,r){let{remote:t,module:n}=C(e);if(n&&A===t)throw new S(E.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\n\\u539F\\u56E0\\uFF1A\\u521D\\u59CB\\u5316\\u5C1A\\u672A\\u5B8C\\u6210\\uFF0C\\u4E0D\\u80FD\\u7B49\\u5F85\\u81EA\\u8EAB\\u7684\\u521D\\u59CB\\u5316\\u7ED3\\u679C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u4E0D\\u8981\\u5728 setup/onSession \\u4E2D\\u52A0\\u8F7D\\u540C\\u4E00\\u8FDC\\u7A0B\\u7684\\u6A21\\u5757\\uFF1B\\u8BF7\\u5728\\u9875\\u9762\\u7EC4\\u4EF6\\u4E2D\\u52A0\\u8F7D\\uFF0C\\u6216\\u901A\\u8FC7 context \\u89E3\\u8026\\u3002`,{remote:t});try{I.beforeLoadRemote?.({remote:t,module:n})}catch(h){console.warn("[fulgurjs] beforeLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u6A21\\u5757\\u52A0\\u8F7D\\u5C06\\u7EE7\\u7EED\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",h)}let a=c.get(t);if(!a)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:t});let s;try{let h=n&&a.manifestUrl?F(e):Promise.resolve();[s]=await Promise.all([X(a,{retries:r?.retries}),h])}catch(h){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,h),_({remote:t,error:h}),await r.fallbackModule();throw h}if(!n)return s;await te(a,s);let u=`${t}@${a.shareScope||"default"}#${n}`;g.has(u)||g.set(u,s.get(n).catch(h=>{throw g.delete(u),h instanceof S||h?.code?h:new S(E.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u52A0\\u8F7D\\u6A21\\u5757 "${n}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(h?.message??h)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:t,module:n})}));let p;try{p=await g.get(u)}catch(h){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,h),_({remote:t,error:h}),await r.fallbackModule();throw h}try{I.afterLoadRemote?.({remote:t,module:n,module_ns:p})}catch(h){console.warn("[fulgurjs] afterLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u5DF2\\u52A0\\u8F7D\\u6A21\\u5757\\u4ECD\\u53EF\\u4F7F\\u7528\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",h)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let h=new S(E.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684\\u6A21\\u5757 "${n}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:t,module:n});_({remote:t,error:h}),console.error(h.message)}return p}function me(e){let r=c.get(e);if(!r)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return X(r)}async function F(e,r={}){let{remote:t,module:n}=C(e),a=c.get(t);if(!a)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:t});let s=r.mode??"preload",u=(d,R)=>{if(d.sheet)return Promise.resolve();let f=w.get(d);if(f)return f;let m=new Promise(v=>{let $=()=>{d.removeEventListener("load",$),d.removeEventListener("error",T),v()},T=()=>{_({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${R}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:t})}),$()};d.addEventListener("load",$,{once:!0}),d.addEventListener("error",T,{once:!0}),d.sheet&&$()});return w.set(d,m),m},p=(d,R)=>{if(typeof document>"u")return Promise.resolve();let f=document.querySelector(`link[href="${d}"]`);if(f)return R==="style"&&s==="preload"?w.get(f)??Promise.resolve():Promise.resolve();let m=document.createElement("link");m.rel=R==="style"?"stylesheet":"modulepreload",m.href=d,s==="prefetch"&&(m.fetchPriority="low");let v=R==="style"?u(m,d):Promise.resolve();return document.head.appendChild(m),R==="style"&&s==="preload"?v:Promise.resolve()},h=d=>{let R=typeof document<"u"?document.baseURI:void 0,f=new URL(a.entry,R||"http://fulgurjs.invalid/");return!f.pathname.endsWith("/")&&!f.pathname.split("/").pop().includes(".")&&(f.pathname+="/"),new URL(d,f).href};try{if(a.manifestUrl){let d=y.get(a.manifestUrl);d||(d=fetch(a.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(f=>f.ok?f.json():void 0),y.set(a.manifestUrl,d),d.then(f=>{f||y.delete(a.manifestUrl)},()=>y.delete(a.manifestUrl)));let R=await d;if(R){let f=R.schemaVersion;if(typeof f=="number"&&(!Number.isInteger(f)||f>1)){_({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(f)}\\uFF0C\\u5F53\\u524D\\u4EC5\\u652F\\u6301\\u7248\\u672C 1\\u3002\\u8BF7\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u548C\\u8FDC\\u7A0B\\u7684\\u63D2\\u4EF6\\u7248\\u672C\\u3002`,{remote:t})}),await p(a.entry,"modulepreload");return}await p(a.entry,"modulepreload");let m=R.exposes,v=Array.isArray(m)?m.filter(M=>M&&typeof M=="object").map(M=>[String(M.name??""),M]):m&&typeof m=="object"?Object.entries(m):[],$=n?v.filter(([M,x])=>B(String(x?.name??M))===n):v,T=[];for(let[,M]of $)if(typeof M?.file=="string"&&await p(h(M.file),"modulepreload"),Array.isArray(M?.css))for(let x of M.css){if(typeof x!="string")continue;let pe=p(h(x),"style");s==="preload"&&T.push(pe)}await Promise.all(T);return}}await p(a.entry,"modulepreload")}catch(d){_({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(d?.message??d)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:t})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=i,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,t]of c)e[r]={...t.debug,entry:t.entry};return e},errors:[]}),{shareScopeMap:i,initSharing:oe,registerShare:se,registerRemotes:H,registerRemote:ae,registerPlugins:ce,loadShare:le,loadRemote:fe,getContainer:me,preloadRemote:F,parseSpec:C,clearSessionState:ne}}var Y=globalThis,P=Y.__FULGURJS_RUNTIME__??Oe();Y.__FULGURJS_RUNTIME__=P;try{Object.freeze(P)}catch{}var Ce=W;function Fe(){return P}var De=P.initSharing,Ve=P.registerShare,Ke=P.registerRemotes,He=P.registerRemote,qe=P.registerPlugins,Ge=P.loadShare,Je=P.loadRemote,Xe=P.getContainer,Be=P.preloadRemote,We=P.parseSpec,ze=P.clearSessionState,Ye=P.shareScopeMap;function Ze(i){if(i&&typeof i=="object"&&"default"in i){let c=i.default;return c!==void 0?c:i}return i}var Qe=P;export{ze as clearSessionState,Qe as default,Xe as getContainer,Fe as getRuntime,De as initSharing,Je as loadRemote,Ge as loadShare,We as parseSpec,Be as preloadRemote,qe as registerPlugins,He as registerRemote,Ke as registerRemotes,Ve as registerShare,P as runtime,Ye as shareScopeMap,Ze as unwrapDefault,Ce as version};\n';
|
|
1788
1788
|
|
|
1789
1789
|
// src/index.ts
|
|
1790
1790
|
function readRuntimeCode() {
|
|
@@ -1806,7 +1806,7 @@ function enumerateCjsExports(packageName, appRoot) {
|
|
|
1806
1806
|
names = Object.keys(mod);
|
|
1807
1807
|
} catch {
|
|
1808
1808
|
console.warn(
|
|
1809
|
-
`[fulgurjs]
|
|
1809
|
+
`[fulgurjs] \u65E0\u6CD5\u679A\u4E3E\u5171\u4EAB\u4F9D\u8D56 "${packageName}" \u7684 CJS \u5BFC\u51FA\uFF0C\u9884\u6784\u5EFA\u95E8\u9762\u53EA\u4F1A\u63D0\u4F9B\u9ED8\u8BA4\u5BFC\u51FA\u3002\u5982\u679C\u4E1A\u52A1\u4EE3\u7801\u9700\u8981\u5177\u540D\u5BFC\u51FA\uFF0C\u8BF7\u5C06\u8BE5\u4F9D\u8D56\u52A0\u5165 optimizeDeps.exclude\uFF0C\u4F7F\u5176\u7ECF\u8FC7\u8054\u90A6\u8F6C\u6362\u6D41\u7A0B\u3002`
|
|
1810
1810
|
);
|
|
1811
1811
|
}
|
|
1812
1812
|
nsExportCache.set(packageName, names);
|
|
@@ -1849,7 +1849,6 @@ function facadeChunkOf(id) {
|
|
|
1849
1849
|
return null;
|
|
1850
1850
|
}
|
|
1851
1851
|
function federation(options) {
|
|
1852
|
-
const warnedUnknownPrefixes = /* @__PURE__ */ new Set();
|
|
1853
1852
|
let remoteSchemaPromise = null;
|
|
1854
1853
|
const state = {
|
|
1855
1854
|
command: "serve",
|
|
@@ -1951,7 +1950,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
1951
1950
|
if (userTarget) {
|
|
1952
1951
|
if (/es20(0\d|1\d|20|21)/.test(String(userTarget))) {
|
|
1953
1952
|
normalized.warnings.push(
|
|
1954
|
-
`build.target="${String(userTarget)}"
|
|
1953
|
+
`build.target="${String(userTarget)}" \u4E0D\u652F\u6301\u9876\u5C42 await\uFF1Bfulgurjs \u9700\u8981 es2022 \u6216\u66F4\u9AD8\u7248\u672C\u3002\u8BF7\u8C03\u6574 build.target\u3002`
|
|
1955
1954
|
);
|
|
1956
1955
|
}
|
|
1957
1956
|
} else {
|
|
@@ -1971,7 +1970,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
1971
1970
|
console.warn(
|
|
1972
1971
|
formatFulgurjsDiagnostic({
|
|
1973
1972
|
code: "BLD-006",
|
|
1974
|
-
symptom: "build.rollupOptions.output
|
|
1973
|
+
symptom: "build.rollupOptions.output \u662F\u6570\u7EC4\uFF0Cfulgurjs \u65E0\u6CD5\u81EA\u52A8\u6CE8\u5165\u5171\u4EAB\u95E8\u9762 chunk \u9632\u62A4",
|
|
1975
1974
|
cause: "devSharedSelf \u95E8\u9762\u5316 + manualChunks \u5F3A\u5236\u5206\u7EC4\u53EF\u80FD\u5F62\u6210 chunk \u5FAA\u73AF\u4F9D\u8D56\uFF08\u8FD0\u884C\u65F6 TypeError\uFF1A\u534F\u5546\u51FD\u6570\u672A\u521D\u59CB\u5316\uFF09",
|
|
1976
1975
|
fix: `\u5728\u6BCF\u4E2A output \u9879\u7684 manualChunks \u6700\u524D\u9762\u52A0\u5206\u652F\uFF1Aif (id.startsWith('virtual:fulgurjs-')) return 'fulgurjs-shared-facades'`
|
|
1977
1976
|
})
|
|
@@ -2008,7 +2007,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2008
2007
|
configResolved(resolved) {
|
|
2009
2008
|
state.base = normalizeBase(resolved.base);
|
|
2010
2009
|
if (resolved.build?.ssr) {
|
|
2011
|
-
console.warn("[fulgurjs] SSR
|
|
2010
|
+
console.warn("[fulgurjs] \u5F53\u524D\u7248\u672C\u4E0D\u652F\u6301 SSR \u6784\u5EFA\uFF1B\u8054\u90A6\u63D2\u4EF6\u94A9\u5B50\u5DF2\u505C\u7528\u3002\u8BF7\u4F7F\u7528\u5BA2\u6237\u7AEF\u6784\u5EFA\u3002");
|
|
2012
2011
|
}
|
|
2013
2012
|
const n0 = state.normalized;
|
|
2014
2013
|
const optimize = resolved.optimizeDeps;
|
|
@@ -2051,20 +2050,6 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2051
2050
|
}
|
|
2052
2051
|
}
|
|
2053
2052
|
}
|
|
2054
|
-
const n = state.normalized;
|
|
2055
|
-
if (n && !bare.startsWith("\0") && !bareClean.startsWith(".") && !bareClean.startsWith("/") && !bareClean.startsWith("virtual:")) {
|
|
2056
|
-
const slash = bareClean.indexOf("/");
|
|
2057
|
-
if (slash > 0) {
|
|
2058
|
-
const prefix = bareClean.slice(0, slash);
|
|
2059
|
-
const known = bareClean === "@fulgurjs/federation/runtime" || n.remotes.some((r) => r.key === prefix) || n.shared.some((sh) => sh.aliases.includes(prefix) || sh.aliases.some((a) => a.endsWith("/") && prefix.startsWith(a)));
|
|
2060
|
-
if (!known && !warnedUnknownPrefixes.has(prefix)) {
|
|
2061
|
-
warnedUnknownPrefixes.add(prefix);
|
|
2062
|
-
console.warn(
|
|
2063
|
-
`[fulgurjs] "${source}" uses prefix "${prefix}/", which is not in federation({ remotes }) or shared. If "${prefix}" is a federated remote, add it: remotes: { '${prefix}': '<url>' }. (Ignore this if it is a plain npm package.)`
|
|
2064
|
-
);
|
|
2065
|
-
}
|
|
2066
|
-
}
|
|
2067
|
-
}
|
|
2068
2053
|
if (bareClean === RUNTIME_VIRTUAL_ID) return RESOLVED.runtime;
|
|
2069
2054
|
if (bareClean === RUNTIME_PROXY_VIRTUAL_ID) return RESOLVED.runtimeProxy;
|
|
2070
2055
|
if (bareClean === INIT_VIRTUAL_ID) return RESOLVED.init;
|
|
@@ -2222,12 +2207,12 @@ ${code}`, map: null };
|
|
|
2222
2207
|
state.manualChunkGroups.set(r.id.split("?")[0], group);
|
|
2223
2208
|
} else {
|
|
2224
2209
|
console.warn(
|
|
2225
|
-
`[fulgurjs] manualChunks
|
|
2210
|
+
`[fulgurjs] manualChunks \u5206\u7EC4 "${group}" \u4E2D\u7684\u6A21\u5757 "${specifier}" \u65E0\u6CD5\u89E3\u6790\uFF0C\u5DF2\u56DE\u9000\u4E3A\u81EA\u52A8\u5206\u5305\uFF1B\u5171\u4EAB\u534F\u5546\u95E8\u9762\u4ECD\u53D7\u4FDD\u62A4\u3002\u8BF7\u68C0\u67E5\u6A21\u5757\u8DEF\u5F84\u3002`
|
|
2226
2211
|
);
|
|
2227
2212
|
}
|
|
2228
2213
|
} catch {
|
|
2229
2214
|
console.warn(
|
|
2230
|
-
`[fulgurjs] manualChunks
|
|
2215
|
+
`[fulgurjs] manualChunks \u5206\u7EC4 "${group}" \u4E2D\u7684\u6A21\u5757 "${specifier}" \u89E3\u6790\u5931\u8D25\uFF0C\u5DF2\u56DE\u9000\u4E3A\u81EA\u52A8\u5206\u5305\u3002\u8BF7\u68C0\u67E5\u6A21\u5757\u8DEF\u5F84\u3002`
|
|
2231
2216
|
);
|
|
2232
2217
|
}
|
|
2233
2218
|
}
|