@appshell/loader 1.0.0-alpha.63 → 1.0.0-alpha.65
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/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@appshell/runtime"));else if("function"==typeof define&&define.amd)define(["@appshell/runtime"],t);else{var o="object"==typeof exports?t(require("@appshell/runtime")):t(e["@appshell/runtime"]);for(var r in o)("object"==typeof exports?exports:e)[r]=o[r]}}(this,(e=>(()=>{"use strict";var t={164(t){t.exports=e}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var s=o[e]={exports:{}};return t[e](s,s.exports,r),s.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{chainResolvers:()=>ko,default:()=>To,inlineResolver:()=>vo,registryResolver:()=>Ro});var s=r(164);const i=".json",a="FEDERATION_DEBUG";let c=function(e){return e[e.UNKNOWN=1]="UNKNOWN",e[e.CALCULATED=2]="CALCULATED",e[e.NO_USE=0]="NO_USE",e}({});const l="undefined"!=typeof ENV_TARGET?"web"===ENV_TARGET:"undefined"!=typeof window&&void 0!==window.document;function h(){return l}function m(){return"undefined"!=typeof navigator&&"ReactNative"===navigator?.product}function u(){return"undefined"!=typeof process&&process.env&&process.env.FEDERATION_DEBUG?Boolean(process.env.FEDERATION_DEBUG):!("undefined"==typeof FEDERATION_DEBUG||!Boolean(FEDERATION_DEBUG))||function(){try{if(h()&&window.localStorage)return Boolean(localStorage.getItem(a))}catch(e){return!1}return!1}()}const f="[ Module Federation ]",d=console,p=["logger.ts","logger.js","captureStackTrace","Logger.emit","Logger.log","Logger.info","Logger.warn","Logger.error","Logger.debug"];var y=class{constructor(e,t=d){this.prefix=e,this.delegate=t??d}setPrefix(e){this.prefix=e}setDelegate(e){this.delegate=e??d}emit(e,t){const o=this.delegate,r=u()?function(){try{const e=(new Error).stack;if(!e)return;const[,...t]=e.split("\n"),o=t.filter((e=>!p.some((t=>e.includes(t)))));if(!o.length)return;return`Stack trace:\n${o.slice(0,5).join("\n")}`}catch{return}}():void 0,n=r?[...t,r]:t,s=(()=>{switch(e){case"log":return["log","info"];case"info":return["info","log"];case"warn":return["warn","info","log"];case"error":return["error","warn","log"];default:return["debug","log"]}})();for(const e of s){const t=o[e];if("function"==typeof t)return void t.call(o,this.prefix,...n)}for(const e of s){const t=d[e];if("function"==typeof t)return void t.call(d,this.prefix,...n)}}log(...e){this.emit("log",e)}warn(...e){this.emit("warn",e)}error(...e){this.emit("error",e)}success(...e){this.emit("info",e)}info(...e){this.emit("info",e)}ready(...e){this.emit("info",e)}debug(...e){u()&&this.emit("debug",e)}};function g(e){return new y(e)}g(f),function(e){const t=new y(e);Object.defineProperty(t,"__mf_infrastructure_logger__",{value:!0,enumerable:!1,configurable:!1})}(f);const E=(e,t,o,r)=>{const n=[`${[t[e]]} #${e}`];return o&&n.push(`args: ${JSON.stringify(o)}`),n.push((e=>`View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${e.split("-")[0].toLowerCase()}#${e.toLowerCase()}`)(e)),r&&n.push(`Original Error Message:\n ${r}`),n.join("\n")},S="[ Federation Runtime ]",_=g(S);function I(e,t,o,r,n){e||(void 0!==o?b(t,o,r,void 0):b(t))}function b(e,t,o,r,n){if(void 0!==t)return function(e,t,o,r,n){return(e=>{throw new Error(`${S}: ${e}`)})(E(e,t,o,n))}(e,t,o??{},0,r);const s=e;if(s instanceof Error)throw s.message.startsWith(S)||(s.message=`${S}: ${s.message}`),s;throw new Error(`${S}: ${s}`)}function w(e){e instanceof Error?(e.message.startsWith(S)||(e.message=`${S}: ${e.message}`),_.warn(e)):_.warn(e)}function N(e){return"version"in e&&e.version?`${e.name}:${e.version}`:"entry"in e&&e.entry?`${e.name}:${e.entry}`:`${e.name}`}function $(e){return void 0!==e.entry}function v(e){return!e.entry.includes(".json")}function R(e){return e&&"object"==typeof e}const k=Object.prototype.toString;function O(e){return Array.isArray(e)?e:[e]}function T(e){const t={url:"",type:"global",globalName:""};return l||m()||!("ssrRemoteEntry"in e)?"remoteEntry"in e?{url:e.remoteEntry,type:e.remoteEntryType,globalName:e.globalName}:t:"ssrRemoteEntry"in e?{url:e.ssrRemoteEntry||t.url,type:e.ssrRemoteEntryType||t.type,globalName:e.globalName}:t}const A="object"==typeof globalThis?globalThis:window,x=(()=>{try{return document.defaultView}catch{return A}})(),M=x;function L(e,t,o){Object.defineProperty(e,t,{value:o,configurable:!1,writable:!0})}function P(e,t){return Object.hasOwnProperty.call(e,t)}P(A,"__GLOBAL_LOADING_REMOTE_ENTRY__")||L(A,"__GLOBAL_LOADING_REMOTE_ENTRY__",{});const D=A.__GLOBAL_LOADING_REMOTE_ENTRY__;function H(e){P(e,"__VMOK__")&&!P(e,"__FEDERATION__")&&L(e,"__FEDERATION__",e.__VMOK__),P(e,"__FEDERATION__")||(L(e,"__FEDERATION__",{__GLOBAL_PLUGIN__:[],__INSTANCES__:[],moduleInfo:{},__SHARE__:{},__MANIFEST_LOADING__:{},__PRELOADED_MAP__:new Map}),L(e,"__VMOK__",e.__FEDERATION__)),e.__FEDERATION__.__GLOBAL_PLUGIN__??=[],e.__FEDERATION__.__INSTANCES__??=[],e.__FEDERATION__.moduleInfo??={},e.__FEDERATION__.__SHARE__??={},e.__FEDERATION__.__MANIFEST_LOADING__??={},e.__FEDERATION__.__PRELOADED_MAP__??=new Map}function F(e,t){if("string"==typeof t){if(e[t])return{value:e[t],key:t};{const o=Object.keys(e);for(const r of o){const[o,n]=r.split(":"),s=`${o}:${t}`,i=e[s];if(i)return{value:i,key:s}}return{value:void 0,key:t}}}b(`getInfoWithoutType: "key" must be a string, got ${typeof t} (${JSON.stringify(t)}).`)}H(A),H(x);const C=()=>x.__FEDERATION__.moduleInfo,j=e=>((e,t)=>{const o=F(t,N(e)).value;if(o&&!o.version&&"version"in e&&e.version&&(o.version=e.version),o)return o;if("version"in e&&e.version){const{version:t,...o}=e,r=N(o),n=F(x.__FEDERATION__.moduleInfo,r).value;if(n?.version===t)return n}})(e,x.__FEDERATION__.moduleInfo),U=(e,t)=>{const o=N(e);return x.__FEDERATION__.moduleInfo[o]=t,x.__FEDERATION__.moduleInfo},G=(e,t)=>{const o=t||`__FEDERATION_${e}:custom__`;return{remoteEntryKey:o,entryExports:A[o]}},B=e=>A.__FEDERATION__.__PRELOADED_MAP__.set(e,!0),V="default",W="global",q="[0-9A-Za-z-]+",z=`(?:\\+(${q}(?:\\.${q})*))`,K="0|[1-9]\\d*",Z="[0-9]+",J="\\d*[a-zA-Z-][a-zA-Z0-9-]*",Y=`(?:${Z}|${J})`,X=`(?:${K}|${J})`,Q=`(?:-(${X}(?:\\.${X})*))`,ee=`${K}|x|X|\\*`,te=`[v=\\s]*(${ee})(?:\\.(${ee})(?:\\.(${ee})(?:${Q})?${z}?)?)?`,oe=`^\\s*(${te})\\s+-\\s+(${te})\\s*$`,re="((?:<|>)?=?)",ne=`(\\s*)${re}\\s*([v=\\s]*(${Z})\\.(${Z})\\.(${Z})(?:-?(${Y}(?:\\.${Y})*))?${z}?|${te})`,se="(?:~>?)",ie=`(\\s*)${se}\\s+`,ae="(?:\\^)",ce=`(\\s*)${ae}\\s+`,le="(<|>)?=?\\s*\\*",he=`^${ae}${te}$`,me=`^${se}${te}$`,ue=`^${re}\\s*${te}$`,fe=`^${re}\\s*(v?(${K})\\.(${K})\\.(${K})${Q}?${z}?)$|^$`,de="^\\s*>=\\s*0.0.0\\s*$";function pe(e){return new RegExp(e)}function ye(e){return!e||"x"===e.toLowerCase()||"*"===e}function ge(...e){return t=>e.reduce(((e,t)=>t(e)),t)}function Ee(e){return e.match(pe(fe))}function Se(e,t,o,r){const n=`${e}.${t}.${o}`;return r?`${n}-${r}`:n}function _e(e){return e.replace(pe(oe),((e,t,o,r,n,s,i,a,c,l,h,m)=>`${t=ye(o)?"":ye(r)?`>=${o}.0.0`:ye(n)?`>=${o}.${r}.0`:`>=${t}`} ${a=ye(c)?"":ye(l)?`<${Number(c)+1}.0.0-0`:ye(h)?`<${c}.${Number(l)+1}.0-0`:m?`<=${c}.${l}.${h}-${m}`:`<=${a}`}`.trim()))}function Ie(e){return e.replace(pe(ne),"$1$2$3")}function be(e){return e.replace(pe(ie),"$1~")}function we(e){return e.replace(pe(ce),"$1^")}function Ne(e){return e.trim().split(/\s+/).map((e=>e.replace(pe(he),((e,t,o,r,n)=>ye(t)?"":ye(o)?`>=${t}.0.0 <${Number(t)+1}.0.0-0`:ye(r)?"0"===t?`>=${t}.${o}.0 <${t}.${Number(o)+1}.0-0`:`>=${t}.${o}.0 <${Number(t)+1}.0.0-0`:n?"0"===t?"0"===o?`>=${t}.${o}.${r}-${n} <${t}.${o}.${Number(r)+1}-0`:`>=${t}.${o}.${r}-${n} <${t}.${Number(o)+1}.0-0`:`>=${t}.${o}.${r}-${n} <${Number(t)+1}.0.0-0`:"0"===t?"0"===o?`>=${t}.${o}.${r} <${t}.${o}.${Number(r)+1}-0`:`>=${t}.${o}.${r} <${t}.${Number(o)+1}.0-0`:`>=${t}.${o}.${r} <${Number(t)+1}.0.0-0`)))).join(" ")}function $e(e){return e.trim().split(/\s+/).map((e=>e.replace(pe(me),((e,t,o,r,n)=>ye(t)?"":ye(o)?`>=${t}.0.0 <${Number(t)+1}.0.0-0`:ye(r)?`>=${t}.${o}.0 <${t}.${Number(o)+1}.0-0`:n?`>=${t}.${o}.${r}-${n} <${t}.${Number(o)+1}.0-0`:`>=${t}.${o}.${r} <${t}.${Number(o)+1}.0-0`)))).join(" ")}function ve(e){return e.split(/\s+/).map((e=>e.trim().replace(pe(ue),((e,t,o,r,n,s)=>{const i=ye(o),a=i||ye(r),c=a||ye(n);return"="===t&&c&&(t=""),s="",i?">"===t||"<"===t?"<0.0.0-0":"*":t&&c?(a&&(r=0),n=0,">"===t?(t=">=",a?(o=Number(o)+1,r=0,n=0):(r=Number(r)+1,n=0)):"<="===t&&(t="<",a?o=Number(o)+1:r=Number(r)+1),"<"===t&&(s="-0"),`${t+o}.${r}.${n}${s}`):a?`>=${o}.0.0${s} <${Number(o)+1}.0.0-0`:c?`>=${o}.${r}.0${s} <${o}.${Number(r)+1}.0-0`:e})))).join(" ")}function Re(e){return e.trim().replace(pe(le),"")}function ke(e,t){return(e=Number(e)||e)>(t=Number(t)||t)?1:e===t?0:-1}function Oe(e,t){return ke(e.major,t.major)||ke(e.minor,t.minor)||ke(e.patch,t.patch)||function(e,t){const{preRelease:o}=e,{preRelease:r}=t;if(void 0===o&&Boolean(r))return 1;if(Boolean(o)&&void 0===r)return-1;if(void 0===o&&void 0===r)return 0;for(let e=0,t=o.length;e<=t;e++){const t=o[e],n=r[e];if(t!==n)return void 0===t&&void 0===n?0:t?n?ke(t,n):-1:1}return 0}(e,t)}function Te(e,t){return e.version===t.version}function Ae(e,t){switch(e.operator){case"":case"=":return Te(e,t);case">":return Oe(e,t)<0;case">=":return Te(e,t)||Oe(e,t)<0;case"<":return Oe(e,t)>0;case"<=":return Te(e,t)||Oe(e,t)>0;case void 0:return!0;default:return!1}}function xe(e){return ge(Ne,$e,ve,Re)(e)}function Me(e){return ge(_e,Ie,be,we)(e.trim()).split(/\s+/).join(" ")}function Le(e,t){if(!e)return!1;const o=Ee(e);if(!o)return!1;const[,r,,n,s,i,a]=o,c={operator:r,version:Se(n,s,i,a),major:n,minor:s,patch:i,preRelease:a?.split(".")},l=t.split("||");for(const e of l){const t=e.trim();if(!t)return!0;if("*"===t||"x"===t)return!0;try{const e=Me(t);if(!e.trim())return!0;const o=e.split(" ").map((e=>xe(e))).join(" ");if(!o.trim())return!0;const r=o.split(/\s+/).map((e=>e.trim().replace(pe(de),""))).filter(Boolean);if(0===r.length)continue;let n=!0;for(const e of r){const t=Ee(e);if(!t){n=!1;break}const[,o,,r,s,i,a]=t;if(!Ae({operator:o,version:Se(r,s,i,a),major:r,minor:s,patch:i,preRelease:a?.split(".")},c)){n=!1;break}}if(n)return!0}catch(e){console.error(`[semver] Error processing range part "${t}":`,e);continue}}return!1}function Pe(e,t){const o=t.shared||{},r=t.name,n=Object.keys(o).reduce(((e,n)=>{const s=O(o[n]);return e[n]=e[n]||[],s.forEach((o=>{e[n].push(function(e,t,o,r){let n;return n="get"in e?e.get:"lib"in e?()=>Promise.resolve(e.lib):()=>Promise.resolve((()=>{b(`Cannot get shared "${o}" from "${t}": neither "get" nor "lib" is provided in the share config.`)})),e.shareConfig?.eager&&e.treeShaking?.mode&&b(`Invalid shared config for "${o}" from "${t}": cannot use both "eager: true" and "treeShaking.mode" simultaneously. Choose one strategy.`),{deps:[],useIn:[],from:t,loading:null,...e,shareConfig:{requiredVersion:`^${e.version}`,singleton:!1,eager:!1,strictVersion:!1,...e.shareConfig},get:n,loaded:!(!e?.loaded&&!("lib"in e))||void 0,version:e.version??"0",scope:Array.isArray(e.scope)?e.scope:[e.scope??"default"],strategy:(e.strategy??r)||"version-first",treeShaking:e.treeShaking?{...e.treeShaking,mode:e.treeShaking.mode??"server-calc",status:e.treeShaking.status??c.UNKNOWN,useIn:[]}:void 0}}(o,r,n,t.shareStrategy))})),e}),{}),s={...e.shared};return Object.keys(n).forEach((e=>{s[e]?n[e].forEach((t=>{s[e].find((e=>e.version===t.version))||s[e].push(t)})):s[e]=n[e]})),{allShareInfos:s,newShareInfos:n}}function De(e,t){if(!e)return!1;const{status:o,mode:r}=e;return o!==c.NO_USE&&(o===c.CALCULATED||"runtime-infer"===r&&(!t||je(e,t)))}function He(e,t){const o=e=>{if(!Number.isNaN(Number(e))){const t=e.split(".");let o=e;for(let e=0;e<3-t.length;e++)o+=".0";return o}return e};return!!Le(o(e),`<=${o(t)}`)}const Fe=(e,t)=>{const o=t||function(e,t){return He(e,t)};return Object.keys(e).reduce(((e,t)=>e?o(e,t)||"0"===e?t:e:t),0)},Ce=e=>Boolean(e.loaded)||"function"==typeof e.lib,je=(e,t)=>{if(!e||!t)return!1;const{usedExports:o}=e;return!!o&&!!t.every((e=>o.includes(e)))};function Ue(e,t,o,r){const n=e[t][o];let s="",i=De(r);const a=function(e,t){return i?!n[e].treeShaking||!!n[t].treeShaking&&!Ce(n[e].treeShaking)&&He(e,t):!Ce(n[e])&&He(e,t)};if(i){if(s=Fe(e[t][o],a),s)return{version:s,useTreesShaking:i};i=!1}return{version:Fe(e[t][o],a),useTreesShaking:i}}const Ge=e=>Ce(e)||(e=>Boolean(e.loading))(e);function Be(e,t,o,r){const n=e[t][o];let s="",i=De(r);const a=function(e,t){if(i){if(!n[e].treeShaking)return!0;if(!n[t].treeShaking)return!1;if(Ge(n[t].treeShaking))return!Ge(n[e].treeShaking)||Boolean(He(e,t));if(Ge(n[e].treeShaking))return!1}return Ge(n[t])?!Ge(n[e])||Boolean(He(e,t)):!Ge(n[e])&&He(e,t)};if(i){if(s=Fe(e[t][o],a),s)return{version:s,useTreesShaking:i};i=!1}return{version:Fe(e[t][o],a),useTreesShaking:i}}function Ve(e){return"loaded-first"===e?Be:Ue}function We(e,t,o,r){if(!e)return;const{shareConfig:n,scope:s=V,strategy:i,treeShaking:a}=o,c=Array.isArray(s)?s:[s];for(const s of c)if(n&&e[s]&&e[s][t]){const{requiredVersion:c}=n,{version:l,useTreesShaking:h}=Ve(i)(e,s,t,a),m=()=>{const r=e[s][t][l];if(n.singleton){if("string"==typeof c&&!Le(l,c)){const e=`Version ${l} from ${l&&r.from} of shared singleton module ${t} does not satisfy the requirement of ${o.from} which needs ${c})`;n.strictVersion?b(e):w(e)}return{shared:r,useTreesShaking:h}}{if(!1===c||"*"===c)return{shared:r,useTreesShaking:h};if(Le(l,c))return{shared:r,useTreesShaking:h};const o=De(a);if(o)for(const[r,n]of Object.entries(e[s][t]))if(De(n.treeShaking,a?.usedExports)&&Le(r,c))return{shared:n,useTreesShaking:o};for(const[o,r]of Object.entries(e[s][t]))if(Le(o,c))return{shared:r,useTreesShaking:!1}}},u={shareScopeMap:e,scope:s,pkgName:t,version:l,GlobalFederation:M.__FEDERATION__,shareInfo:o,resolver:m};return(r.emit(u)||u).resolver()}}function qe(){return M.__FEDERATION__.__SHARE__}function ze(e){const{pkgName:t,extraOptions:o,shareInfos:r}=e,n=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),s=(...e)=>{const t={};for(const o of e)if(o)for(const[e,r]of Object.entries(o)){const o=t[e];n(o)&&n(r)?t[e]=s(o,r):void 0!==r&&(t[e]=r)}return t};return s((o?.resolver??(e=>{if(!e)return;const t={};return e.forEach((e=>{t[e.version]=e})),t[Fe(t,(function(e,o){return!Ce(t[e])&&He(e,o)}))]}))(r[t]),o?.customShareInfo)}const Ke=(e,t)=>{var o,r;e.useIn||(e.useIn=[]),o=e.useIn,r=t,-1===o.findIndex((e=>e===r))&&o.push(r)};function Ze(e,t){return t&&e.treeShaking?e.treeShaking:e}const Je=function(...e){return e.length?e.reduce(((e,t)=>t?e?`${e}:${t}`:t:e),""):""};function Ye(e,t){if("getPublicPath"in e){let o;return o=e.getPublicPath.startsWith("function")?new Function("return "+e.getPublicPath)()():new Function(e.getPublicPath)(),`${o}${t}`}return"publicPath"in e?h()||m()||!("ssrPublicPath"in e)||"string"!=typeof e.ssrPublicPath?`${e.publicPath}${t}`:`${e.ssrPublicPath}${t}`:(console.warn("Cannot get resource URL. If in debug mode, please ignore.",e,t),"")}const Xe=e=>{console.warn(`[ Federation Runtime ]: ${e}`)};function Qe(e){try{return JSON.stringify(e,null,2)}catch(e){return""}}async function et(e,t){try{return await e()}catch(e){return void(!t&&Xe(e))}}function tt(e,t){const o=/^(https?:)?\/\//i;return e.replace(o,"").replace(/\/$/,"")===t.replace(o,"").replace(/\/$/,"")}function ot(e){let t,o=null,r=!0,n=2e4;const s=document.getElementsByTagName("script");for(let t=0;t<s.length;t++){const n=s[t],i=n.getAttribute("src");if(i&&tt(i,e.url)){o=n,r=!1;break}}if(!o){const t=e.attrs;let r;o=document.createElement("script"),o.type="module"===t?.type?"module":"text/javascript",e.createScriptHook&&(r=e.createScriptHook(e.url,e.attrs),r instanceof HTMLScriptElement?o=r:"object"==typeof r&&("script"in r&&r.script&&(o=r.script),"timeout"in r&&r.timeout&&(n=r.timeout))),o.src||(o.src=e.url),t&&!r&&Object.keys(t).forEach((e=>{o&&("async"===e||"defer"===e?o[e]=t[e]:o.getAttribute(e)||o.setAttribute(e,t[e]))}))}let i=null;const a="undefined"!=typeof window?t=>{if(t.filename&&tt(t.filename,e.url)){const o=new Error(`ScriptExecutionError: Script "${e.url}" loaded but threw a runtime error during execution: ${t.message} (${t.filename}:${t.lineno}:${t.colno})`);o.name="ScriptExecutionError",i=o}}:null;a&&window.addEventListener("error",a);const c=async(r,n)=>{clearTimeout(t),a&&window.removeEventListener("error",a);const s=()=>{if("error"===n?.type){const t=new Error(n?.isTimeout?`ScriptNetworkError: Script "${e.url}" timed out.`:`ScriptNetworkError: Failed to load script "${e.url}" - the script URL is unreachable or the server returned an error (network failure, 404, CORS, etc.)`);t.name="ScriptNetworkError",e?.onErrorCallback&&e?.onErrorCallback(t)}else i?e?.onErrorCallback&&e?.onErrorCallback(i):e?.cb&&e?.cb()};if(o&&(o.onerror=null,o.onload=null,et((()=>{const{needDeleteScript:t=!0}=e;t&&o?.parentNode&&o.parentNode.removeChild(o)})),r&&"function"==typeof r)){const e=r(n);if(e instanceof Promise){const t=await e;return s(),t}return s(),e}s()};return o.onerror=c.bind(null,o.onerror),o.onload=c.bind(null,o.onload),t=setTimeout((()=>{c(null,{type:"error",isTimeout:!0})}),n),{script:o,needAttach:r}}const rt=new Map;function nt(e){if(!e)throw new Error("import specifier is required");if(rt.has(e))return rt.get(e);const t=new Function("name","return import(name)")(e).then((e=>e)).catch((t=>{throw console.error(`Error importing module ${e}:`,t),rt.delete(e),t}));return rt.set(e,t),t}const st="undefined"==typeof ENV_TARGET||"web"!==ENV_TARGET?(e,t,o,r)=>{if(r?.createScriptHook){const t=r.createScriptHook(e);t&&"object"==typeof t&&"url"in t&&(e=t.url)}let n;try{n=new URL(e)}catch(e){return console.error("Error constructing URL:",e),void t(new Error(`Invalid URL: ${e}`))}(async()=>r?.fetch?(e,t)=>(async(e,t,o)=>{const r=await((e,t)=>o.lifecycle.fetch.emit(e,t))(e,t||{});return r&&r instanceof Response?r:fetch(e,t||{})})(e,t,r):fetch)().then((async e=>{if("esm"===o?.type||"module"===o?.type)return mt(n.href,{fetch:e,vm:await nt("vm")}).then((async e=>{await e.evaluate(),t(void 0,e.namespace)})).catch((e=>{t(e instanceof Error?e:new Error(`Script execution error: ${e}`))}));(async(e,r)=>{try{const n=await e(r.href),s=await n.text(),[i,a]=await Promise.all([nt("path"),nt("vm")]),c={exports:{},module:{exports:{}}},l=r.pathname.split("/").slice(0,-1).join("/"),h=i.basename(r.pathname),m=new a.Script(`(function(exports, module, require, __dirname, __filename) {${s}\n})`,{filename:h,importModuleDynamically:a.constants?.USE_MAIN_CONTEXT_DEFAULT_LOADER??nt});let u;u=(await nt("node:module")).createRequire("file:"===r.protocol||"node:"===r.protocol?r.href:i.join(process.cwd(),"__mf_require_base__.js")),m.runInThisContext()(c.exports,c.module,u,l,h);const f=c.module.exports||c.exports;if(o&&f&&o.globalName)return void t(void 0,f[o.globalName]||f);t(void 0,f)}catch(e){t(e instanceof Error?e:new Error(`Script execution error: ${e}`))}})(e,n)})).catch((e=>{t(e)}))}:(e,t,o,r)=>{t(new Error("createScriptNode is disabled in non-Node.js environment"))},it="undefined"==typeof ENV_TARGET||"web"!==ENV_TARGET?(e,t)=>new Promise(((o,r)=>{st(e,((e,n)=>{e?r(e):o(globalThis[t?.attrs?.globalName||`__FEDERATION_${t?.attrs?.name}:custom__`]=n)}),t.attrs,t.loaderHook)})):(e,t)=>{throw new Error("loadScriptNode is disabled in non-Node.js environment")},at=new Map,ct=e=>e.startsWith("http:")||e.startsWith("https:"),lt=e=>!(e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||e.includes(":"));async function ht(e,t,o){if(await async function(e){return!!e.startsWith("node:")||!!lt(e)&&(await nt("node:module")).builtinModules.includes(e)}(e))return async function(e,t){const o=`node-builtin:${e}`;return at.has(o)?at.get(o):async function(e,t,o){if("function"!=typeof o.SyntheticModule)throw new Error("vm.SyntheticModule is required to load Node.js built-in modules in ESM remote entries.");const r=function(e){const t=!e||"object"!=typeof e&&"function"!=typeof e?{default:e}:e,o={...t};return Object.prototype.hasOwnProperty.call(o,"default")||(o.default=t),o}(t),n=Object.keys(r),s=new o.SyntheticModule(n,(function(){for(const e of n)this.setExport(e,r[e])}),{identifier:e});return at.set(e,s),await s.link((async()=>{throw new Error(`Node.js built-in module "${e}" should not request child modules.`)})),await s.evaluate(),s}(o,await nt(e),t)}(e,o.vm);if(lt(e))throw new Error(`Unsupported ESM module specifier "${e}". Only relative or absolute http(s) remote modules and Node.js built-in modules are supported.`);const r=new URL(e,t).href;if(!ct(r))throw new Error(`Unsupported ESM module specifier "${e}" resolved to "${r}". Only http(s) remote modules and Node.js built-in modules are supported.`);return mt(r,o)}async function mt(e,t){if(at.has(e))return at.get(e);const{fetch:o,vm:r}=t;if(!ct(e))throw new Error(`Unsupported ESM module URL "${e}". Only http(s) remote modules and Node.js built-in modules are supported.`);const n=await(await o(e)).text(),s=(await nt("node:url")).pathToFileURL(process.cwd()).href,i=new r.SourceTextModule(n,{identifier:e,initializeImportMeta:t=>{t.url=function(e,t){const o=t.endsWith("/")?t:`${t}/`;return new URL(`__module_federation_remote__${function(e){const t=new URL(e),o=encodeURIComponent(t.protocol.slice(0,-1)),r=encodeURIComponent(t.host),n=t.pathname.split("/").map((e=>encodeURIComponent(e))).join("/"),s=encodeURIComponent(`${t.search}${t.hash}`);return`/${o}/${r}${n}${s?`/${s}`:""}`}(e)}`,o).href}(e,s)},importModuleDynamically:async o=>async function(e){if("linked"===e.status&&await e.evaluate(),"errored"===e.status)throw e.error;return e}(await ht(o,e,t))});return at.set(e,i),await i.link((async o=>ht(o,e,t))),i}const ut="RUNTIME-001",ft="RUNTIME-002",dt="RUNTIME-003",pt="RUNTIME-004",yt="RUNTIME-005",gt="RUNTIME-006",Et="RUNTIME-007",St="RUNTIME-008",_t="RUNTIME-009",It="RUNTIME-010",bt="RUNTIME-011",wt="RUNTIME-012",Nt="RUNTIME-013",$t="RUNTIME-014",vt="RUNTIME-015",Rt={[ut]:"Failed to get remoteEntry exports.",[ft]:'The remote entry interface does not contain "init"',[dt]:"Failed to get manifest.",[pt]:"Failed to locate remote.",[yt]:"Invalid loadShareSync function call from bundler runtime",[gt]:"Invalid loadShareSync function call from runtime",[Et]:"Failed to get remote snapshot.",[St]:"Failed to load script resources.",[_t]:"Please call createInstance first.",[It]:'The name option cannot be changed after initialization. If you want to create a new instance with a different name, please use "createInstance" api.',[bt]:"The remoteEntry URL is missing from the remote snapshot.",[wt]:'The getter for the shared module is not a function. This may be caused by setting "shared.import: false" without the host providing the corresponding lib.',[Nt]:"The manifest is not a valid Module Federation manifest.",[$t]:"The remote does not expose the requested module.",[vt]:"Remote container initialization failed."},kt=".then(callbacks[0]).catch(callbacks[1])",Ot=["Failed to fetch dynamically imported module","Importing a module script failed","error loading dynamically imported module"];function Tt(e){return"esm"===e||"module"===e}function At(e,t,o){const{remoteEntryKey:r,entryExports:n}=G(e,t);return n||b(ut,Rt,{remoteName:e,remoteEntryUrl:o,remoteEntryKey:r}),n}async function xt({remoteInfo:e,remoteEntryExports:t,loaderHook:o,getEntryUrl:r,resourceContext:n}){const{entry:s,entryGlobalName:i,name:a,type:c}=e;return Tt(c)?async function({entry:e,remoteEntryExports:t,name:o,getEntryUrl:r}){return new Promise(((n,s)=>{const i=e=>{if((t=e)instanceof TypeError&&Ot.some((e=>t.message.includes(e)))){const t=e instanceof Error?e.message:String(e);try{b(St,Rt,{remoteName:o,resourceUrl:a},t)}catch(e){return void s(e)}}var t;s(e)},a=r?r(e):e;try{t?n(t):"undefined"!=typeof FEDERATION_ALLOW_NEW_FUNCTION?new Function("callbacks",`import("${a}")${kt}`)([n,i]):import(a).then(n).catch(i)}catch(e){b(`Failed to load ESM entry from "${a}". ${e instanceof Error?e.message:String(e)}`)}}))}({entry:s,remoteEntryExports:t,name:a,getEntryUrl:r}):"system"===c?async function({entry:e,remoteEntryExports:t}){return new Promise(((o,r)=>{try{t?o(t):new Function("callbacks",`System.import("${e}")${kt}`)([o,r])}catch(t){b(`Failed to load SystemJS entry from "${e}". ${t instanceof Error?t.message:String(t)}`)}}))}({entry:s,remoteEntryExports:t}):async function({name:e,globalName:t,entry:o,remoteInfo:r,loaderHook:n,getEntryUrl:s,resourceContext:i}){const{entryExports:a}=G(e,t);if(a)return a;const c=s?s(o):o;return function(e,t){const{attrs:o={},createScriptHook:r}=t;return new Promise(((t,n)=>{const{script:s,needAttach:i}=ot({url:e,cb:t,onErrorCallback:n,attrs:{fetchpriority:"high",...o},createScriptHook:r,needDeleteScript:!0});i&&document.head.appendChild(s)}))}(c,{attrs:{},createScriptHook:(e,t)=>{const o=n.lifecycle.createScript.emit({url:e,attrs:t,remoteInfo:r,resourceContext:i?{...i,url:e}:void 0});if(o)return o instanceof HTMLScriptElement||"script"in o||"timeout"in o?o:void 0}}).then((()=>At(e,t,o)),(t=>{const o=t instanceof Error?t.message:String(t);b(St,Rt,{remoteName:e,resourceUrl:c},o)}))}({entry:s,globalName:i,name:a,remoteInfo:e,loaderHook:o,getEntryUrl:r,resourceContext:n})}function Mt(e){const{entry:t,name:o}=e;return Je(o,t)}async function Lt(e){const{origin:t,remoteEntryExports:o,remoteInfo:r,getEntryUrl:n,resourceContext:s,_inErrorHandling:i=!1}=e,a=Mt(r);if(o)return o;if(!D[a]){const e=t.remoteHandler.hooks.lifecycle.loadEntry,c=t.loaderHook;D[a]=e.emit({origin:t,loaderHook:c,remoteInfo:r,remoteEntryExports:o}).then((e=>e||(("undefined"!=typeof ENV_TARGET?"web"===ENV_TARGET:l)?xt({remoteInfo:r,remoteEntryExports:o,loaderHook:c,getEntryUrl:n,resourceContext:s}):async function({remoteInfo:e,loaderHook:t,resourceContext:o}){const{entry:r,entryGlobalName:n,name:s,type:i}=e,{entryExports:a}=G(s,n);return a||it(r,{attrs:{name:s,globalName:n,type:i},loaderHook:{createScriptHook:(r,n={})=>{const s=t.lifecycle.createScript.emit({url:r,attrs:n,remoteInfo:e,resourceContext:o?{...o,url:r}:void 0});if(s)return"url"in s?s:void 0}}}).then((()=>At(s,n,r))).catch((e=>{b(`Failed to load Node.js entry for remote "${s}" from "${r}". ${e instanceof Error?e.message:String(e)}`)}))}({remoteInfo:r,loaderHook:c,resourceContext:s})))).then((async e=>(await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,remoteEntryExports:e}),e))).catch((async e=>{const n=Mt(r),s=e instanceof Error&&e.message.includes("ScriptExecutionError");if(e instanceof Error&&e.message.includes(St)&&!s&&!i){const e=e=>Lt({...e,_inErrorHandling:!0}),s=await t.loaderHook.lifecycle.loadEntryError.emit({getRemoteEntry:e,origin:t,remoteInfo:r,remoteEntryExports:o,globalLoading:D,uniqueKey:n});if(s)return await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,remoteEntryExports:s,recovered:!0}),s}throw await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,error:e}),e}))}return D[a]}function Pt(e){return{...e,entry:"entry"in e?e.entry:"",type:e.type||W,entryGlobalName:e.entryGlobalName||e.name,shareScope:e.shareScope||V}}function Dt(e,t){return t&&"."!==t?`${e}/${t.replace(/^\.\//,"")}`:e}function Ht(e,t){for(const o of e){const e=t.startsWith(o.name);let r=t.replace(o.name,"");if(e){if(r.startsWith("/"))return r=`.${r}`,{pkgNameOrAlias:o.name,expose:r,remote:o};if(""===r)return{pkgNameOrAlias:o.name,expose:".",remote:o}}const n=o.alias&&t.startsWith(o.alias);let s=o.alias&&t.replace(o.alias,"");if(o.alias&&n){if(s&&s.startsWith("/"))return s=`.${s}`,{pkgNameOrAlias:o.alias,expose:s,remote:o};if(""===s)return{pkgNameOrAlias:o.alias,expose:".",remote:o}}}}function Ft(e){return{resourceCategory:"sync",share:!0,depsRemote:!0,...e}}function Ct(e){return e instanceof Error&&(e.message.includes("timed out")||e.name.includes("Timeout"))}function jt(e,t,o,r){return{url:t,status:o,resourceType:e.resourceType,initiator:e.initiator,id:e.id,error:r}}function Ut({host:e,remoteInfo:t,url:o,attrs:r,context:n,needDeleteLink:s}){return new Promise((i=>{const{link:a,needAttach:c}=function(e){let t,o=null,r=!0,n=2e4;const s=document.getElementsByTagName("link");for(let t=0;t<s.length;t++){const n=s[t],i=n.getAttribute("href"),a=n.getAttribute("rel");if(i&&tt(i,e.url)&&a===e.attrs.rel){o=n,r=!1;break}}if(!o){let t;o=document.createElement("link"),o.setAttribute("href",e.url);let r=!0;const s=e.attrs;e.createLinkHook&&(t=e.createLinkHook(e.url,s),t instanceof HTMLLinkElement?(o=t,r=!1):"object"==typeof t&&("link"in t&&t.link&&(o=t.link,r=!1),"timeout"in t&&t.timeout&&(n=t.timeout))),s&&r&&Object.keys(s).forEach((e=>{o&&!o.getAttribute(e)&&o.setAttribute(e,s[e])}))}if(!r)return Promise.resolve().then((()=>{e?.cb&&e?.cb()})),{link:o,needAttach:r};const i=(r,n)=>{t&&clearTimeout(t);const s=()=>{if("error"===n?.type){const t=new Error(n?.isTimeout?`LinkNetworkError: Link "${e.url}" timed out.`:`LinkNetworkError: Failed to load link "${e.url}" - the URL is unreachable or the server returned an error.`);t.name="LinkNetworkError",e?.onErrorCallback&&e?.onErrorCallback(t)}else e?.cb&&e?.cb()};if(o&&(o.onerror=null,o.onload=null,et((()=>{const{needDeleteLink:t=!0}=e;t&&o?.parentNode&&o.parentNode.removeChild(o)})),r)){const e=r(n);return s(),e}s()};return o.onerror=i.bind(null,o.onerror),o.onload=i.bind(null,o.onload),t=setTimeout((()=>{i(null,{type:"error",isTimeout:!0})}),n),{link:o,needAttach:r}}({url:o,cb:()=>{i(jt(n,o,c?"success":"cached"))},onErrorCallback:e=>{i(jt(n,o,Ct(e)?"timeout":"error",e))},attrs:r,createLinkHook:(o,r)=>{const s=e.loaderHook.lifecycle.createLink.emit({url:o,attrs:r,remoteInfo:t,resourceContext:{...n,url:o}});return HTMLLinkElement,s},needDeleteLink:s});c&&document.head.appendChild(a)}))}function Gt({host:e,remoteInfo:t,url:o,attrs:r,context:n}){return new Promise((s=>{const{script:i,needAttach:a}=ot({url:o,cb:()=>{s(jt(n,o,a?"success":"cached"))},onErrorCallback:e=>{s(jt(n,o,Ct(e)?"timeout":"error",e))},attrs:r,createScriptHook:(o,r)=>{const s=e.loaderHook.lifecycle.createScript.emit({url:o,attrs:r,remoteInfo:t,resourceContext:{...n,url:o}});return HTMLScriptElement,s},needDeleteScript:!0});a&&document.head.appendChild(i)}))}function Bt(e,t){return{...e,resourceType:t}}function Vt(e,t,o,r=!0,n={initiator:"preloadRemote",id:e.name}){const{cssAssets:s,jsAssetsWithoutEntry:i,entryAssets:a}=o,c=[];if(t.options.inBrowser){if(a.forEach((e=>{const{moduleInfo:o}=e;c.push(async function(e,t,o,r){const n=e.moduleCache.get(o.name),s=o.entry;if(n?.remoteEntryExports)return jt(r,s,"cached");try{if(!await Lt({origin:e,remoteInfo:o,remoteEntryExports:n?.remoteEntryExports,resourceContext:{...r,url:s}}))throw new Error(`Failed to load remoteEntry "${s}".`);return jt(r,s,"success")}catch(e){return jt(r,s,Ct(e)?"timeout":"error",e)}}(t,0,o,Bt(n,"remoteEntry")))})),r){const o={rel:"preload",as:"style"};s.forEach((r=>{c.push(Ut({host:t,remoteInfo:e,url:r,attrs:o,context:Bt(n,"css")}))}))}else{const o={rel:"stylesheet",type:"text/css"};s.forEach((r=>{c.push(Ut({host:t,remoteInfo:e,url:r,attrs:o,needDeleteLink:!1,context:Bt(n,"css")}))}))}let o=Gt,l={fetchpriority:"high",type:"text/javascript"};r?(o=Ut,l={rel:"preload",as:"script"}):Tt(e.type)&&(o=Ut,l={rel:"modulepreload",fetchpriority:"high"}),i.forEach((r=>{c.push(o({host:t,remoteInfo:e,url:r,attrs:l,context:Bt(n,"js")}))}))}return Promise.all(c)}function Wt(e){return{name:e.name,alias:e.alias,entry:"entry"in e?e.entry:void 0,version:"version"in e?e.version:void 0,type:e.type,entryGlobalName:e.entryGlobalName,shareScope:e.shareScope}}function qt(e){const t={};for(const[o,r]of Object.entries(e.shared)){const e=r[0];e&&(t[o]={version:e.version,singleton:e.shareConfig?.singleton,requiredVersion:!1!==e.shareConfig?.requiredVersion&&e.shareConfig?.requiredVersion,eager:e.eager,strictVersion:e.shareConfig?.strictVersion})}return{project:{name:e.name,mfRole:e.remotes?.length>0?"host":"unknown"},mfConfig:{name:e.name,remotes:e.remotes?.map(Wt)??[],shared:t}}}function zt(e){if(!e||!("modules"in e)||!Array.isArray(e.modules))return;const t=e.modules.map((e=>e.moduleName)).filter(Boolean);return t.length?t.join(","):void 0}var Kt=class{constructor({remoteInfo:e,host:t}){this.inited=!1,this.initing=!1,this.lib=void 0,this.remoteInfo=e,this.host=t}async getEntry(e){if(this.remoteEntryExports)return this.remoteEntryExports;const t=await Lt({origin:this.host,remoteInfo:this.remoteInfo,remoteEntryExports:this.remoteEntryExports,resourceContext:{initiator:"loadRemote",id:Dt(this.remoteInfo.name,e),resourceType:"remoteEntry"}});return I(t,`remoteEntryExports is undefined \n ${Qe(this.remoteInfo)}`),this.remoteEntryExports=t,this.remoteEntryExports}async init(e,t,o,r){const n=await this.getEntry(r);if(this.inited)return await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:n,cached:!0,origin:this.host}),n;if(this.initPromise){try{await this.initPromise,await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:n,cached:!0,origin:this.host})}catch(o){throw await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:n,error:o,cached:!0,origin:this.host}),o}return n}this.initing=!0,this.initPromise=(async()=>{await this.host.loaderHook.lifecycle.beforeInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,origin:this.host});const{remoteEntryInitOptions:r,shareScope:s,initScope:i}=function(e,t,o){const r=t,n=Array.isArray(e.shareScope)?e.shareScope:[e.shareScope];n.length||n.push("default"),n.forEach((e=>{r[e]||(r[e]={})}));const s={version:e.version||"",shareScopeKeys:Array.isArray(e.shareScope)?n:e.shareScope||"default"};return Object.defineProperty(s,"shareScopeMap",{value:r,enumerable:!1}),{remoteEntryInitOptions:s,shareScope:r[n[0]],initScope:o??[]}}(this.remoteInfo,this.host.shareScopeMap,o),a=await this.host.hooks.lifecycle.beforeInitContainer.emit({shareScope:s,remoteEntryInitOptions:r,initScope:i,remoteInfo:this.remoteInfo,origin:this.host});void 0===n?.init&&b(ft,Rt,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName},void 0,qt(this.host.options));try{await n.init(a.shareScope,a.initScope,a.remoteEntryInitOptions)}catch(e){b(vt,Rt,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName,shareScope:this.remoteInfo.shareScope},`${e}`,qt(this.host.options))}await this.host.hooks.lifecycle.initContainer.emit({...a,id:e,remoteSnapshot:t,remoteEntryExports:n}),this.inited=!0})();try{await this.initPromise,await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:n,origin:this.host})}catch(o){throw await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:n,error:o,origin:this.host}),o}finally{this.initing=!1,this.initPromise=void 0}return n}async get(e,t,o,r){const{loadFactory:n=!0}=o||{loadFactory:!0},s=await this.init(e,r,void 0,t);let i;this.lib=s,await this.host.loaderHook.lifecycle.beforeGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:s,origin:this.host});try{const o=await this.host.loaderHook.lifecycle.getModuleFactory.emit({remoteEntryExports:s,expose:t,moduleInfo:this.remoteInfo});i="function"==typeof o?o:void 0,i||(i=await s.get(t)),i||b($t,Rt,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,expose:t,requestId:e,availableExposes:zt(r)},void 0,qt(this.host.options)),await this.host.loaderHook.lifecycle.afterGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:s,moduleFactory:i,origin:this.host})}catch(o){throw await this.host.loaderHook.lifecycle.afterGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:s,error:o,origin:this.host}),o}const a=((e,t)=>{let o;return o=e.endsWith("/")?e.slice(0,-1):e,t.startsWith(".")&&(t=t.slice(1)),o+=t,o})(this.remoteInfo.name,t),c=this.wraperFactory(i,a);if(!n)return c;await this.host.loaderHook.lifecycle.beforeExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:n,origin:this.host});try{const o=await c();return await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:n,exposeModule:o,origin:this.host}),o}catch(o){throw await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:n,error:o,origin:this.host}),o}}wraperFactory(e,t){function o(e,t){e&&"object"==typeof e&&Object.isExtensible(e)&&!Object.getOwnPropertyDescriptor(e,Symbol.for("mf_module_id"))&&Object.defineProperty(e,Symbol.for("mf_module_id"),{value:t,enumerable:!1})}return()=>{const r=e();return r instanceof Promise?r.then((e=>(o(e,t),e))):(o(r,t),r)}}},Zt=class{constructor(e){this.registerPlugins={},this.lifecycle=e,this.lifecycleKeys=Object.keys(e)}applyPlugin(e,t){var o;I((o=e,"[object Object]"===k.call(o)),"Plugin configuration is invalid.");const r=e.name;I(r,"A name must be provided by the plugin."),this.registerPlugins[r]||(this.registerPlugins[r]=e,e.apply?.(t),Object.keys(this.lifecycle).forEach((t=>{const o=e[t];o&&this.lifecycle[t].on(o)})))}removePlugin(e){I(e,"A name is required.");const t=this.registerPlugins[e];I(t,`The plugin "${e}" is not registered.`),Object.keys(t).forEach((e=>{"name"!==e&&this.lifecycle[e].remove(t[e])}))}},Jt=class{constructor(e){this.type="",this.listeners=new Set,e&&(this.type=e)}on(e){"function"==typeof e&&this.listeners.add(e)}once(e){const t=this;this.on((function o(...r){return t.remove(o),e.apply(null,r)}))}emit(...e){let t;return this.listeners.size>0&&this.listeners.forEach((o=>{const r=o(...e);void 0!==r&&(t=r)})),t}remove(e){this.listeners.delete(e)}removeAll(){this.listeners.clear()}};function Yt(e,t){if(!R(t))return!1;if(e!==t)for(const o in e)if(!(o in t))return!1;return!0}var Xt=class extends Jt{constructor(e){super(),this.onerror=b,this.type=e}emit(e){R(e)||b(`The data for the "${this.type}" hook should be an object.`);for(const t of this.listeners)try{const o=t(e);if(void 0===o)continue;if(!Yt(e,o)){this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);break}e=o}catch(e){w(e),this.onerror(e)}return e}},Qt=class extends Jt{constructor(e){super(),this.onerror=b,this.type=e}emit(e){R(e)||b(`The response data for the "${this.type}" hook must be an object.`);const t=Array.from(this.listeners);if(t.length>0){let o=0;const r=t=>(w(t),this.onerror(t),e),n=s=>{if(void 0!==s&&Yt(e,s))e=s;else if(void 0!==s)return this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`),e;if(o<t.length)try{return Promise.resolve(t[o++](e)).then(n,r)}catch(e){return r(e)}return e};return Promise.resolve(n(e))}return Promise.resolve(e)}};const eo="Remote loading is disabled by experiments.optimization.disableRemote.";var to=class{constructor(){this.hooks=new Zt({})}formatAndRegisterRemote(){return[]}loadRemote(){throw new Error(eo)}preloadRemote(){throw new Error(eo)}registerRemotes(){throw new Error(eo)}getRemoteModuleAndOptions(){throw new Error(eo)}initRawContainer(){throw new Error(eo)}},oo=class extends Jt{emit(...e){let t;const o=Array.from(this.listeners);if(o.length>0){let r=0;const n=t=>!1!==t&&(r<o.length?Promise.resolve(o[r++].apply(null,e)).then((o=>void 0===o||1===e.length&&o===e[0]?n(t):n(o))):t);t=n()}return Promise.resolve(t)}};function ro(e,t){const o=T(t);o.url||b(bt,Rt,{remoteName:e.name});let r=Ye(t,o.url);l||r.startsWith("http")||(r=`https:${r}`),e.type=o.type,e.entryGlobalName=o.globalName,e.entry=r,e.version=t.version,e.buildVersion=t.buildVersion}const no=(e,t)=>{if(!e)return t;const o=(e=>{if("."===e)return"";if(e.startsWith("./"))return e.replace("./","");if(e.startsWith("/")){const t=e.slice(1);return t.endsWith("/")?t.slice(0,-1):t}return e})(e);return o?o.endsWith("/")?`${o}${t}`:`${o}/${t}`:t};function so(e){return!(!("remoteEntry"in e)||!e.remoteEntry.includes(i))}function io(e){const t=e.split(":");return 1===t.length?{name:t[0],version:void 0}:2===t.length?{name:t[0],version:t[1]}:{name:t[1],version:t[2]}}function ao(e,t,o,r,n={},s){const{value:i}=F(e,N(t)),a=s||i;if(a&&!so(a)&&(o(a,t,r),a.remotesInfo)){const t=Object.keys(a.remotesInfo);for(const r of t){if(n[r])continue;n[r]=!0;const t=io(r),s=a.remotesInfo[r];ao(e,{name:t.name,version:s.matchedVersion},o,!1,n,void 0)}}}const co=(e,t)=>document.querySelector(`${e}[${"link"===e?"href":"src"}="${t}"]`);function lo(e,t,o,r,n){const s=[],i=[],a=[],c=new Set,l=new Set,{options:h}=e,{preloadConfig:m}=t,{depsRemote:u}=m;if(ao(r,o,((t,o,r)=>{let n;if(r)n=m;else if(Array.isArray(u)){const e=u.find((e=>e.nameOrAlias===o.name||e.nameOrAlias===o.alias));if(!e)return;n=Ft(e)}else{if(!0!==u)return;n=m}const c=Ye(t,T(t).url);c&&a.push({name:o.name,moduleInfo:{name:o.name,entry:c,type:"remoteEntryType"in t?t.remoteEntryType:"global",entryGlobalName:"globalName"in t?t.globalName:o.name,shareScope:"",version:"version"in t?t.version:void 0},url:c});let l="modules"in t?t.modules:[];const h=(f=n.exposes)?f.map((e=>"."===e?e:e.startsWith("./")?e.replace("./",""):e)):[];var f,d;function p(e){const o=e.map((e=>Ye(t,e)));return n.filter?o.filter(n.filter):o}if(h.length&&"modules"in t&&(l=t?.modules?.reduce(((e,t)=>(-1!==h?.indexOf(t.moduleName)&&e.push(t),e)),[])),l){const r=l.length;for(let a=0;a<r;a++){const r=l[a],c=`${o.name}/${r.moduleName}`;e.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({id:"."===r.moduleName?o.name:c,name:o.name,remoteSnapshot:t,preloadConfig:n,remote:o,origin:e}),d=c,A.__FEDERATION__.__PRELOADED_MAP__.get(d)||("all"===n.resourceCategory?(s.push(...p(r.assets.css.async)),s.push(...p(r.assets.css.sync)),i.push(...p(r.assets.js.async)),i.push(...p(r.assets.js.sync))):"sync"===n.resourceCategory&&(s.push(...p(r.assets.css.sync)),i.push(...p(r.assets.js.sync))),B(c))}}}),!0,{},n),n.shared&&n.shared.length>0){const t=(t,o)=>{const{shared:r}=We(e.shareScopeMap,o.sharedName,t,e.sharedHandler.hooks.lifecycle.resolveShare)||{};r&&"function"==typeof r.lib&&(o.assets.js.sync.forEach((e=>{c.add(e)})),o.assets.css.sync.forEach((e=>{l.add(e)})))};n.shared.forEach((e=>{const o=h.shared?.[e.sharedName];if(!o)return;const r=e.version?o.find((t=>t.version===e.version)):o;r&&O(r).forEach((o=>{t(o,e)}))}))}const f=i.filter((e=>!c.has(e)&&!co("script",e)));return{cssAssets:s.filter((e=>!l.has(e)&&!co("link",e))),jsAssetsWithoutEntry:f,entryAssets:a.filter((e=>!co("script",e.url)))}}function ho(e,t){const o=j({name:t.name,version:t.options.version}),r=o&&"remotesInfo"in o&&o.remotesInfo&&F(o.remotesInfo,e.name).value;return r&&r.matchedVersion?{hostGlobalSnapshot:o,globalSnapshot:C(),remoteSnapshot:j({name:e.name,version:r.matchedVersion})}:{hostGlobalSnapshot:void 0,globalSnapshot:C(),remoteSnapshot:j({name:e.name,version:"version"in e?e.version:void 0})}}var mo=class{constructor(e){this.loadingHostSnapshot=null,this.manifestCache=new Map,this.hooks=new Zt({beforeLoadRemoteSnapshot:new oo("beforeLoadRemoteSnapshot"),loadSnapshot:new Qt("loadGlobalSnapshot"),loadRemoteSnapshot:new Qt("loadRemoteSnapshot"),afterLoadSnapshot:new Qt("afterLoadSnapshot")}),this.manifestLoading=M.__FEDERATION__.__MANIFEST_LOADING__,this.HostInstance=e,this.loaderHook=e.loaderHook}async loadRemoteSnapshotInfo({moduleInfo:e,id:t,initiator:o="loadRemote"}){const{options:r}=this.HostInstance;await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({options:r,moduleInfo:e,origin:this.HostInstance});let n=j({name:this.HostInstance.options.name,version:this.HostInstance.options.version});var s;n||(n={version:this.HostInstance.options.version||"",remoteEntry:"",remotesInfo:{}},s={[this.HostInstance.options.name]:n},x.__FEDERATION__.moduleInfo={...x.__FEDERATION__.moduleInfo,...s}),n&&"remotesInfo"in n&&!F(n.remotesInfo,e.name).value&&("version"in e||"entry"in e)&&(n.remotesInfo={...n?.remotesInfo,[e.name]:{matchedVersion:"version"in e?e.version:e.entry}});const{hostGlobalSnapshot:i,remoteSnapshot:a,globalSnapshot:c}=this.getGlobalRemoteInfo(e),{remoteSnapshot:h,globalSnapshot:m}=await this.hooks.lifecycle.loadSnapshot.emit({options:r,moduleInfo:e,hostGlobalSnapshot:i,remoteSnapshot:a,globalSnapshot:c});let u,f;if(h)if(so(h)){const r=l?h.remoteEntry:h.ssrRemoteEntry||h.remoteEntry||"",n=await this.loadManifestSnapshot(r,e,{},{initiator:o,id:t||e.name});u=n,f=U({...e,entry:r},n)}else{const{remoteSnapshot:t}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:h,from:"global"});u=t,f=m}else if($(e)){const r=await this.loadManifestSnapshot(e.entry,e,{},{initiator:o,id:t||e.name});u=r,f=U(e,r)}else b(Et,Rt,{remoteName:e.name,remoteVersion:e.version,hostName:this.HostInstance.options.name,globalSnapshot:JSON.stringify(m)},void 0,qt(this.HostInstance.options));return await this.hooks.lifecycle.afterLoadSnapshot.emit({id:t,host:this.HostInstance,options:r,moduleInfo:e,remoteSnapshot:u}),{remoteSnapshot:u,globalSnapshot:f}}getGlobalRemoteInfo(e){return ho(e,this.HostInstance)}async getManifestJson(e,t,o,r){return(async()=>{const o=Pt(t);let n=this.manifestCache.get(e);if(n)return n;try{let t=await this.loaderHook.lifecycle.fetch.emit(e,{},o,r?{...r,url:e,resourceType:"manifest"}:void 0);t&&t instanceof Response||(t=await fetch(e,{})),n=await t.json()}catch(r){n=await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:r,from:"runtime",lifecycle:"afterResolve",remote:o,origin:this.HostInstance}),n||(delete this.manifestLoading[e],b(dt,Rt,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name},`${r}`,qt(this.HostInstance.options)))}const s=[!n.metaData&&"metaData",!n.exposes&&"exposes",!n.shared&&"shared"].filter(Boolean);return s.length>0&&await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:new Error(`"${e}" is not a valid federation manifest for remote "${t.name}". Missing required fields: ${s.join(", ")}.`),from:"runtime",lifecycle:"afterResolve",remote:o,origin:this.HostInstance}),s.length>0&&b(Nt,Rt,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name,missingFields:s.join(",")},void 0,qt(this.HostInstance.options)),this.manifestCache.set(e,n),n})()}async loadManifestSnapshot(e,t,o,r){return this.manifestLoading[e]||(this.manifestLoading[e]=(async()=>{const n=await this.getManifestJson(e,t,o,r),s=function(e,t={}){const{remotes:o={},overrides:r={},version:n}=t;let s;const i=()=>"publicPath"in e.metaData?"auto"!==e.metaData.publicPath&&""!==e.metaData.publicPath||!n?e.metaData.publicPath:n.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"):e.metaData.getPublicPath,a=Object.keys(r);let c={};Object.keys(o).length||(c=e.remotes?.reduce(((e,t)=>{let o;const n=t.federationContainerName;return o=a.includes(n)?r[n]:"version"in t?t.version:t.entry,e[n]={matchedVersion:o},e}),{})||{}),Object.keys(o).forEach((e=>c[e]={matchedVersion:a.includes(e)?r[e]:o[e]}));const{remoteEntry:{path:l,name:h,type:m},types:u={path:"",name:"",zip:"",api:""},buildInfo:{buildVersion:f},globalName:d,ssrRemoteEntry:p}=e.metaData,{exposes:y}=e;let g={version:n||"",buildVersion:f,globalName:d,remoteEntry:no(l,h),remoteEntryType:m,remoteTypes:no(u.path,u.name),remoteTypesZip:u.zip||"",remoteTypesAPI:u.api||"",remotesInfo:c,shared:e?.shared.map((e=>({assets:e.assets,sharedName:e.name,version:e.version,usedExports:e.referenceExports||[]}))),modules:y?.map((e=>({moduleName:e.name,modulePath:e.path,assets:e.assets})))};if("publicPath"in e.metaData?(s={...g,publicPath:i()},"string"==typeof e.metaData.ssrPublicPath&&(s.ssrPublicPath=e.metaData.ssrPublicPath)):s={...g,getPublicPath:i()},p){const e=no(p.path,p.name);s.ssrRemoteEntry=e,s.ssrRemoteEntryType=p.type||"commonjs-module"}return s}(n,{version:e}),{remoteSnapshot:i}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:t,manifestJson:n,remoteSnapshot:s,manifestUrl:e,from:"manifest"});return i})().then((e=>e))),this.manifestLoading[e]}},uo=class{constructor(){this.hooks=new Zt({})}},fo=class{constructor(e){this.hooks=new Zt({beforeRegisterShare:new Xt("beforeRegisterShare"),afterResolve:new Qt("afterResolve"),beforeLoadShare:new Qt("beforeLoadShare"),loadShare:new oo,afterLoadShare:new Jt("afterLoadShare"),errorLoadShare:new Jt("errorLoadShare"),resolveShare:new Xt("resolveShare"),initContainerShareScopeMap:new Xt("initContainerShareScopeMap")}),this.host=e,this.shareScopeMap={},this.initTokens={},this._setGlobalShareScopeMap(e.options)}emitAfterLoadShare({lifecycle:e,pkgName:t,shareInfo:o,selectedShared:r}){try{this.hooks.lifecycle.afterLoadShare.emit({pkgName:t,shareInfo:o,selectedShared:r,shared:this.host.options.shared,shareScopeMap:this.shareScopeMap,lifecycle:e,origin:this.host})}catch(e){w(e)}}emitErrorLoadShare({lifecycle:e,pkgName:t,shareInfo:o,error:r,recovered:n}){try{this.hooks.lifecycle.errorLoadShare.emit({pkgName:t,shareInfo:o,shared:this.host.options.shared,shareScopeMap:this.shareScopeMap,lifecycle:e,origin:this.host,error:r,recovered:n})}catch(e){w(e)}}registerShared(e,t){const{newShareInfos:o,allShareInfos:r}=Pe(e,t);return Object.keys(o).forEach((e=>{o[e].forEach((o=>{o.scope.forEach((r=>{this.hooks.lifecycle.beforeRegisterShare.emit({origin:this.host,pkgName:e,shared:o}),this.shareScopeMap[r]?.[e]||this.setShared({pkgName:e,lib:o.lib,get:o.get,loaded:o.loaded||Boolean(o.lib),shared:o,from:t.name})}))}))})),{newShareInfos:o,allShareInfos:r}}async loadShare(e,t){const{host:o}=this,r=ze({pkgName:e,extraOptions:t,shareInfos:o.options.shared});let n=r;try{r?.scope&&await Promise.all(r.scope.map((async e=>{await Promise.all(this.initializeSharing(e,{strategy:r.strategy}))}))),n=(await this.hooks.lifecycle.beforeLoadShare.emit({pkgName:e,shareInfo:r,shared:o.options.shared,origin:o})).shareInfo,I(n,`Cannot find shared "${e}" in host "${o.options.name}". Ensure the shared config for "${e}" is declared in the federation plugin options and the host has been initialized before loading shares.`);const s=n,{shared:i,useTreesShaking:a}=We(this.shareScopeMap,e,n,this.hooks.lifecycle.resolveShare)||{};if(i){const t=Ze(i,a);if(t.lib)return Ke(t,o.options.name),this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,selectedShared:i}),t.lib;if(t.loading&&!t.loaded){const r=await t.loading;return t.loaded=!0,t.lib||(t.lib=r),Ke(t,o.options.name),this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,selectedShared:i}),r}{const r=async()=>{const e=await t.get();return Ke(t,o.options.name),t.loaded=!0,t.lib=e,e},n=r();this.setShared({pkgName:e,loaded:!1,shared:i,from:o.options.name,lib:null,loading:n,treeShaking:a?t:void 0});const c=await n;return this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,selectedShared:i}),c}}{if(t?.customShareInfo)return this.emitErrorLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,recovered:!0}),!1;const r=De(s.treeShaking),n=Ze(s,r),i=async()=>{const t=await n.get();n.lib=t,n.loaded=!0,Ke(n,o.options.name);const{shared:r,useTreesShaking:i}=We(this.shareScopeMap,e,s,this.hooks.lifecycle.resolveShare)||{};if(r){const e=Ze(r,i);e.lib=t,e.loaded=!0,r.from=s.from}return t},a=i();this.setShared({pkgName:e,loaded:!1,shared:s,from:o.options.name,lib:null,loading:a,treeShaking:r?n:void 0});const c=await a;return this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,selectedShared:s}),c}}catch(t){throw this.emitErrorLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:n,error:t}),t}}initializeSharing(e=V,t){const{host:o}=this,r=t?.from,n=t?.strategy;let s=t?.initScope;const i=[];if("build"!==r){const{initTokens:t}=this;s||(s=[]);let o=t[e];if(o||(o=t[e]={from:this.host.name}),s.indexOf(o)>=0)return i;s.push(o)}const a=this.shareScopeMap,c=o.options.name;a[e]||(a[e]={});const l=a[e];return Object.keys(o.options.shared).forEach((t=>{o.options.shared[t].forEach((o=>{o.scope.includes(e)&&((e,t)=>{const{version:o,eager:r}=t;l[e]=l[e]||{};const n=l[e],s=n[o]&&Ze(n[o]),i=Boolean(s&&("eager"in s&&s.eager||"shareConfig"in s&&s.shareConfig?.eager));(!s||"loaded-first"!==s.strategy&&!s.loaded&&(Boolean(!r)!==!i?r:c>n[o].from))&&(n[o]=t)})(t,o)}))})),"version-first"!==o.options.shareStrategy&&"version-first"!==n||o.options.remotes.forEach((t=>{t.shareScope===e&&i.push((async e=>{const{module:t}=await o.remoteHandler.getRemoteModuleAndOptions({id:e});let r;try{r=await t.getEntry()}catch(n){if(r=await o.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:n,from:"runtime",lifecycle:"beforeLoadShare",remote:t.remoteInfo,origin:o}),!r)return}finally{r?.init&&!t.initing&&(t.remoteEntryExports=r,await t.init(void 0,void 0,s))}})(t.name))})),i}loadShareSync(e,t){const{host:o}=this,r=ze({pkgName:e,extraOptions:t,shareInfos:o.options.shared});try{r?.scope&&r.scope.forEach((e=>{this.initializeSharing(e,{strategy:r.strategy})}));const{shared:n}=We(this.shareScopeMap,e,r,this.hooks.lifecycle.resolveShare)||{};if(n){if("function"==typeof n.lib)return Ke(n,o.options.name),n.loaded||(n.loaded=!0,n.from===o.options.name&&(r.loaded=!0)),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:r,selectedShared:n}),n.lib;if("function"==typeof n.get){const t=n.get();if(!(t instanceof Promise))return Ke(n,o.options.name),this.setShared({pkgName:e,loaded:!0,from:o.options.name,lib:t,shared:n}),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:r,selectedShared:n}),t}}if(r.lib)return r.loaded||(r.loaded=!0),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:r,selectedShared:r}),r.lib;if(r.get){const n=r.get();return n instanceof Promise&&b("build"===t?.from?yt:gt,Rt,{hostName:o.options.name,sharedPkgName:e},void 0,qt(o.options)),r.lib=n,this.setShared({pkgName:e,loaded:!0,from:o.options.name,lib:r.lib,shared:r}),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:r,selectedShared:r}),r.lib}b(gt,Rt,{hostName:o.options.name,sharedPkgName:e},void 0,qt(o.options))}catch(t){throw this.emitErrorLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:r,error:t}),t}}initShareScopeMap(e,t,o={}){const{host:r}=this;this.shareScopeMap[e]=t,this.hooks.lifecycle.initContainerShareScopeMap.emit({shareScope:t,options:r.options,origin:r,scopeName:e,hostShareScopeMap:o.hostShareScopeMap})}setShared({pkgName:e,shared:t,from:o,lib:r,loading:n,loaded:s,get:i,treeShaking:a}){const{version:c,scope:l="default",...h}=t;(Array.isArray(l)?l:[l]).forEach((t=>{this.shareScopeMap[t]||(this.shareScopeMap[t]={}),this.shareScopeMap[t][e]||(this.shareScopeMap[t][e]={}),this.shareScopeMap[t][e][c]||(this.shareScopeMap[t][e][c]={version:c,scope:[t],...h,lib:r});const l=this.shareScopeMap[t][e][c];(e=>{const t=(e,t,o)=>{o&&!e[t]&&(e[t]=o)},o=a?e.treeShaking:e;t(o,"loaded",s),t(o,"loading",n),t(o,"get",i)})(l),o&&l.from!==o&&(l.from=o)}))}_setGlobalShareScopeMap(e){const t=qe(),o=e.id||e.name;o&&!t[o]&&(t[o]=this.shareScopeMap)}},po=class{constructor(){this.shareScopeMap={},this.hooks=new Zt({afterResolve:new Qt("afterResolve")})}registerShared(){return{newShareInfos:{},allShareInfos:{}}}loadShare(){throw new Error("Shared dependency loading is disabled by experiments.optimization.disableShared.")}loadShareSync(){throw new Error("Shared dependency loading is disabled by experiments.optimization.disableShared.")}initializeSharing(){return[]}initShareScopeMap(e,t){this.shareScopeMap[e]=t}},yo=class{constructor(e){this.hooks=new Zt({beforeRegisterRemote:new Xt("beforeRegisterRemote"),registerRemote:new Xt("registerRemote"),beforeRequest:new Qt("beforeRequest"),afterMatchRemote:new oo("afterMatchRemote"),onLoad:new oo("onLoad"),afterLoadRemote:new oo("afterLoadRemote"),handlePreloadModule:new Jt("handlePreloadModule"),errorLoadRemote:new oo("errorLoadRemote"),beforePreloadRemote:new oo("beforePreloadRemote"),generatePreloadAssets:new oo("generatePreloadAssets"),afterPreloadRemote:new oo("afterPreloadRemote"),loadEntry:new oo}),this.host=e,this.idToRemoteMap={}}formatAndRegisterRemote(e,t){return(t.remotes||[]).reduce(((e,t)=>(this.registerRemote(t,e,{force:!1}),e)),e.remotes)}setIdToRemoteMap(e,t){const{remote:o,expose:r}=t,{name:n,alias:s}=o;if(this.idToRemoteMap[e]={name:o.name,expose:r},s&&e.startsWith(n)){const t=e.replace(n,s);this.idToRemoteMap[t]={name:o.name,expose:r}}else if(s&&e.startsWith(s)){const t=e.replace(s,n);this.idToRemoteMap[t]={name:o.name,expose:r}}}async loadRemote(e,t){const{host:o}=this,r=Ht(o.options.remotes,e);let n,s=e,i=r?.expose,a=r?Pt(r.remote):void 0;try{const{loadFactory:r=!0}=t||{loadFactory:!0},{module:c,moduleOptions:l,remoteMatchInfo:h}=await this.getRemoteModuleAndOptions({id:e}),{pkgNameOrAlias:m,remote:u,expose:f,id:d,remoteSnapshot:p}=h;s=d,i=f,a=Pt(u);const y=await c.get(d,f,t,p),g=await this.hooks.lifecycle.onLoad.emit({id:d,pkgNameOrAlias:m,expose:f,exposeModule:r?y:void 0,exposeModuleFactory:r?void 0:y,remote:u,options:l,moduleInstance:c,origin:o});return this.setIdToRemoteMap(e,h),n={id:s,expose:i,remote:a,options:t,origin:o},"function"==typeof g?g:y}catch(r){const{from:c="runtime"}=t||{from:"runtime"};let l;try{l=await this.hooks.lifecycle.errorLoadRemote.emit({id:e,error:r,from:c,lifecycle:"onLoad",expose:i,remote:a,origin:o})}catch(e){throw n={id:s,expose:i,remote:a,options:t,error:e,origin:o},e}if(!l)throw n={id:s,expose:i,remote:a,options:t,error:r,origin:o},r;return n={id:s,expose:i,remote:a,options:t,error:r,origin:o,recovered:!0},l}finally{n&&await this.hooks.lifecycle.afterLoadRemote.emit(n)}}async preloadRemote(e){const{host:t}=this,o=[];await this.hooks.lifecycle.beforePreloadRemote.emit({preloadOps:e,options:t.options,origin:t});const r=(n=t.options.remotes,e.map((e=>{const t=function(e,t){for(const o of e){if(t===o.name)return o;if(o.alias&&t===o.alias)return o}}(n,e.nameOrAlias);return I(t,`Unable to preload ${e.nameOrAlias} as it is not included in ${!t&&Qe({remoteInfo:t,remotes:n})}`),{remote:t,preloadConfig:Ft(e)}})));var n;let s;await Promise.all(r.flatMap((e=>{const{preloadConfig:t,remote:o}=e,r=t.exposes||[];return r.length?r.map((r=>({ops:{...e,preloadConfig:{...t,exposes:[r]}},id:Dt(o.name,r)}))):[{ops:e,id:`${o.name}/*`}]})).map((async e=>{const{ops:r,id:n}=e,{remote:s,preloadConfig:i}=r,a=Pt(s);try{const{globalSnapshot:e,remoteSnapshot:c}=await t.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:s,id:n,initiator:"preloadRemote"}),l=await this.hooks.lifecycle.generatePreloadAssets.emit({origin:t,preloadOptions:r,remote:s,remoteInfo:a,globalSnapshot:e,remoteSnapshot:c});if(!l)return;const h=await Vt(a,t,l,!0,{initiator:"preloadRemote",id:n});o.push({remote:s,remoteInfo:a,preloadConfig:i,id:n,results:h})}catch(e){o.push({remote:s,remoteInfo:a,preloadConfig:i,id:n,results:[{url:a.entry,status:"error",resourceType:/\.json(?:$|[?#])/i.test(a.entry)?"manifest":"remoteEntry",initiator:"preloadRemote",id:n,error:e}]})}})));const i=o.flatMap((e=>e.results.filter((e=>"error"===e.status||"timeout"===e.status))));if(i.length>0&&(s=new Error(`preloadRemote failed to load ${i.length} resource(s).`),Object.assign(s,{results:o,failedResults:i})),await this.hooks.lifecycle.afterPreloadRemote.emit({preloadOps:e,options:t.options,origin:t,results:o,error:s}),s)throw s}registerRemotes(e,t){const{host:o}=this;e.forEach((e=>{this.registerRemote(e,o.options.remotes,{force:t?.force})}))}initRawContainer(e,t,o){const{host:r}=this,n=new Kt({host:r,remoteInfo:Pt({name:e,entry:t})});return n.remoteEntryExports=o,r.moduleCache.set(e,n),n}async getRemoteModuleAndOptions(e){const{host:t}=this,{id:o}=e;let r;try{r=await this.hooks.lifecycle.beforeRequest.emit({id:o,options:t.options,origin:t})}catch(e){if(r=await this.hooks.lifecycle.errorLoadRemote.emit({id:o,options:t.options,origin:t,from:"runtime",error:e,lifecycle:"beforeRequest"}),!r)throw e}const{id:n}=r,s=Ht(t.options.remotes,n);if(!s)try{b(pt,Rt,{hostName:t.options.name,requestId:n},void 0,qt(t.options))}catch(e){throw await this.hooks.lifecycle.afterMatchRemote.emit({id:n,options:t.options,error:e,origin:t}),e}const{remote:i}=s,a=Pt(i);await this.hooks.lifecycle.afterMatchRemote.emit({id:n,...s,options:t.options,remoteInfo:a,origin:t});const c=await t.sharedHandler.hooks.lifecycle.afterResolve.emit({id:n,...s,options:t.options,origin:t,remoteInfo:a}),{remote:l,expose:h}=c;I(l&&h,`The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${n}.`);let m=t.moduleCache.get(l.name);const u={host:t,remoteInfo:a};return m||(m=new Kt(u),t.moduleCache.set(l.name,m)),{module:m,moduleOptions:u,remoteMatchInfo:c}}registerRemote(e,t,o){const{host:r}=this,n=()=>{if(e.alias){const o=t.find((t=>e.alias&&(t.name.startsWith(e.alias)||t.alias?.startsWith(e.alias))));I(!o,`The alias ${e.alias} of remote ${e.name} is not allowed to be the prefix of ${o&&o.name} name or alias`)}"entry"in e&&l&&"undefined"!=typeof window&&!e.entry.startsWith("http")&&(e.entry=new URL(e.entry,window.location.origin).href),e.shareScope||(e.shareScope=V),e.type||(e.type=W)};this.hooks.lifecycle.beforeRegisterRemote.emit({remote:e,origin:r});const s=t.find((t=>t.name===e.name));if(s){const i=[`The remote "${e.name}" is already registered.`,"Please note that overriding it may cause unexpected errors."];o?.force&&(this.removeRemote(s),n(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:r}),Xe(i.join(" ")))}else n(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:r})}removeRemote(e){try{const{host:t}=this,{name:o}=e,r=t.options.remotes.findIndex((e=>e.name===o));-1!==r&&t.options.remotes.splice(r,1);const n=F(A.__FEDERATION__.moduleInfo,N(e)).key;delete A.__FEDERATION__.moduleInfo[n],"entry"in e&&(t.snapshotHandler.manifestCache.delete(e.entry),delete M.__FEDERATION__.__MANIFEST_LOADING__[e.entry]);const{hostGlobalSnapshot:s}=ho(e,t);if(s){const t=s&&"remotesInfo"in s&&s.remotesInfo&&F(s.remotesInfo,e.name).key;t&&delete s.remotesInfo[t]}const i=t.moduleCache.get(e.name);if(i){const o=i.remoteInfo,r=o.entryGlobalName;A[r]&&(Object.getOwnPropertyDescriptor(A,r)?.configurable?delete A[r]:A[r]=void 0);const n=Mt(i.remoteInfo);D[n]&&delete D[n];let s=o.buildVersion?Je(o.name,o.buildVersion):o.name;const a=A.__FEDERATION__.__INSTANCES__.findIndex((e=>o.buildVersion?e.options.id===s:e.name===s));if(-1!==a){const e=A.__FEDERATION__.__INSTANCES__[a];s=e.options.id||s;const t=qe();let r=!0;const n=[];Object.keys(t).forEach((e=>{const s=t[e];s&&Object.keys(s).forEach((t=>{const i=s[t];i&&Object.keys(i).forEach((s=>{const a=i[s];a&&Object.keys(a).forEach((i=>{const c=a[i];c&&"object"==typeof c&&c.from===o.name&&(c.loaded||c.loading?(c.useIn=c.useIn.filter((e=>e!==o.name)),c.useIn.length?r=!1:n.push([e,t,s,i])):n.push([e,t,s,i]))}))}))}))})),r&&(e.shareScopeMap={},delete t[s]),n.forEach((([e,o,r,n])=>{delete t[e]?.[o]?.[r]?.[n]})),A.__FEDERATION__.__INSTANCES__.splice(a,1)}t.moduleCache.delete(e.name)}}catch(e){_.error(`removeRemote failed: ${e instanceof Error?e.message:String(e)}`)}}};const go="boolean"!=typeof FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN||!FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN,Eo="boolean"!=typeof FEDERATION_OPTIMIZE_NO_REMOTE||!FEDERATION_OPTIMIZE_NO_REMOTE,So="boolean"!=typeof FEDERATION_OPTIMIZE_NO_SHARED||!FEDERATION_OPTIMIZE_NO_SHARED;var _o=class{constructor(e){this.hooks=new Zt({beforeInit:new Xt("beforeInit"),init:new Jt,beforeInitContainer:new Qt("beforeInitContainer"),initContainer:new Qt("initContainer")}),this.version="2.8.2",this.moduleCache=new Map,this.loaderHook=new Zt({getModuleInfo:new Jt,createScript:new Jt,createLink:new Jt,fetch:new oo,loadEntryError:new oo,afterLoadEntry:new oo("afterLoadEntry"),beforeInitRemote:new oo("beforeInitRemote"),afterInitRemote:new oo("afterInitRemote"),beforeGetExpose:new oo("beforeGetExpose"),afterGetExpose:new oo("afterGetExpose"),beforeExecuteFactory:new oo("beforeExecuteFactory"),afterExecuteFactory:new oo("afterExecuteFactory"),getModuleFactory:new oo}),this.bridgeHook=new Zt({beforeBridgeRender:new Jt,afterBridgeRender:new Jt,beforeBridgeDestroy:new Jt,afterBridgeDestroy:new Jt});const t=Eo&&go?[{name:"snapshot-plugin",async afterResolve(e){const{remote:t,pkgNameOrAlias:o,expose:r,origin:n,remoteInfo:s,id:i}=e;if(!$(t)||!v(t)){const{remoteSnapshot:a,globalSnapshot:c}=await n.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:t,id:Dt(t.name,r)});ro(s,a);const l={remote:t,preloadConfig:{nameOrAlias:o,exposes:[r],resourceCategory:"sync",share:!1,depsRemote:!1}},h=await n.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({origin:n,preloadOptions:l,remoteInfo:s,remote:t,remoteSnapshot:a,globalSnapshot:c});return h&&Vt(s,n,h,!1,{initiator:"loadRemote",id:i}).catch((()=>{})),{...e,remoteSnapshot:a}}return e}},{name:"generate-preload-assets-plugin",async generatePreloadAssets(e){const{origin:t,preloadOptions:o,remoteInfo:r,remote:n,globalSnapshot:s,remoteSnapshot:i}=e;return l?$(n)&&v(n)?{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[{name:n.name,url:n.entry,moduleInfo:{name:r.name,entry:n.entry,type:r.type||"global",entryGlobalName:"",shareScope:""}}]}:(ro(r,i),lo(t,o,r,s,i)):{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[]}}}]:[],o={id:"undefined"!=typeof FEDERATION_BUILD_IDENTIFIER?FEDERATION_BUILD_IDENTIFIER:"",name:e.name,plugins:t,remotes:[],shared:{},inBrowser:l};this.name=e.name,this.options=o,this.snapshotHandler=Eo?new mo(this):new uo,this.sharedHandler=So?new fo(this):new po,this.remoteHandler=Eo?new yo(this):new to,this.shareScopeMap=this.sharedHandler.shareScopeMap,this.registerPlugins([...o.plugins,...e.plugins||[]]),this.options=this.formatOptions(o,e)}initOptions(e){e.name&&e.name!==this.options.name&&b(E(It,Rt)),this.registerPlugins(e.plugins);const t=this.formatOptions(this.options,e);return this.options=t,t}async loadShare(e,t){return this.sharedHandler.loadShare(e,t)}loadShareSync(e,t){return this.sharedHandler.loadShareSync(e,t)}initializeSharing(e=V,t){return this.sharedHandler.initializeSharing(e,t)}initRawContainer(e,t,o){return this.remoteHandler.initRawContainer(e,t,o)}async loadRemote(e,t){return this.remoteHandler.loadRemote(e,t)}async preloadRemote(e){return this.remoteHandler.preloadRemote(e)}initShareScopeMap(e,t,o={}){this.sharedHandler.initShareScopeMap(e,t,o)}formatOptions(e,t){const o=So?Pe(e,t).allShareInfos:{},{userOptions:r,options:n}=this.hooks.lifecycle.beforeInit.emit({origin:this,userOptions:t,options:e,shareInfo:o}),s=this.remoteHandler.formatAndRegisterRemote(n,r),{allShareInfos:i}=this.sharedHandler.registerShared(n,r),a=[...n.plugins];r.plugins&&r.plugins.forEach((e=>{a.includes(e)||a.push(e)}));const c={...e,...t,plugins:a,remotes:s,shared:i,id:r.id||e.id};return this.hooks.lifecycle.init.emit({origin:this,options:c}),c}registerPlugins(e){const t=function(e,t){const o=x.__FEDERATION__.__GLOBAL_PLUGIN__,r=[t.hooks,t.remoteHandler.hooks,t.sharedHandler.hooks,t.snapshotHandler.hooks,t.loaderHook,t.bridgeHook];return o.length>0&&o.forEach((t=>{e?.find((e=>e.name!==t.name))&&e.push(t)})),e&&e.length>0&&e.forEach((e=>{r.forEach((o=>{o.applyPlugin(e,t)}))})),e}(e,this);this.options.plugins=this.options.plugins.reduce(((e,t)=>t?(e&&!e.find((e=>e.name===t.name))&&e.push(t),e):e),t||[])}registerRemotes(e,t){return this.remoteHandler.registerRemotes(e,t)}registerShared(e){this.sharedHandler.registerShared(this.options,{...this.options,shared:e})}};Object.defineProperty,"boolean"==typeof FEDERATION_OPTIMIZE_NO_REMOTE&&FEDERATION_OPTIMIZE_NO_REMOTE;let Io=null;function bo(e){const t=function(e,t){const o="undefined"!=typeof FEDERATION_BUILD_IDENTIFIER?FEDERATION_BUILD_IDENTIFIER:"";return A.__FEDERATION__.__INSTANCES__.find((r=>!(!o||r.options.id!==o)||r.options.name===e&&!r.options.version&&!t||!(r.options.name!==e||!t||r.options.version!==t)))}(e.name,e.version),o={...e,id:e.id||""};return t?(t.initOptions(o),Io||(Io=t),t):(Io=function(e){const t=new(A.__FEDERATION__.__DEBUG_CONSTRUCTOR__||_o)({id:`${e.name}@${e.version||Date.now()}`,...e});return function(e){A.__FEDERATION__.__INSTANCES__.push(e)}(t),t}(o),Io)}!function(e,t=u()){t&&(A.__FEDERATION__.__DEBUG_CONSTRUCTOR__=e,A.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__="2.8.2")}(_o);let wo=!1;const No=new Set,$o=async(e,t,o,r="default")=>{console.debug(`loading Appshell component: { scope: ${e}, module: ${t}, shareScope: ${r} }`),wo||(wo=!0,Io||bo({name:"Appshell",remotes:[]})),No.has(e)||(No.add(e),function(...e){I(Io,_t,Rt),Io.registerRemotes.apply(Io,e)}([{name:e,entry:o}]));const n=t.replace(/^\.\//,""),s=await function(...e){return I(Io,_t,Rt),Io.loadRemote.apply(Io,e)}(`${e}/${n}`);if(!s)throw new Error(`Failed to find module container ${e}`);return console.debug(`Appshell component loaded: { scope: ${e}, module: ${t}, shareScope: ${r} }`),s.default};(Object.getOwnPropertyDescriptor($o,"name")||{}).writable||Object.defineProperty($o,"name",{value:"default",configurable:!0});const vo=e=>async t=>{const o=e?.remotes[t];if(e&&o)return{remote:o,vars:e.vars[o.scope]??{}}},Ro=(e,t="")=>async o=>{if(!e)return;const r=`${t}/v1/applications/${e.applicationId}/remotes/${o}`,n=await fetch(r,{credentials:"include"});if(!n.ok)return;const s=await n.json();return{remote:s,vars:e.vars[s.scope]??{}}},ko=(...e)=>async t=>{for(const o of e){const e=await o(t);if(e)return e}},Oo=(e={})=>{const t=e.composition??("undefined"==typeof window?void 0:window.__appshell_config__),o=e.resolver??ko(vo(t),Ro(t));return async e=>{const t=t=>new Error(`Failed to load component '${e}'. ${t?.toString()}`);let r;try{r=await o(e)}catch(e){throw t(e)}if(!r)throw new Error(`Remote resource not found in registry. Expected: ${e}`);const{remote:n,vars:i}=r;try{return(0,s.setVars)(n.scope,i),[await $o(n.scope,n.module,n.remoteEntryUrl,n.shareScope),n]}catch(e){throw t(e)}}};(Object.getOwnPropertyDescriptor(Oo,"name")||{}).writable||Object.defineProperty(Oo,"name",{value:"default",configurable:!0});const To=Oo;return n})()));
|
|
1
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@appshell/runtime"));else if("function"==typeof define&&define.amd)define(["@appshell/runtime"],t);else{var o="object"==typeof exports?t(require("@appshell/runtime")):t(e["@appshell/runtime"]);for(var r in o)("object"==typeof exports?exports:e)[r]=o[r]}}(this,(e=>(()=>{"use strict";var t={164(t){t.exports=e}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var s=o[e]={exports:{}};return t[e](s,s.exports,r),s.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{chainResolvers:()=>Oo,default:()=>Ao,inlineResolver:()=>Ro,registryResolver:()=>ko});var s=r(164);const i=".json",a="FEDERATION_DEBUG";let c=function(e){return e[e.UNKNOWN=1]="UNKNOWN",e[e.CALCULATED=2]="CALCULATED",e[e.NO_USE=0]="NO_USE",e}({});const l="undefined"!=typeof ENV_TARGET?"web"===ENV_TARGET:"undefined"!=typeof window&&void 0!==window.document;function h(){return l}function m(){return"undefined"!=typeof navigator&&"ReactNative"===navigator?.product}function d(){return"undefined"!=typeof process&&process.env&&process.env.FEDERATION_DEBUG?Boolean(process.env.FEDERATION_DEBUG):!("undefined"==typeof FEDERATION_DEBUG||!Boolean(FEDERATION_DEBUG))||function(){try{if(h()&&window.localStorage)return Boolean(localStorage.getItem(a))}catch(e){return!1}return!1}()}const u="[ Module Federation ]",f=console,p=["logger.ts","logger.js","captureStackTrace","Logger.emit","Logger.log","Logger.info","Logger.warn","Logger.error","Logger.debug"];var y=class{constructor(e,t=f){this.prefix=e,this.delegate=t??f}setPrefix(e){this.prefix=e}setDelegate(e){this.delegate=e??f}emit(e,t){const o=this.delegate,r=d()?function(){try{const e=(new Error).stack;if(!e)return;const[,...t]=e.split("\n"),o=t.filter((e=>!p.some((t=>e.includes(t)))));if(!o.length)return;return`Stack trace:\n${o.slice(0,5).join("\n")}`}catch{return}}():void 0,n=r?[...t,r]:t,s=(()=>{switch(e){case"log":return["log","info"];case"info":return["info","log"];case"warn":return["warn","info","log"];case"error":return["error","warn","log"];default:return["debug","log"]}})();for(const e of s){const t=o[e];if("function"==typeof t)return void t.call(o,this.prefix,...n)}for(const e of s){const t=f[e];if("function"==typeof t)return void t.call(f,this.prefix,...n)}}log(...e){this.emit("log",e)}warn(...e){this.emit("warn",e)}error(...e){this.emit("error",e)}success(...e){this.emit("info",e)}info(...e){this.emit("info",e)}ready(...e){this.emit("info",e)}debug(...e){d()&&this.emit("debug",e)}};function g(e){return new y(e)}g(u),function(e){const t=new y(e);Object.defineProperty(t,"__mf_infrastructure_logger__",{value:!0,enumerable:!1,configurable:!1})}(u);const E=(e,t,o,r)=>{const n=[`${[t[e]]} #${e}`];return o&&n.push(`args: ${JSON.stringify(o)}`),n.push((e=>`View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${e.split("-")[0].toLowerCase()}#${e.toLowerCase()}`)(e)),r&&n.push(`Original Error Message:\n ${r}`),n.join("\n")},S="[ Federation Runtime ]",_=g(S);function I(e,t,o,r,n){e||(void 0!==o?b(t,o,r,void 0):b(t))}function b(e,t,o,r,n){if(void 0!==t)return function(e,t,o,r,n){return(e=>{throw new Error(`${S}: ${e}`)})(E(e,t,o,n))}(e,t,o??{},0,r);const s=e;if(s instanceof Error)throw s.message.startsWith(S)||(s.message=`${S}: ${s.message}`),s;throw new Error(`${S}: ${s}`)}function w(e){e instanceof Error?(e.message.startsWith(S)||(e.message=`${S}: ${e.message}`),_.warn(e)):_.warn(e)}function N(e){return"version"in e&&e.version?`${e.name}:${e.version}`:"entry"in e&&e.entry?`${e.name}:${e.entry}`:`${e.name}`}function $(e){return void 0!==e.entry}function v(e){return!e.entry.includes(".json")}function R(e){return e&&"object"==typeof e}const k=Object.prototype.toString;function O(e){return Array.isArray(e)?e:[e]}function T(e){const t={url:"",type:"global",globalName:""};return l||m()||!("ssrRemoteEntry"in e)?"remoteEntry"in e?{url:e.remoteEntry,type:e.remoteEntryType,globalName:e.globalName}:t:"ssrRemoteEntry"in e?{url:e.ssrRemoteEntry||t.url,type:e.ssrRemoteEntryType||t.type,globalName:e.globalName}:t}const A="object"==typeof globalThis?globalThis:window,x=(()=>{try{return document.defaultView}catch{return A}})(),M=x;function L(e,t,o){Object.defineProperty(e,t,{value:o,configurable:!1,writable:!0})}function P(e,t){return Object.hasOwnProperty.call(e,t)}P(A,"__GLOBAL_LOADING_REMOTE_ENTRY__")||L(A,"__GLOBAL_LOADING_REMOTE_ENTRY__",{});const D=A.__GLOBAL_LOADING_REMOTE_ENTRY__;function H(e){P(e,"__VMOK__")&&!P(e,"__FEDERATION__")&&L(e,"__FEDERATION__",e.__VMOK__),P(e,"__FEDERATION__")||(L(e,"__FEDERATION__",{__GLOBAL_PLUGIN__:[],__INSTANCES__:[],moduleInfo:{},__SHARE__:{},__MANIFEST_LOADING__:{},__PRELOADED_MAP__:new Map}),L(e,"__VMOK__",e.__FEDERATION__)),e.__FEDERATION__.__GLOBAL_PLUGIN__??=[],e.__FEDERATION__.__INSTANCES__??=[],e.__FEDERATION__.moduleInfo??={},e.__FEDERATION__.__SHARE__??={},e.__FEDERATION__.__MANIFEST_LOADING__??={},e.__FEDERATION__.__PRELOADED_MAP__??=new Map}function F(e,t){if("string"==typeof t){if(e[t])return{value:e[t],key:t};{const o=Object.keys(e);for(const r of o){const[o,n]=r.split(":"),s=`${o}:${t}`,i=e[s];if(i)return{value:i,key:s}}return{value:void 0,key:t}}}b(`getInfoWithoutType: "key" must be a string, got ${typeof t} (${JSON.stringify(t)}).`)}H(A),H(x);const C=()=>x.__FEDERATION__.moduleInfo,j=e=>((e,t)=>{const o=F(t,N(e)).value;if(o&&!o.version&&"version"in e&&e.version&&(o.version=e.version),o)return o;if("version"in e&&e.version){const{version:t,...o}=e,r=N(o),n=F(x.__FEDERATION__.moduleInfo,r).value;if(n?.version===t)return n}})(e,x.__FEDERATION__.moduleInfo),U=(e,t)=>{const o=N(e);return x.__FEDERATION__.moduleInfo[o]=t,x.__FEDERATION__.moduleInfo},G=(e,t)=>{const o=t||`__FEDERATION_${e}:custom__`;return{remoteEntryKey:o,entryExports:A[o]}},B=e=>A.__FEDERATION__.__PRELOADED_MAP__.set(e,!0),V="default",W="global",q="[0-9A-Za-z-]+",z=`(?:\\+(${q}(?:\\.${q})*))`,K="0|[1-9]\\d*",Z="[0-9]+",J="\\d*[a-zA-Z-][a-zA-Z0-9-]*",Y=`(?:${Z}|${J})`,X=`(?:${K}|${J})`,Q=`(?:-(${X}(?:\\.${X})*))`,ee=`${K}|x|X|\\*`,te=`[v=\\s]*(${ee})(?:\\.(${ee})(?:\\.(${ee})(?:${Q})?${z}?)?)?`,oe=`^\\s*(${te})\\s+-\\s+(${te})\\s*$`,re="((?:<|>)?=?)",ne=`(\\s*)${re}\\s*([v=\\s]*(${Z})\\.(${Z})\\.(${Z})(?:-?(${Y}(?:\\.${Y})*))?${z}?|${te})`,se="(?:~>?)",ie=`(\\s*)${se}\\s+`,ae="(?:\\^)",ce=`(\\s*)${ae}\\s+`,le="(<|>)?=?\\s*\\*",he=`^${ae}${te}$`,me=`^${se}${te}$`,de=`^${re}\\s*${te}$`,ue=`^${re}\\s*(v?(${K})\\.(${K})\\.(${K})${Q}?${z}?)$|^$`,fe="^\\s*>=\\s*0.0.0\\s*$";function pe(e){return new RegExp(e)}function ye(e){return!e||"x"===e.toLowerCase()||"*"===e}function ge(...e){return t=>e.reduce(((e,t)=>t(e)),t)}function Ee(e){return e.match(pe(ue))}function Se(e,t,o,r){const n=`${e}.${t}.${o}`;return r?`${n}-${r}`:n}function _e(e){return e.replace(pe(oe),((e,t,o,r,n,s,i,a,c,l,h,m)=>`${t=ye(o)?"":ye(r)?`>=${o}.0.0`:ye(n)?`>=${o}.${r}.0`:`>=${t}`} ${a=ye(c)?"":ye(l)?`<${Number(c)+1}.0.0-0`:ye(h)?`<${c}.${Number(l)+1}.0-0`:m?`<=${c}.${l}.${h}-${m}`:`<=${a}`}`.trim()))}function Ie(e){return e.replace(pe(ne),"$1$2$3")}function be(e){return e.replace(pe(ie),"$1~")}function we(e){return e.replace(pe(ce),"$1^")}function Ne(e){return e.trim().split(/\s+/).map((e=>e.replace(pe(he),((e,t,o,r,n)=>ye(t)?"":ye(o)?`>=${t}.0.0 <${Number(t)+1}.0.0-0`:ye(r)?"0"===t?`>=${t}.${o}.0 <${t}.${Number(o)+1}.0-0`:`>=${t}.${o}.0 <${Number(t)+1}.0.0-0`:n?"0"===t?"0"===o?`>=${t}.${o}.${r}-${n} <${t}.${o}.${Number(r)+1}-0`:`>=${t}.${o}.${r}-${n} <${t}.${Number(o)+1}.0-0`:`>=${t}.${o}.${r}-${n} <${Number(t)+1}.0.0-0`:"0"===t?"0"===o?`>=${t}.${o}.${r} <${t}.${o}.${Number(r)+1}-0`:`>=${t}.${o}.${r} <${t}.${Number(o)+1}.0-0`:`>=${t}.${o}.${r} <${Number(t)+1}.0.0-0`)))).join(" ")}function $e(e){return e.trim().split(/\s+/).map((e=>e.replace(pe(me),((e,t,o,r,n)=>ye(t)?"":ye(o)?`>=${t}.0.0 <${Number(t)+1}.0.0-0`:ye(r)?`>=${t}.${o}.0 <${t}.${Number(o)+1}.0-0`:n?`>=${t}.${o}.${r}-${n} <${t}.${Number(o)+1}.0-0`:`>=${t}.${o}.${r} <${t}.${Number(o)+1}.0-0`)))).join(" ")}function ve(e){return e.split(/\s+/).map((e=>e.trim().replace(pe(de),((e,t,o,r,n,s)=>{const i=ye(o),a=i||ye(r),c=a||ye(n);return"="===t&&c&&(t=""),s="",i?">"===t||"<"===t?"<0.0.0-0":"*":t&&c?(a&&(r=0),n=0,">"===t?(t=">=",a?(o=Number(o)+1,r=0,n=0):(r=Number(r)+1,n=0)):"<="===t&&(t="<",a?o=Number(o)+1:r=Number(r)+1),"<"===t&&(s="-0"),`${t+o}.${r}.${n}${s}`):a?`>=${o}.0.0${s} <${Number(o)+1}.0.0-0`:c?`>=${o}.${r}.0${s} <${o}.${Number(r)+1}.0-0`:e})))).join(" ")}function Re(e){return e.trim().replace(pe(le),"")}function ke(e,t){return(e=Number(e)||e)>(t=Number(t)||t)?1:e===t?0:-1}function Oe(e,t){return ke(e.major,t.major)||ke(e.minor,t.minor)||ke(e.patch,t.patch)||function(e,t){const{preRelease:o}=e,{preRelease:r}=t;if(void 0===o&&Boolean(r))return 1;if(Boolean(o)&&void 0===r)return-1;if(void 0===o&&void 0===r)return 0;for(let e=0,t=o.length;e<=t;e++){const t=o[e],n=r[e];if(t!==n)return void 0===t&&void 0===n?0:t?n?ke(t,n):-1:1}return 0}(e,t)}function Te(e,t){return e.version===t.version}function Ae(e,t){switch(e.operator){case"":case"=":return Te(e,t);case">":return Oe(e,t)<0;case">=":return Te(e,t)||Oe(e,t)<0;case"<":return Oe(e,t)>0;case"<=":return Te(e,t)||Oe(e,t)>0;case void 0:return!0;default:return!1}}function xe(e){return ge(Ne,$e,ve,Re)(e)}function Me(e){return ge(_e,Ie,be,we)(e.trim()).split(/\s+/).join(" ")}function Le(e,t){if(!e)return!1;const o=Ee(e);if(!o)return!1;const[,r,,n,s,i,a]=o,c={operator:r,version:Se(n,s,i,a),major:n,minor:s,patch:i,preRelease:a?.split(".")},l=t.split("||");for(const e of l){const t=e.trim();if(!t)return!0;if("*"===t||"x"===t)return!0;try{const e=Me(t);if(!e.trim())return!0;const o=e.split(" ").map((e=>xe(e))).join(" ");if(!o.trim())return!0;const r=o.split(/\s+/).map((e=>e.trim().replace(pe(fe),""))).filter(Boolean);if(0===r.length)continue;let n=!0;for(const e of r){const t=Ee(e);if(!t){n=!1;break}const[,o,,r,s,i,a]=t;if(!Ae({operator:o,version:Se(r,s,i,a),major:r,minor:s,patch:i,preRelease:a?.split(".")},c)){n=!1;break}}if(n)return!0}catch(e){console.error(`[semver] Error processing range part "${t}":`,e);continue}}return!1}function Pe(e,t){const o=t.shared||{},r=t.name,n=Object.keys(o).reduce(((e,n)=>{const s=O(o[n]);return e[n]=e[n]||[],s.forEach((o=>{e[n].push(function(e,t,o,r){let n;return n="get"in e?e.get:"lib"in e?()=>Promise.resolve(e.lib):()=>Promise.resolve((()=>{b(`Cannot get shared "${o}" from "${t}": neither "get" nor "lib" is provided in the share config.`)})),e.shareConfig?.eager&&e.treeShaking?.mode&&b(`Invalid shared config for "${o}" from "${t}": cannot use both "eager: true" and "treeShaking.mode" simultaneously. Choose one strategy.`),{deps:[],useIn:[],from:t,loading:null,...e,shareConfig:{requiredVersion:`^${e.version}`,singleton:!1,eager:!1,strictVersion:!1,...e.shareConfig},get:n,loaded:!(!e?.loaded&&!("lib"in e))||void 0,version:e.version??"0",scope:Array.isArray(e.scope)?e.scope:[e.scope??"default"],strategy:(e.strategy??r)||"version-first",treeShaking:e.treeShaking?{...e.treeShaking,mode:e.treeShaking.mode??"server-calc",status:e.treeShaking.status??c.UNKNOWN,useIn:[]}:void 0}}(o,r,n,t.shareStrategy))})),e}),{}),s={...e.shared};return Object.keys(n).forEach((e=>{s[e]?n[e].forEach((t=>{s[e].find((e=>e.version===t.version))||s[e].push(t)})):s[e]=n[e]})),{allShareInfos:s,newShareInfos:n}}function De(e,t){if(!e)return!1;const{status:o,mode:r}=e;return o!==c.NO_USE&&(o===c.CALCULATED||"runtime-infer"===r&&(!t||je(e,t)))}function He(e,t){const o=e=>{if(!Number.isNaN(Number(e))){const t=e.split(".");let o=e;for(let e=0;e<3-t.length;e++)o+=".0";return o}return e};return!!Le(o(e),`<=${o(t)}`)}const Fe=(e,t)=>{const o=t||function(e,t){return He(e,t)};return Object.keys(e).reduce(((e,t)=>e?o(e,t)||"0"===e?t:e:t),0)},Ce=e=>Boolean(e.loaded)||"function"==typeof e.lib,je=(e,t)=>{if(!e||!t)return!1;const{usedExports:o}=e;return!!o&&!!t.every((e=>o.includes(e)))};function Ue(e,t,o,r){const n=e[t][o];let s="",i=De(r);const a=function(e,t){return i?!n[e].treeShaking||!!n[t].treeShaking&&!Ce(n[e].treeShaking)&&He(e,t):!Ce(n[e])&&He(e,t)};if(i){if(s=Fe(e[t][o],a),s)return{version:s,useTreesShaking:i};i=!1}return{version:Fe(e[t][o],a),useTreesShaking:i}}const Ge=e=>Ce(e)||(e=>Boolean(e.loading))(e);function Be(e,t,o,r){const n=e[t][o];let s="",i=De(r);const a=function(e,t){if(i){if(!n[e].treeShaking)return!0;if(!n[t].treeShaking)return!1;if(Ge(n[t].treeShaking))return!Ge(n[e].treeShaking)||Boolean(He(e,t));if(Ge(n[e].treeShaking))return!1}return Ge(n[t])?!Ge(n[e])||Boolean(He(e,t)):!Ge(n[e])&&He(e,t)};if(i){if(s=Fe(e[t][o],a),s)return{version:s,useTreesShaking:i};i=!1}return{version:Fe(e[t][o],a),useTreesShaking:i}}function Ve(e){return"loaded-first"===e?Be:Ue}function We(e,t,o,r){if(!e)return;const{shareConfig:n,scope:s=V,strategy:i,treeShaking:a}=o,c=Array.isArray(s)?s:[s];for(const s of c)if(n&&e[s]&&e[s][t]){const{requiredVersion:c}=n,{version:l,useTreesShaking:h}=Ve(i)(e,s,t,a),m=()=>{const r=e[s][t][l];if(n.singleton){if("string"==typeof c&&!Le(l,c)){const e=`Version ${l} from ${l&&r.from} of shared singleton module ${t} does not satisfy the requirement of ${o.from} which needs ${c})`;n.strictVersion?b(e):w(e)}return{shared:r,useTreesShaking:h}}{if(!1===c||"*"===c)return{shared:r,useTreesShaking:h};if(Le(l,c))return{shared:r,useTreesShaking:h};const o=De(a);if(o)for(const[r,n]of Object.entries(e[s][t]))if(De(n.treeShaking,a?.usedExports)&&Le(r,c))return{shared:n,useTreesShaking:o};for(const[o,r]of Object.entries(e[s][t]))if(Le(o,c))return{shared:r,useTreesShaking:!1}}},d={shareScopeMap:e,scope:s,pkgName:t,version:l,GlobalFederation:M.__FEDERATION__,shareInfo:o,resolver:m};return(r.emit(d)||d).resolver()}}function qe(){return M.__FEDERATION__.__SHARE__}function ze(e){const{pkgName:t,extraOptions:o,shareInfos:r}=e,n=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),s=(...e)=>{const t={};for(const o of e)if(o)for(const[e,r]of Object.entries(o)){const o=t[e];n(o)&&n(r)?t[e]=s(o,r):void 0!==r&&(t[e]=r)}return t};return s((o?.resolver??(e=>{if(!e)return;const t={};return e.forEach((e=>{t[e.version]=e})),t[Fe(t,(function(e,o){return!Ce(t[e])&&He(e,o)}))]}))(r[t]),o?.customShareInfo)}const Ke=(e,t)=>{var o,r;e.useIn||(e.useIn=[]),o=e.useIn,r=t,-1===o.findIndex((e=>e===r))&&o.push(r)};function Ze(e,t){return t&&e.treeShaking?e.treeShaking:e}const Je=function(...e){return e.length?e.reduce(((e,t)=>t?e?`${e}:${t}`:t:e),""):""};function Ye(e,t){if("getPublicPath"in e){let o;return o=e.getPublicPath.startsWith("function")?new Function("return "+e.getPublicPath)()():new Function(e.getPublicPath)(),`${o}${t}`}return"publicPath"in e?h()||m()||!("ssrPublicPath"in e)||"string"!=typeof e.ssrPublicPath?`${e.publicPath}${t}`:`${e.ssrPublicPath}${t}`:(console.warn("Cannot get resource URL. If in debug mode, please ignore.",e,t),"")}const Xe=e=>{console.warn(`[ Federation Runtime ]: ${e}`)};function Qe(e){try{return JSON.stringify(e,null,2)}catch(e){return""}}async function et(e,t){try{return await e()}catch(e){return void(!t&&Xe(e))}}function tt(e,t){const o=/^(https?:)?\/\//i;return e.replace(o,"").replace(/\/$/,"")===t.replace(o,"").replace(/\/$/,"")}function ot(e){let t,o=null,r=!0,n=2e4;const s=document.getElementsByTagName("script");for(let t=0;t<s.length;t++){const n=s[t],i=n.getAttribute("src");if(i&&tt(i,e.url)){o=n,r=!1;break}}if(!o){const t=e.attrs;let r;o=document.createElement("script"),o.type="module"===t?.type?"module":"text/javascript",e.createScriptHook&&(r=e.createScriptHook(e.url,e.attrs),r instanceof HTMLScriptElement?o=r:"object"==typeof r&&("script"in r&&r.script&&(o=r.script),"timeout"in r&&r.timeout&&(n=r.timeout))),o.src||(o.src=e.url),t&&!r&&Object.keys(t).forEach((e=>{o&&("async"===e||"defer"===e?o[e]=t[e]:o.getAttribute(e)||o.setAttribute(e,t[e]))}))}let i=null;const a="undefined"!=typeof window?t=>{if(t.filename&&tt(t.filename,e.url)){const o=new Error(`ScriptExecutionError: Script "${e.url}" loaded but threw a runtime error during execution: ${t.message} (${t.filename}:${t.lineno}:${t.colno})`);o.name="ScriptExecutionError",i=o}}:null;a&&window.addEventListener("error",a);const c=async(r,n)=>{clearTimeout(t),a&&window.removeEventListener("error",a);const s=()=>{if("error"===n?.type){const t=new Error(n?.isTimeout?`ScriptNetworkError: Script "${e.url}" timed out.`:`ScriptNetworkError: Failed to load script "${e.url}" - the script URL is unreachable or the server returned an error (network failure, 404, CORS, etc.)`);t.name="ScriptNetworkError",e?.onErrorCallback&&e?.onErrorCallback(t)}else i?e?.onErrorCallback&&e?.onErrorCallback(i):e?.cb&&e?.cb()};if(o&&(o.onerror=null,o.onload=null,et((()=>{const{needDeleteScript:t=!0}=e;t&&o?.parentNode&&o.parentNode.removeChild(o)})),r&&"function"==typeof r)){const e=r(n);if(e instanceof Promise){const t=await e;return s(),t}return s(),e}s()};return o.onerror=c.bind(null,o.onerror),o.onload=c.bind(null,o.onload),t=setTimeout((()=>{c(null,{type:"error",isTimeout:!0})}),n),{script:o,needAttach:r}}const rt=new Map;function nt(e){if(!e)throw new Error("import specifier is required");if(rt.has(e))return rt.get(e);const t=new Function("name","return import(name)")(e).then((e=>e)).catch((t=>{throw console.error(`Error importing module ${e}:`,t),rt.delete(e),t}));return rt.set(e,t),t}const st="undefined"==typeof ENV_TARGET||"web"!==ENV_TARGET?(e,t,o,r)=>{if(r?.createScriptHook){const t=r.createScriptHook(e);t&&"object"==typeof t&&"url"in t&&(e=t.url)}let n;try{n=new URL(e)}catch(e){return console.error("Error constructing URL:",e),void t(new Error(`Invalid URL: ${e}`))}(async()=>r?.fetch?(e,t)=>(async(e,t,o)=>{const r=await((e,t)=>o.lifecycle.fetch.emit(e,t))(e,t||{});return r&&r instanceof Response?r:fetch(e,t||{})})(e,t,r):fetch)().then((async e=>{if("esm"===o?.type||"module"===o?.type)return mt(n.href,{fetch:e,vm:await nt("vm")}).then((async e=>{await e.evaluate(),t(void 0,e.namespace)})).catch((e=>{t(e instanceof Error?e:new Error(`Script execution error: ${e}`))}));(async(e,r)=>{try{const n=await e(r.href),s=await n.text(),[i,a]=await Promise.all([nt("path"),nt("vm")]),c={exports:{},module:{exports:{}}},l=r.pathname.split("/").slice(0,-1).join("/"),h=i.basename(r.pathname),m=new a.Script(`(function(exports, module, require, __dirname, __filename) {${s}\n})`,{filename:h,importModuleDynamically:a.constants?.USE_MAIN_CONTEXT_DEFAULT_LOADER??nt});let d;d=(await nt("node:module")).createRequire("file:"===r.protocol||"node:"===r.protocol?r.href:i.join(process.cwd(),"__mf_require_base__.js")),m.runInThisContext()(c.exports,c.module,d,l,h);const u=c.module.exports||c.exports;if(o&&u&&o.globalName)return void t(void 0,u[o.globalName]||u);t(void 0,u)}catch(e){t(e instanceof Error?e:new Error(`Script execution error: ${e}`))}})(e,n)})).catch((e=>{t(e)}))}:(e,t,o,r)=>{t(new Error("createScriptNode is disabled in non-Node.js environment"))},it="undefined"==typeof ENV_TARGET||"web"!==ENV_TARGET?(e,t)=>new Promise(((o,r)=>{st(e,((e,n)=>{e?r(e):o(globalThis[t?.attrs?.globalName||`__FEDERATION_${t?.attrs?.name}:custom__`]=n)}),t.attrs,t.loaderHook)})):(e,t)=>{throw new Error("loadScriptNode is disabled in non-Node.js environment")},at=new Map,ct=e=>e.startsWith("http:")||e.startsWith("https:"),lt=e=>!(e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||e.includes(":"));async function ht(e,t,o){if(await async function(e){return!!e.startsWith("node:")||!!lt(e)&&(await nt("node:module")).builtinModules.includes(e)}(e))return async function(e,t){const o=`node-builtin:${e}`;return at.has(o)?at.get(o):async function(e,t,o){if("function"!=typeof o.SyntheticModule)throw new Error("vm.SyntheticModule is required to load Node.js built-in modules in ESM remote entries.");const r=function(e){const t=!e||"object"!=typeof e&&"function"!=typeof e?{default:e}:e,o={...t};return Object.prototype.hasOwnProperty.call(o,"default")||(o.default=t),o}(t),n=Object.keys(r),s=new o.SyntheticModule(n,(function(){for(const e of n)this.setExport(e,r[e])}),{identifier:e});return at.set(e,s),await s.link((async()=>{throw new Error(`Node.js built-in module "${e}" should not request child modules.`)})),await s.evaluate(),s}(o,await nt(e),t)}(e,o.vm);if(lt(e))throw new Error(`Unsupported ESM module specifier "${e}". Only relative or absolute http(s) remote modules and Node.js built-in modules are supported.`);const r=new URL(e,t).href;if(!ct(r))throw new Error(`Unsupported ESM module specifier "${e}" resolved to "${r}". Only http(s) remote modules and Node.js built-in modules are supported.`);return mt(r,o)}async function mt(e,t){if(at.has(e))return at.get(e);const{fetch:o,vm:r}=t;if(!ct(e))throw new Error(`Unsupported ESM module URL "${e}". Only http(s) remote modules and Node.js built-in modules are supported.`);const n=await(await o(e)).text(),s=(await nt("node:url")).pathToFileURL(process.cwd()).href,i=new r.SourceTextModule(n,{identifier:e,initializeImportMeta:t=>{t.url=function(e,t){const o=t.endsWith("/")?t:`${t}/`;return new URL(`__module_federation_remote__${function(e){const t=new URL(e),o=encodeURIComponent(t.protocol.slice(0,-1)),r=encodeURIComponent(t.host),n=t.pathname.split("/").map((e=>encodeURIComponent(e))).join("/"),s=encodeURIComponent(`${t.search}${t.hash}`);return`/${o}/${r}${n}${s?`/${s}`:""}`}(e)}`,o).href}(e,s)},importModuleDynamically:async o=>async function(e){if("linked"===e.status&&await e.evaluate(),"errored"===e.status)throw e.error;return e}(await ht(o,e,t))});return at.set(e,i),await i.link((async o=>ht(o,e,t))),i}const dt="RUNTIME-001",ut="RUNTIME-002",ft="RUNTIME-003",pt="RUNTIME-004",yt="RUNTIME-005",gt="RUNTIME-006",Et="RUNTIME-007",St="RUNTIME-008",_t="RUNTIME-009",It="RUNTIME-010",bt="RUNTIME-011",wt="RUNTIME-012",Nt="RUNTIME-013",$t="RUNTIME-014",vt="RUNTIME-015",Rt={[dt]:"Failed to get remoteEntry exports.",[ut]:'The remote entry interface does not contain "init"',[ft]:"Failed to get manifest.",[pt]:"Failed to locate remote.",[yt]:"Invalid loadShareSync function call from bundler runtime",[gt]:"Invalid loadShareSync function call from runtime",[Et]:"Failed to get remote snapshot.",[St]:"Failed to load script resources.",[_t]:"Please call createInstance first.",[It]:'The name option cannot be changed after initialization. If you want to create a new instance with a different name, please use "createInstance" api.',[bt]:"The remoteEntry URL is missing from the remote snapshot.",[wt]:'The getter for the shared module is not a function. This may be caused by setting "shared.import: false" without the host providing the corresponding lib.',[Nt]:"The manifest is not a valid Module Federation manifest.",[$t]:"The remote does not expose the requested module.",[vt]:"Remote container initialization failed."},kt=".then(callbacks[0]).catch(callbacks[1])",Ot=["Failed to fetch dynamically imported module","Importing a module script failed","error loading dynamically imported module"];function Tt(e){return"esm"===e||"module"===e}function At(e,t,o){const{remoteEntryKey:r,entryExports:n}=G(e,t);return n||b(dt,Rt,{remoteName:e,remoteEntryUrl:o,remoteEntryKey:r}),n}async function xt({remoteInfo:e,remoteEntryExports:t,loaderHook:o,getEntryUrl:r,resourceContext:n}){const{entry:s,entryGlobalName:i,name:a,type:c}=e;return Tt(c)?async function({entry:e,remoteEntryExports:t,name:o,getEntryUrl:r}){return new Promise(((n,s)=>{const i=e=>{if((t=e)instanceof TypeError&&Ot.some((e=>t.message.includes(e)))){const t=e instanceof Error?e.message:String(e);try{b(St,Rt,{remoteName:o,resourceUrl:a},t)}catch(e){return void s(e)}}var t;s(e)},a=r?r(e):e;try{t?n(t):"undefined"!=typeof FEDERATION_ALLOW_NEW_FUNCTION?new Function("callbacks",`import("${a}")${kt}`)([n,i]):import(a).then(n).catch(i)}catch(e){b(`Failed to load ESM entry from "${a}". ${e instanceof Error?e.message:String(e)}`)}}))}({entry:s,remoteEntryExports:t,name:a,getEntryUrl:r}):"system"===c?async function({entry:e,remoteEntryExports:t}){return new Promise(((o,r)=>{try{t?o(t):new Function("callbacks",`System.import("${e}")${kt}`)([o,r])}catch(t){b(`Failed to load SystemJS entry from "${e}". ${t instanceof Error?t.message:String(t)}`)}}))}({entry:s,remoteEntryExports:t}):async function({name:e,globalName:t,entry:o,remoteInfo:r,loaderHook:n,getEntryUrl:s,resourceContext:i}){const{entryExports:a}=G(e,t);if(a)return a;const c=s?s(o):o;return function(e,t){const{attrs:o={},createScriptHook:r}=t;return new Promise(((t,n)=>{const{script:s,needAttach:i}=ot({url:e,cb:t,onErrorCallback:n,attrs:{fetchpriority:"high",...o},createScriptHook:r,needDeleteScript:!0});i&&document.head.appendChild(s)}))}(c,{attrs:{},createScriptHook:(e,t)=>{const o=n.lifecycle.createScript.emit({url:e,attrs:t,remoteInfo:r,resourceContext:i?{...i,url:e}:void 0});if(o)return o instanceof HTMLScriptElement||"script"in o||"timeout"in o?o:void 0}}).then((()=>At(e,t,o)),(t=>{const o=t instanceof Error?t.message:String(t);b(St,Rt,{remoteName:e,resourceUrl:c},o)}))}({entry:s,globalName:i,name:a,remoteInfo:e,loaderHook:o,getEntryUrl:r,resourceContext:n})}function Mt(e){const{entry:t,name:o}=e;return Je(o,t)}async function Lt(e){const{origin:t,remoteEntryExports:o,remoteInfo:r,getEntryUrl:n,resourceContext:s,_inErrorHandling:i=!1}=e,a=Mt(r);if(o)return o;if(!D[a]){const e=t.remoteHandler.hooks.lifecycle.loadEntry,c=t.loaderHook;D[a]=e.emit({origin:t,loaderHook:c,remoteInfo:r,remoteEntryExports:o}).then((e=>e||(("undefined"!=typeof ENV_TARGET?"web"===ENV_TARGET:l)?xt({remoteInfo:r,remoteEntryExports:o,loaderHook:c,getEntryUrl:n,resourceContext:s}):async function({remoteInfo:e,loaderHook:t,resourceContext:o}){const{entry:r,entryGlobalName:n,name:s,type:i}=e,{entryExports:a}=G(s,n);return a||it(r,{attrs:{name:s,globalName:n,type:i},loaderHook:{createScriptHook:(r,n={})=>{const s=t.lifecycle.createScript.emit({url:r,attrs:n,remoteInfo:e,resourceContext:o?{...o,url:r}:void 0});if(s)return"url"in s?s:void 0}}}).then((()=>At(s,n,r))).catch((e=>{b(`Failed to load Node.js entry for remote "${s}" from "${r}". ${e instanceof Error?e.message:String(e)}`)}))}({remoteInfo:r,loaderHook:c,resourceContext:s})))).then((async e=>(await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,remoteEntryExports:e}),e))).catch((async e=>{const n=Mt(r),s=e instanceof Error&&e.message.includes("ScriptExecutionError");if(e instanceof Error&&e.message.includes(St)&&!s&&!i){const e=e=>Lt({...e,_inErrorHandling:!0}),s=await t.loaderHook.lifecycle.loadEntryError.emit({getRemoteEntry:e,origin:t,remoteInfo:r,remoteEntryExports:o,globalLoading:D,uniqueKey:n});if(s)return await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,remoteEntryExports:s,recovered:!0}),s}throw await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,error:e}),e}))}return D[a]}function Pt(e){return{...e,entry:"entry"in e?e.entry:"",type:e.type||W,entryGlobalName:e.entryGlobalName||e.name,shareScope:e.shareScope||V}}function Dt(e,t){return t&&"."!==t?`${e}/${t.replace(/^\.\//,"")}`:e}function Ht(e,t){for(const o of e){const e=t.startsWith(o.name);let r=t.replace(o.name,"");if(e){if(r.startsWith("/"))return r=`.${r}`,{pkgNameOrAlias:o.name,expose:r,remote:o};if(""===r)return{pkgNameOrAlias:o.name,expose:".",remote:o}}const n=o.alias&&t.startsWith(o.alias);let s=o.alias&&t.replace(o.alias,"");if(o.alias&&n){if(s&&s.startsWith("/"))return s=`.${s}`,{pkgNameOrAlias:o.alias,expose:s,remote:o};if(""===s)return{pkgNameOrAlias:o.alias,expose:".",remote:o}}}}function Ft(e){return{resourceCategory:"sync",share:!0,depsRemote:!0,...e}}function Ct(e){return e instanceof Error&&(e.message.includes("timed out")||e.name.includes("Timeout"))}function jt(e,t,o,r){return{url:t,status:o,resourceType:e.resourceType,initiator:e.initiator,id:e.id,error:r}}function Ut({host:e,remoteInfo:t,url:o,attrs:r,context:n,needDeleteLink:s}){return new Promise((i=>{const{link:a,needAttach:c}=function(e){let t,o=null,r=!0,n=2e4;const s=document.getElementsByTagName("link");for(let t=0;t<s.length;t++){const n=s[t],i=n.getAttribute("href"),a=n.getAttribute("rel");if(i&&tt(i,e.url)&&a===e.attrs.rel){o=n,r=!1;break}}if(!o){let t;o=document.createElement("link"),o.setAttribute("href",e.url);let r=!0;const s=e.attrs;e.createLinkHook&&(t=e.createLinkHook(e.url,s),t instanceof HTMLLinkElement?(o=t,r=!1):"object"==typeof t&&("link"in t&&t.link&&(o=t.link,r=!1),"timeout"in t&&t.timeout&&(n=t.timeout))),s&&r&&Object.keys(s).forEach((e=>{o&&!o.getAttribute(e)&&o.setAttribute(e,s[e])}))}if(!r)return Promise.resolve().then((()=>{e?.cb&&e?.cb()})),{link:o,needAttach:r};const i=(r,n)=>{t&&clearTimeout(t);const s=()=>{if("error"===n?.type){const t=new Error(n?.isTimeout?`LinkNetworkError: Link "${e.url}" timed out.`:`LinkNetworkError: Failed to load link "${e.url}" - the URL is unreachable or the server returned an error.`);t.name="LinkNetworkError",e?.onErrorCallback&&e?.onErrorCallback(t)}else e?.cb&&e?.cb()};if(o&&(o.onerror=null,o.onload=null,et((()=>{const{needDeleteLink:t=!0}=e;t&&o?.parentNode&&o.parentNode.removeChild(o)})),r)){const e=r(n);return s(),e}s()};return o.onerror=i.bind(null,o.onerror),o.onload=i.bind(null,o.onload),t=setTimeout((()=>{i(null,{type:"error",isTimeout:!0})}),n),{link:o,needAttach:r}}({url:o,cb:()=>{i(jt(n,o,c?"success":"cached"))},onErrorCallback:e=>{i(jt(n,o,Ct(e)?"timeout":"error",e))},attrs:r,createLinkHook:(o,r)=>{const s=e.loaderHook.lifecycle.createLink.emit({url:o,attrs:r,remoteInfo:t,resourceContext:{...n,url:o}});return HTMLLinkElement,s},needDeleteLink:s});c&&document.head.appendChild(a)}))}function Gt({host:e,remoteInfo:t,url:o,attrs:r,context:n}){return new Promise((s=>{const{script:i,needAttach:a}=ot({url:o,cb:()=>{s(jt(n,o,a?"success":"cached"))},onErrorCallback:e=>{s(jt(n,o,Ct(e)?"timeout":"error",e))},attrs:r,createScriptHook:(o,r)=>{const s=e.loaderHook.lifecycle.createScript.emit({url:o,attrs:r,remoteInfo:t,resourceContext:{...n,url:o}});return HTMLScriptElement,s},needDeleteScript:!0});a&&document.head.appendChild(i)}))}function Bt(e,t){return{...e,resourceType:t}}function Vt(e,t,o,r=!0,n={initiator:"preloadRemote",id:e.name}){const{cssAssets:s,jsAssetsWithoutEntry:i,entryAssets:a}=o,c=[];if(t.options.inBrowser){if(a.forEach((e=>{const{moduleInfo:o}=e;c.push(async function(e,t,o,r){const n=e.moduleCache.get(o.name),s=o.entry;if(n?.remoteEntryExports)return jt(r,s,"cached");try{if(!await Lt({origin:e,remoteInfo:o,remoteEntryExports:n?.remoteEntryExports,resourceContext:{...r,url:s}}))throw new Error(`Failed to load remoteEntry "${s}".`);return jt(r,s,"success")}catch(e){return jt(r,s,Ct(e)?"timeout":"error",e)}}(t,0,o,Bt(n,"remoteEntry")))})),r){const o={rel:"preload",as:"style"};s.forEach((r=>{c.push(Ut({host:t,remoteInfo:e,url:r,attrs:o,context:Bt(n,"css")}))}))}else{const o={rel:"stylesheet",type:"text/css"};s.forEach((r=>{c.push(Ut({host:t,remoteInfo:e,url:r,attrs:o,needDeleteLink:!1,context:Bt(n,"css")}))}))}let o=Gt,l={fetchpriority:"high",type:"text/javascript"};r?(o=Ut,l={rel:"preload",as:"script"}):Tt(e.type)&&(o=Ut,l={rel:"modulepreload",fetchpriority:"high"}),i.forEach((r=>{c.push(o({host:t,remoteInfo:e,url:r,attrs:l,context:Bt(n,"js")}))}))}return Promise.all(c)}function Wt(e){return{name:e.name,alias:e.alias,entry:"entry"in e?e.entry:void 0,version:"version"in e?e.version:void 0,type:e.type,entryGlobalName:e.entryGlobalName,shareScope:e.shareScope}}function qt(e){const t={};for(const[o,r]of Object.entries(e.shared)){const e=r[0];e&&(t[o]={version:e.version,singleton:e.shareConfig?.singleton,requiredVersion:!1!==e.shareConfig?.requiredVersion&&e.shareConfig?.requiredVersion,eager:e.eager,strictVersion:e.shareConfig?.strictVersion})}return{project:{name:e.name,mfRole:e.remotes?.length>0?"host":"unknown"},mfConfig:{name:e.name,remotes:e.remotes?.map(Wt)??[],shared:t}}}function zt(e){if(!e||!("modules"in e)||!Array.isArray(e.modules))return;const t=e.modules.map((e=>e.moduleName)).filter(Boolean);return t.length?t.join(","):void 0}var Kt=class{constructor({remoteInfo:e,host:t}){this.inited=!1,this.initing=!1,this.lib=void 0,this.remoteInfo=e,this.host=t}async getEntry(e){if(this.remoteEntryExports)return this.remoteEntryExports;const t=await Lt({origin:this.host,remoteInfo:this.remoteInfo,remoteEntryExports:this.remoteEntryExports,resourceContext:{initiator:"loadRemote",id:Dt(this.remoteInfo.name,e),resourceType:"remoteEntry"}});return I(t,`remoteEntryExports is undefined \n ${Qe(this.remoteInfo)}`),this.remoteEntryExports=t,this.remoteEntryExports}async init(e,t,o,r){const n=await this.getEntry(r);if(this.inited)return await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:n,cached:!0,origin:this.host}),n;if(this.initPromise){try{await this.initPromise,await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:n,cached:!0,origin:this.host})}catch(o){throw await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:n,error:o,cached:!0,origin:this.host}),o}return n}this.initing=!0,this.initPromise=(async()=>{await this.host.loaderHook.lifecycle.beforeInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,origin:this.host});const{remoteEntryInitOptions:r,shareScope:s,initScope:i}=function(e,t,o){const r=t,n=Array.isArray(e.shareScope)?e.shareScope:[e.shareScope];n.length||n.push("default"),n.forEach((e=>{r[e]||(r[e]={})}));const s={version:e.version||"",shareScopeKeys:Array.isArray(e.shareScope)?n:e.shareScope||"default"};return Object.defineProperty(s,"shareScopeMap",{value:r,enumerable:!1}),{remoteEntryInitOptions:s,shareScope:r[n[0]],initScope:o??[]}}(this.remoteInfo,this.host.shareScopeMap,o),a=await this.host.hooks.lifecycle.beforeInitContainer.emit({shareScope:s,remoteEntryInitOptions:r,initScope:i,remoteInfo:this.remoteInfo,origin:this.host});void 0===n?.init&&b(ut,Rt,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName},void 0,qt(this.host.options));try{await n.init(a.shareScope,a.initScope,a.remoteEntryInitOptions)}catch(e){b(vt,Rt,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName,shareScope:this.remoteInfo.shareScope},`${e}`,qt(this.host.options))}await this.host.hooks.lifecycle.initContainer.emit({...a,id:e,remoteSnapshot:t,remoteEntryExports:n}),this.inited=!0})();try{await this.initPromise,await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:n,origin:this.host})}catch(o){throw await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:n,error:o,origin:this.host}),o}finally{this.initing=!1,this.initPromise=void 0}return n}async get(e,t,o,r){const{loadFactory:n=!0}=o||{loadFactory:!0},s=await this.init(e,r,void 0,t);let i;this.lib=s,await this.host.loaderHook.lifecycle.beforeGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:s,origin:this.host});try{const o=await this.host.loaderHook.lifecycle.getModuleFactory.emit({remoteEntryExports:s,expose:t,moduleInfo:this.remoteInfo});i="function"==typeof o?o:void 0,i||(i=await s.get(t)),i||b($t,Rt,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,expose:t,requestId:e,availableExposes:zt(r)},void 0,qt(this.host.options)),await this.host.loaderHook.lifecycle.afterGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:s,moduleFactory:i,origin:this.host})}catch(o){throw await this.host.loaderHook.lifecycle.afterGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:s,error:o,origin:this.host}),o}const a=((e,t)=>{let o;return o=e.endsWith("/")?e.slice(0,-1):e,t.startsWith(".")&&(t=t.slice(1)),o+=t,o})(this.remoteInfo.name,t),c=this.wraperFactory(i,a);if(!n)return c;await this.host.loaderHook.lifecycle.beforeExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:n,origin:this.host});try{const o=await c();return await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:n,exposeModule:o,origin:this.host}),o}catch(o){throw await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:n,error:o,origin:this.host}),o}}wraperFactory(e,t){function o(e,t){e&&"object"==typeof e&&Object.isExtensible(e)&&!Object.getOwnPropertyDescriptor(e,Symbol.for("mf_module_id"))&&Object.defineProperty(e,Symbol.for("mf_module_id"),{value:t,enumerable:!1})}return()=>{const r=e();return r instanceof Promise?r.then((e=>(o(e,t),e))):(o(r,t),r)}}},Zt=class{constructor(e){this.registerPlugins={},this.lifecycle=e,this.lifecycleKeys=Object.keys(e)}applyPlugin(e,t){var o;I((o=e,"[object Object]"===k.call(o)),"Plugin configuration is invalid.");const r=e.name;I(r,"A name must be provided by the plugin."),this.registerPlugins[r]||(this.registerPlugins[r]=e,e.apply?.(t),Object.keys(this.lifecycle).forEach((t=>{const o=e[t];o&&this.lifecycle[t].on(o)})))}removePlugin(e){I(e,"A name is required.");const t=this.registerPlugins[e];I(t,`The plugin "${e}" is not registered.`),Object.keys(t).forEach((e=>{"name"!==e&&this.lifecycle[e].remove(t[e])}))}},Jt=class{constructor(e){this.type="",this.listeners=new Set,e&&(this.type=e)}on(e){"function"==typeof e&&this.listeners.add(e)}once(e){const t=this;this.on((function o(...r){return t.remove(o),e.apply(null,r)}))}emit(...e){let t;return this.listeners.size>0&&this.listeners.forEach((o=>{const r=o(...e);void 0!==r&&(t=r)})),t}remove(e){this.listeners.delete(e)}removeAll(){this.listeners.clear()}};function Yt(e,t){if(!R(t))return!1;if(e!==t)for(const o in e)if(!(o in t))return!1;return!0}var Xt=class extends Jt{constructor(e){super(),this.onerror=b,this.type=e}emit(e){R(e)||b(`The data for the "${this.type}" hook should be an object.`);for(const t of this.listeners)try{const o=t(e);if(void 0===o)continue;if(!Yt(e,o)){this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);break}e=o}catch(e){w(e),this.onerror(e)}return e}},Qt=class extends Jt{constructor(e){super(),this.onerror=b,this.type=e}emit(e){R(e)||b(`The response data for the "${this.type}" hook must be an object.`);const t=Array.from(this.listeners);if(t.length>0){let o=0;const r=t=>(w(t),this.onerror(t),e),n=s=>{if(void 0!==s&&Yt(e,s))e=s;else if(void 0!==s)return this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`),e;if(o<t.length)try{return Promise.resolve(t[o++](e)).then(n,r)}catch(e){return r(e)}return e};return Promise.resolve(n(e))}return Promise.resolve(e)}};const eo="Remote loading is disabled by experiments.optimization.disableRemote.";var to=class{constructor(){this.hooks=new Zt({})}formatAndRegisterRemote(){return[]}loadRemote(){throw new Error(eo)}preloadRemote(){throw new Error(eo)}registerRemotes(){throw new Error(eo)}getRemoteModuleAndOptions(){throw new Error(eo)}initRawContainer(){throw new Error(eo)}},oo=class extends Jt{emit(...e){let t;const o=Array.from(this.listeners);if(o.length>0){let r=0;const n=t=>!1!==t&&(r<o.length?Promise.resolve(o[r++].apply(null,e)).then((o=>void 0===o||1===e.length&&o===e[0]?n(t):n(o))):t);t=n()}return Promise.resolve(t)}};function ro(e,t){const o=T(t);o.url||b(bt,Rt,{remoteName:e.name});let r=Ye(t,o.url);l||r.startsWith("http")||(r=`https:${r}`),e.type=o.type,e.entryGlobalName=o.globalName,e.entry=r,e.version=t.version,e.buildVersion=t.buildVersion}const no=(e,t)=>{if(!e)return t;const o=(e=>{if("."===e)return"";if(e.startsWith("./"))return e.replace("./","");if(e.startsWith("/")){const t=e.slice(1);return t.endsWith("/")?t.slice(0,-1):t}return e})(e);return o?o.endsWith("/")?`${o}${t}`:`${o}/${t}`:t};function so(e){return!(!("remoteEntry"in e)||!e.remoteEntry.includes(i))}function io(e){const t=e.split(":");return 1===t.length?{name:t[0],version:void 0}:2===t.length?{name:t[0],version:t[1]}:{name:t[1],version:t[2]}}function ao(e,t,o,r,n={},s){const{value:i}=F(e,N(t)),a=s||i;if(a&&!so(a)&&(o(a,t,r),a.remotesInfo)){const t=Object.keys(a.remotesInfo);for(const r of t){if(n[r])continue;n[r]=!0;const t=io(r),s=a.remotesInfo[r];ao(e,{name:t.name,version:s.matchedVersion},o,!1,n,void 0)}}}const co=(e,t)=>document.querySelector(`${e}[${"link"===e?"href":"src"}="${t}"]`);function lo(e,t,o,r,n){const s=[],i=[],a=[],c=new Set,l=new Set,{options:h}=e,{preloadConfig:m}=t,{depsRemote:d}=m;if(ao(r,o,((t,o,r)=>{let n;if(r)n=m;else if(Array.isArray(d)){const e=d.find((e=>e.nameOrAlias===o.name||e.nameOrAlias===o.alias));if(!e)return;n=Ft(e)}else{if(!0!==d)return;n=m}const c=Ye(t,T(t).url);c&&a.push({name:o.name,moduleInfo:{name:o.name,entry:c,type:"remoteEntryType"in t?t.remoteEntryType:"global",entryGlobalName:"globalName"in t?t.globalName:o.name,shareScope:"",version:"version"in t?t.version:void 0},url:c});let l="modules"in t?t.modules:[];const h=(u=n.exposes)?u.map((e=>"."===e?e:e.startsWith("./")?e.replace("./",""):e)):[];var u,f;function p(e){const o=e.map((e=>Ye(t,e)));return n.filter?o.filter(n.filter):o}if(h.length&&"modules"in t&&(l=t?.modules?.reduce(((e,t)=>(-1!==h?.indexOf(t.moduleName)&&e.push(t),e)),[])),l){const r=l.length;for(let a=0;a<r;a++){const r=l[a],c=`${o.name}/${r.moduleName}`;e.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({id:"."===r.moduleName?o.name:c,name:o.name,remoteSnapshot:t,preloadConfig:n,remote:o,origin:e}),f=c,A.__FEDERATION__.__PRELOADED_MAP__.get(f)||("all"===n.resourceCategory?(s.push(...p(r.assets.css.async)),s.push(...p(r.assets.css.sync)),i.push(...p(r.assets.js.async)),i.push(...p(r.assets.js.sync))):"sync"===n.resourceCategory&&(s.push(...p(r.assets.css.sync)),i.push(...p(r.assets.js.sync))),B(c))}}}),!0,{},n),n.shared&&n.shared.length>0){const t=(t,o)=>{const{shared:r}=We(e.shareScopeMap,o.sharedName,t,e.sharedHandler.hooks.lifecycle.resolveShare)||{};r&&"function"==typeof r.lib&&(o.assets.js.sync.forEach((e=>{c.add(e)})),o.assets.css.sync.forEach((e=>{l.add(e)})))};n.shared.forEach((e=>{const o=h.shared?.[e.sharedName];if(!o)return;const r=e.version?o.find((t=>t.version===e.version)):o;r&&O(r).forEach((o=>{t(o,e)}))}))}const u=i.filter((e=>!c.has(e)&&!co("script",e)));return{cssAssets:s.filter((e=>!l.has(e)&&!co("link",e))),jsAssetsWithoutEntry:u,entryAssets:a.filter((e=>!co("script",e.url)))}}function ho(e,t){const o=j({name:t.name,version:t.options.version}),r=o&&"remotesInfo"in o&&o.remotesInfo&&F(o.remotesInfo,e.name).value;return r&&r.matchedVersion?{hostGlobalSnapshot:o,globalSnapshot:C(),remoteSnapshot:j({name:e.name,version:r.matchedVersion})}:{hostGlobalSnapshot:void 0,globalSnapshot:C(),remoteSnapshot:j({name:e.name,version:"version"in e?e.version:void 0})}}var mo=class{constructor(e){this.loadingHostSnapshot=null,this.manifestCache=new Map,this.hooks=new Zt({beforeLoadRemoteSnapshot:new oo("beforeLoadRemoteSnapshot"),loadSnapshot:new Qt("loadGlobalSnapshot"),loadRemoteSnapshot:new Qt("loadRemoteSnapshot"),afterLoadSnapshot:new Qt("afterLoadSnapshot")}),this.manifestLoading=M.__FEDERATION__.__MANIFEST_LOADING__,this.HostInstance=e,this.loaderHook=e.loaderHook}async loadRemoteSnapshotInfo({moduleInfo:e,id:t,initiator:o="loadRemote"}){const{options:r}=this.HostInstance;await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({options:r,moduleInfo:e,origin:this.HostInstance});let n=j({name:this.HostInstance.options.name,version:this.HostInstance.options.version});var s;n||(n={version:this.HostInstance.options.version||"",remoteEntry:"",remotesInfo:{}},s={[this.HostInstance.options.name]:n},x.__FEDERATION__.moduleInfo={...x.__FEDERATION__.moduleInfo,...s}),n&&"remotesInfo"in n&&!F(n.remotesInfo,e.name).value&&("version"in e||"entry"in e)&&(n.remotesInfo={...n?.remotesInfo,[e.name]:{matchedVersion:"version"in e?e.version:e.entry}});const{hostGlobalSnapshot:i,remoteSnapshot:a,globalSnapshot:c}=this.getGlobalRemoteInfo(e),{remoteSnapshot:h,globalSnapshot:m}=await this.hooks.lifecycle.loadSnapshot.emit({options:r,moduleInfo:e,hostGlobalSnapshot:i,remoteSnapshot:a,globalSnapshot:c});let d,u;if(h)if(so(h)){const r=l?h.remoteEntry:h.ssrRemoteEntry||h.remoteEntry||"",n=await this.loadManifestSnapshot(r,e,{},{initiator:o,id:t||e.name});d=n,u=U({...e,entry:r},n)}else{const{remoteSnapshot:t}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:h,from:"global"});d=t,u=m}else if($(e)){const r=await this.loadManifestSnapshot(e.entry,e,{},{initiator:o,id:t||e.name});d=r,u=U(e,r)}else b(Et,Rt,{remoteName:e.name,remoteVersion:e.version,hostName:this.HostInstance.options.name,globalSnapshot:JSON.stringify(m)},void 0,qt(this.HostInstance.options));return await this.hooks.lifecycle.afterLoadSnapshot.emit({id:t,host:this.HostInstance,options:r,moduleInfo:e,remoteSnapshot:d}),{remoteSnapshot:d,globalSnapshot:u}}getGlobalRemoteInfo(e){return ho(e,this.HostInstance)}async getManifestJson(e,t,o,r){return(async()=>{const o=Pt(t);let n=this.manifestCache.get(e);if(n)return n;try{let t=await this.loaderHook.lifecycle.fetch.emit(e,{},o,r?{...r,url:e,resourceType:"manifest"}:void 0);t&&t instanceof Response||(t=await fetch(e,{})),n=await t.json()}catch(r){n=await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:r,from:"runtime",lifecycle:"afterResolve",remote:o,origin:this.HostInstance}),n||(delete this.manifestLoading[e],b(ft,Rt,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name},`${r}`,qt(this.HostInstance.options)))}const s=[!n.metaData&&"metaData",!n.exposes&&"exposes",!n.shared&&"shared"].filter(Boolean);return s.length>0&&await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:new Error(`"${e}" is not a valid federation manifest for remote "${t.name}". Missing required fields: ${s.join(", ")}.`),from:"runtime",lifecycle:"afterResolve",remote:o,origin:this.HostInstance}),s.length>0&&b(Nt,Rt,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name,missingFields:s.join(",")},void 0,qt(this.HostInstance.options)),this.manifestCache.set(e,n),n})()}async loadManifestSnapshot(e,t,o,r){return this.manifestLoading[e]||(this.manifestLoading[e]=(async()=>{const n=await this.getManifestJson(e,t,o,r),s=function(e,t={}){const{remotes:o={},overrides:r={},version:n}=t;let s;const i=()=>"publicPath"in e.metaData?"auto"!==e.metaData.publicPath&&""!==e.metaData.publicPath||!n?e.metaData.publicPath:n.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"):e.metaData.getPublicPath,a=Object.keys(r);let c={};Object.keys(o).length||(c=e.remotes?.reduce(((e,t)=>{let o;const n=t.federationContainerName;return o=a.includes(n)?r[n]:"version"in t?t.version:t.entry,e[n]={matchedVersion:o},e}),{})||{}),Object.keys(o).forEach((e=>c[e]={matchedVersion:a.includes(e)?r[e]:o[e]}));const{remoteEntry:{path:l,name:h,type:m},types:d={path:"",name:"",zip:"",api:""},buildInfo:{buildVersion:u},globalName:f,ssrRemoteEntry:p}=e.metaData,{exposes:y}=e;let g={version:n||"",buildVersion:u,globalName:f,remoteEntry:no(l,h),remoteEntryType:m,remoteTypes:no(d.path,d.name),remoteTypesZip:d.zip||"",remoteTypesAPI:d.api||"",remotesInfo:c,shared:e?.shared.map((e=>({assets:e.assets,sharedName:e.name,version:e.version,usedExports:e.referenceExports||[]}))),modules:y?.map((e=>({moduleName:e.name,modulePath:e.path,assets:e.assets})))};if("publicPath"in e.metaData?(s={...g,publicPath:i()},"string"==typeof e.metaData.ssrPublicPath&&(s.ssrPublicPath=e.metaData.ssrPublicPath)):s={...g,getPublicPath:i()},p){const e=no(p.path,p.name);s.ssrRemoteEntry=e,s.ssrRemoteEntryType=p.type||"commonjs-module"}return s}(n,{version:e}),{remoteSnapshot:i}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:t,manifestJson:n,remoteSnapshot:s,manifestUrl:e,from:"manifest"});return i})().then((e=>e))),this.manifestLoading[e]}},uo=class{constructor(){this.hooks=new Zt({})}},fo=class{constructor(e){this.hooks=new Zt({beforeRegisterShare:new Xt("beforeRegisterShare"),afterResolve:new Qt("afterResolve"),beforeLoadShare:new Qt("beforeLoadShare"),loadShare:new oo,afterLoadShare:new Jt("afterLoadShare"),errorLoadShare:new Jt("errorLoadShare"),resolveShare:new Xt("resolveShare"),initContainerShareScopeMap:new Xt("initContainerShareScopeMap")}),this.host=e,this.shareScopeMap={},this.initTokens={},this._setGlobalShareScopeMap(e.options)}emitAfterLoadShare({lifecycle:e,pkgName:t,shareInfo:o,selectedShared:r}){try{this.hooks.lifecycle.afterLoadShare.emit({pkgName:t,shareInfo:o,selectedShared:r,shared:this.host.options.shared,shareScopeMap:this.shareScopeMap,lifecycle:e,origin:this.host})}catch(e){w(e)}}emitErrorLoadShare({lifecycle:e,pkgName:t,shareInfo:o,error:r,recovered:n}){try{this.hooks.lifecycle.errorLoadShare.emit({pkgName:t,shareInfo:o,shared:this.host.options.shared,shareScopeMap:this.shareScopeMap,lifecycle:e,origin:this.host,error:r,recovered:n})}catch(e){w(e)}}registerShared(e,t){const{newShareInfos:o,allShareInfos:r}=Pe(e,t);return Object.keys(o).forEach((e=>{o[e].forEach((o=>{o.scope.forEach((r=>{this.hooks.lifecycle.beforeRegisterShare.emit({origin:this.host,pkgName:e,shared:o}),this.shareScopeMap[r]?.[e]||this.setShared({pkgName:e,lib:o.lib,get:o.get,loaded:o.loaded||Boolean(o.lib),shared:o,from:t.name})}))}))})),{newShareInfos:o,allShareInfos:r}}async loadShare(e,t){const{host:o}=this,r=ze({pkgName:e,extraOptions:t,shareInfos:o.options.shared});let n=r;try{r?.scope&&await Promise.all(r.scope.map((async e=>{await Promise.all(this.initializeSharing(e,{strategy:r.strategy}))}))),n=(await this.hooks.lifecycle.beforeLoadShare.emit({pkgName:e,shareInfo:r,shared:o.options.shared,origin:o})).shareInfo,I(n,`Cannot find shared "${e}" in host "${o.options.name}". Ensure the shared config for "${e}" is declared in the federation plugin options and the host has been initialized before loading shares.`);const s=n,{shared:i,useTreesShaking:a}=We(this.shareScopeMap,e,n,this.hooks.lifecycle.resolveShare)||{};if(i){const t=Ze(i,a);if(t.lib)return Ke(t,o.options.name),this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,selectedShared:i}),t.lib;if(t.loading&&!t.loaded){const r=await t.loading;return t.loaded=!0,t.lib||(t.lib=r),Ke(t,o.options.name),this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,selectedShared:i}),r}{const r=async()=>{const e=await t.get();return Ke(t,o.options.name),t.loaded=!0,t.lib=e,e},n=r();this.setShared({pkgName:e,loaded:!1,shared:i,from:o.options.name,lib:null,loading:n,treeShaking:a?t:void 0});const c=await n;return this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,selectedShared:i}),c}}{if(t?.customShareInfo)return this.emitErrorLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,recovered:!0}),!1;const r=De(s.treeShaking),n=Ze(s,r),i=async()=>{const t=await n.get();n.lib=t,n.loaded=!0,Ke(n,o.options.name);const{shared:r,useTreesShaking:i}=We(this.shareScopeMap,e,s,this.hooks.lifecycle.resolveShare)||{};if(r){const e=Ze(r,i);e.lib=t,e.loaded=!0,r.from=s.from}return t},a=i();this.setShared({pkgName:e,loaded:!1,shared:s,from:o.options.name,lib:null,loading:a,treeShaking:r?n:void 0});const c=await a;return this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,selectedShared:s}),c}}catch(t){throw this.emitErrorLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:n,error:t}),t}}initializeSharing(e=V,t){const{host:o}=this,r=t?.from,n=t?.strategy;let s=t?.initScope;const i=[];if("build"!==r){const{initTokens:t}=this;s||(s=[]);let o=t[e];if(o||(o=t[e]={from:this.host.name}),s.indexOf(o)>=0)return i;s.push(o)}const a=this.shareScopeMap,c=o.options.name;a[e]||(a[e]={});const l=a[e];return Object.keys(o.options.shared).forEach((t=>{o.options.shared[t].forEach((o=>{o.scope.includes(e)&&((e,t)=>{const{version:o,eager:r}=t;l[e]=l[e]||{};const n=l[e],s=n[o]&&Ze(n[o]),i=Boolean(s&&("eager"in s&&s.eager||"shareConfig"in s&&s.shareConfig?.eager));(!s||"loaded-first"!==s.strategy&&!s.loaded&&(Boolean(!r)!==!i?r:c>n[o].from))&&(n[o]=t)})(t,o)}))})),"version-first"!==o.options.shareStrategy&&"version-first"!==n||o.options.remotes.forEach((t=>{t.shareScope===e&&i.push((async e=>{const{module:t}=await o.remoteHandler.getRemoteModuleAndOptions({id:e});let r;try{r=await t.getEntry()}catch(n){if(r=await o.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:n,from:"runtime",lifecycle:"beforeLoadShare",remote:t.remoteInfo,origin:o}),!r)return}finally{r?.init&&!t.initing&&(t.remoteEntryExports=r,await t.init(void 0,void 0,s))}})(t.name))})),i}loadShareSync(e,t){const{host:o}=this,r=ze({pkgName:e,extraOptions:t,shareInfos:o.options.shared});try{r?.scope&&r.scope.forEach((e=>{this.initializeSharing(e,{strategy:r.strategy})}));const{shared:n}=We(this.shareScopeMap,e,r,this.hooks.lifecycle.resolveShare)||{};if(n){if("function"==typeof n.lib)return Ke(n,o.options.name),n.loaded||(n.loaded=!0,n.from===o.options.name&&(r.loaded=!0)),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:r,selectedShared:n}),n.lib;if("function"==typeof n.get){const t=n.get();if(!(t instanceof Promise))return Ke(n,o.options.name),this.setShared({pkgName:e,loaded:!0,from:o.options.name,lib:t,shared:n}),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:r,selectedShared:n}),t}}if(r.lib)return r.loaded||(r.loaded=!0),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:r,selectedShared:r}),r.lib;if(r.get){const n=r.get();return n instanceof Promise&&b("build"===t?.from?yt:gt,Rt,{hostName:o.options.name,sharedPkgName:e},void 0,qt(o.options)),r.lib=n,this.setShared({pkgName:e,loaded:!0,from:o.options.name,lib:r.lib,shared:r}),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:r,selectedShared:r}),r.lib}b(gt,Rt,{hostName:o.options.name,sharedPkgName:e},void 0,qt(o.options))}catch(t){throw this.emitErrorLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:r,error:t}),t}}initShareScopeMap(e,t,o={}){const{host:r}=this;this.shareScopeMap[e]=t,this.hooks.lifecycle.initContainerShareScopeMap.emit({shareScope:t,options:r.options,origin:r,scopeName:e,hostShareScopeMap:o.hostShareScopeMap})}setShared({pkgName:e,shared:t,from:o,lib:r,loading:n,loaded:s,get:i,treeShaking:a}){const{version:c,scope:l="default",...h}=t;(Array.isArray(l)?l:[l]).forEach((t=>{this.shareScopeMap[t]||(this.shareScopeMap[t]={}),this.shareScopeMap[t][e]||(this.shareScopeMap[t][e]={}),this.shareScopeMap[t][e][c]||(this.shareScopeMap[t][e][c]={version:c,scope:[t],...h,lib:r});const l=this.shareScopeMap[t][e][c];(e=>{const t=(e,t,o)=>{o&&!e[t]&&(e[t]=o)},o=a?e.treeShaking:e;t(o,"loaded",s),t(o,"loading",n),t(o,"get",i)})(l),o&&l.from!==o&&(l.from=o)}))}_setGlobalShareScopeMap(e){const t=qe(),o=e.id||e.name;o&&!t[o]&&(t[o]=this.shareScopeMap)}},po=class{constructor(){this.shareScopeMap={},this.hooks=new Zt({afterResolve:new Qt("afterResolve")})}registerShared(){return{newShareInfos:{},allShareInfos:{}}}loadShare(){throw new Error("Shared dependency loading is disabled by experiments.optimization.disableShared.")}loadShareSync(){throw new Error("Shared dependency loading is disabled by experiments.optimization.disableShared.")}initializeSharing(){return[]}initShareScopeMap(e,t){this.shareScopeMap[e]=t}},yo=class{constructor(e){this.hooks=new Zt({beforeRegisterRemote:new Xt("beforeRegisterRemote"),registerRemote:new Xt("registerRemote"),beforeRequest:new Qt("beforeRequest"),afterMatchRemote:new oo("afterMatchRemote"),onLoad:new oo("onLoad"),afterLoadRemote:new oo("afterLoadRemote"),handlePreloadModule:new Jt("handlePreloadModule"),errorLoadRemote:new oo("errorLoadRemote"),beforePreloadRemote:new oo("beforePreloadRemote"),generatePreloadAssets:new oo("generatePreloadAssets"),afterPreloadRemote:new oo("afterPreloadRemote"),loadEntry:new oo}),this.host=e,this.idToRemoteMap={}}formatAndRegisterRemote(e,t){return(t.remotes||[]).reduce(((e,t)=>(this.registerRemote(t,e,{force:!1}),e)),e.remotes)}setIdToRemoteMap(e,t){const{remote:o,expose:r}=t,{name:n,alias:s}=o;if(this.idToRemoteMap[e]={name:o.name,expose:r},s&&e.startsWith(n)){const t=e.replace(n,s);this.idToRemoteMap[t]={name:o.name,expose:r}}else if(s&&e.startsWith(s)){const t=e.replace(s,n);this.idToRemoteMap[t]={name:o.name,expose:r}}}async loadRemote(e,t){const{host:o}=this,r=Ht(o.options.remotes,e);let n,s=e,i=r?.expose,a=r?Pt(r.remote):void 0;try{const{loadFactory:r=!0}=t||{loadFactory:!0},{module:c,moduleOptions:l,remoteMatchInfo:h}=await this.getRemoteModuleAndOptions({id:e}),{pkgNameOrAlias:m,remote:d,expose:u,id:f,remoteSnapshot:p}=h;s=f,i=u,a=Pt(d);const y=await c.get(f,u,t,p),g=await this.hooks.lifecycle.onLoad.emit({id:f,pkgNameOrAlias:m,expose:u,exposeModule:r?y:void 0,exposeModuleFactory:r?void 0:y,remote:d,options:l,moduleInstance:c,origin:o});return this.setIdToRemoteMap(e,h),n={id:s,expose:i,remote:a,options:t,origin:o},"function"==typeof g?g:y}catch(r){const{from:c="runtime"}=t||{from:"runtime"};let l;try{l=await this.hooks.lifecycle.errorLoadRemote.emit({id:e,error:r,from:c,lifecycle:"onLoad",expose:i,remote:a,origin:o})}catch(e){throw n={id:s,expose:i,remote:a,options:t,error:e,origin:o},e}if(!l)throw n={id:s,expose:i,remote:a,options:t,error:r,origin:o},r;return n={id:s,expose:i,remote:a,options:t,error:r,origin:o,recovered:!0},l}finally{n&&await this.hooks.lifecycle.afterLoadRemote.emit(n)}}async preloadRemote(e){const{host:t}=this,o=[];await this.hooks.lifecycle.beforePreloadRemote.emit({preloadOps:e,options:t.options,origin:t});const r=(n=t.options.remotes,e.map((e=>{const t=function(e,t){for(const o of e){if(t===o.name)return o;if(o.alias&&t===o.alias)return o}}(n,e.nameOrAlias);return I(t,`Unable to preload ${e.nameOrAlias} as it is not included in ${!t&&Qe({remoteInfo:t,remotes:n})}`),{remote:t,preloadConfig:Ft(e)}})));var n;let s;await Promise.all(r.flatMap((e=>{const{preloadConfig:t,remote:o}=e,r=t.exposes||[];return r.length?r.map((r=>({ops:{...e,preloadConfig:{...t,exposes:[r]}},id:Dt(o.name,r)}))):[{ops:e,id:`${o.name}/*`}]})).map((async e=>{const{ops:r,id:n}=e,{remote:s,preloadConfig:i}=r,a=Pt(s);try{const{globalSnapshot:e,remoteSnapshot:c}=await t.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:s,id:n,initiator:"preloadRemote"}),l=await this.hooks.lifecycle.generatePreloadAssets.emit({origin:t,preloadOptions:r,remote:s,remoteInfo:a,globalSnapshot:e,remoteSnapshot:c});if(!l)return;const h=await Vt(a,t,l,!0,{initiator:"preloadRemote",id:n});o.push({remote:s,remoteInfo:a,preloadConfig:i,id:n,results:h})}catch(e){o.push({remote:s,remoteInfo:a,preloadConfig:i,id:n,results:[{url:a.entry,status:"error",resourceType:/\.json(?:$|[?#])/i.test(a.entry)?"manifest":"remoteEntry",initiator:"preloadRemote",id:n,error:e}]})}})));const i=o.flatMap((e=>e.results.filter((e=>"error"===e.status||"timeout"===e.status))));if(i.length>0&&(s=new Error(`preloadRemote failed to load ${i.length} resource(s).`),Object.assign(s,{results:o,failedResults:i})),await this.hooks.lifecycle.afterPreloadRemote.emit({preloadOps:e,options:t.options,origin:t,results:o,error:s}),s)throw s}registerRemotes(e,t){const{host:o}=this;e.forEach((e=>{this.registerRemote(e,o.options.remotes,{force:t?.force})}))}initRawContainer(e,t,o){const{host:r}=this,n=new Kt({host:r,remoteInfo:Pt({name:e,entry:t})});return n.remoteEntryExports=o,r.moduleCache.set(e,n),n}async getRemoteModuleAndOptions(e){const{host:t}=this,{id:o}=e;let r;try{r=await this.hooks.lifecycle.beforeRequest.emit({id:o,options:t.options,origin:t})}catch(e){if(r=await this.hooks.lifecycle.errorLoadRemote.emit({id:o,options:t.options,origin:t,from:"runtime",error:e,lifecycle:"beforeRequest"}),!r)throw e}const{id:n}=r,s=Ht(t.options.remotes,n);if(!s)try{b(pt,Rt,{hostName:t.options.name,requestId:n},void 0,qt(t.options))}catch(e){throw await this.hooks.lifecycle.afterMatchRemote.emit({id:n,options:t.options,error:e,origin:t}),e}const{remote:i}=s,a=Pt(i);await this.hooks.lifecycle.afterMatchRemote.emit({id:n,...s,options:t.options,remoteInfo:a,origin:t});const c=await t.sharedHandler.hooks.lifecycle.afterResolve.emit({id:n,...s,options:t.options,origin:t,remoteInfo:a}),{remote:l,expose:h}=c;I(l&&h,`The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${n}.`);let m=t.moduleCache.get(l.name);const d={host:t,remoteInfo:a};return m||(m=new Kt(d),t.moduleCache.set(l.name,m)),{module:m,moduleOptions:d,remoteMatchInfo:c}}registerRemote(e,t,o){const{host:r}=this,n=()=>{if(e.alias){const o=t.find((t=>e.alias&&(t.name.startsWith(e.alias)||t.alias?.startsWith(e.alias))));I(!o,`The alias ${e.alias} of remote ${e.name} is not allowed to be the prefix of ${o&&o.name} name or alias`)}"entry"in e&&l&&"undefined"!=typeof window&&!e.entry.startsWith("http")&&(e.entry=new URL(e.entry,window.location.origin).href),e.shareScope||(e.shareScope=V),e.type||(e.type=W)};this.hooks.lifecycle.beforeRegisterRemote.emit({remote:e,origin:r});const s=t.find((t=>t.name===e.name));if(s){const i=[`The remote "${e.name}" is already registered.`,"Please note that overriding it may cause unexpected errors."];o?.force&&(this.removeRemote(s),n(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:r}),Xe(i.join(" ")))}else n(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:r})}removeRemote(e){try{const{host:t}=this,{name:o}=e,r=t.options.remotes.findIndex((e=>e.name===o));-1!==r&&t.options.remotes.splice(r,1);const n=F(A.__FEDERATION__.moduleInfo,N(e)).key;delete A.__FEDERATION__.moduleInfo[n],"entry"in e&&(t.snapshotHandler.manifestCache.delete(e.entry),delete M.__FEDERATION__.__MANIFEST_LOADING__[e.entry]);const{hostGlobalSnapshot:s}=ho(e,t);if(s){const t=s&&"remotesInfo"in s&&s.remotesInfo&&F(s.remotesInfo,e.name).key;t&&delete s.remotesInfo[t]}const i=t.moduleCache.get(e.name);if(i){const o=i.remoteInfo,r=o.entryGlobalName;A[r]&&(Object.getOwnPropertyDescriptor(A,r)?.configurable?delete A[r]:A[r]=void 0);const n=Mt(i.remoteInfo);D[n]&&delete D[n];let s=o.buildVersion?Je(o.name,o.buildVersion):o.name;const a=A.__FEDERATION__.__INSTANCES__.findIndex((e=>o.buildVersion?e.options.id===s:e.name===s));if(-1!==a){const e=A.__FEDERATION__.__INSTANCES__[a];s=e.options.id||s;const t=qe();let r=!0;const n=[];Object.keys(t).forEach((e=>{const s=t[e];s&&Object.keys(s).forEach((t=>{const i=s[t];i&&Object.keys(i).forEach((s=>{const a=i[s];a&&Object.keys(a).forEach((i=>{const c=a[i];c&&"object"==typeof c&&c.from===o.name&&(c.loaded||c.loading?(c.useIn=c.useIn.filter((e=>e!==o.name)),c.useIn.length?r=!1:n.push([e,t,s,i])):n.push([e,t,s,i]))}))}))}))})),r&&(e.shareScopeMap={},delete t[s]),n.forEach((([e,o,r,n])=>{delete t[e]?.[o]?.[r]?.[n]})),A.__FEDERATION__.__INSTANCES__.splice(a,1)}t.moduleCache.delete(e.name)}}catch(e){_.error(`removeRemote failed: ${e instanceof Error?e.message:String(e)}`)}}};const go="boolean"!=typeof FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN||!FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN,Eo="boolean"!=typeof FEDERATION_OPTIMIZE_NO_REMOTE||!FEDERATION_OPTIMIZE_NO_REMOTE,So="boolean"!=typeof FEDERATION_OPTIMIZE_NO_SHARED||!FEDERATION_OPTIMIZE_NO_SHARED;var _o=class{constructor(e){this.hooks=new Zt({beforeInit:new Xt("beforeInit"),init:new Jt,beforeInitContainer:new Qt("beforeInitContainer"),initContainer:new Qt("initContainer")}),this.version="2.8.2",this.moduleCache=new Map,this.loaderHook=new Zt({getModuleInfo:new Jt,createScript:new Jt,createLink:new Jt,fetch:new oo,loadEntryError:new oo,afterLoadEntry:new oo("afterLoadEntry"),beforeInitRemote:new oo("beforeInitRemote"),afterInitRemote:new oo("afterInitRemote"),beforeGetExpose:new oo("beforeGetExpose"),afterGetExpose:new oo("afterGetExpose"),beforeExecuteFactory:new oo("beforeExecuteFactory"),afterExecuteFactory:new oo("afterExecuteFactory"),getModuleFactory:new oo}),this.bridgeHook=new Zt({beforeBridgeRender:new Jt,afterBridgeRender:new Jt,beforeBridgeDestroy:new Jt,afterBridgeDestroy:new Jt});const t=Eo&&go?[{name:"snapshot-plugin",async afterResolve(e){const{remote:t,pkgNameOrAlias:o,expose:r,origin:n,remoteInfo:s,id:i}=e;if(!$(t)||!v(t)){const{remoteSnapshot:a,globalSnapshot:c}=await n.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:t,id:Dt(t.name,r)});ro(s,a);const l={remote:t,preloadConfig:{nameOrAlias:o,exposes:[r],resourceCategory:"sync",share:!1,depsRemote:!1}},h=await n.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({origin:n,preloadOptions:l,remoteInfo:s,remote:t,remoteSnapshot:a,globalSnapshot:c});return h&&Vt(s,n,h,!1,{initiator:"loadRemote",id:i}).catch((()=>{})),{...e,remoteSnapshot:a}}return e}},{name:"generate-preload-assets-plugin",async generatePreloadAssets(e){const{origin:t,preloadOptions:o,remoteInfo:r,remote:n,globalSnapshot:s,remoteSnapshot:i}=e;return l?$(n)&&v(n)?{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[{name:n.name,url:n.entry,moduleInfo:{name:r.name,entry:n.entry,type:r.type||"global",entryGlobalName:"",shareScope:""}}]}:(ro(r,i),lo(t,o,r,s,i)):{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[]}}}]:[],o={id:"undefined"!=typeof FEDERATION_BUILD_IDENTIFIER?FEDERATION_BUILD_IDENTIFIER:"",name:e.name,plugins:t,remotes:[],shared:{},inBrowser:l};this.name=e.name,this.options=o,this.snapshotHandler=Eo?new mo(this):new uo,this.sharedHandler=So?new fo(this):new po,this.remoteHandler=Eo?new yo(this):new to,this.shareScopeMap=this.sharedHandler.shareScopeMap,this.registerPlugins([...o.plugins,...e.plugins||[]]),this.options=this.formatOptions(o,e)}initOptions(e){e.name&&e.name!==this.options.name&&b(E(It,Rt)),this.registerPlugins(e.plugins);const t=this.formatOptions(this.options,e);return this.options=t,t}async loadShare(e,t){return this.sharedHandler.loadShare(e,t)}loadShareSync(e,t){return this.sharedHandler.loadShareSync(e,t)}initializeSharing(e=V,t){return this.sharedHandler.initializeSharing(e,t)}initRawContainer(e,t,o){return this.remoteHandler.initRawContainer(e,t,o)}async loadRemote(e,t){return this.remoteHandler.loadRemote(e,t)}async preloadRemote(e){return this.remoteHandler.preloadRemote(e)}initShareScopeMap(e,t,o={}){this.sharedHandler.initShareScopeMap(e,t,o)}formatOptions(e,t){const o=So?Pe(e,t).allShareInfos:{},{userOptions:r,options:n}=this.hooks.lifecycle.beforeInit.emit({origin:this,userOptions:t,options:e,shareInfo:o}),s=this.remoteHandler.formatAndRegisterRemote(n,r),{allShareInfos:i}=this.sharedHandler.registerShared(n,r),a=[...n.plugins];r.plugins&&r.plugins.forEach((e=>{a.includes(e)||a.push(e)}));const c={...e,...t,plugins:a,remotes:s,shared:i,id:r.id||e.id};return this.hooks.lifecycle.init.emit({origin:this,options:c}),c}registerPlugins(e){const t=function(e,t){const o=x.__FEDERATION__.__GLOBAL_PLUGIN__,r=[t.hooks,t.remoteHandler.hooks,t.sharedHandler.hooks,t.snapshotHandler.hooks,t.loaderHook,t.bridgeHook];return o.length>0&&o.forEach((t=>{e?.find((e=>e.name!==t.name))&&e.push(t)})),e&&e.length>0&&e.forEach((e=>{r.forEach((o=>{o.applyPlugin(e,t)}))})),e}(e,this);this.options.plugins=this.options.plugins.reduce(((e,t)=>t?(e&&!e.find((e=>e.name===t.name))&&e.push(t),e):e),t||[])}registerRemotes(e,t){return this.remoteHandler.registerRemotes(e,t)}registerShared(e){this.sharedHandler.registerShared(this.options,{...this.options,shared:e})}};Object.defineProperty,"boolean"==typeof FEDERATION_OPTIMIZE_NO_REMOTE&&FEDERATION_OPTIMIZE_NO_REMOTE;let Io=null;function bo(e){const t=function(e,t){const o="undefined"!=typeof FEDERATION_BUILD_IDENTIFIER?FEDERATION_BUILD_IDENTIFIER:"";return A.__FEDERATION__.__INSTANCES__.find((r=>!(!o||r.options.id!==o)||r.options.name===e&&!r.options.version&&!t||!(r.options.name!==e||!t||r.options.version!==t)))}(e.name,e.version),o={...e,id:e.id||""};return t?(t.initOptions(o),Io||(Io=t),t):(Io=function(e){const t=new(A.__FEDERATION__.__DEBUG_CONSTRUCTOR__||_o)({id:`${e.name}@${e.version||Date.now()}`,...e});return function(e){A.__FEDERATION__.__INSTANCES__.push(e)}(t),t}(o),Io)}!function(e,t=d()){t&&(A.__FEDERATION__.__DEBUG_CONSTRUCTOR__=e,A.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__="2.8.2")}(_o);let wo=!1;const No=new Set,$o=async(e,t,o,r="default")=>{console.debug(`loading Appshell component: { scope: ${e}, module: ${t}, shareScope: ${r} }`),wo||(wo=!0,Io||bo({name:"Appshell",remotes:[]})),No.has(e)||(No.add(e),function(...e){I(Io,_t,Rt),Io.registerRemotes.apply(Io,e)}([{name:e,entry:o}]));const n=t.replace(/^\.\//,""),s=await function(...e){return I(Io,_t,Rt),Io.loadRemote.apply(Io,e)}(`${e}/${n}`);if(!s)throw new Error(`Failed to find module container ${e}`);return console.debug(`Appshell component loaded: { scope: ${e}, module: ${t}, shareScope: ${r} }`),s.default},vo=async e=>{const{loader:t}=e;if("ModuleFederation"!==t.kind)throw new Error(`No loader for kind '${t.kind}'.`);return $o(t.scope,t.module,e.remoteEntryUrl,t.shareScope)},Ro=e=>async t=>{const o=e?.remotes[t];if(e&&o)return{remote:o,vars:e.vars[o.loader.scope]??{}}},ko=(e,t="")=>async o=>{if(!e)return;const r=`${t}/v1/applications/${e.applicationId}/remotes/${o}`,n=await fetch(r,{credentials:"include"});if(!n.ok)return;const s=await n.json();return{remote:s,vars:e.vars[s.loader.scope]??{}}},Oo=(...e)=>async t=>{for(const o of e){const e=await o(t);if(e)return e}},To=(e={})=>{const t=e.composition??("undefined"==typeof window?void 0:window.__appshell_config__),o=e.resolver??Oo(Ro(t),ko(t));return async e=>{const t=t=>new Error(`Failed to load component '${e}'. ${t?.toString()}`);let r;try{r=await o(e)}catch(e){throw t(e)}if(!r)throw new Error(`Remote resource not found in registry. Expected: ${e}`);const{remote:n,vars:i}=r;try{return(0,s.setVars)(n.loader.scope,i),[await vo(n),n]}catch(e){throw t(e)}}};(Object.getOwnPropertyDescriptor(To,"name")||{}).writable||Object.defineProperty(To,"name",{value:"default",configurable:!0});const Ao=To;return n})()));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { AppshellIndex, AppshellRemote, Metadata } from '@appshell/runtime';
|
|
1
|
+
import type { AppshellIndex, AppshellRemote, Metadata, RemoteLoader } from '@appshell/runtime';
|
|
2
2
|
import { JSONSchema4, JSONSchema6, JSONSchema7 } from 'json-schema';
|
|
3
|
-
export type { AppshellIndex, AppshellRemote, Metadata } from '@appshell/runtime';
|
|
3
|
+
export type { AppshellIndex, AppshellRemote, Metadata, ModuleFederationLoader, RemoteLoader, } from '@appshell/runtime';
|
|
4
4
|
export type Schema = JSONSchema4 | JSONSchema6 | JSONSchema7;
|
|
5
5
|
export type ConfigValidator = {
|
|
6
6
|
validate: <T>(...config: T[]) => void;
|
|
@@ -161,10 +161,7 @@ export type AppshellManifest<TMetadata = Metadata> = {
|
|
|
161
161
|
*/
|
|
162
162
|
export type PublishedRemote<TMetadata = Metadata> = {
|
|
163
163
|
id: string;
|
|
164
|
-
|
|
165
|
-
scope: string;
|
|
166
|
-
module: string;
|
|
167
|
-
shareScope?: string;
|
|
164
|
+
loader: RemoteLoader;
|
|
168
165
|
metadata: TMetadata;
|
|
169
166
|
};
|
|
170
167
|
/** An `AppshellRemote` the registry already resolved, so the browser needs no manifest fetch. */
|
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { RemoteLoader } from '@appshell/runtime';
|
|
2
|
+
/**
|
|
3
|
+
* Dispatches on the loader's kind rather than assuming federation.
|
|
4
|
+
*
|
|
5
|
+
* There is one kind today. Naming it is what lets a second — single-spa, import maps —
|
|
6
|
+
* arrive without reinterpreting manifests already published, and what stops federation's
|
|
7
|
+
* vocabulary reading as though it were appshell's.
|
|
8
|
+
*/
|
|
9
|
+
export declare const load: <TComponent>(remote: {
|
|
10
|
+
loader: RemoteLoader;
|
|
11
|
+
remoteEntryUrl: string;
|
|
12
|
+
}) => Promise<TComponent>;
|
|
13
|
+
export default load;
|
|
@@ -3,4 +3,4 @@ export { ANONYMOUS, getIdentity } from './identity';
|
|
|
3
3
|
export type { Identity } from './identity';
|
|
4
4
|
export { hasVars, readVars, resetVars, setVars } from './store';
|
|
5
5
|
export type { Vars } from './types';
|
|
6
|
-
export type { AppshellIndex, AppshellRemote, Metadata } from './wire';
|
|
6
|
+
export type { AppshellIndex, AppshellRemote, Metadata, ModuleFederationLoader, RemoteLoader, } from './wire';
|
|
@@ -12,14 +12,46 @@
|
|
|
12
12
|
*/
|
|
13
13
|
/** Arbitrary, application-defined description of a remote. Appshell never reads it. */
|
|
14
14
|
export type Metadata = Record<string, unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* How a host loads a remote, named as one kind among possible kinds.
|
|
17
|
+
*
|
|
18
|
+
* scope, module and shareScope are Module Federation's vocabulary, and they used to sit
|
|
19
|
+
* at the top level of a remote where nothing said so — which is what would have made a
|
|
20
|
+
* second framework awkward, not the words themselves. Nested under a kind they are
|
|
21
|
+
* exactly correct, and something like single-spa slots beside them without reinterpreting
|
|
22
|
+
* anything already published.
|
|
23
|
+
*
|
|
24
|
+
* apiVersion follows the house style set by appshell.app.yaml, and the group is appshell's
|
|
25
|
+
* because appshell owns this schema: it decides which fields it stores, even though the
|
|
26
|
+
* fields describe federation concepts. If federation ever needs a different recipe that is
|
|
27
|
+
* a v2, and manifests published under v1 keep meaning what they meant — which matters,
|
|
28
|
+
* because they are immutable and hashed.
|
|
29
|
+
*/
|
|
30
|
+
export type ModuleFederationLoader = {
|
|
31
|
+
apiVersion: 'federation.appshell.org/v1';
|
|
32
|
+
kind: 'ModuleFederation';
|
|
33
|
+
scope: string;
|
|
34
|
+
module: string;
|
|
35
|
+
shareScope?: string;
|
|
36
|
+
/** The entry file the build emits, conventionally remoteEntry.js. */
|
|
37
|
+
filename: string;
|
|
38
|
+
/**
|
|
39
|
+
* What built this, recorded as a fact rather than a constraint.
|
|
40
|
+
*
|
|
41
|
+
* Deliberately not a version range. A range is a claim about the environment, and a
|
|
42
|
+
* package cannot make it: it knows what built it and not what will load it, and the
|
|
43
|
+
* host is what registers the remote. Freezing one into an immutable artifact is the
|
|
44
|
+
* same mistake as freezing its origin.
|
|
45
|
+
*/
|
|
46
|
+
builtWith?: string;
|
|
47
|
+
};
|
|
48
|
+
export type RemoteLoader = ModuleFederationLoader;
|
|
15
49
|
/** A remote the registry has already resolved, so the browser needs no manifest fetch. */
|
|
16
50
|
export type AppshellRemote<TMetadata = Metadata> = {
|
|
17
51
|
id: string;
|
|
18
52
|
manifestUrl: string;
|
|
19
53
|
remoteEntryUrl: string;
|
|
20
|
-
|
|
21
|
-
module: string;
|
|
22
|
-
shareScope?: string;
|
|
54
|
+
loader: RemoteLoader;
|
|
23
55
|
metadata: TMetadata;
|
|
24
56
|
};
|
|
25
57
|
/** Remote key to manifest url. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appshell/loader",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.65",
|
|
4
4
|
"description": "Utility for loading Appshell components",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"types": "dist/loader/src/index.d.ts",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
],
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@appshell/runtime": "^1.0.0-alpha.
|
|
35
|
+
"@appshell/runtime": "^1.0.0-alpha.65",
|
|
36
36
|
"@module-federation/enhanced": "^2.8.2"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "1ce899539b6ab3063880835140a65e590c2dad21"
|
|
39
39
|
}
|