@fulgurjs/federation 6.14.4 → 6.14.5

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/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // src/index.ts
2
- import fs8 from "fs";
3
- import path11 from "path";
2
+ import fs9 from "fs";
3
+ import path12 from "path";
4
4
  import { createRequire as createRequire4 } from "module";
5
5
 
6
6
  // src/vue-runtime-evidence.ts
@@ -34,7 +34,7 @@ import fs from "fs";
34
34
  import path from "path";
35
35
 
36
36
  // src/version.ts
37
- var RUNTIME_VERSION = "6.14.4";
37
+ var RUNTIME_VERSION = "6.14.5";
38
38
 
39
39
  // src/dev-cors.ts
40
40
  function normalizeDevCorsOrigins(input) {
@@ -1777,8 +1777,8 @@ function collectPackageExportNames(spec, importerFile) {
1777
1777
  }
1778
1778
 
1779
1779
  // src/dts-serve.ts
1780
- import path6 from "path";
1781
- import fs4 from "fs";
1780
+ import path7 from "path";
1781
+ import fs5 from "fs";
1782
1782
 
1783
1783
  // src/dts-generate.ts
1784
1784
  import fs3 from "fs";
@@ -2924,14 +2924,143 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2924
2924
  return out;
2925
2925
  }
2926
2926
 
2927
+ // src/dts-cache-worker-client.ts
2928
+ import fs4 from "fs";
2929
+ import path6 from "path";
2930
+ import crypto2 from "crypto";
2931
+ import { fileURLToPath } from "url";
2932
+ import { Worker } from "worker_threads";
2933
+ function createTypesCacheWorker() {
2934
+ let worker = null;
2935
+ let disposed = false;
2936
+ const pending = /* @__PURE__ */ new Map();
2937
+ const temporary = /* @__PURE__ */ new Set();
2938
+ let watches = [];
2939
+ const fail = (error) => {
2940
+ for (const request of pending.values()) request.reject(error);
2941
+ pending.clear();
2942
+ };
2943
+ const ensure = () => {
2944
+ if (disposed) throw new Error("\u7C7B\u578B\u7F13\u5B58\u670D\u52A1\u5DF2\u5173\u95ED");
2945
+ if (worker) return worker;
2946
+ const self = typeof __filename === "string" ? __filename : fileURLToPath(import.meta.url);
2947
+ const directory = path6.dirname(self);
2948
+ const file = [path6.join(directory, "dts-cache-worker.cjs"), path6.join(directory, "../dist/dts-cache-worker.cjs")].find((file2) => fs4.existsSync(file2));
2949
+ if (!file) throw new Error("\u7C7B\u578B\u7F13\u5B58\u540E\u53F0\u7A0B\u5E8F\u7F3A\u5931\uFF0C\u8BF7\u91CD\u65B0\u6784\u5EFA\u6216\u5B89\u88C5\u63D2\u4EF6");
2950
+ const running = new Worker(file);
2951
+ worker = running;
2952
+ running.on("message", (response) => {
2953
+ const request = pending.get(response.id);
2954
+ if (!request) return;
2955
+ pending.delete(response.id);
2956
+ if (pending.size === 0) running.unref();
2957
+ if (response.ok) request.resolve(response.value);
2958
+ else request.reject(new Error(response.error ?? "\u7C7B\u578B\u7F13\u5B58\u540E\u53F0\u4EFB\u52A1\u5931\u8D25"));
2959
+ });
2960
+ running.on("error", (error) => fail(error));
2961
+ running.on("exit", (code) => {
2962
+ if (worker === running) worker = null;
2963
+ if (!disposed) fail(new Error(`\u7C7B\u578B\u7F13\u5B58\u540E\u53F0\u7A0B\u5E8F\u9000\u51FA\uFF08${code}\uFF09`));
2964
+ });
2965
+ running.unref();
2966
+ return running;
2967
+ };
2968
+ const call = (operation, input, payload = {}) => new Promise((resolve, reject) => {
2969
+ const id = crypto2.randomUUID();
2970
+ try {
2971
+ const running = ensure();
2972
+ pending.set(id, { resolve, reject });
2973
+ running.ref();
2974
+ running.postMessage({ id, operation, input: { ...input, execution: { env: Object.fromEntries(Object.entries(process.env).filter(([key]) => /^(NODE_ENV|NODE_OPTIONS|TS_NODE_|VUE_|VOLAR_)/.test(key))), execArgv: process.execArgv } }, ...payload });
2975
+ } catch (error) {
2976
+ pending.delete(id);
2977
+ if (pending.size === 0) worker?.unref();
2978
+ reject(error);
2979
+ }
2980
+ });
2981
+ return {
2982
+ read: (input) => call("read", input),
2983
+ capture: (input) => call("capture", input),
2984
+ validate: (input, handle, stable) => call("validate", input, { token: handle.token, stable }),
2985
+ async write(input, handle, result) {
2986
+ const temporaryId = crypto2.randomUUID();
2987
+ const digest = crypto2.createHash("sha256").update(path6.resolve(input.root)).digest("hex").slice(0, 12);
2988
+ const file = path6.join(input.root, "node_modules/.cache/fulgurjs/types", `provider-${digest}.json.gz.${process.pid}.${temporaryId}.tmp`);
2989
+ temporary.add(file);
2990
+ try {
2991
+ return await call("write", input, { token: handle.token, result, temporaryId });
2992
+ } finally {
2993
+ if (!disposed) {
2994
+ temporary.delete(file);
2995
+ try {
2996
+ fs4.rmSync(file, { force: true });
2997
+ } catch {
2998
+ }
2999
+ }
3000
+ }
3001
+ },
3002
+ async release(input, handle) {
3003
+ if (!disposed) await call("release", input, { token: handle.token });
3004
+ },
3005
+ watch(handle, changed) {
3006
+ const groups = /* @__PURE__ */ new Map();
3007
+ for (const file of handle.externalInputs) {
3008
+ let directory = path6.dirname(file);
3009
+ for (; ; ) {
3010
+ try {
3011
+ if (fs4.statSync(directory).isDirectory()) break;
3012
+ } catch {
3013
+ }
3014
+ const parent = path6.dirname(directory);
3015
+ if (parent === directory) break;
3016
+ directory = parent;
3017
+ }
3018
+ const name = path6.relative(directory, file).split(path6.sep)[0];
3019
+ const names = groups.get(directory) ?? /* @__PURE__ */ new Set();
3020
+ names.add(name);
3021
+ groups.set(directory, names);
3022
+ }
3023
+ const next = [];
3024
+ try {
3025
+ for (const [directory, names] of groups) next.push(fs4.watch(directory, { persistent: false }, (_event, filename) => {
3026
+ if (!filename || names.has(filename.toString().split(path6.sep)[0])) changed();
3027
+ }));
3028
+ } catch (error) {
3029
+ for (const watcher of next) watcher.close();
3030
+ throw error;
3031
+ }
3032
+ for (const watcher of watches) watcher.close();
3033
+ watches = next;
3034
+ },
3035
+ dispose() {
3036
+ if (disposed) return;
3037
+ disposed = true;
3038
+ for (const watcher of watches) watcher.close();
3039
+ watches = [];
3040
+ fail(new Error("\u7C7B\u578B\u7F13\u5B58\u670D\u52A1\u5DF2\u5173\u95ED"));
3041
+ const running = worker;
3042
+ worker = null;
3043
+ if (running) void running.terminate().finally(() => {
3044
+ for (const file of temporary) {
3045
+ try {
3046
+ fs4.rmSync(file, { force: true });
3047
+ } catch {
3048
+ }
3049
+ }
3050
+ temporary.clear();
3051
+ });
3052
+ }
3053
+ };
3054
+ }
3055
+
2927
3056
  // src/dts-serve.ts
2928
3057
  function isTypesInputChange(root, id, outputDir) {
2929
- const relative = path6.relative(root, id);
2930
- if (relative === ".." || relative.startsWith(`..${path6.sep}`) || path6.isAbsolute(relative)) return false;
2931
- if (relative.split(path6.sep).some((part) => part === "node_modules" || part === ".vite")) return false;
2932
- if (path6.basename(id).startsWith(".fulgurjs-types-tsconfig-")) return false;
2933
- const outputRelative = path6.relative(outputDir, id);
2934
- if (!(outputRelative.startsWith(`..${path6.sep}`) || path6.isAbsolute(outputRelative))) return false;
3058
+ const relative = path7.relative(root, id);
3059
+ if (relative === ".." || relative.startsWith(`..${path7.sep}`) || path7.isAbsolute(relative)) return false;
3060
+ if (relative.split(path7.sep).some((part) => part === "node_modules" || part === ".vite")) return false;
3061
+ if (path7.basename(id).startsWith(".fulgurjs-types-tsconfig-")) return false;
3062
+ const outputRelative = path7.relative(outputDir, id);
3063
+ if (!(outputRelative.startsWith(`..${path7.sep}`) || path7.isAbsolute(outputRelative))) return false;
2935
3064
  return /\.(?:[cm]?[jt]sx?|vue|json)$/i.test(id);
2936
3065
  }
2937
3066
  function createDevTypesServer(options, hooks = {}) {
@@ -2946,46 +3075,141 @@ function createDevTypesServer(options, hooks = {}) {
2946
3075
  let lastErrorKey = null;
2947
3076
  let incrementalDir;
2948
3077
  const clearCache = () => {
2949
- if (incrementalDir) fs4.rmSync(incrementalDir, { recursive: true, force: true });
3078
+ if (incrementalDir) fs5.rmSync(incrementalDir, { recursive: true, force: true });
2950
3079
  incrementalDir = void 0;
2951
3080
  };
2952
3081
  const publicExposes = options.exposes.filter((e) => !e.internal).map((e) => ({ name: e.name, import: e.import }));
3082
+ const cacheInput = { root: options.root, exposes: publicExposes, pluginVersion: options.pluginVersion, dts: options.dts };
3083
+ let cacheUnavailableAnnounced = false;
3084
+ let inputEpoch = 0;
3085
+ const cache = createTypesCacheWorker();
3086
+ const changed = () => {
3087
+ inputEpoch++;
3088
+ void ensure();
3089
+ };
3090
+ const queueRecheck = (reason) => {
3091
+ pendingInvalidate = true;
3092
+ log(`[fulgurjs] \u7C7B\u578B\u8F93\u5165\u5728\u6821\u9A8C/\u751F\u6210\u671F\u95F4\u53D8\u5316${reason ? `\uFF08${reason}\uFF09` : ""}\uFF0C\u5DF2\u6392\u961F\u91CD\u68C0\uFF1B\u672C\u8F6E\u7ED3\u679C\u4E0D\u53D1\u5E03\u5230\u7F13\u5B58\u3002`);
3093
+ };
2953
3094
  const run = async () => {
3095
+ await new Promise((resolve) => setImmediate(resolve));
2954
3096
  if (disposed) return;
2955
- let result;
3097
+ const epoch = inputEpoch;
3098
+ const started = performance.now();
3099
+ let handle = null;
2956
3100
  try {
2957
- if (!incrementalDir) {
2958
- const cacheRoot = path6.join(options.root, "node_modules");
2959
- fs4.mkdirSync(cacheRoot, { recursive: true });
2960
- incrementalDir = fs4.mkdtempSync(path6.join(cacheRoot, ".fulgurjs-types-cache-"));
3101
+ try {
3102
+ const cached = await cache.read(cacheInput);
3103
+ if (disposed) return;
3104
+ if (cached) {
3105
+ handle = cached;
3106
+ cache.watch(cached, changed);
3107
+ const reason = await cache.validate(cacheInput, cached, false);
3108
+ if (disposed) return;
3109
+ if (epoch !== inputEpoch || pendingInvalidate) {
3110
+ queueRecheck();
3111
+ return;
3112
+ }
3113
+ if (!reason) {
3114
+ files = cached.result.files;
3115
+ revision = cached.result.index.revision;
3116
+ lastErrorKey = null;
3117
+ log(`[fulgurjs] \u7C7B\u578B\u7F13\u5B58\u547D\u4E2D\uFF08\u540E\u53F0\u8F93\u5165\u4E0E\u58F0\u660E\u6458\u8981\u6821\u9A8C ${Math.round(performance.now() - started)}ms\uFF0C${cached.result.fileCount} \u4E2A\u58F0\u660E\u6587\u4EF6\uFF0Crevision ${revision}\uFF09\uFF0C\u65E0\u9700\u91CD\u65B0\u7F16\u8BD1\u3002`);
3118
+ return;
3119
+ }
3120
+ await cache.release(cacheInput, cached);
3121
+ handle = null;
3122
+ }
3123
+ handle = await cache.capture(cacheInput);
3124
+ if (disposed) return;
3125
+ if (handle) cache.watch(handle, changed);
3126
+ else if (!cacheUnavailableAnnounced) {
3127
+ cacheUnavailableAnnounced = true;
3128
+ log("[fulgurjs] \u7C7B\u578B\u7F13\u5B58\uFF1A\u65E0\u6CD5\u5EFA\u7ACB\u5B8C\u6574\u8F93\u5165\u5FEB\u7167\uFF0C\u4F7F\u7528\u6B63\u5E38\u7F16\u8BD1\uFF1B\u81EA\u5B9A\u4E49\u7F16\u8BD1\u63D2\u4EF6\u3001\u5916\u90E8\u6A21\u677F\u6216\u5DE5\u5177\u4E0D\u53EF\u8BFB\u53D6\u65F6\u4E0D\u590D\u7528\u6301\u4E45\u7F13\u5B58\u3002");
3129
+ }
3130
+ } catch (error) {
3131
+ if (disposed) return;
3132
+ if (handle) await cache.release(cacheInput, handle).catch(() => {
3133
+ });
3134
+ handle = null;
3135
+ if (!cacheUnavailableAnnounced) {
3136
+ cacheUnavailableAnnounced = true;
3137
+ warn(`[fulgurjs] \u7C7B\u578B\u7F13\u5B58\u540E\u53F0\u68C0\u67E5\u4E0D\u53EF\u7528\uFF1A${error.message}\uFF1B\u5DF2\u56DE\u5230\u6B63\u5E38\u751F\u6210\u3002\u8BF7\u68C0\u67E5\u63D2\u4EF6\u5B89\u88C5\u53CA\u7F13\u5B58\u76EE\u5F55\u6743\u9650\u3002`);
3138
+ }
2961
3139
  }
2962
- result = await generateTypesBundle({
2963
- root: options.root,
2964
- exposes: publicExposes,
2965
- pluginVersion: options.pluginVersion,
2966
- signal: controller.signal,
2967
- incrementalDir
2968
- });
2969
- } catch (e) {
2970
- result = { ok: false, diagnostics: [`\u58F0\u660E\u751F\u6210\u53D1\u751F\u672A\u9884\u671F\u5F02\u5E38\uFF08\u5DF2\u62E6\u622A\uFF09\uFF1A${e.stack ?? e.message}`] };
2971
- }
2972
- if (disposed) return;
2973
- if (result.ok) {
2974
- files = result.files;
2975
- revision = result.index.revision;
2976
- lastErrorKey = null;
2977
- log(
2978
- `[fulgurjs] \u7C7B\u578B\u8D44\u6E90\u5DF2\u751F\u6210\uFF08${result.tool}\uFF0C${result.fileCount} \u4E2A\u58F0\u660E\u6587\u4EF6\uFF0Crevision ${result.index.revision}\uFF09${result.index.externals.length > 0 ? `\uFF1B\u5916\u90E8\u7C7B\u578B\u4F9D\u8D56\uFF1A${result.index.externals.join(", ")}` : ""}\u3002\u5BBF\u4E3B\u5C06\u81EA\u52A8\u540C\u6B65\u3002`
2979
- );
2980
- } else {
2981
- files = null;
2982
- revision = null;
2983
- const key = result.diagnostics.join("\n");
2984
- if (key !== lastErrorKey) {
2985
- lastErrorKey = key;
2986
- warn(`[fulgurjs] TYP-001 \u8FDC\u7A0B\u7C7B\u578B\u8D44\u6E90\u751F\u6210\u5931\u8D25\uFF08manifest \u4E0D\u643A\u5E26 types\uFF0C\u5BBF\u4E3B\u7C7B\u578B\u540C\u6B65\u5C06\u63D0\u793A\u672A\u63D0\u4F9B\uFF09\uFF1A
3140
+ let result;
3141
+ try {
3142
+ if (!incrementalDir) {
3143
+ const cacheRoot = path7.join(options.root, "node_modules");
3144
+ fs5.mkdirSync(cacheRoot, { recursive: true });
3145
+ incrementalDir = fs5.mkdtempSync(path7.join(cacheRoot, ".fulgurjs-types-cache-"));
3146
+ }
3147
+ result = await generateTypesBundle({
3148
+ root: options.root,
3149
+ exposes: publicExposes,
3150
+ pluginVersion: options.pluginVersion,
3151
+ signal: controller.signal,
3152
+ incrementalDir
3153
+ });
3154
+ } catch (e) {
3155
+ result = { ok: false, diagnostics: [`\u58F0\u660E\u751F\u6210\u53D1\u751F\u672A\u9884\u671F\u5F02\u5E38\uFF08\u5DF2\u62E6\u622A\uFF09\uFF1A${e.stack ?? e.message}`] };
3156
+ }
3157
+ if (disposed) return;
3158
+ let changedDuringGeneration = pendingInvalidate || epoch !== inputEpoch;
3159
+ if (handle) {
3160
+ try {
3161
+ const reason = await cache.validate(cacheInput, handle, true);
3162
+ if (reason) {
3163
+ queueRecheck(reason);
3164
+ return;
3165
+ }
3166
+ } catch (error) {
3167
+ if (disposed) return;
3168
+ warn(`[fulgurjs] \u7C7B\u578B\u7F13\u5B58\u6821\u9A8C\u5931\u8D25\uFF1A${error.message}\uFF1B\u672C\u8F6E\u4E0D\u5199\u6301\u4E45\u7F13\u5B58\u3002`);
3169
+ await cache.release(cacheInput, handle).catch(() => {
3170
+ });
3171
+ handle = null;
3172
+ }
3173
+ }
3174
+ if (disposed) return;
3175
+ if (changedDuringGeneration || pendingInvalidate || epoch !== inputEpoch) {
3176
+ queueRecheck();
3177
+ return;
3178
+ }
3179
+ if (result.ok) {
3180
+ if (handle) {
3181
+ try {
3182
+ if (!await cache.write(cacheInput, handle, result)) {
3183
+ queueRecheck();
3184
+ return;
3185
+ }
3186
+ } catch (error) {
3187
+ if (disposed) return;
3188
+ warn(`[fulgurjs] \u7C7B\u578B\u7F13\u5B58\u5199\u5165\u5931\u8D25\uFF1A${error.message}\uFF1B\u672C\u8F6E\u58F0\u660E\u6B63\u5E38\u63D0\u4F9B\uFF0C\u4E0B\u6B21\u53EF\u80FD\u91CD\u65B0\u7F16\u8BD1\u3002\u8BF7\u68C0\u67E5 node_modules/.cache/fulgurjs \u7684\u5199\u5165\u6743\u9650\u3002`);
3189
+ }
3190
+ }
3191
+ if (disposed) return;
3192
+ if (pendingInvalidate || epoch !== inputEpoch) {
3193
+ queueRecheck();
3194
+ return;
3195
+ }
3196
+ files = result.files;
3197
+ revision = result.index.revision;
3198
+ lastErrorKey = null;
3199
+ log(`[fulgurjs] \u7C7B\u578B\u8D44\u6E90\u5DF2\u751F\u6210\uFF08${result.tool}\uFF0C${result.fileCount} \u4E2A\u58F0\u660E\u6587\u4EF6\uFF0Crevision ${revision}\uFF09${result.index.externals.length > 0 ? `\uFF1B\u5916\u90E8\u7C7B\u578B\u4F9D\u8D56\uFF1A${result.index.externals.join(", ")}` : ""}\u3002\u5BBF\u4E3B\u5C06\u81EA\u52A8\u540C\u6B65\u3002`);
3200
+ } else {
3201
+ files = null;
3202
+ revision = null;
3203
+ const key = result.diagnostics.join("\n");
3204
+ if (key !== lastErrorKey) {
3205
+ lastErrorKey = key;
3206
+ warn(`[fulgurjs] TYP-001 \u8FDC\u7A0B\u7C7B\u578B\u8D44\u6E90\u751F\u6210\u5931\u8D25\uFF08manifest \u4E0D\u643A\u5E26 types\uFF0C\u5BBF\u4E3B\u7C7B\u578B\u540C\u6B65\u5C06\u63D0\u793A\u672A\u63D0\u4F9B\uFF09\uFF1A
2987
3207
  ${key}`);
3208
+ }
2988
3209
  }
3210
+ } finally {
3211
+ if (handle) await cache.release(cacheInput, handle).catch(() => {
3212
+ });
2989
3213
  }
2990
3214
  };
2991
3215
  const ensure = async () => {
@@ -3024,21 +3248,26 @@ ${key}`);
3024
3248
  },
3025
3249
  invalidate() {
3026
3250
  if (disposed) return;
3251
+ inputEpoch++;
3027
3252
  void ensure();
3028
3253
  },
3254
+ markInputChanged() {
3255
+ if (!disposed) inputEpoch++;
3256
+ },
3029
3257
  isGenerating: () => generating !== null,
3030
3258
  dispose() {
3031
3259
  disposed = true;
3032
3260
  controller.abort();
3261
+ cache.dispose();
3033
3262
  if (!generating) clearCache();
3034
3263
  }
3035
3264
  };
3036
3265
  }
3037
3266
 
3038
3267
  // src/dts-sync.ts
3039
- import fs6 from "fs";
3040
- import path8 from "path";
3041
- import crypto2 from "crypto";
3268
+ import fs7 from "fs";
3269
+ import path9 from "path";
3270
+ import crypto3 from "crypto";
3042
3271
 
3043
3272
  // src/dts-ambient.ts
3044
3273
  var RUNTIME_TYPE_MODULE = "@fulgurjs/federation/internal/registry.js";
@@ -3197,8 +3426,8 @@ function stripAmbientModifiers(text) {
3197
3426
  }
3198
3427
 
3199
3428
  // src/dts-discovery.ts
3200
- import fs5 from "fs";
3201
- import path7 from "path";
3429
+ import fs6 from "fs";
3430
+ import path8 from "path";
3202
3431
  function stripJsoncForConfig(text) {
3203
3432
  let out = "";
3204
3433
  let i = 0;
@@ -3238,7 +3467,7 @@ function stripJsoncForConfig(text) {
3238
3467
  }
3239
3468
  function readCfg(file) {
3240
3469
  try {
3241
- const raw = JSON.parse(stripJsoncForConfig(fs5.readFileSync(file, "utf8")));
3470
+ const raw = JSON.parse(stripJsoncForConfig(fs6.readFileSync(file, "utf8")));
3242
3471
  const cfg = { file };
3243
3472
  for (const key of ["include", "files", "exclude"]) {
3244
3473
  const v = raw[key];
@@ -3262,25 +3491,25 @@ function effectiveCfg(cfg, depth = 0) {
3262
3491
  const parentFile = resolveConfigFile(parent, cfg.file);
3263
3492
  if (!parentFile) continue;
3264
3493
  const parentCfg = effectiveCfg(readCfg(parentFile) ?? { file: parentFile }, depth + 1);
3265
- const dirOf = (f, base) => path7.resolve(path7.dirname(base), f);
3494
+ const dirOf = (f, base) => path8.resolve(path8.dirname(base), f);
3266
3495
  if (parentCfg.include && !cfg.include) {
3267
- merged.include = parentCfg.include.map((p) => path7.relative(path7.dirname(cfg.file), dirOf(p, parentFile)) || ".");
3496
+ merged.include = parentCfg.include.map((p) => path8.relative(path8.dirname(cfg.file), dirOf(p, parentFile)) || ".");
3268
3497
  }
3269
3498
  if (parentCfg.files && !cfg.files) {
3270
- merged.files = parentCfg.files.map((p) => path7.relative(path7.dirname(cfg.file), dirOf(p, parentFile)));
3499
+ merged.files = parentCfg.files.map((p) => path8.relative(path8.dirname(cfg.file), dirOf(p, parentFile)));
3271
3500
  }
3272
3501
  if (parentCfg.exclude && !cfg.exclude) {
3273
- merged.exclude = parentCfg.exclude.map((p) => path7.relative(path7.dirname(cfg.file), dirOf(p, parentFile)));
3502
+ merged.exclude = parentCfg.exclude.map((p) => path8.relative(path8.dirname(cfg.file), dirOf(p, parentFile)));
3274
3503
  }
3275
3504
  }
3276
3505
  return merged;
3277
3506
  }
3278
3507
  function resolveConfigFile(value, declaringFile) {
3279
- let candidate = path7.resolve(path7.dirname(declaringFile), value);
3508
+ let candidate = path8.resolve(path8.dirname(declaringFile), value);
3280
3509
  if (!candidate.endsWith(".json")) candidate += ".json";
3281
- if (fs5.existsSync(candidate)) return candidate;
3282
- const asDir = path7.join(candidate, "tsconfig.json");
3283
- return fs5.existsSync(asDir) ? asDir : null;
3510
+ if (fs6.existsSync(candidate)) return candidate;
3511
+ const asDir = path8.join(candidate, "tsconfig.json");
3512
+ return fs6.existsSync(asDir) ? asDir : null;
3284
3513
  }
3285
3514
  function patternCoversDir(pattern, target, cfgDir) {
3286
3515
  const norm = pattern.replace(/^\.\//, "");
@@ -3290,15 +3519,15 @@ function patternCoversDir(pattern, target, cfgDir) {
3290
3519
  if (norm.includes("**")) base = norm.slice(0, norm.indexOf("**")).replace(/\/+$/, "");
3291
3520
  else if (norm.endsWith("/*")) base = norm.slice(0, -2);
3292
3521
  else base = norm.replace(/\/+$/, "");
3293
- const abs = base === "" || base === "." ? cfgDir : path7.resolve(cfgDir, base);
3294
- return target === abs || target.startsWith(abs + path7.sep);
3522
+ const abs = base === "" || base === "." ? cfgDir : path8.resolve(cfgDir, base);
3523
+ return target === abs || target.startsWith(abs + path8.sep);
3295
3524
  }
3296
3525
  function checkTypesDiscovery(root, typesRoot) {
3297
- const relTypes = path7.relative(root, typesRoot) || ".";
3526
+ const relTypes = path8.relative(root, typesRoot) || ".";
3298
3527
  const configs = [];
3299
- let primary = path7.join(root, "tsconfig.json");
3300
- if (!fs5.existsSync(primary)) {
3301
- const candidates = fs5.existsSync(root) ? fs5.readdirSync(root).filter((f) => /^tsconfig[\w.-]*\.json$/i.test(f)).map((f) => path7.join(root, f)) : [];
3528
+ let primary = path8.join(root, "tsconfig.json");
3529
+ if (!fs6.existsSync(primary)) {
3530
+ const candidates = fs6.existsSync(root) ? fs6.readdirSync(root).filter((f) => /^tsconfig[\w.-]*\.json$/i.test(f)).map((f) => path8.join(root, f)) : [];
3302
3531
  if (candidates.length === 0) {
3303
3532
  return {
3304
3533
  covered: false,
@@ -3310,7 +3539,7 @@ function checkTypesDiscovery(root, typesRoot) {
3310
3539
  if (candidates.length > 1) {
3311
3540
  let covered = false;
3312
3541
  for (const file of candidates) {
3313
- configs.push(path7.relative(root, file));
3542
+ configs.push(path8.relative(root, file));
3314
3543
  if (configCovers(file, typesRoot)) covered = true;
3315
3544
  }
3316
3545
  if (covered) return { covered: true, configs, fixHint: null };
@@ -3321,34 +3550,34 @@ function checkTypesDiscovery(root, typesRoot) {
3321
3550
  };
3322
3551
  }
3323
3552
  }
3324
- configs.push(path7.relative(root, primary));
3553
+ configs.push(path8.relative(root, primary));
3325
3554
  if (configCovers(primary, typesRoot)) return { covered: true, configs, fixHint: null };
3326
3555
  return {
3327
3556
  covered: false,
3328
3557
  configs,
3329
- fixHint: `TYP-006 \u7C7B\u578B\u76EE\u5F55 ${relTypes} \u672A\u88AB ${path7.relative(root, primary)} \u7684 include/files \u8986\u76D6\uFF08exclude \u6216\u4E25\u683C files \u767D\u540D\u5355\u90FD\u4F1A\u8BA9\u751F\u6210\u58F0\u660E\u5BF9 IDE/tsc \u4E0D\u53EF\u89C1\uFF09\u3002\u6700\u5C0F\u4FEE\u6CD5\uFF1Ainclude \u52A0\u5165 "${relTypes}/**/*.d.ts"\uFF0C\u6216\u79FB\u9664\u5BF9\u5B83\u7684 exclude/files \u9650\u5236\u3002`
3558
+ fixHint: `TYP-006 \u7C7B\u578B\u76EE\u5F55 ${relTypes} \u672A\u88AB ${path8.relative(root, primary)} \u7684 include/files \u8986\u76D6\uFF08exclude \u6216\u4E25\u683C files \u767D\u540D\u5355\u90FD\u4F1A\u8BA9\u751F\u6210\u58F0\u660E\u5BF9 IDE/tsc \u4E0D\u53EF\u89C1\uFF09\u3002\u6700\u5C0F\u4FEE\u6CD5\uFF1Ainclude \u52A0\u5165 "${relTypes}/**/*.d.ts"\uFF0C\u6216\u79FB\u9664\u5BF9\u5B83\u7684 exclude/files \u9650\u5236\u3002`
3330
3559
  };
3331
3560
  }
3332
3561
  function configCovers(cfgFile, typesRoot) {
3333
3562
  const raw = readCfg(cfgFile);
3334
3563
  if (!raw) return false;
3335
3564
  const cfg = effectiveCfg(raw);
3336
- const cfgDir = path7.dirname(cfgFile);
3565
+ const cfgDir = path8.dirname(cfgFile);
3337
3566
  const isSolution = Array.isArray(cfg.files) && cfg.files.length === 0 && !cfg.include;
3338
3567
  if (isSolution && cfg.references && cfg.references.length > 0) {
3339
3568
  return cfg.references.some((ref) => {
3340
- const refFile = resolveConfigFile(ref.startsWith(".") || path7.isAbsolute(ref) ? ref : `./${ref}`, cfgFile);
3569
+ const refFile = resolveConfigFile(ref.startsWith(".") || path8.isAbsolute(ref) ? ref : `./${ref}`, cfgFile);
3341
3570
  return refFile !== null && configCovers(refFile, typesRoot);
3342
3571
  });
3343
3572
  }
3344
3573
  if (Array.isArray(cfg.files) && cfg.files.length > 0) {
3345
3574
  return cfg.files.some((f) => {
3346
- const abs = path7.resolve(cfgDir, f);
3347
- return abs === typesRoot || abs.startsWith(typesRoot + path7.sep);
3575
+ const abs = path8.resolve(cfgDir, f);
3576
+ return abs === typesRoot || abs.startsWith(typesRoot + path8.sep);
3348
3577
  });
3349
3578
  }
3350
3579
  const includes = cfg.include;
3351
- if (!includes) return typesRoot === cfgDir || typesRoot.startsWith(cfgDir + path7.sep);
3580
+ if (!includes) return typesRoot === cfgDir || typesRoot.startsWith(cfgDir + path8.sep);
3352
3581
  const included = includes.some((p) => patternCoversDir(p, typesRoot, cfgDir));
3353
3582
  if (!included) return false;
3354
3583
  if (cfg.exclude && cfg.exclude.some((p) => patternCoversDir(p, typesRoot, cfgDir))) return false;
@@ -3392,7 +3621,7 @@ var METADATA_FILE = "metadata.json";
3392
3621
  var AMBIENT_FORMAT = 2;
3393
3622
  function readMetadata(dir) {
3394
3623
  try {
3395
- const raw = JSON.parse(fs6.readFileSync(path8.join(dir, METADATA_FILE), "utf8"));
3624
+ const raw = JSON.parse(fs7.readFileSync(path9.join(dir, METADATA_FILE), "utf8"));
3396
3625
  if (raw.generator !== "@fulgurjs/federation" || typeof raw.revision !== "string" || !Array.isArray(raw.files)) return null;
3397
3626
  return raw;
3398
3627
  } catch {
@@ -3402,19 +3631,19 @@ function readMetadata(dir) {
3402
3631
  function cleanupOwnFiles(dir, meta) {
3403
3632
  for (const f of meta.files) {
3404
3633
  if (!isSafeBundlePath(f)) continue;
3405
- fs6.rmSync(path8.join(dir, f), { force: true });
3634
+ fs7.rmSync(path9.join(dir, f), { force: true });
3406
3635
  }
3407
- fs6.rmSync(path8.join(dir, METADATA_FILE), { force: true });
3636
+ fs7.rmSync(path9.join(dir, METADATA_FILE), { force: true });
3408
3637
  try {
3409
- if (fs6.readdirSync(dir).length === 0) fs6.rmdirSync(dir);
3638
+ if (fs7.readdirSync(dir).length === 0) fs7.rmdirSync(dir);
3410
3639
  } catch {
3411
3640
  }
3412
3641
  }
3413
3642
  function sweepStaleStaging(typesRoot, alias) {
3414
- if (!fs6.existsSync(typesRoot)) return;
3415
- for (const name of fs6.readdirSync(typesRoot)) {
3643
+ if (!fs7.existsSync(typesRoot)) return;
3644
+ for (const name of fs7.readdirSync(typesRoot)) {
3416
3645
  if (name.startsWith(`.fg-staging-${alias}-`) || name.startsWith(`.fg-trash-${alias}-`)) {
3417
- fs6.rmSync(path8.join(typesRoot, name), { recursive: true, force: true });
3646
+ fs7.rmSync(path9.join(typesRoot, name), { recursive: true, force: true });
3418
3647
  }
3419
3648
  }
3420
3649
  }
@@ -3423,7 +3652,7 @@ async function syncRemoteTypes(input) {
3423
3652
  const fetchJsonFn = input.fetchJsonImpl ?? fetchJson;
3424
3653
  const fetchTextFn = input.fetchTextImpl ?? fetchText;
3425
3654
  const timeoutMs = input.timeoutMs ?? 15e3;
3426
- const dir = path8.join(typesRoot, alias);
3655
+ const dir = path9.join(typesRoot, alias);
3427
3656
  let manifest;
3428
3657
  try {
3429
3658
  const parsed = parseManifest(await fetchJsonFn(manifestUrl, timeoutMs));
@@ -3436,7 +3665,7 @@ async function syncRemoteTypes(input) {
3436
3665
  }
3437
3666
  manifest = parsed.manifest;
3438
3667
  } catch (e) {
3439
- const meta = fs6.existsSync(dir) ? readMetadata(dir) : null;
3668
+ const meta = fs7.existsSync(dir) ? readMetadata(dir) : null;
3440
3669
  return {
3441
3670
  status: "failed",
3442
3671
  alias,
@@ -3446,7 +3675,7 @@ async function syncRemoteTypes(input) {
3446
3675
  }
3447
3676
  const types = readManifestTypes(manifest);
3448
3677
  if (!types) {
3449
- const meta = fs6.existsSync(dir) ? readMetadata(dir) : null;
3678
+ const meta = fs7.existsSync(dir) ? readMetadata(dir) : null;
3450
3679
  if (isDevManifest(manifest) && manifest.typesPending === true) {
3451
3680
  return {
3452
3681
  status: meta ? "stale" : "failed",
@@ -3466,7 +3695,7 @@ async function syncRemoteTypes(input) {
3466
3695
  };
3467
3696
  }
3468
3697
  const indexUrl = new URL(types.index, manifestUrl).toString();
3469
- const existing = fs6.existsSync(dir) ? readMetadata(dir) : null;
3698
+ const existing = fs7.existsSync(dir) ? readMetadata(dir) : null;
3470
3699
  if (existing && existing.revision === types.revision && existing.ambientFormat === AMBIENT_FORMAT) {
3471
3700
  return { status: "unchanged", alias, revision: types.revision, message: `\u8FDC\u7A0B ${alias} \u7C7B\u578B\u5DF2\u662F\u6700\u65B0\uFF08revision ${types.revision}\uFF09\u3002` };
3472
3701
  }
@@ -3516,7 +3745,7 @@ async function syncRemoteTypes(input) {
3516
3745
  if (total > DTS_TOTAL_MAX_BYTES) {
3517
3746
  return { status: "failed", alias, message: `\u8FDC\u7A0B ${alias} \u7684\u7C7B\u578B\u8D44\u6E90\u603B\u91CF\u8D85\u9650\uFF08>${DTS_TOTAL_MAX_BYTES}B\uFF09\uFF0C\u5DF2\u62D2\u7EDD\u3002` };
3518
3747
  }
3519
- const actual = crypto2.createHash("sha256").update(text, "utf8").digest("hex");
3748
+ const actual = crypto3.createHash("sha256").update(text, "utf8").digest("hex");
3520
3749
  if (actual !== digest) {
3521
3750
  return { status: "failed", alias, message: `\u8FDC\u7A0B ${alias} \u7684\u58F0\u660E\u6587\u4EF6\u6458\u8981\u4E0D\u7B26\uFF08${rel}\uFF09\uFF0C\u5DF2\u62D2\u7EDD\u672C\u6B21\u66F4\u65B0\uFF08\u4F20\u8F93\u635F\u574F\u6216\u88AB\u7BE1\u6539\uFF09\u3002` };
3522
3751
  }
@@ -3524,15 +3753,15 @@ async function syncRemoteTypes(input) {
3524
3753
  }
3525
3754
  const ambient = buildAmbientDeclarations({ alias, index, readFile: (rel) => indexRaw[rel] ?? "", source });
3526
3755
  sweepStaleStaging(typesRoot, alias);
3527
- const staging = path8.join(typesRoot, `.fg-staging-${alias}-${process.pid}-${Date.now()}`);
3528
- fs6.rmSync(staging, { recursive: true, force: true });
3529
- fs6.mkdirSync(staging, { recursive: true });
3756
+ const staging = path9.join(typesRoot, `.fg-staging-${alias}-${process.pid}-${Date.now()}`);
3757
+ fs7.rmSync(staging, { recursive: true, force: true });
3758
+ fs7.mkdirSync(staging, { recursive: true });
3530
3759
  const written = [];
3531
3760
  try {
3532
3761
  for (const [name, content] of ambient.files) {
3533
- const dest = path8.join(staging, name);
3534
- fs6.mkdirSync(path8.dirname(dest), { recursive: true });
3535
- fs6.writeFileSync(dest, content);
3762
+ const dest = path9.join(staging, name);
3763
+ fs7.mkdirSync(path9.dirname(dest), { recursive: true });
3764
+ fs7.writeFileSync(dest, content);
3536
3765
  written.push(name);
3537
3766
  }
3538
3767
  const meta = {
@@ -3545,22 +3774,22 @@ async function syncRemoteTypes(input) {
3545
3774
  externals: index.externals,
3546
3775
  syncedAt: Date.now()
3547
3776
  };
3548
- fs6.writeFileSync(path8.join(staging, METADATA_FILE), JSON.stringify(meta, null, 2));
3549
- const trash = path8.join(typesRoot, `.fg-trash-${alias}-${Date.now()}`);
3777
+ fs7.writeFileSync(path9.join(staging, METADATA_FILE), JSON.stringify(meta, null, 2));
3778
+ const trash = path9.join(typesRoot, `.fg-trash-${alias}-${Date.now()}`);
3550
3779
  let swapped = false;
3551
- if (fs6.existsSync(dir)) {
3552
- fs6.renameSync(dir, trash);
3780
+ if (fs7.existsSync(dir)) {
3781
+ fs7.renameSync(dir, trash);
3553
3782
  swapped = true;
3554
3783
  }
3555
3784
  try {
3556
- fs6.renameSync(staging, dir);
3785
+ fs7.renameSync(staging, dir);
3557
3786
  } catch (e) {
3558
- if (swapped) fs6.renameSync(trash, dir);
3787
+ if (swapped) fs7.renameSync(trash, dir);
3559
3788
  throw e;
3560
3789
  }
3561
- if (swapped) fs6.rmSync(trash, { recursive: true, force: true });
3790
+ if (swapped) fs7.rmSync(trash, { recursive: true, force: true });
3562
3791
  } catch (e) {
3563
- fs6.rmSync(staging, { recursive: true, force: true });
3792
+ fs7.rmSync(staging, { recursive: true, force: true });
3564
3793
  return { status: "failed", alias, message: `\u8FDC\u7A0B ${alias} \u7684\u7C7B\u578B\u5199\u5165\u5931\u8D25\uFF08${e.message}\uFF09\u3002\u672C\u5730\u58F0\u660E\u4FDD\u6301\u539F\u72B6\u3002` };
3565
3794
  }
3566
3795
  return {
@@ -3572,8 +3801,8 @@ async function syncRemoteTypes(input) {
3572
3801
  };
3573
3802
  }
3574
3803
  function removeGeneratedTypes(typesRoot, alias) {
3575
- const dir = path8.join(typesRoot, alias);
3576
- if (!fs6.existsSync(dir)) return false;
3804
+ const dir = path9.join(typesRoot, alias);
3805
+ if (!fs7.existsSync(dir)) return false;
3577
3806
  const meta = readMetadata(dir);
3578
3807
  if (!meta) return false;
3579
3808
  cleanupOwnFiles(dir, meta);
@@ -3635,8 +3864,8 @@ function startRemoteTypesSyncLoop(opts) {
3635
3864
  let discoveryWarned = false;
3636
3865
  const checkDiscoveryOnce = () => {
3637
3866
  if (discoveryWarned) return;
3638
- if (!fs6.existsSync(opts.typesRoot)) return;
3639
- if (fs6.readdirSync(opts.typesRoot).length === 0) return;
3867
+ if (!fs7.existsSync(opts.typesRoot)) return;
3868
+ if (fs7.readdirSync(opts.typesRoot).length === 0) return;
3640
3869
  discoveryWarned = true;
3641
3870
  const d = checkTypesDiscovery(opts.root, opts.typesRoot);
3642
3871
  if (!d.covered) warn(`[fulgurjs] ${d.fixHint ?? ""}`);
@@ -3650,7 +3879,7 @@ function startRemoteTypesSyncLoop(opts) {
3650
3879
  }
3651
3880
 
3652
3881
  // src/diagnostics.ts
3653
- import path9 from "path";
3882
+ import path10 from "path";
3654
3883
  function formatFulgurjsDiagnostic(input) {
3655
3884
  const ctx = input.details ? `
3656
3885
  \u4E0A\u4E0B\u6587\uFF1A${JSON.stringify(input.details)}` : "";
@@ -3694,8 +3923,8 @@ function debugLog(category, data) {
3694
3923
  function redactModulePath(id, root) {
3695
3924
  const clean = id.split("?")[0];
3696
3925
  try {
3697
- const rel = path9.relative(root, clean);
3698
- if (rel && !rel.startsWith("..") && !path9.isAbsolute(rel)) return rel;
3926
+ const rel = path10.relative(root, clean);
3927
+ if (rel && !rel.startsWith("..") && !path10.isAbsolute(rel)) return rel;
3699
3928
  } catch {
3700
3929
  }
3701
3930
  return clean.split("/").pop() ?? clean;
@@ -3805,22 +4034,22 @@ function genRemoteSchemaModule(schema) {
3805
4034
  }
3806
4035
 
3807
4036
  // src/vite-cache.ts
3808
- import fs7 from "fs";
3809
- import path10 from "path";
4037
+ import fs8 from "fs";
4038
+ import path11 from "path";
3810
4039
  function syncViteCacheMarker(root, pluginVersion, log) {
3811
- const viteDir = path10.join(root, "node_modules", ".vite");
3812
- const marker = path10.join(viteDir, "fulgurjs-version.txt");
4040
+ const viteDir = path11.join(root, "node_modules", ".vite");
4041
+ const marker = path11.join(viteDir, "fulgurjs-version.txt");
3813
4042
  try {
3814
- if (fs7.existsSync(viteDir)) {
3815
- const prev = fs7.existsSync(marker) ? fs7.readFileSync(marker, "utf8").trim() : "";
4043
+ if (fs8.existsSync(viteDir)) {
4044
+ const prev = fs8.existsSync(marker) ? fs8.readFileSync(marker, "utf8").trim() : "";
3816
4045
  if (prev === pluginVersion) return;
3817
- fs7.rmSync(viteDir, { recursive: true, force: true });
4046
+ fs8.rmSync(viteDir, { recursive: true, force: true });
3818
4047
  log(
3819
- `[fulgurjs] \u63D2\u4EF6\u7248\u672C\u53D8\u5316\uFF08${prev || "\u65E0\u8BB0\u5F55"} \u2192 ${pluginVersion}\uFF09\uFF0C\u5DF2\u81EA\u52A8\u6E05\u9664 ${path10.relative(root, viteDir)} \u9884\u6784\u5EFA\u7F13\u5B58\uFF08\u907F\u514D\u65E7\u95E8\u9762\u7B7E\u540D 404 / DEV-009\uFF09\u3002\u672C\u6B21\u542F\u52A8\u5C06\u91CD\u65B0\u9884\u6784\u5EFA\uFF0C\u9996\u8F6E 30~60s \u5C5E\u6682\u6001\uFF08DEV-010\uFF09\u3002`
4048
+ `[fulgurjs] \u63D2\u4EF6\u7248\u672C\u53D8\u5316\uFF08${prev || "\u65E0\u8BB0\u5F55"} \u2192 ${pluginVersion}\uFF09\uFF0C\u5DF2\u81EA\u52A8\u6E05\u9664 ${path11.relative(root, viteDir)} \u9884\u6784\u5EFA\u7F13\u5B58\uFF08\u907F\u514D\u65E7\u95E8\u9762\u7B7E\u540D 404 / DEV-009\uFF09\u3002\u672C\u6B21\u542F\u52A8\u5C06\u91CD\u65B0\u9884\u6784\u5EFA\uFF0C\u9996\u8F6E 30~60s \u5C5E\u6682\u6001\uFF08DEV-010\uFF09\u3002`
3820
4049
  );
3821
4050
  }
3822
- fs7.mkdirSync(viteDir, { recursive: true });
3823
- fs7.writeFileSync(marker, pluginVersion);
4051
+ fs8.mkdirSync(viteDir, { recursive: true });
4052
+ fs8.writeFileSync(marker, pluginVersion);
3824
4053
  } catch (e) {
3825
4054
  log(
3826
4055
  `[fulgurjs] \u81EA\u52A8\u6E05\u7406 .vite \u7F13\u5B58\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u542F\u52A8\uFF1B\u5982\u9047\u8054\u90A6\u6A21\u5757 404 \u8BF7\u624B\u5DE5\u6267\u884C rm -rf ${viteDir}\uFF09\uFF1A${String(e.message ?? e)}`
@@ -4176,7 +4405,7 @@ function repairRolldownAsyncMarks(code, sourceName) {
4176
4405
  }
4177
4406
 
4178
4407
  // src/runtime-code.gen.ts
4179
- var runtime_code_gen_default = 'var ke=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function C(c){let d=ke.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function Oe(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(m),P=/^\\d+$/.test(S);if(b&&P){let A=Number(m)-Number(S);if(A!==0)return A}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function x(c,d){let f=C(c),l=C(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:Oe(f.pre,l.pre)}var Me=/^[a-z]+[+:-]/i;function U(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Me.test(f)?!0:f.split("||").some(l=>Te(c,l.trim()))}function Te(c,d){if(!d||d==="*")return!C(c)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!U(c,`>=${S}`)||!U(c,`<=${b}`))}let l=C(c);if(!l)return!1;let m=Le(d);if(m===null)return!0;for(let S of m)if(!je(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Le(c){let d=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Ae(S,b);if(P===null)return null;d.push(...P)}return d}function Ae(c,d){let f=xe(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Ie(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Ie(c){return c.major>0?{major:c.major+1,minor:0,patch:0,pre:[]}:c.minor>0?{major:0,minor:c.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:c.patch+1,pre:[]}}function xe(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ue(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function je(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ue(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}function F(c){return c.replace(/(https?:\\/\\/)(?:[^\\s/@]+@)?([^\\s?#"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]+)(?:[?#][^\\s"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]*)?/g,"$1$2")}function M(c){return F(String(c?.message??c)).replace(/\\b(token|password|cookie|authorization)["\']?\\s*[:=]\\s*["\']?(?:Bearer\\s+)?[^\\s,;"\'}]+/gi,"$1=[redacted]")}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${F(f)}`,m),this.name="FgError",this.code=d,this.details=l}},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",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function ie(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var ae="6.14.4";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \\u94A9\\u5B50\\u5931\\u8D25\\uFF08\\u4E0D\\u5F71\\u54CD\\u52A0\\u8F7D\\uFF09\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${M(u)}\n\\u4FEE\\u6CD5\\uFF1A\\u68C0\\u67E5\\u5E76\\u4FEE\\u590D\\u8BE5 ${o} \\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:o},{cause:u});return v({remote:e,error:a}),a};K=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{K=void 0}try{await s}catch(u){throw t(u)}}async function de(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await B(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.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:n});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await Y(e.name,s,{appContext:z(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function fe(e,r,n){let o=z(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.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 ${t===void 0?"\\u7F3A\\u5931":JSON.stringify(t)}\\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});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await Y(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function pe(e,r){let n=r?.[Ne];if(typeof n!="string"||n==="")return;let o=q(e.name);o.setupPromise||(o.setupPromise=de(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await fe(e,o,t)}function me(){for(let e of D.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let L=e=>c[e]??=Object.create(null);function v(e){if(!ie(e.error)){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function ge(e="default"){return L(e),c}function H(e,r,n,o,t={}){let s=L(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function he(e){let r=(n,o,t)=>{if(n===void 0)return;if(!(typeof n=="number"&&(t?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${o} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${t?" 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 Z(e){for(let r of e){he(r);let n=d.get(r.name);d.set(r.name,{timeout:J,retries:ce,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Fe,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ve,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:j(r.entry),status:"idle",setup:"none"}})}}function ye(e){Z([e])}function Se(e){f.push(...e),m.clear(),ue()}function I(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=L(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||U(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(x).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u5355\\u4F8B\\u5019\\u9009\\u4E3A ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n`+(r.strictVersion?`\\u7ED3\\u679C\\uFF1AstrictVersion \\u5DF2\\u5F00\\u542F\\uFF0C\\u672C\\u6B21\\u52A0\\u8F7D\\u5DF2\\u62D2\\u7EDD\\uFF0C\\u672A\\u4EA4\\u4ED8\\u4E0D\\u517C\\u5BB9\\u5B9E\\u4F8B\\u3002\n`:`\\u7ED3\\u679C\\uFF1A\\u590D\\u7528\\u6B64\\u5355\\u4F8B\\uFF1B\\u8BF7\\u786E\\u8BA4\\u4E24\\u7AEF API \\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\\u3002";if(r.strictVersion){let T=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:T}),T}let $=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has($)||(l.add($),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(x).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.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 v({remote:t,error:i}),i}return}return u[p]}function Q(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=L(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=I(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function ee(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=L(n)[o]||{},s=S(e,r),u=_.resolveShare?m.get(s):void 0,a=u||I(e,r);if(!a){if(r.fallback){let i=await r.fallback();return Q(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${n}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${r.requiredVersion??"\\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:o,requiredVersion:r.requiredVersion});throw v({remote:o,error:p}),p}if(_.resolveShare&&!u){let p=await _.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function Ee(e,r={}){return _.resolveShare?m.get(S(e,r))?.value:I(e,r,!0)?.value}function Re(e,r,n,o){Q(e,{...r,localVersion:n},o)}function we(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||_.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:I(e,r),available:Object.values(L(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\n\\u539F\\u56E0\\uFF1A\\u6A21\\u5757\\u6C42\\u503C\\u671F\\u65E0\\u6CD5\\u7B49\\u5F85\\u5F02\\u6B65\\u51B3\\u7B56\\uFF1B\\u9759\\u6001\\u5BFC\\u5165\\u4E0D\\u80FD\\u9759\\u9ED8\\u5FFD\\u7565 hook \\u51B3\\u7B56\\u3002\n\\u4FEE\\u6CD5\\uFF1AVite 8 HTML \\u5165\\u53E3\\u4F1A\\u5148\\u5B8C\\u6210\\u5F02\\u6B65\\u534F\\u5546\\uFF1B\\u5176\\u4ED6\\u5165\\u53E3\\u8BF7\\u5148\\u52A8\\u6001 loadShare \\u5EFA\\u7ACB\\u5FEB\\u7167\\uFF0C\\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u8BA9\\u8BE5\\u952E\\u540C\\u6B65\\u8FD4\\u56DE picked\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\n\\u539F\\u56E0\\uFF1A\\u540C\\u6B65\\u6D88\\u8D39\\u4E0D\\u80FD\\u7B49\\u5F85\\u52A0\\u8F7D\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5148\\u52A8\\u6001 loadShare \\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u9009\\u62E9\\u5DF2\\u5C31\\u7EEA\\u5B9E\\u4F8B/\\u672C\\u5730\\u7248\\u672C ${r.localVersion??"\\u672A\\u58F0\\u660E"}\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=I(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!U(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\n\\u539F\\u56E0\\uFF1A\\u4E0D\\u80FD\\u6539\\u7528\\u4E0D\\u517C\\u5BB9\\u7684\\u672C\\u5730\\u526F\\u672C\\u6216\\u5206\\u88C2\\u5355\\u4F8B\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u8BA9\\u8BE5\\u5171\\u4EAB\\u7684\\u9996\\u6B21\\u6D88\\u8D39\\u5148\\u7ECF\\u4E00\\u6B21\\u52A8\\u6001 loadShare \\u5B8C\\u6210\\u52A0\\u8F7D\\uFF0C\\u6216\\u5C06\\u672C\\u5E94\\u7528\\u7248\\u672C\\u4E0E\\u4F5C\\u7528\\u57DF\\u63D0\\u4F9B\\u7248\\u672C\\u5BF9\\u9F50\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let s=`${n}|${o}|${t.version}|${r.localVersion}`;return l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function be(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=I(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(L(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await ee(r,n)}}function j(e=""){return F(e).split(/[?#]/,1)[0]}function re(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let ve=e=>new Promise(r=>setTimeout(r,e)),ne=new Set;function G(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 n=`\\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){let o=`${r.name}\\u2194${e.name}`;ne.has(o)||(ne.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function te(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,t=r.entryInflight.get(e),s=t??import(o);return t||(r.entryInflight.set(e,s),s.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),re(s,r.timeout??J,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${j(e)}`)}async function oe(e,r){let n=e.shareScope||"default";if(e.container){let s=V.get(e.container);if(s&&s!==n)throw new E(R.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 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.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(o.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,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await re(e.promise(),e.timeout??J,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await te(i,e):i;return G(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await te(i,e);return G(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??ce;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch($){if(a=$,$?.code)throw $;h<g&&await ve(Math.min(De,200*2**h)*(1-Ke*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=j(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.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 E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${M(a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}G(u,e);let p=V.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),V.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=M(s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function X(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:se(e.slice(r+1))}}function se(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Pe(e,r){let{remote:n,module:o}=X(e);if(o&&K===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\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:n});try{_.beforeLoadRemote?.({remote:n,module:o})}catch(i){W("beforeLoadRemote",i)}let t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?B(e):Promise.resolve();[s]=await Promise.all([oe(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await pe(t,s);let u=q(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=q(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){W("afterLoadRemote",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function $e(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return oe(r)}async function B(e,r={}){let{remote:n,module:o}=X(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=A.get(g);if(i)return i;let h=new Promise(O=>{let $=()=>{g.removeEventListener("load",$),g.removeEventListener("error",T),O()},T=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),$()};g.addEventListener("load",$,{once:!0}),g.addEventListener("error",T,{once:!0}),g.sheet&&$()});return A.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?A.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\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:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],$=o?O.filter(([k,N])=>se(String(N?.name??k))===o):O,T=[];for(let[,k]of $)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let N of k.css){if(typeof N!="string")continue;let _e=a(y(N),"style");s==="preload"&&T.push(_e)}await Promise.all(T);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:j(n.entry)};return e},errors:[]}),{shareScopeMap:c,initSharing:ge,registerShare:H,registerRemotes:Z,registerRemote:ye,registerPlugins:Se,loadShare:ee,loadShareSync:we,prepareShares:be,getLoadedShare:Ee,pinLoadedShare:Re,loadRemote:Pe,getContainer:$e,preloadRemote:B,parseSpec:X,clearSessionState:me,reportRemoteError:e=>{v(e)}}}var le=globalThis,w=le.__FULGURJS_RUNTIME__??qe();le.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Ye=ae;function Ze(){return w}var Qe=w.initSharing,er=w.registerShare,rr=w.registerRemotes,nr=w.registerRemote,tr=w.registerPlugins,or=w.loadShare,sr=w.getLoadedShare,ir=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),ar=w.loadShareSync,cr=w.pinLoadedShare,lr=w.loadRemote,ur=w.getContainer,dr=w.preloadRemote,fr=w.parseSpec,pr=w.clearSessionState,mr=w.shareScopeMap;function gr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var hr=w;export{pr as clearSessionState,hr as default,ur as getContainer,sr as getLoadedShare,Ze as getRuntime,Qe as initSharing,lr as loadRemote,or as loadShare,ar as loadShareSync,fr as parseSpec,cr as pinLoadedShare,dr as preloadRemote,ir as prepareShares,tr as registerPlugins,nr as registerRemote,rr as registerRemotes,er as registerShare,w as runtime,mr as shareScopeMap,gr as unwrapDefault,Ye as version};\n';
4408
+ var runtime_code_gen_default = 'var ke=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function C(c){let d=ke.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function Oe(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(m),P=/^\\d+$/.test(S);if(b&&P){let A=Number(m)-Number(S);if(A!==0)return A}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function x(c,d){let f=C(c),l=C(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:Oe(f.pre,l.pre)}var Me=/^[a-z]+[+:-]/i;function U(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Me.test(f)?!0:f.split("||").some(l=>Te(c,l.trim()))}function Te(c,d){if(!d||d==="*")return!C(c)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!U(c,`>=${S}`)||!U(c,`<=${b}`))}let l=C(c);if(!l)return!1;let m=Le(d);if(m===null)return!0;for(let S of m)if(!je(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Le(c){let d=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Ae(S,b);if(P===null)return null;d.push(...P)}return d}function Ae(c,d){let f=xe(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Ie(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Ie(c){return c.major>0?{major:c.major+1,minor:0,patch:0,pre:[]}:c.minor>0?{major:0,minor:c.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:c.patch+1,pre:[]}}function xe(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ue(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function je(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ue(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}function F(c){return c.replace(/(https?:\\/\\/)(?:[^\\s/@]+@)?([^\\s?#"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]+)(?:[?#][^\\s"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]*)?/g,"$1$2")}function M(c){return F(String(c?.message??c)).replace(/\\b(token|password|cookie|authorization)["\']?\\s*[:=]\\s*["\']?(?:Bearer\\s+)?[^\\s,;"\'}]+/gi,"$1=[redacted]")}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${F(f)}`,m),this.name="FgError",this.code=d,this.details=l}},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",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function ie(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var ae="6.14.5";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \\u94A9\\u5B50\\u5931\\u8D25\\uFF08\\u4E0D\\u5F71\\u54CD\\u52A0\\u8F7D\\uFF09\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${M(u)}\n\\u4FEE\\u6CD5\\uFF1A\\u68C0\\u67E5\\u5E76\\u4FEE\\u590D\\u8BE5 ${o} \\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:o},{cause:u});return v({remote:e,error:a}),a};K=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{K=void 0}try{await s}catch(u){throw t(u)}}async function de(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await B(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.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:n});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await Y(e.name,s,{appContext:z(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function fe(e,r,n){let o=z(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.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 ${t===void 0?"\\u7F3A\\u5931":JSON.stringify(t)}\\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});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await Y(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function pe(e,r){let n=r?.[Ne];if(typeof n!="string"||n==="")return;let o=q(e.name);o.setupPromise||(o.setupPromise=de(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await fe(e,o,t)}function me(){for(let e of D.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let L=e=>c[e]??=Object.create(null);function v(e){if(!ie(e.error)){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function ge(e="default"){return L(e),c}function H(e,r,n,o,t={}){let s=L(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function he(e){let r=(n,o,t)=>{if(n===void 0)return;if(!(typeof n=="number"&&(t?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${o} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${t?" 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 Z(e){for(let r of e){he(r);let n=d.get(r.name);d.set(r.name,{timeout:J,retries:ce,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Fe,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ve,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:j(r.entry),status:"idle",setup:"none"}})}}function ye(e){Z([e])}function Se(e){f.push(...e),m.clear(),ue()}function I(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=L(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||U(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(x).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u5355\\u4F8B\\u5019\\u9009\\u4E3A ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n`+(r.strictVersion?`\\u7ED3\\u679C\\uFF1AstrictVersion \\u5DF2\\u5F00\\u542F\\uFF0C\\u672C\\u6B21\\u52A0\\u8F7D\\u5DF2\\u62D2\\u7EDD\\uFF0C\\u672A\\u4EA4\\u4ED8\\u4E0D\\u517C\\u5BB9\\u5B9E\\u4F8B\\u3002\n`:`\\u7ED3\\u679C\\uFF1A\\u590D\\u7528\\u6B64\\u5355\\u4F8B\\uFF1B\\u8BF7\\u786E\\u8BA4\\u4E24\\u7AEF API \\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\\u3002";if(r.strictVersion){let T=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:T}),T}let $=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has($)||(l.add($),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(x).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.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 v({remote:t,error:i}),i}return}return u[p]}function Q(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=L(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=I(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function ee(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=L(n)[o]||{},s=S(e,r),u=_.resolveShare?m.get(s):void 0,a=u||I(e,r);if(!a){if(r.fallback){let i=await r.fallback();return Q(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${n}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${r.requiredVersion??"\\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:o,requiredVersion:r.requiredVersion});throw v({remote:o,error:p}),p}if(_.resolveShare&&!u){let p=await _.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function Ee(e,r={}){return _.resolveShare?m.get(S(e,r))?.value:I(e,r,!0)?.value}function Re(e,r,n,o){Q(e,{...r,localVersion:n},o)}function we(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||_.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:I(e,r),available:Object.values(L(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\n\\u539F\\u56E0\\uFF1A\\u6A21\\u5757\\u6C42\\u503C\\u671F\\u65E0\\u6CD5\\u7B49\\u5F85\\u5F02\\u6B65\\u51B3\\u7B56\\uFF1B\\u9759\\u6001\\u5BFC\\u5165\\u4E0D\\u80FD\\u9759\\u9ED8\\u5FFD\\u7565 hook \\u51B3\\u7B56\\u3002\n\\u4FEE\\u6CD5\\uFF1AVite 8 HTML \\u5165\\u53E3\\u4F1A\\u5148\\u5B8C\\u6210\\u5F02\\u6B65\\u534F\\u5546\\uFF1B\\u5176\\u4ED6\\u5165\\u53E3\\u8BF7\\u5148\\u52A8\\u6001 loadShare \\u5EFA\\u7ACB\\u5FEB\\u7167\\uFF0C\\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u8BA9\\u8BE5\\u952E\\u540C\\u6B65\\u8FD4\\u56DE picked\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\n\\u539F\\u56E0\\uFF1A\\u540C\\u6B65\\u6D88\\u8D39\\u4E0D\\u80FD\\u7B49\\u5F85\\u52A0\\u8F7D\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5148\\u52A8\\u6001 loadShare \\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u9009\\u62E9\\u5DF2\\u5C31\\u7EEA\\u5B9E\\u4F8B/\\u672C\\u5730\\u7248\\u672C ${r.localVersion??"\\u672A\\u58F0\\u660E"}\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=I(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!U(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\n\\u539F\\u56E0\\uFF1A\\u4E0D\\u80FD\\u6539\\u7528\\u4E0D\\u517C\\u5BB9\\u7684\\u672C\\u5730\\u526F\\u672C\\u6216\\u5206\\u88C2\\u5355\\u4F8B\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u8BA9\\u8BE5\\u5171\\u4EAB\\u7684\\u9996\\u6B21\\u6D88\\u8D39\\u5148\\u7ECF\\u4E00\\u6B21\\u52A8\\u6001 loadShare \\u5B8C\\u6210\\u52A0\\u8F7D\\uFF0C\\u6216\\u5C06\\u672C\\u5E94\\u7528\\u7248\\u672C\\u4E0E\\u4F5C\\u7528\\u57DF\\u63D0\\u4F9B\\u7248\\u672C\\u5BF9\\u9F50\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let s=`${n}|${o}|${t.version}|${r.localVersion}`;return l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function be(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=I(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(L(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await ee(r,n)}}function j(e=""){return F(e).split(/[?#]/,1)[0]}function re(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let ve=e=>new Promise(r=>setTimeout(r,e)),ne=new Set;function G(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 n=`\\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){let o=`${r.name}\\u2194${e.name}`;ne.has(o)||(ne.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function te(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,t=r.entryInflight.get(e),s=t??import(o);return t||(r.entryInflight.set(e,s),s.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),re(s,r.timeout??J,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${j(e)}`)}async function oe(e,r){let n=e.shareScope||"default";if(e.container){let s=V.get(e.container);if(s&&s!==n)throw new E(R.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 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.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(o.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,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await re(e.promise(),e.timeout??J,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await te(i,e):i;return G(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await te(i,e);return G(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??ce;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch($){if(a=$,$?.code)throw $;h<g&&await ve(Math.min(De,200*2**h)*(1-Ke*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=j(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.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 E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${M(a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}G(u,e);let p=V.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),V.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=M(s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function X(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:se(e.slice(r+1))}}function se(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Pe(e,r){let{remote:n,module:o}=X(e);if(o&&K===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\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:n});try{_.beforeLoadRemote?.({remote:n,module:o})}catch(i){W("beforeLoadRemote",i)}let t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?B(e):Promise.resolve();[s]=await Promise.all([oe(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await pe(t,s);let u=q(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=q(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){W("afterLoadRemote",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function $e(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return oe(r)}async function B(e,r={}){let{remote:n,module:o}=X(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=A.get(g);if(i)return i;let h=new Promise(O=>{let $=()=>{g.removeEventListener("load",$),g.removeEventListener("error",T),O()},T=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),$()};g.addEventListener("load",$,{once:!0}),g.addEventListener("error",T,{once:!0}),g.sheet&&$()});return A.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?A.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\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:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],$=o?O.filter(([k,N])=>se(String(N?.name??k))===o):O,T=[];for(let[,k]of $)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let N of k.css){if(typeof N!="string")continue;let _e=a(y(N),"style");s==="preload"&&T.push(_e)}await Promise.all(T);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:j(n.entry)};return e},errors:[]}),{shareScopeMap:c,initSharing:ge,registerShare:H,registerRemotes:Z,registerRemote:ye,registerPlugins:Se,loadShare:ee,loadShareSync:we,prepareShares:be,getLoadedShare:Ee,pinLoadedShare:Re,loadRemote:Pe,getContainer:$e,preloadRemote:B,parseSpec:X,clearSessionState:me,reportRemoteError:e=>{v(e)}}}var le=globalThis,w=le.__FULGURJS_RUNTIME__??qe();le.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Ye=ae;function Ze(){return w}var Qe=w.initSharing,er=w.registerShare,rr=w.registerRemotes,nr=w.registerRemote,tr=w.registerPlugins,or=w.loadShare,sr=w.getLoadedShare,ir=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),ar=w.loadShareSync,cr=w.pinLoadedShare,lr=w.loadRemote,ur=w.getContainer,dr=w.preloadRemote,fr=w.parseSpec,pr=w.clearSessionState,mr=w.shareScopeMap;function gr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var hr=w;export{pr as clearSessionState,hr as default,ur as getContainer,sr as getLoadedShare,Ze as getRuntime,Qe as initSharing,lr as loadRemote,or as loadShare,ar as loadShareSync,fr as parseSpec,cr as pinLoadedShare,dr as preloadRemote,ir as prepareShares,tr as registerPlugins,nr as registerRemote,rr as registerRemotes,er as registerShare,w as runtime,mr as shareScopeMap,gr as unwrapDefault,Ye as version};\n';
4180
4409
 
4181
4410
  // src/index.ts
4182
4411
  function readRuntimeCode() {
@@ -4193,7 +4422,7 @@ function enumerateCjsExports(packageName, appRoot) {
4193
4422
  if (cached) return cached;
4194
4423
  let names = [];
4195
4424
  try {
4196
- const appRequire = createRequire4(path11.join(appRoot, "package.json"));
4425
+ const appRequire = createRequire4(path12.join(appRoot, "package.json"));
4197
4426
  const mod = appRequire(packageName);
4198
4427
  names = Object.keys(mod);
4199
4428
  } catch {
@@ -4311,7 +4540,7 @@ async function resolveSharedImportTarget(item, root) {
4311
4540
  const specifier = item.import;
4312
4541
  if (typeof specifier !== "string") return item.shareKey;
4313
4542
  try {
4314
- const resolved = await this.resolve?.(specifier, path11.join(root, "package.json"), { skipSelf: true });
4543
+ const resolved = await this.resolve?.(specifier, path12.join(root, "package.json"), { skipSelf: true });
4315
4544
  if (resolved?.id) return resolved.id;
4316
4545
  } catch {
4317
4546
  }
@@ -4345,7 +4574,7 @@ function federation(options) {
4345
4574
  enforce: "pre",
4346
4575
  async config(userConfig, env) {
4347
4576
  state.command = env.command;
4348
- const root = path11.resolve(userConfig.root ?? process.cwd());
4577
+ const root = path12.resolve(userConfig.root ?? process.cwd());
4349
4578
  const normalized = normalizeOptions(options, root, env.command);
4350
4579
  state.normalized = normalized;
4351
4580
  state.rolldownBuild = env.command === "build" && Number((readInstalledVersion(root, "vite") ?? "0").split(".")[0]) >= 8;
@@ -4624,7 +4853,7 @@ export { default } from ${JSON.stringify(url)};
4624
4853
  },
4625
4854
  resolveId(source, importer) {
4626
4855
  if (state.normalized && importer && (importer.includes("virtual:fulgurjs-shared:") || importer.includes("virtual:fulgurjs-shared-ns:")) && /^\.\.?\//.test(source) && !source.startsWith("virtual:fulgurjs-")) {
4627
- const resolved = path11.resolve(state.normalized.root, source);
4856
+ const resolved = path12.resolve(state.normalized.root, source);
4628
4857
  return resolved + (source.match(/\?[^/]*$/)?.[0] ?? "");
4629
4858
  }
4630
4859
  let s = source;
@@ -4718,7 +4947,7 @@ export { default } from ${JSON.stringify(url)};
4718
4947
  }
4719
4948
  let importTarget = item.import;
4720
4949
  try {
4721
- const resolvedImport = await this.resolve?.(item.import, path11.join(state.normalized.root, "package.json"), { skipSelf: true });
4950
+ const resolvedImport = await this.resolve?.(item.import, path12.join(state.normalized.root, "package.json"), { skipSelf: true });
4722
4951
  if (resolvedImport?.id) importTarget = resolvedImport.id;
4723
4952
  } catch {
4724
4953
  }
@@ -4827,7 +5056,7 @@ ${code}`, map: null };
4827
5056
  const srcRe = /src=["']([^"']+)["']/;
4828
5057
  const entryPath = (src) => {
4829
5058
  const file = src.startsWith("/@fs/") ? src.slice(4) : src;
4830
- return path11.isAbsolute(file) && fs8.existsSync(file) ? file : path11.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
5059
+ return path12.isAbsolute(file) && fs9.existsSync(file) ? file : path12.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
4831
5060
  };
4832
5061
  for (const tag of html.match(moduleScriptRe) ?? []) {
4833
5062
  const src = srcRe.exec(tag)?.[1];
@@ -4858,7 +5087,7 @@ ${code}`, map: null };
4858
5087
  state.providerEntrySeeds = [];
4859
5088
  providerClosureCache.clear();
4860
5089
  providerClosureBuilt = false;
4861
- const providerRequire = createRequire4(path11.join(n.root, "package.json"));
5090
+ const providerRequire = createRequire4(path12.join(n.root, "package.json"));
4862
5091
  for (const item of n.shared) {
4863
5092
  if (item.import === false) continue;
4864
5093
  try {
@@ -4875,7 +5104,7 @@ ${code}`, map: null };
4875
5104
  {
4876
5105
  for (const item of n.shared) {
4877
5106
  if (item.import === false) continue;
4878
- const resolved = await this.resolve(item.import, path11.join(n.root, "index.html"));
5107
+ const resolved = await this.resolve(item.import, path12.join(n.root, "index.html"));
4879
5108
  const file = resolved?.id.replace(/^\0/, "").split("?")[0];
4880
5109
  if (!file) continue;
4881
5110
  const marker = "/node_modules/";
@@ -4893,7 +5122,7 @@ ${code}`, map: null };
4893
5122
  if (state.manualChunkSpecsPending) {
4894
5123
  for (const [group, specifier] of state.manualChunkSpecsPending) {
4895
5124
  try {
4896
- const r = await this.resolve(specifier, path11.join(n.root, "index.html"));
5125
+ const r = await this.resolve(specifier, path12.join(n.root, "index.html"));
4897
5126
  if (r?.id) {
4898
5127
  state.manualChunkGroups.set(r.id, group);
4899
5128
  state.manualChunkGroups.set(r.id.split("?")[0], group);
@@ -4923,7 +5152,7 @@ ${code}`, map: null };
4923
5152
  };
4924
5153
  for (const item of n.shared) {
4925
5154
  if (item.import === false) continue;
4926
- const selfFile = await this.resolve(item.import, path11.join(n.root, "index.html")).then(
5155
+ const selfFile = await this.resolve(item.import, path12.join(n.root, "index.html")).then(
4927
5156
  (r) => r?.id?.split("?")[0] ?? null
4928
5157
  ).catch(() => null);
4929
5158
  for (const alias of item.aliases) {
@@ -4938,7 +5167,7 @@ ${code}`, map: null };
4938
5167
  }
4939
5168
  }
4940
5169
  if (!file) {
4941
- file = await this.resolve(alias, path11.join(n.root, "index.html")).then(
5170
+ file = await this.resolve(alias, path12.join(n.root, "index.html")).then(
4942
5171
  (r) => r?.id?.split("?")[0] ?? null
4943
5172
  ).catch(() => null);
4944
5173
  }
@@ -4961,7 +5190,7 @@ ${code}`, map: null };
4961
5190
  }
4962
5191
  if (n.exposes.length > 0) {
4963
5192
  for (const e of n.exposes) {
4964
- const resolved = await this.resolve(e.import, path11.join(n.root, "index.html"));
5193
+ const resolved = await this.resolve(e.import, path12.join(n.root, "index.html"));
4965
5194
  if (resolved) {
4966
5195
  state.exposeAbsPaths[e.import] = resolved.id.split("?")[0];
4967
5196
  } else {
@@ -5226,9 +5455,10 @@ ${entryChunk.code}`;
5226
5455
  if (n.exposes.length > 0 && n.dts) {
5227
5456
  typesServer = createDevTypesServer(n);
5228
5457
  let regenTimer = null;
5229
- const syncedTypesDir = typeof n.dts === "object" && n.dts.dir ? path11.resolve(n.root, n.dts.dir) : path11.join(n.root, fs8.existsSync(path11.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types");
5458
+ const syncedTypesDir = typeof n.dts === "object" && n.dts.dir ? path12.resolve(n.root, n.dts.dir) : path12.join(n.root, fs9.existsSync(path12.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types");
5230
5459
  const scheduleRegen = (id) => {
5231
5460
  if (!isTypesInputChange(n.root, id, syncedTypesDir)) return;
5461
+ typesServer?.markInputChanged();
5232
5462
  if (regenTimer) clearTimeout(regenTimer);
5233
5463
  regenTimer = setTimeout(() => {
5234
5464
  regenTimer = null;
@@ -5293,14 +5523,14 @@ ${entryChunk.code}`;
5293
5523
  if (n.remotes.length > 0 && n.dts && state.command === "serve") {
5294
5524
  server.httpServer?.once("listening", () => {
5295
5525
  const dtsOpt = n.dts === true ? true : n.dts;
5296
- const typesRoot = path11.join(
5526
+ const typesRoot = path12.join(
5297
5527
  n.root,
5298
- dtsOpt === false ? "" : (typeof dtsOpt === "object" ? dtsOpt.dir : void 0) ?? (fs8.existsSync(path11.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types")
5528
+ dtsOpt === false ? "" : (typeof dtsOpt === "object" ? dtsOpt.dir : void 0) ?? (fs9.existsSync(path12.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types")
5299
5529
  );
5300
5530
  try {
5301
- if (fs8.existsSync(typesRoot)) {
5531
+ if (fs9.existsSync(typesRoot)) {
5302
5532
  const activeKeys = new Set(n.remotes.map((r) => r.key));
5303
- for (const name of fs8.readdirSync(typesRoot)) {
5533
+ for (const name of fs9.readdirSync(typesRoot)) {
5304
5534
  if (!activeKeys.has(name)) removeGeneratedTypes(typesRoot, name);
5305
5535
  }
5306
5536
  }
@@ -5354,7 +5584,7 @@ ${entryChunk.code}`;
5354
5584
  async transform(code, id) {
5355
5585
  if (!state.normalized) return null;
5356
5586
  const clean = id.split("?")[0];
5357
- const isAppSource = clean.startsWith(state.normalized.root + path11.sep) && !clean.includes(`${path11.sep}node_modules${path11.sep}`) && !clean.includes(`${path11.sep}.vite${path11.sep}`);
5587
+ const isAppSource = clean.startsWith(state.normalized.root + path12.sep) && !clean.includes(`${path12.sep}node_modules${path12.sep}`) && !clean.includes(`${path12.sep}.vite${path12.sep}`);
5358
5588
  const evidence = isAppSource && clean.endsWith(".vue") && (!id.includes("?") || /[?&]type=script(?:&|$)/.test(id)) ? tagVueRuntime(code, (source) => this.parse(source)) : null;
5359
5589
  if (evidence) code = evidence.code;
5360
5590
  const entryRewrite = state.command === "serve" && isAppSource ? await rewriteRuntimeEntryImports(code, isExposeTargetFile(clean, state.normalized.root, state.normalized.exposes)) : null;
@@ -5400,7 +5630,7 @@ ${entryChunk.code}`;
5400
5630
  if (!n) return;
5401
5631
  for (const s of n.shared) {
5402
5632
  if (s.import === false) continue;
5403
- void server.pluginContainer.resolveId(s.import, path11.join(n.root, "index.html")).then((r) => {
5633
+ void server.pluginContainer.resolveId(s.import, path12.join(n.root, "index.html")).then((r) => {
5404
5634
  if (r?.id) state.resolvedSharedPaths.set(r.id.split("?")[0], s.configKey);
5405
5635
  }).catch(() => {
5406
5636
  });