@appshell/react-shell 1.0.0-alpha.20 → 1.0.0-alpha.22

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.
@@ -5,7 +5,7 @@
5
5
  "name": "Appshell",
6
6
  "type": "app",
7
7
  "buildInfo": {
8
- "buildVersion": "1.0.0-alpha.20",
8
+ "buildVersion": "1.0.0-alpha.22",
9
9
  "buildName": "@appshell/react-shell"
10
10
  },
11
11
  "remoteEntry": {
@@ -27,9 +27,9 @@
27
27
  {
28
28
  "id": "Appshell:@appshell/runtime",
29
29
  "name": "@appshell/runtime",
30
- "version": "1.0.0-alpha.20",
30
+ "version": "1.0.0-alpha.22",
31
31
  "singleton": true,
32
- "requiredVersion": "^1.0.0-alpha.20",
32
+ "requiredVersion": "^1.0.0-alpha.22",
33
33
  "assets": {
34
34
  "js": {
35
35
  "async": [],
@@ -5,7 +5,7 @@
5
5
  "name": "Appshell",
6
6
  "type": "app",
7
7
  "buildInfo": {
8
- "buildVersion": "1.0.0-alpha.20",
8
+ "buildVersion": "1.0.0-alpha.22",
9
9
  "buildName": "@appshell/react-shell"
10
10
  },
11
11
  "remoteEntry": {
@@ -26,10 +26,10 @@
26
26
  "shared": [
27
27
  {
28
28
  "singleton": true,
29
- "requiredVersion": "^1.0.0-alpha.20",
29
+ "requiredVersion": "^1.0.0-alpha.22",
30
30
  "shareScope": "default",
31
31
  "name": "@appshell/runtime",
32
- "version": "1.0.0-alpha.20",
32
+ "version": "1.0.0-alpha.22",
33
33
  "eager": false,
34
34
  "id": "Appshell:@appshell/runtime",
35
35
  "assets": {
@@ -453,6 +453,7 @@ __webpack_require__.r(__webpack_exports__);
453
453
  /* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom/client */ "../../node_modules/react-dom/client.js");
454
454
  /* harmony import */ var _overlayBadge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./overlayBadge */ "./src/overlayBadge.ts");
455
455
  /* harmony import */ var _reset_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reset.css */ "./src/reset.css");
456
+ /* harmony import */ var _splash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./splash */ "./src/splash.ts");
456
457
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
457
458
  /* eslint-disable react/jsx-props-no-spreading */
458
459
 
@@ -460,7 +461,9 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
460
461
 
461
462
 
462
463
 
463
- const root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_2__.createRoot)(document.getElementById('root'));
464
+
465
+ const container = document.getElementById('root');
466
+ const root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_2__.createRoot)(container);
464
467
 
465
468
  // The registry inlines the composition into the document it serves.
466
469
  const composition = window.__appshell_config__;
@@ -473,10 +476,10 @@ if (!composition?.root) {
473
476
  const remote = composition.root;
474
477
  const props = composition.rootProps;
475
478
 
476
- // No fallback. What fills the gap before the root remote mounts is the application's
477
- // business, not the shell's and it has to come from the document, since the thing
478
- // being waited for is the consumer's own code. Until that lands the gap renders as
479
- // whatever the page background is.
479
+ // No fallback here. What covers the gap before the root package mounts is in the document
480
+ // the registry served — it has to be, because the thing being waited for is the package's
481
+ // own code, and this bundle is fetched before it. All the shell does is take it away.
482
+ (0,_splash__WEBPACK_IMPORTED_MODULE_5__["default"])(container);
480
483
  root.render(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement((react__WEBPACK_IMPORTED_MODULE_1___default().StrictMode), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_appshell_react__WEBPACK_IMPORTED_MODULE_0__.RemoteSlot, _extends({
481
484
  remote: remote
482
485
  }, props))));
@@ -537,6 +540,67 @@ const overlayBadgeMarkup = (remotes, shellFlavor = 'prod') => {
537
540
 
538
541
  /***/ },
539
542
 
543
+ /***/ "./src/splash.ts"
544
+ /*!***********************!*\
545
+ !*** ./src/splash.ts ***!
546
+ \***********************/
547
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
548
+
549
+ __webpack_require__.r(__webpack_exports__);
550
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
551
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
552
+ /* harmony export */ });
553
+ /**
554
+ * Removes the placeholder the registry rendered, once the root package has put something
555
+ * on the page.
556
+ *
557
+ * Plain DOM outside the React tree, for the same reason as the overlay badge: the element
558
+ * was never React's to begin with — it is in the document before this bundle is fetched —
559
+ * and nothing about dismissing it is React-specific.
560
+ *
561
+ * It watches for content rather than taking a callback from `RemoteSlot`. A callback would
562
+ * put a prop on the public component that exists only to serve the shell, and would still
563
+ * fire before the browser had painted anything. First rendered child is the honest signal:
564
+ * it is the moment there is something to look at.
565
+ */
566
+ const SPLASH_ID = 'appshell-splash';
567
+
568
+ /** Long enough to be a stuck load rather than a slow one. */
569
+ const GIVE_UP_AFTER_MS = 30_000;
570
+ const remove = splash => splash.parentNode?.removeChild(splash);
571
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (root => {
572
+ const splash = document.getElementById(SPLASH_ID);
573
+
574
+ // Absent when a host renders its own document rather than letting the registry serve one.
575
+ if (!splash) return () => {};
576
+ if (root.firstElementChild) {
577
+ remove(splash);
578
+ return () => {};
579
+ }
580
+ const observer = new MutationObserver(() => {
581
+ if (!root.firstElementChild) return;
582
+ observer.disconnect();
583
+ remove(splash);
584
+ });
585
+ observer.observe(root, {
586
+ childList: true
587
+ });
588
+
589
+ // A root package that never loads would otherwise leave the placeholder covering the
590
+ // error the shell rendered underneath it.
591
+ const timeout = setTimeout(() => {
592
+ observer.disconnect();
593
+ remove(splash);
594
+ }, GIVE_UP_AFTER_MS);
595
+ return () => {
596
+ observer.disconnect();
597
+ clearTimeout(timeout);
598
+ };
599
+ });
600
+ (Object.getOwnPropertyDescriptor(__WEBPACK_DEFAULT_EXPORT__, "name") || {}).writable || Object.defineProperty(__WEBPACK_DEFAULT_EXPORT__, "name", { value: "default", configurable: true });
601
+
602
+ /***/ },
603
+
540
604
  /***/ "../../node_modules/css-loader/dist/cjs.js!../../node_modules/postcss-loader/dist/cjs.js!./src/reset.css"
541
605
  /*!***************************************************************************************************************!*\
542
606
  !*** ../../node_modules/css-loader/dist/cjs.js!../../node_modules/postcss-loader/dist/cjs.js!./src/reset.css ***!
@@ -1 +1 @@
1
- {"version":3,"file":"src_bootstrap_tsx.js","mappings":"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AA2B,GAAG,WAAW,sBAAsB,GAAG,qBAAqB;AACxjD;AACA,iEAAe,uBAAuB,EAAC;;;;;;;;;;;ACP1B;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,gDAAgD;AAChD;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,sFAAsF,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,iDAAiD,qBAAqB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,sDAAsD,qBAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;ACpFa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA;AACA;AACA,E;;;;;;;;;;ACfa;;AAEb,QAAQ,mBAAO,CAAC,sEAAW;AAC3B,IAAI,KAAqC,EAAE;AAAA,EAG1C,CAAC;AACF;AACA,EAAE,kBAAkB;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,EAAE,mBAAmB;AACrB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA,MAAqG;AACrG,MAA2F;AAC3F,MAAkG;AAClG,MAAqH;AACrH,MAA8G;AAC9G,MAA8G;AAC9G,MAA0J;AAC1J;AACA;;AAEA;;AAEA,4BAA4B,qGAAmB;AAC/C,wBAAwB,kHAAa;;AAErC,uBAAuB,uGAAa;AACpC;AACA,iBAAiB,+FAAM;AACvB,6BAA6B,sGAAkB;;AAE/C,aAAa,0GAAG,CAAC,8HAAO;;;;AAIoG;AAC5H,OAAO,iEAAe,8HAAO,IAAI,8HAAO,UAAU,8HAAO,mBAAmB,EAAC;;;;;;;;;;;AC1BhE;;AAEb;;AAEA;AACA;;AAEA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;;AAEA;;AAEA,qBAAqB,6BAA6B;AAClD;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;;;;ACvGa;;AAEb;AACA;;AAEA;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kC;;;;;;;;;;ACtCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;;;;;ACVa;;AAEb;AACA;AACA,cAAc,KAAwC,GAAG,sBAAiB,GAAG,CAAI;;AAEjF;AACA;AACA;AACA;;AAEA,gD;;;;;;;;;;ACXa;;AAEb;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;;AAEA;AACA,0CAA0C;AAC1C;;AAEA;;AAEA;AACA,iFAAiF;AACjF;;AAEA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA,yDAAyD;AACzD,IAAI;;AAEJ;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,wB;;;;;;;;;;ACrEa;;AAEb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfwD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAd","sources":["webpack://appshell-react-shell/../loader/src/index.ts","webpack://appshell-react-shell/../loader/src/loadAppshellComponent.ts","webpack://appshell-react-shell/../loader/src/remoteLoader.ts","webpack://appshell-react-shell/../loader/src/resolvers.ts","webpack://appshell-react-shell/../loader/src/types.ts","webpack://appshell-react-shell/../react/src/components/LoadingError.tsx","webpack://appshell-react-shell/../react/src/components/RemoteSlot.tsx","webpack://appshell-react-shell/../react/src/contexts/RemoteContext.tsx","webpack://appshell-react-shell/../react/src/hooks/useRemote.ts","webpack://appshell-react-shell/../react/src/index.ts","webpack://appshell-react-shell/../react/src/resources/jsonResource.ts","webpack://appshell-react-shell/./src/bootstrap.tsx","webpack://appshell-react-shell/./src/overlayBadge.ts","webpack://appshell-react-shell/./src/reset.css","webpack://appshell-react-shell/../../node_modules/css-loader/dist/runtime/api.js","webpack://appshell-react-shell/../../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://appshell-react-shell/../../node_modules/react-dom/client.js","webpack://appshell-react-shell/./src/reset.css?5a04","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://appshell-react-shell/../../node_modules/@module-federation/enhanced/dist/src/runtime.mjs","webpack://appshell-react-shell/../../node_modules/@module-federation/runtime-tools/dist/runtime.js"],"sourcesContent":["import remoteLoader from './remoteLoader';\n\nexport type { RemoteLoaderOptions } from './remoteLoader';\nexport * from './resolvers';\nexport * from './types';\n\nexport default remoteLoader;\n","import {\n getInstance,\n init,\n loadRemote,\n registerRemotes,\n} from '@module-federation/enhanced/runtime';\n\nconst HOST_NAME = 'Appshell';\n\n// The runtime instance and each remote's registration only need to happen once per page load.\nlet initialized = false;\nconst registeredScopes = new Set<string>();\n\nconst ensureInitialized = () => {\n if (initialized) return;\n initialized = true;\n\n // A host that ships its own ModuleFederationPlugin (e.g. @appshell/react-shell) already\n // created the global federation instance during its own bootstrap. Re-calling `init()`\n // with a different name throws (#RUNTIME-010), so reuse whatever instance already exists.\n if (getInstance()) return;\n\n init({ name: HOST_NAME, remotes: [] });\n};\n\nexport default async <TComponent>(\n scope: string,\n module: string,\n remoteEntryUrl: string,\n shareScope = 'default',\n) => {\n // eslint-disable-next-line no-console\n console.debug(\n `loading Appshell component: { scope: ${scope}, module: ${module}, shareScope: ${shareScope} }`,\n );\n\n ensureInitialized();\n\n // Registered exactly once, and never re-registered or cache-busted afterwards.\n //\n // A remote served by a dev server updates itself: its `remoteEntry` already carries\n // webpack's HMR runtime and a dev-server client, so an edit is applied in place\n // behind a container identity that does not move. Re-registering the same scope, or\n // appending a cache-busting query to its entry, changes that identity and the\n // `publicPath` derived from it mid-flight, which strands the `*.hot-update.json` and\n // `*.hot-update.js` requests the remote is midway through making.\n if (!registeredScopes.has(scope)) {\n registeredScopes.add(scope);\n registerRemotes([{ name: scope, entry: remoteEntryUrl }]);\n }\n\n // Federation ids drop the leading `./` that `exposes` keys use.\n const exposed = module.replace(/^\\.\\//, '');\n const Module = await loadRemote<{ default: TComponent }>(`${scope}/${exposed}`);\n\n if (!Module) {\n throw new Error(`Failed to find module container ${scope}`);\n }\n\n // eslint-disable-next-line no-console\n console.debug(\n `Appshell component loaded: { scope: ${scope}, module: ${module}, shareScope: ${shareScope} }`,\n );\n\n return Module.default;\n};\n","/* eslint-disable no-underscore-dangle */\nimport type { AppshellComposition } from '@appshell/config';\nimport { setVars } from '@appshell/runtime';\nimport loadAppshellComponent from './loadAppshellComponent';\nimport { chainResolvers, inlineResolver, registryResolver, type RemoteResolver } from './resolvers';\n\ndeclare global {\n interface Window {\n __appshell_config__?: AppshellComposition;\n }\n}\n\nexport type RemoteLoaderOptions = {\n composition?: AppshellComposition;\n /** Replaces the resolver chain outright; a seam for tests and embedders. */\n resolver?: RemoteResolver;\n};\n\nexport default (options: RemoteLoaderOptions = {}) => {\n const composition =\n options.composition ?? (typeof window === 'undefined' ? undefined : window.__appshell_config__);\n\n const resolve =\n options.resolver ??\n chainResolvers(inlineResolver(composition), registryResolver(composition));\n\n return async <TComponent>(key: string) => {\n const failed = (err: unknown) =>\n new Error(`Failed to load component '${key}'. ${err?.toString()}`);\n\n let resolution;\n try {\n resolution = await resolve(key);\n } catch (err) {\n throw failed(err);\n }\n\n if (!resolution) {\n throw new Error(`Remote resource not found in registry. Expected: ${key}`);\n }\n\n const { remote, vars } = resolution;\n\n try {\n // Before the remote loads, so a package that validates its vars while its modules\n // evaluate still finds them. `@appshell/runtime` is a shared singleton, so this is\n // the same store the package reads through `getVars()`.\n setVars(remote.scope, vars);\n\n const Component = await loadAppshellComponent<TComponent>(\n remote.scope,\n remote.module,\n remote.remoteEntryUrl,\n remote.shareScope,\n );\n\n return [Component, remote] as const;\n } catch (err) {\n throw failed(err);\n }\n };\n};\n","import type { AppshellComposition, ResolvedRemote } from '@appshell/config';\n\nexport type RemoteResolution = {\n remote: ResolvedRemote;\n /** Already merged with the application's overrides — nothing left for the browser to layer on. */\n vars: Record<string, string | number | undefined>;\n};\n\nexport type RemoteResolver = (key: string) => Promise<RemoteResolution | undefined>;\n\n/** The registry inlined the composition into the page, so no network call is needed. */\nexport const inlineResolver =\n (composition?: AppshellComposition): RemoteResolver =>\n async (key) => {\n const remote = composition?.remotes[key];\n if (!composition || !remote) return undefined;\n\n return {\n remote,\n vars: composition.vars[remote.scope] ?? {},\n };\n };\n\n/** Fetch-on-miss: covers a package activated after this page was served. */\nexport const registryResolver =\n (composition?: AppshellComposition, origin = ''): RemoteResolver =>\n async (key) => {\n if (!composition) return undefined;\n\n const url = `${origin}/v1/applications/${composition.applicationId}/remotes/${key}`;\n const response = await fetch(url, { credentials: 'include' });\n if (!response.ok) return undefined;\n\n const remote: ResolvedRemote = await response.json();\n\n return {\n remote,\n vars: composition.vars[remote.scope] ?? {},\n };\n };\n\nexport const chainResolvers =\n (...resolvers: RemoteResolver[]): RemoteResolver =>\n async (key) => {\n // eslint-disable-next-line no-restricted-syntax\n for (const resolve of resolvers) {\n // eslint-disable-next-line no-await-in-loop\n const resolution = await resolve(key);\n if (resolution) return resolution;\n }\n\n return undefined;\n };\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type ShareScope<TComponent = any> = Record<\n string,\n Record<string, { loaded?: 1; get: () => Promise<TComponent>; from: string; eager: boolean }>\n>;\n\nexport interface ModuleContainer<TComponent> {\n init(shareScope: ShareScope<TComponent>): Promise<void>;\n get(module: string): Promise<() => Record<string, TComponent>>;\n}\n","import React, { FC } from 'react';\n\ntype ErrorProps = {\n remote: string;\n reason: string;\n};\n\nconst LoadingError: FC<ErrorProps> = ({ remote, reason }) => (\n <div style={{ border: '3px solid red' }}>\n <h5>{`Error loading Appshell component '${remote}.'`}</h5>\n <span style={{ fontSize: '1rem' }}>{reason}</span>\n </div>\n);\n\nexport default LoadingError;\n","/* eslint-disable react/jsx-props-no-spreading */\nimport remoteLoader from '@appshell/loader';\nimport React, { ComponentType, ReactElement, ReactNode, useEffect, useState } from 'react';\nimport { RemoteProvider } from '../contexts/RemoteContext';\nimport LoadingError from './LoadingError';\n\nexport type ExtendedProps = Record<string, unknown>;\n\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nexport type RemoteSlotProps<TProps extends ExtendedProps = ExtendedProps> = {\n remote: string;\n fallback?: ReactNode;\n} & TProps;\n\n/**\n * Loads a remote once and leaves it alone.\n *\n * Keeping a remote current while it is being developed is not this component's job.\n * A remote served by a dev server ships webpack's HMR runtime and a dev-server client\n * inside its own `remoteEntry`, so it applies its own edits in place and React Fast\n * Refresh swaps the component implementations underneath this tree — no reload, and no\n * remount that would discard state this component never owned.\n *\n * Watching the remote's socket from here and reloading the page was strictly worse: it\n * raced the remote's own update, and it threw away the entire composed app to deliver a\n * change to one subtree. When webpack genuinely cannot apply an update, the remote's own\n * client still falls back to a full reload — which is the right place for that decision,\n * because it is the only side that knows whether the update applied.\n */\nconst RemoteSlot = <TProps extends ExtendedProps>({\n remote,\n fallback,\n ...rest\n}: RemoteSlotProps<TProps>): ReactElement<TProps> => {\n const [element, setElement] = useState<ReactElement>();\n\n useEffect(() => {\n let disposed = false;\n const loadComponent = remoteLoader();\n\n async function load() {\n try {\n const [Component, resolved] = await loadComponent<ComponentType>(remote);\n\n if (disposed || !Component) {\n return;\n }\n\n setElement(\n <RemoteProvider remote={resolved}>\n <Component {...rest} />\n </RemoteProvider>,\n );\n } catch (err) {\n if (!disposed) {\n setElement(<LoadingError remote={remote} reason={`${err}`} />);\n }\n }\n }\n\n setElement(undefined);\n load();\n\n return () => {\n disposed = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [remote, ...Object.values(rest)]);\n\n // eslint-disable-next-line no-console\n console.debug(`rendering RemoteSlot[${remote}], loading=${!element}`);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{element || fallback}</>;\n};\n\nRemoteSlot.defaultProps = {\n fallback: undefined,\n};\n\nexport default RemoteSlot;\n","import { AppshellRemote } from '@appshell/config';\nimport type { FC, ReactNode } from 'react';\nimport React, { createContext } from 'react';\n\ninterface RemoteProviderProps {\n remote?: AppshellRemote;\n children: ReactNode;\n}\n\nexport const RemoteContext = createContext<AppshellRemote | undefined>(undefined);\n\nexport const RemoteProvider: FC<RemoteProviderProps> = ({ remote, children }) => (\n <RemoteContext.Provider value={remote}>{children}</RemoteContext.Provider>\n);\n\nRemoteProvider.defaultProps = {\n remote: undefined,\n};\n\nexport const RemoteConsumer = RemoteContext.Consumer;\n\nexport default RemoteContext;\n","import { AppshellRemote } from '@appshell/config';\nimport React from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport RemoteContext from '../contexts/RemoteContext';\n\n/** The remote backing the nearest `RemoteSlot` — it already knows its own key. */\nexport default (): AppshellRemote | undefined => React.useContext(RemoteContext);\n","export { default as RemoteSlot } from './components/RemoteSlot';\nexport { RemoteProvider } from './contexts/RemoteContext';\nexport { default as useRemote } from './hooks/useRemote';\nexport { default as jsonResource } from './resources/jsonResource';\n","export default <TResource>(url: string) => {\n let status = 'pending';\n let result: TResource | Error;\n const suspender = fetch(url, {\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n },\n // eslint-disable-next-line consistent-return\n }).then((response) => {\n if (response.ok) {\n return response.json().then((data) => {\n status = 'success';\n result = data;\n });\n }\n status = 'error';\n result = new Error(`${response.status} ${response.statusText} ${response.url}`);\n });\n\n return {\n read() {\n if (status === 'pending') {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw suspender as Promise<TResource>;\n } else if (status === 'error') {\n throw result as Error;\n } else if (status === 'success') {\n return result;\n }\n\n return undefined;\n },\n };\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport { RemoteSlot } from '@appshell/react';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport mountOverlayBadge from './overlayBadge';\nimport './reset.css';\n\nconst root = createRoot(document.getElementById('root') as HTMLElement);\n\n// The registry inlines the composition into the document it serves.\nconst composition = window.__appshell_config__;\n\n// Outside the React root on purpose, so it outlives a crash in the composed app.\nmountOverlayBadge(composition);\n\nif (!composition?.root) {\n throw new Error('No root remote to mount. The registry supplies one in the composition.');\n}\n\nconst remote = composition.root;\nconst props = composition.rootProps;\n\n// No fallback. What fills the gap before the root remote mounts is the application's\n// business, not the shell's — and it has to come from the document, since the thing\n// being waited for is the consumer's own code. Until that lands the gap renders as\n// whatever the page background is.\nroot.render(\n <React.StrictMode>\n <RemoteSlot remote={remote} {...props} />\n </React.StrictMode>,\n);\n","import type { AppshellComposition } from '@appshell/config';\n\n/**\n * Marks a page whose remotes have been redirected by a per-developer overlay.\n *\n * Deliberately plain DOM in its own element rather than a component inside the React\n * tree, for two reasons. It has to survive a crash in the composed app — the moment\n * the page misbehaves is exactly when knowing your remotes are not the published ones\n * matters most — and nothing about it is React-specific, so it lifts into a shared\n * package unchanged the day a second shell implementation exists.\n *\n * Styles are inline: the badge renders alongside whatever CSS the remotes ship, and a\n * stylesheet of its own would be one more thing for them to override.\n */\n\nconst CONTAINER_ID = 'appshell-overlay-badge';\n\nconst styles = {\n container: [\n 'position:fixed',\n 'bottom:12px',\n 'left:12px',\n 'z-index:2147483647',\n 'max-width:min(420px, calc(100vw - 24px))',\n 'padding:8px 12px',\n 'border-radius:6px',\n 'border:1px solid #f0b429',\n 'background:#3d3016',\n 'color:#f7e3a1',\n 'font:12px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace',\n 'box-shadow:0 2px 8px rgba(0,0,0,.35)',\n ].join(';'),\n summary: 'cursor:pointer;font-weight:600;list-style:none',\n list: 'margin:6px 0 0;padding-left:16px',\n};\n\nconst escape = (value: string) => value.replace(/&/g, '&amp;').replace(/</g, '&lt;');\n\nexport const overlayBadgeMarkup = (\n remotes: string[],\n shellFlavor: 'prod' | 'dev' = 'prod',\n): string => {\n const changes = [\n shellFlavor === 'dev' && 'development shell',\n remotes.length && `${remotes.length} remote${remotes.length === 1 ? '' : 's'} redirected`,\n ].filter(Boolean);\n\n const items = remotes\n // The keys come from the registry's own composition, but this string is written\n // straight into innerHTML, so it is escaped rather than trusted by provenance.\n .map((key) => `<li>${escape(key)}</li>`)\n .join('');\n\n return [\n `<details style=\"${styles.container}\" open>`,\n `<summary style=\"${styles.summary}\">⚠ Development overlay — ${changes.join(', ')}</summary>`,\n items ? `<ul style=\"${styles.list}\">${items}</ul>` : '',\n '</details>',\n ].join('');\n};\n\nexport default (composition?: AppshellComposition): void => {\n const overlay = composition?.overlay;\n\n // The registry only emits the block when an overlay changed something, so its mere\n // presence is the signal. A shell-only overlay has no remotes and still has to show.\n if (!overlay || document.getElementById(CONTAINER_ID)) return;\n\n const container = document.createElement('div');\n container.id = CONTAINER_ID;\n container.innerHTML = overlayBadgeMarkup(overlay.remotes ?? [], overlay.shellFlavor);\n\n document.body.appendChild(container);\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n * The one reset on the page.\\n *\\n * Packages must not ship their own — several global resets (Tailwind's Preflight, for\\n * one) fight each other and the shell. This is structural only: it holds no view on how\\n * an application looks, which is the packages' and the theme's business, but it does own\\n * the handful of browser defaults that must be settled exactly once.\\n */\\nhtml,\\nbody {\\n margin: 0;\\n padding: 0;\\n}\\n\\nbody {\\n min-height: 100vh;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n*,\\n*::before,\\n*::after {\\n box-sizing: border-box;\\n}\\n\\n#root {\\n min-height: 100vh;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/reset.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;EAOE;AACF;;EAEE,SAAS;EACT,UAAU;AACZ;;AAEA;EACE,iBAAiB;EACjB,mCAAmC;EACnC,kCAAkC;AACpC;;AAEA;;;EAGE,sBAAsB;AACxB;;AAEA;EACE,iBAAiB;AACnB\",\"sourcesContent\":[\"/*\\n * The one reset on the page.\\n *\\n * Packages must not ship their own — several global resets (Tailwind's Preflight, for\\n * one) fight each other and the shell. This is structural only: it holds no view on how\\n * an application looks, which is the packages' and the theme's business, but it does own\\n * the handful of browser defaults that must be settled exactly once.\\n */\\nhtml,\\nbody {\\n margin: 0;\\n padding: 0;\\n}\\n\\nbody {\\n min-height: 100vh;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n*,\\n*::before,\\n*::after {\\n box-sizing: border-box;\\n}\\n\\n#root {\\n min-height: 100vh;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./reset.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./reset.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","export * from \"@module-federation/runtime-tools/runtime\"\n\nexport { };","export * from \"@module-federation/runtime\"\n\nexport { };"],"names":["remoteLoader","getInstance","init","loadRemote","registerRemotes","HOST_NAME","initialized","registeredScopes","Set","ensureInitialized","name","remotes","scope","module","remoteEntryUrl","shareScope","console","debug","has","add","entry","exposed","replace","Module","Error","default","setVars","loadAppshellComponent","chainResolvers","inlineResolver","registryResolver","options","composition","window","undefined","__appshell_config__","resolve","resolver","key","failed","err","toString","resolution","remote","vars","Component","origin","url","applicationId","response","fetch","credentials","ok","json","resolvers","React","LoadingError","reason","createElement","style","border","fontSize","useEffect","useState","RemoteProvider","RemoteSlot","fallback","rest","element","setElement","disposed","loadComponent","load","resolved","Object","values","Fragment","defaultProps","createContext","RemoteContext","children","Provider","value","RemoteConsumer","Consumer","useContext","useRemote","jsonResource","status","result","suspender","headers","Accept","then","data","statusText","read","createRoot","mountOverlayBadge","root","document","getElementById","props","rootProps","render","StrictMode","_extends","CONTAINER_ID","styles","container","join","summary","list","escape","overlayBadgeMarkup","shellFlavor","changes","length","filter","Boolean","items","map","overlay","id","innerHTML","body","appendChild"],"sourceRoot":""}
1
+ {"version":3,"file":"src_bootstrap_tsx.js","mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;;AAEA;;AAEA,qBAAqB,6BAA6B;AAClD;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;;;;ACvGa;;AAEb;AACA;;AAEA;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kC;;;;;;;;;;ACtCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;;;;;ACVa;;AAEb;AACA;AACA,cAAc,KAAwC,GAAG,sBAAiB,GAAG,CAAI;;AAEjF;AACA;AACA;AACA;;AAEA,gD;;;;;;;;;;ACXa;;AAEb;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;;AAEA;AACA,0CAA0C;AAC1C;;AAEA;;AAEA;AACA,iFAAiF;AACjF;;AAEA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA,yDAAyD;AACzD,IAAI;;AAEJ;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,wB;;;;;;;;;;ACrEa;;AAEb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfwD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAd","sources":["webpack://appshell-react-shell/../loader/src/index.ts","webpack://appshell-react-shell/../loader/src/loadAppshellComponent.ts","webpack://appshell-react-shell/../loader/src/remoteLoader.ts","webpack://appshell-react-shell/../loader/src/resolvers.ts","webpack://appshell-react-shell/../loader/src/types.ts","webpack://appshell-react-shell/../react/src/components/LoadingError.tsx","webpack://appshell-react-shell/../react/src/components/RemoteSlot.tsx","webpack://appshell-react-shell/../react/src/contexts/RemoteContext.tsx","webpack://appshell-react-shell/../react/src/hooks/useRemote.ts","webpack://appshell-react-shell/../react/src/index.ts","webpack://appshell-react-shell/../react/src/resources/jsonResource.ts","webpack://appshell-react-shell/./src/bootstrap.tsx","webpack://appshell-react-shell/./src/overlayBadge.ts","webpack://appshell-react-shell/./src/splash.ts","webpack://appshell-react-shell/./src/reset.css","webpack://appshell-react-shell/../../node_modules/css-loader/dist/runtime/api.js","webpack://appshell-react-shell/../../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://appshell-react-shell/../../node_modules/react-dom/client.js","webpack://appshell-react-shell/./src/reset.css?5a04","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://appshell-react-shell/../../node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://appshell-react-shell/../../node_modules/@module-federation/enhanced/dist/src/runtime.mjs","webpack://appshell-react-shell/../../node_modules/@module-federation/runtime-tools/dist/runtime.js"],"sourcesContent":["import remoteLoader from './remoteLoader';\n\nexport type { RemoteLoaderOptions } from './remoteLoader';\nexport * from './resolvers';\nexport * from './types';\n\nexport default remoteLoader;\n","import {\n getInstance,\n init,\n loadRemote,\n registerRemotes,\n} from '@module-federation/enhanced/runtime';\n\nconst HOST_NAME = 'Appshell';\n\n// The runtime instance and each remote's registration only need to happen once per page load.\nlet initialized = false;\nconst registeredScopes = new Set<string>();\n\nconst ensureInitialized = () => {\n if (initialized) return;\n initialized = true;\n\n // A host that ships its own ModuleFederationPlugin (e.g. @appshell/react-shell) already\n // created the global federation instance during its own bootstrap. Re-calling `init()`\n // with a different name throws (#RUNTIME-010), so reuse whatever instance already exists.\n if (getInstance()) return;\n\n init({ name: HOST_NAME, remotes: [] });\n};\n\nexport default async <TComponent>(\n scope: string,\n module: string,\n remoteEntryUrl: string,\n shareScope = 'default',\n) => {\n // eslint-disable-next-line no-console\n console.debug(\n `loading Appshell component: { scope: ${scope}, module: ${module}, shareScope: ${shareScope} }`,\n );\n\n ensureInitialized();\n\n // Registered exactly once, and never re-registered or cache-busted afterwards.\n //\n // A remote served by a dev server updates itself: its `remoteEntry` already carries\n // webpack's HMR runtime and a dev-server client, so an edit is applied in place\n // behind a container identity that does not move. Re-registering the same scope, or\n // appending a cache-busting query to its entry, changes that identity and the\n // `publicPath` derived from it mid-flight, which strands the `*.hot-update.json` and\n // `*.hot-update.js` requests the remote is midway through making.\n if (!registeredScopes.has(scope)) {\n registeredScopes.add(scope);\n registerRemotes([{ name: scope, entry: remoteEntryUrl }]);\n }\n\n // Federation ids drop the leading `./` that `exposes` keys use.\n const exposed = module.replace(/^\\.\\//, '');\n const Module = await loadRemote<{ default: TComponent }>(`${scope}/${exposed}`);\n\n if (!Module) {\n throw new Error(`Failed to find module container ${scope}`);\n }\n\n // eslint-disable-next-line no-console\n console.debug(\n `Appshell component loaded: { scope: ${scope}, module: ${module}, shareScope: ${shareScope} }`,\n );\n\n return Module.default;\n};\n","/* eslint-disable no-underscore-dangle */\nimport type { AppshellComposition } from '@appshell/config';\nimport { setVars } from '@appshell/runtime';\nimport loadAppshellComponent from './loadAppshellComponent';\nimport { chainResolvers, inlineResolver, registryResolver, type RemoteResolver } from './resolvers';\n\ndeclare global {\n interface Window {\n __appshell_config__?: AppshellComposition;\n }\n}\n\nexport type RemoteLoaderOptions = {\n composition?: AppshellComposition;\n /** Replaces the resolver chain outright; a seam for tests and embedders. */\n resolver?: RemoteResolver;\n};\n\nexport default (options: RemoteLoaderOptions = {}) => {\n const composition =\n options.composition ?? (typeof window === 'undefined' ? undefined : window.__appshell_config__);\n\n const resolve =\n options.resolver ??\n chainResolvers(inlineResolver(composition), registryResolver(composition));\n\n return async <TComponent>(key: string) => {\n const failed = (err: unknown) =>\n new Error(`Failed to load component '${key}'. ${err?.toString()}`);\n\n let resolution;\n try {\n resolution = await resolve(key);\n } catch (err) {\n throw failed(err);\n }\n\n if (!resolution) {\n throw new Error(`Remote resource not found in registry. Expected: ${key}`);\n }\n\n const { remote, vars } = resolution;\n\n try {\n // Before the remote loads, so a package that validates its vars while its modules\n // evaluate still finds them. `@appshell/runtime` is a shared singleton, so this is\n // the same store the package reads through `getVars()`.\n setVars(remote.scope, vars);\n\n const Component = await loadAppshellComponent<TComponent>(\n remote.scope,\n remote.module,\n remote.remoteEntryUrl,\n remote.shareScope,\n );\n\n return [Component, remote] as const;\n } catch (err) {\n throw failed(err);\n }\n };\n};\n","import type { AppshellComposition, ResolvedRemote } from '@appshell/config';\n\nexport type RemoteResolution = {\n remote: ResolvedRemote;\n /** Already merged with the application's overrides — nothing left for the browser to layer on. */\n vars: Record<string, string | number | undefined>;\n};\n\nexport type RemoteResolver = (key: string) => Promise<RemoteResolution | undefined>;\n\n/** The registry inlined the composition into the page, so no network call is needed. */\nexport const inlineResolver =\n (composition?: AppshellComposition): RemoteResolver =>\n async (key) => {\n const remote = composition?.remotes[key];\n if (!composition || !remote) return undefined;\n\n return {\n remote,\n vars: composition.vars[remote.scope] ?? {},\n };\n };\n\n/** Fetch-on-miss: covers a package activated after this page was served. */\nexport const registryResolver =\n (composition?: AppshellComposition, origin = ''): RemoteResolver =>\n async (key) => {\n if (!composition) return undefined;\n\n const url = `${origin}/v1/applications/${composition.applicationId}/remotes/${key}`;\n const response = await fetch(url, { credentials: 'include' });\n if (!response.ok) return undefined;\n\n const remote: ResolvedRemote = await response.json();\n\n return {\n remote,\n vars: composition.vars[remote.scope] ?? {},\n };\n };\n\nexport const chainResolvers =\n (...resolvers: RemoteResolver[]): RemoteResolver =>\n async (key) => {\n // eslint-disable-next-line no-restricted-syntax\n for (const resolve of resolvers) {\n // eslint-disable-next-line no-await-in-loop\n const resolution = await resolve(key);\n if (resolution) return resolution;\n }\n\n return undefined;\n };\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type ShareScope<TComponent = any> = Record<\n string,\n Record<string, { loaded?: 1; get: () => Promise<TComponent>; from: string; eager: boolean }>\n>;\n\nexport interface ModuleContainer<TComponent> {\n init(shareScope: ShareScope<TComponent>): Promise<void>;\n get(module: string): Promise<() => Record<string, TComponent>>;\n}\n","import React, { FC } from 'react';\n\ntype ErrorProps = {\n remote: string;\n reason: string;\n};\n\nconst LoadingError: FC<ErrorProps> = ({ remote, reason }) => (\n <div style={{ border: '3px solid red' }}>\n <h5>{`Error loading Appshell component '${remote}.'`}</h5>\n <span style={{ fontSize: '1rem' }}>{reason}</span>\n </div>\n);\n\nexport default LoadingError;\n","/* eslint-disable react/jsx-props-no-spreading */\nimport remoteLoader from '@appshell/loader';\nimport React, { ComponentType, ReactElement, ReactNode, useEffect, useState } from 'react';\nimport { RemoteProvider } from '../contexts/RemoteContext';\nimport LoadingError from './LoadingError';\n\nexport type ExtendedProps = Record<string, unknown>;\n\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nexport type RemoteSlotProps<TProps extends ExtendedProps = ExtendedProps> = {\n remote: string;\n fallback?: ReactNode;\n} & TProps;\n\n/**\n * Loads a remote once and leaves it alone.\n *\n * Keeping a remote current while it is being developed is not this component's job.\n * A remote served by a dev server ships webpack's HMR runtime and a dev-server client\n * inside its own `remoteEntry`, so it applies its own edits in place and React Fast\n * Refresh swaps the component implementations underneath this tree — no reload, and no\n * remount that would discard state this component never owned.\n *\n * Watching the remote's socket from here and reloading the page was strictly worse: it\n * raced the remote's own update, and it threw away the entire composed app to deliver a\n * change to one subtree. When webpack genuinely cannot apply an update, the remote's own\n * client still falls back to a full reload — which is the right place for that decision,\n * because it is the only side that knows whether the update applied.\n */\nconst RemoteSlot = <TProps extends ExtendedProps>({\n remote,\n fallback,\n ...rest\n}: RemoteSlotProps<TProps>): ReactElement<TProps> => {\n const [element, setElement] = useState<ReactElement>();\n\n useEffect(() => {\n let disposed = false;\n const loadComponent = remoteLoader();\n\n async function load() {\n try {\n const [Component, resolved] = await loadComponent<ComponentType>(remote);\n\n if (disposed || !Component) {\n return;\n }\n\n setElement(\n <RemoteProvider remote={resolved}>\n <Component {...rest} />\n </RemoteProvider>,\n );\n } catch (err) {\n if (!disposed) {\n setElement(<LoadingError remote={remote} reason={`${err}`} />);\n }\n }\n }\n\n setElement(undefined);\n load();\n\n return () => {\n disposed = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [remote, ...Object.values(rest)]);\n\n // eslint-disable-next-line no-console\n console.debug(`rendering RemoteSlot[${remote}], loading=${!element}`);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{element || fallback}</>;\n};\n\nRemoteSlot.defaultProps = {\n fallback: undefined,\n};\n\nexport default RemoteSlot;\n","import { AppshellRemote } from '@appshell/config';\nimport type { FC, ReactNode } from 'react';\nimport React, { createContext } from 'react';\n\ninterface RemoteProviderProps {\n remote?: AppshellRemote;\n children: ReactNode;\n}\n\nexport const RemoteContext = createContext<AppshellRemote | undefined>(undefined);\n\nexport const RemoteProvider: FC<RemoteProviderProps> = ({ remote, children }) => (\n <RemoteContext.Provider value={remote}>{children}</RemoteContext.Provider>\n);\n\nRemoteProvider.defaultProps = {\n remote: undefined,\n};\n\nexport const RemoteConsumer = RemoteContext.Consumer;\n\nexport default RemoteContext;\n","import { AppshellRemote } from '@appshell/config';\nimport React from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport RemoteContext from '../contexts/RemoteContext';\n\n/** The remote backing the nearest `RemoteSlot` — it already knows its own key. */\nexport default (): AppshellRemote | undefined => React.useContext(RemoteContext);\n","export { default as RemoteSlot } from './components/RemoteSlot';\nexport { RemoteProvider } from './contexts/RemoteContext';\nexport { default as useRemote } from './hooks/useRemote';\nexport { default as jsonResource } from './resources/jsonResource';\n","export default <TResource>(url: string) => {\n let status = 'pending';\n let result: TResource | Error;\n const suspender = fetch(url, {\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n },\n // eslint-disable-next-line consistent-return\n }).then((response) => {\n if (response.ok) {\n return response.json().then((data) => {\n status = 'success';\n result = data;\n });\n }\n status = 'error';\n result = new Error(`${response.status} ${response.statusText} ${response.url}`);\n });\n\n return {\n read() {\n if (status === 'pending') {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw suspender as Promise<TResource>;\n } else if (status === 'error') {\n throw result as Error;\n } else if (status === 'success') {\n return result;\n }\n\n return undefined;\n },\n };\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport { RemoteSlot } from '@appshell/react';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport mountOverlayBadge from './overlayBadge';\nimport './reset.css';\nimport dismissSplashWhenMounted from './splash';\n\nconst container = document.getElementById('root') as HTMLElement;\nconst root = createRoot(container);\n\n// The registry inlines the composition into the document it serves.\nconst composition = window.__appshell_config__;\n\n// Outside the React root on purpose, so it outlives a crash in the composed app.\nmountOverlayBadge(composition);\n\nif (!composition?.root) {\n throw new Error('No root remote to mount. The registry supplies one in the composition.');\n}\n\nconst remote = composition.root;\nconst props = composition.rootProps;\n\n// No fallback here. What covers the gap before the root package mounts is in the document\n// the registry served — it has to be, because the thing being waited for is the package's\n// own code, and this bundle is fetched before it. All the shell does is take it away.\ndismissSplashWhenMounted(container);\n\nroot.render(\n <React.StrictMode>\n <RemoteSlot remote={remote} {...props} />\n </React.StrictMode>,\n);\n","import type { AppshellComposition } from '@appshell/config';\n\n/**\n * Marks a page whose remotes have been redirected by a per-developer overlay.\n *\n * Deliberately plain DOM in its own element rather than a component inside the React\n * tree, for two reasons. It has to survive a crash in the composed app — the moment\n * the page misbehaves is exactly when knowing your remotes are not the published ones\n * matters most — and nothing about it is React-specific, so it lifts into a shared\n * package unchanged the day a second shell implementation exists.\n *\n * Styles are inline: the badge renders alongside whatever CSS the remotes ship, and a\n * stylesheet of its own would be one more thing for them to override.\n */\n\nconst CONTAINER_ID = 'appshell-overlay-badge';\n\nconst styles = {\n container: [\n 'position:fixed',\n 'bottom:12px',\n 'left:12px',\n 'z-index:2147483647',\n 'max-width:min(420px, calc(100vw - 24px))',\n 'padding:8px 12px',\n 'border-radius:6px',\n 'border:1px solid #f0b429',\n 'background:#3d3016',\n 'color:#f7e3a1',\n 'font:12px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace',\n 'box-shadow:0 2px 8px rgba(0,0,0,.35)',\n ].join(';'),\n summary: 'cursor:pointer;font-weight:600;list-style:none',\n list: 'margin:6px 0 0;padding-left:16px',\n};\n\nconst escape = (value: string) => value.replace(/&/g, '&amp;').replace(/</g, '&lt;');\n\nexport const overlayBadgeMarkup = (\n remotes: string[],\n shellFlavor: 'prod' | 'dev' = 'prod',\n): string => {\n const changes = [\n shellFlavor === 'dev' && 'development shell',\n remotes.length && `${remotes.length} remote${remotes.length === 1 ? '' : 's'} redirected`,\n ].filter(Boolean);\n\n const items = remotes\n // The keys come from the registry's own composition, but this string is written\n // straight into innerHTML, so it is escaped rather than trusted by provenance.\n .map((key) => `<li>${escape(key)}</li>`)\n .join('');\n\n return [\n `<details style=\"${styles.container}\" open>`,\n `<summary style=\"${styles.summary}\">⚠ Development overlay — ${changes.join(', ')}</summary>`,\n items ? `<ul style=\"${styles.list}\">${items}</ul>` : '',\n '</details>',\n ].join('');\n};\n\nexport default (composition?: AppshellComposition): void => {\n const overlay = composition?.overlay;\n\n // The registry only emits the block when an overlay changed something, so its mere\n // presence is the signal. A shell-only overlay has no remotes and still has to show.\n if (!overlay || document.getElementById(CONTAINER_ID)) return;\n\n const container = document.createElement('div');\n container.id = CONTAINER_ID;\n container.innerHTML = overlayBadgeMarkup(overlay.remotes ?? [], overlay.shellFlavor);\n\n document.body.appendChild(container);\n};\n","/**\n * Removes the placeholder the registry rendered, once the root package has put something\n * on the page.\n *\n * Plain DOM outside the React tree, for the same reason as the overlay badge: the element\n * was never React's to begin with — it is in the document before this bundle is fetched —\n * and nothing about dismissing it is React-specific.\n *\n * It watches for content rather than taking a callback from `RemoteSlot`. A callback would\n * put a prop on the public component that exists only to serve the shell, and would still\n * fire before the browser had painted anything. First rendered child is the honest signal:\n * it is the moment there is something to look at.\n */\nconst SPLASH_ID = 'appshell-splash';\n\n/** Long enough to be a stuck load rather than a slow one. */\nconst GIVE_UP_AFTER_MS = 30_000;\n\nconst remove = (splash: Element) => splash.parentNode?.removeChild(splash);\n\nexport default (root: HTMLElement): (() => void) => {\n const splash = document.getElementById(SPLASH_ID);\n\n // Absent when a host renders its own document rather than letting the registry serve one.\n if (!splash) return () => {};\n\n if (root.firstElementChild) {\n remove(splash);\n\n return () => {};\n }\n\n const observer = new MutationObserver(() => {\n if (!root.firstElementChild) return;\n\n observer.disconnect();\n remove(splash);\n });\n\n observer.observe(root, { childList: true });\n\n // A root package that never loads would otherwise leave the placeholder covering the\n // error the shell rendered underneath it.\n const timeout = setTimeout(() => {\n observer.disconnect();\n remove(splash);\n }, GIVE_UP_AFTER_MS);\n\n return () => {\n observer.disconnect();\n clearTimeout(timeout);\n };\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n * The one reset on the page.\\n *\\n * Packages must not ship their own — several global resets (Tailwind's Preflight, for\\n * one) fight each other and the shell. This is structural only: it holds no view on how\\n * an application looks, which is the packages' and the theme's business, but it does own\\n * the handful of browser defaults that must be settled exactly once.\\n */\\nhtml,\\nbody {\\n margin: 0;\\n padding: 0;\\n}\\n\\nbody {\\n min-height: 100vh;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n*,\\n*::before,\\n*::after {\\n box-sizing: border-box;\\n}\\n\\n#root {\\n min-height: 100vh;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/reset.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;EAOE;AACF;;EAEE,SAAS;EACT,UAAU;AACZ;;AAEA;EACE,iBAAiB;EACjB,mCAAmC;EACnC,kCAAkC;AACpC;;AAEA;;;EAGE,sBAAsB;AACxB;;AAEA;EACE,iBAAiB;AACnB\",\"sourcesContent\":[\"/*\\n * The one reset on the page.\\n *\\n * Packages must not ship their own — several global resets (Tailwind's Preflight, for\\n * one) fight each other and the shell. This is structural only: it holds no view on how\\n * an application looks, which is the packages' and the theme's business, but it does own\\n * the handful of browser defaults that must be settled exactly once.\\n */\\nhtml,\\nbody {\\n margin: 0;\\n padding: 0;\\n}\\n\\nbody {\\n min-height: 100vh;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n*,\\n*::before,\\n*::after {\\n box-sizing: border-box;\\n}\\n\\n#root {\\n min-height: 100vh;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./reset.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./reset.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","export * from \"@module-federation/runtime-tools/runtime\"\n\nexport { };","export * from \"@module-federation/runtime\"\n\nexport { };"],"names":["remoteLoader","getInstance","init","loadRemote","registerRemotes","HOST_NAME","initialized","registeredScopes","Set","ensureInitialized","name","remotes","scope","module","remoteEntryUrl","shareScope","console","debug","has","add","entry","exposed","replace","Module","Error","default","setVars","loadAppshellComponent","chainResolvers","inlineResolver","registryResolver","options","composition","window","undefined","__appshell_config__","resolve","resolver","key","failed","err","toString","resolution","remote","vars","Component","origin","url","applicationId","response","fetch","credentials","ok","json","resolvers","React","LoadingError","reason","createElement","style","border","fontSize","useEffect","useState","RemoteProvider","RemoteSlot","fallback","rest","element","setElement","disposed","loadComponent","load","resolved","Object","values","Fragment","defaultProps","createContext","RemoteContext","children","Provider","value","RemoteConsumer","Consumer","useContext","useRemote","jsonResource","status","result","suspender","headers","Accept","then","data","statusText","read","createRoot","mountOverlayBadge","dismissSplashWhenMounted","container","document","getElementById","root","props","rootProps","render","StrictMode","_extends","CONTAINER_ID","styles","join","summary","list","escape","overlayBadgeMarkup","shellFlavor","changes","length","filter","Boolean","items","map","overlay","id","innerHTML","body","appendChild","SPLASH_ID","GIVE_UP_AFTER_MS","remove","splash","parentNode","removeChild","firstElementChild","observer","MutationObserver","disconnect","observe","childList","timeout","setTimeout","clearTimeout"],"sourceRoot":""}