@softarc/native-federation-orchestrator 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,6 +4,9 @@
4
4
 
5
5
  A lightweight **runtime micro frontend orchestrator** that loads micro frontends built with native federation into any web page. It can cache dependencies across page reloads, making it perfect for traditional server-rendered hosts (PHP, Java, Rails, etc.) that refresh on navigation.
6
6
 
7
+ [![Verify library](https://github.com/native-federation/orchestrator/actions/workflows/verify-code.yaml/badge.svg)](https://github.com/native-federation/orchestrator/actions/workflows/verify-code.yaml)
8
+ ![Coverage total](https://raw.githubusercontent.com/native-federation/orchestrator/badges/badges/coverage-total.svg)
9
+
7
10
  > Read more in this in-depth article: [Migrating a stateful monolith to micro frontend architecture using native federation.](https://medium.com/@auke997/migrating-a-stateful-monolith-to-micro-frontends-using-native-federation-0572a1e181b4)
8
11
 
9
12
  ## Key Features
@@ -64,7 +67,7 @@ Get up and running in under 2 minutes:
64
67
  </script>
65
68
 
66
69
  <!-- Include the orchestrator runtime -->
67
- <script src="https://unpkg.com/@softarc/native-federation-orchestrator@4.0.0/quickstart.mjs"></script>
70
+ <script src="https://unpkg.com/@softarc/native-federation-orchestrator@4.0.1/quickstart.mjs"></script>
68
71
  </head>
69
72
  <body>
70
73
  <!-- Use your loaded components -->
@@ -82,7 +85,7 @@ Your micro frontends are now loaded and ready to use. The runtime handles the wh
82
85
 
83
86
  ```html
84
87
  <!-- Development and quick testing -->
85
- <script src="https://unpkg.com/@softarc/native-federation-orchestrator@4.0.0/quickstart.mjs"></script>
88
+ <script src="https://unpkg.com/@softarc/native-federation-orchestrator@4.0.1/quickstart.mjs"></script>
86
89
  ```
87
90
 
88
91
  ## Advanced Usage
@@ -124,6 +127,14 @@ const HeaderComponent = await loadRemoteModule('team/mfe2', './Header');
124
127
  | [⚙️ Configuration](https://github.com/native-federation/orchestrator/blob/main/docs/config.md) | Complete configuration reference |
125
128
  | [🔄 Version Resolution](https://github.com/native-federation/orchestrator/blob/main/docs/version-resolver.md) | How dependency conflicts are resolved |
126
129
 
130
+ ## Example repositories
131
+
132
+ | Guide | Description |
133
+ | -------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
134
+ | [📖 Vanilla JS/HTML host](https://github.com/Aukevanoost/native-federation-examples/tree/orchestrator) | Shows how the orchestrator can be used in a simple HTML page. |
135
+ | [📖 Angular host (native-federation v3)](https://github.com/Aukevanoost/native-federation-examples-ng) | Shows how the orchestrator can be used in an Angular monorepo using Native-federation v3. |
136
+ | [📖 Angular host (native-federation v4)](https://github.com/Aukevanoost/native-federation-examples-ng/tree/v4) | Shows how the orchestrator can be used in an Angular monorepo using Native-federation v4. |
137
+
127
138
  ## Native Federation Ecosystem
128
139
 
129
140
  This library is part of the broader native federation
@@ -1552,7 +1552,7 @@ function createDetermineSharedExternals(config, ports) {
1552
1552
  }
1553
1553
  }
1554
1554
 
1555
- // node_modules/.pnpm/@softarc+native-federation@4.0.0-RC9_typescript@5.9.3_ddf00d62204a71dd01023c8026b894dc/node_modules/@softarc/native-federation/src/lib/domain/core/build-notification-options.contract.js
1555
+ // node_modules/.pnpm/@softarc+native-federation@4.0.0_typescript@5.9.3/node_modules/@softarc/native-federation/src/lib/domain/core/build-notification-options.contract.js
1556
1556
  var BuildNotificationType;
1557
1557
  (function(BuildNotificationType2) {
1558
1558
  BuildNotificationType2["COMPLETED"] = "federation-rebuild-complete";
@@ -1560,7 +1560,7 @@ var BuildNotificationType;
1560
1560
  BuildNotificationType2["CANCELLED"] = "federation-rebuild-cancelled";
1561
1561
  })(BuildNotificationType || (BuildNotificationType = {}));
1562
1562
 
1563
- // node_modules/.pnpm/@softarc+native-federation@4.0.0-RC9_typescript@5.9.3_ddf00d62204a71dd01023c8026b894dc/node_modules/@softarc/native-federation/src/lib/domain/core/chunk.js
1563
+ // node_modules/.pnpm/@softarc+native-federation@4.0.0_typescript@5.9.3/node_modules/@softarc/native-federation/src/lib/domain/core/chunk.js
1564
1564
  var CHUNK_PREFIX = "@nf-internal";
1565
1565
  function toChunkImport(fileName) {
1566
1566
  if (fileName.startsWith("./")) {
@@ -1936,6 +1936,7 @@ var Optional = class _Optional {
1936
1936
  constructor(item) {
1937
1937
  this.item = item;
1938
1938
  }
1939
+ item;
1939
1940
  static of(item) {
1940
1941
  return new _Optional(item);
1941
1942
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/debug.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/re.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/parse-options.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/identifiers.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/semver.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/parse.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/valid.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/lrucache.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/eq.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/neq.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gt.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gte.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lt.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lte.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/cmp.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/comparator.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/range.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/satisfies.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-version.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/valid.js", "../../../src/lib/native-federation.error.ts", "../../../src/lib/utils/path.ts", "../../../src/lib/2.app/flows/init/get-remote-entries.ts", "../../../src/lib/2.app/flows/init/process-remote-entries.ts", "../../../src/lib/1.domain/externals/external.contract.ts", "../../../src/lib/2.app/flows/init/determine-shared-externals.ts", "../../../node_modules/.pnpm/@softarc+native-federation@4.0.0-RC9_typescript@5.9.3_ddf00d62204a71dd01023c8026b894dc/node_modules/@softarc/native-federation/src/lib/domain/core/build-notification-options.contract.js", "../../../node_modules/.pnpm/@softarc+native-federation@4.0.0-RC9_typescript@5.9.3_ddf00d62204a71dd01023c8026b894dc/node_modules/@softarc/native-federation/src/lib/domain/core/chunk.js", "../../../src/lib/2.app/flows/init/generate-import-map.ts", "../../../src/lib/2.app/flows/init/commit-changes.ts", "../../../src/lib/2.app/flows/init/expose-module-loader.ts", "../../../src/lib/5.di/flows/init.factory.ts", "../../../src/lib/3.adapters/browser/browser.ts", "../../../src/lib/3.adapters/checks/version.check.ts", "../../../src/lib/3.adapters/http/manifest-provider.ts", "../../../src/lib/3.adapters/http/remote-entry-provider.ts", "../../../src/lib/utils/optional.ts", "../../../src/lib/3.adapters/storage/remote-info.repository.ts", "../../../src/lib/3.adapters/storage/scoped-externals.repository.ts", "../../../src/lib/3.adapters/storage/shared-externals.repository.ts", "../../../src/lib/3.adapters/browser/sse-handler.ts", "../../../src/lib/utils/clone-entry.ts", "../../../src/lib/3.adapters/storage/chunk.repository.ts", "../../../src/lib/5.di/driving.factory.ts", "../../../src/lib/4.config/import-map/replace-in-dom.ts", "../../../src/lib/4.config/import-map/use-default.ts", "../../../src/lib/4.config/import-map/import-map.config.ts", "../../../src/lib/4.config/host/host.config.ts", "../../../src/lib/4.config/logging/noop.logger.ts", "../../../src/lib/2.app/config/log.contract.ts", "../../../src/lib/4.config/logging/log.handler.ts", "../../../src/lib/4.config/logging/log.config.ts", "../../../src/lib/4.config/storage/global-this.storage.ts", "../../../src/lib/4.config/storage/storage.config.ts", "../../../src/lib/4.config/mode/default.profile.ts", "../../../src/lib/4.config/mode/mode.config.ts", "../../../src/lib/5.di/config.factory.ts", "../../../src/lib/2.app/flows/dynamic-init/convert-to-import-map.ts", "../../../src/lib/2.app/flows/dynamic-init/get-remote-entry.ts", "../../../src/lib/2.app/flows/dynamic-init/update-cache.ts", "../../../src/lib/5.di/flows/dynamic-init.factory.ts", "../../../src/lib/init-federation.ts"],
3
+ "sources": ["../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/debug.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/re.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/parse-options.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/identifiers.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/semver.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/parse.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/valid.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/lrucache.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/eq.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/neq.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gt.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gte.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lt.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lte.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/cmp.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/comparator.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/range.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/satisfies.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-version.js", "../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/valid.js", "../../../src/lib/native-federation.error.ts", "../../../src/lib/utils/path.ts", "../../../src/lib/2.app/flows/init/get-remote-entries.ts", "../../../src/lib/2.app/flows/init/process-remote-entries.ts", "../../../src/lib/1.domain/externals/external.contract.ts", "../../../src/lib/2.app/flows/init/determine-shared-externals.ts", "../../../node_modules/.pnpm/@softarc+native-federation@4.0.0_typescript@5.9.3/node_modules/@softarc/native-federation/src/lib/domain/core/build-notification-options.contract.js", "../../../node_modules/.pnpm/@softarc+native-federation@4.0.0_typescript@5.9.3/node_modules/@softarc/native-federation/src/lib/domain/core/chunk.js", "../../../src/lib/2.app/flows/init/generate-import-map.ts", "../../../src/lib/2.app/flows/init/commit-changes.ts", "../../../src/lib/2.app/flows/init/expose-module-loader.ts", "../../../src/lib/5.di/flows/init.factory.ts", "../../../src/lib/3.adapters/browser/browser.ts", "../../../src/lib/3.adapters/checks/version.check.ts", "../../../src/lib/3.adapters/http/manifest-provider.ts", "../../../src/lib/3.adapters/http/remote-entry-provider.ts", "../../../src/lib/utils/optional.ts", "../../../src/lib/3.adapters/storage/remote-info.repository.ts", "../../../src/lib/3.adapters/storage/scoped-externals.repository.ts", "../../../src/lib/3.adapters/storage/shared-externals.repository.ts", "../../../src/lib/3.adapters/browser/sse-handler.ts", "../../../src/lib/utils/clone-entry.ts", "../../../src/lib/3.adapters/storage/chunk.repository.ts", "../../../src/lib/5.di/driving.factory.ts", "../../../src/lib/4.config/import-map/replace-in-dom.ts", "../../../src/lib/4.config/import-map/use-default.ts", "../../../src/lib/4.config/import-map/import-map.config.ts", "../../../src/lib/4.config/host/host.config.ts", "../../../src/lib/4.config/logging/noop.logger.ts", "../../../src/lib/2.app/config/log.contract.ts", "../../../src/lib/4.config/logging/log.handler.ts", "../../../src/lib/4.config/logging/log.config.ts", "../../../src/lib/4.config/storage/global-this.storage.ts", "../../../src/lib/4.config/storage/storage.config.ts", "../../../src/lib/4.config/mode/default.profile.ts", "../../../src/lib/4.config/mode/mode.config.ts", "../../../src/lib/5.di/config.factory.ts", "../../../src/lib/2.app/flows/dynamic-init/convert-to-import-map.ts", "../../../src/lib/2.app/flows/dynamic-init/get-remote-entry.ts", "../../../src/lib/2.app/flows/dynamic-init/update-cache.ts", "../../../src/lib/5.di/flows/dynamic-init.factory.ts", "../../../src/lib/init-federation.ts"],
4
4
  "sourcesContent": ["'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n", "'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n", "'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n", "'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n", "'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n", "'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n", "'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n", "'use strict'\n\nclass LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n", "'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n", "'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n", "'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n", "'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n", "'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n", "'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n", "'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n", "'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n", "'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n comp = comp.replace(re[t.BUILD], '')\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n", "'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n", "'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n", "'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n", "class NFError extends Error {\n constructor(message: string, cause?: Error) {\n super(message, cause);\n this.name = 'NFError';\n }\n}\n\nexport { NFError };\n", "function join(pathA: string, pathB: string): string {\n pathA = pathA.endsWith('/') ? pathA.slice(0, -1) : pathA;\n pathB = pathB.startsWith('/') ? pathB.slice(1) : pathB;\n return `${pathA}/${pathB}`;\n}\n\nfunction getScope(path: string) {\n if (!path) return '';\n\n const parts = path.split('/');\n\n if (parts[parts.length - 1] === '' || parts[parts.length - 1]!.includes('.')) {\n parts.pop();\n }\n if (parts.length < 1) return '';\n\n return `${parts.join('/')}/`;\n}\n\nexport { join, getScope };\n", "import type { RemoteEntry } from 'lib/1.domain/remote-entry/remote-entry.contract';\nimport type { Manifest, RemoteEntryUrl } from 'lib/1.domain/remote-entry/manifest.contract';\nimport type { RemoteName } from 'lib/1.domain/remote/remote-info.contract';\nimport type { ForGettingRemoteEntries } from '../../driver-ports/init/for-getting-remote-entries.port';\nimport type { DrivingContract } from '../../driving-ports/driving.contract';\nimport type { LoggingConfig } from '../../config/log.contract';\nimport { NFError } from 'lib/native-federation.error';\nimport type { ModeConfig } from '../../config/mode.contract';\nimport type { HostConfig } from '../../config/host.contract';\nimport * as _path from 'lib/utils/path';\n\nexport function createGetRemoteEntries(\n config: LoggingConfig & ModeConfig & HostConfig,\n ports: Pick<\n DrivingContract,\n 'remoteEntryProvider' | 'manifestProvider' | 'remoteInfoRepo' | 'sse'\n >\n): ForGettingRemoteEntries {\n /**\n * Step 1: Fetch the remoteEntry JSON objects:\n *\n * A Manifest or URL to a Manifest is used as the input. Based on the defined remotes\n * in the manifest, the library will download the remoteEntry.json files which contain the\n * metadata of the defined remotes (name, exposed modules and required dependencies a.k.a. externals)\n *\n * @param config\n * @param adapters\n * @returns A list of the remoteEntry json objects\n */\n return (remotesOrManifestUrl = {}) =>\n ports.manifestProvider\n .provide(remotesOrManifestUrl)\n .catch(e => {\n config.log.error(1, 'Could not fetch manifest.', e);\n return Promise.reject(new NFError('Failed to fetch manifest'));\n })\n .then(addHostRemoteEntry)\n .then(fetchRemoteEntries)\n .then(removeSkippedRemotes)\n .then(checkForSSE);\n\n function addHostRemoteEntry(manifest: Manifest): Manifest {\n if (!config.hostRemoteEntry) return manifest;\n\n const { name, url, cacheTag } = config.hostRemoteEntry;\n const urlWithCache = cacheTag ? `${url}?cacheTag=${cacheTag}` : url;\n\n return {\n ...manifest,\n [name]: urlWithCache,\n };\n }\n\n async function fetchRemoteEntries(manifest: Manifest): Promise<(RemoteEntry | false)[]> {\n const fetchPromises = Object.entries(manifest).map(([remoteName, remoteEntryUrl]) =>\n fetchRemoteEntry(remoteName, remoteEntryUrl)\n );\n return Promise.all(fetchPromises);\n }\n\n async function fetchRemoteEntry(\n remoteName: RemoteName,\n remoteEntryUrl: RemoteEntryUrl\n ): Promise<RemoteEntry | false> {\n let isOverride = false;\n let skip = false;\n\n ports.remoteInfoRepo.tryGet(remoteName).ifPresent(cachedRemoteInfo => {\n if (\n config.profile.overrideCachedRemotes !== 'never' &&\n (remoteEntryUrl !== _path.join(cachedRemoteInfo.scopeUrl, 'remoteEntry.json') ||\n config.profile.overrideCachedRemotesIfURLMatches)\n ) {\n config.log.debug(1, `Overriding existing remote '${remoteName}' with '${remoteEntryUrl}'.`);\n isOverride = true;\n } else {\n config.log.debug(1, `Found remote '${remoteName}' in storage, omitting fetch.`);\n skip = true;\n }\n });\n\n if (skip) return false;\n\n try {\n const remoteEntry = await ports.remoteEntryProvider.provide(remoteEntryUrl);\n\n config.log.debug(\n 1,\n `Fetched '${remoteEntry.name}' from '${remoteEntry.url}', exposing: ${JSON.stringify(remoteEntry.exposes)}`\n );\n\n return prepareRemoteEntry(remoteEntry, remoteName, isOverride);\n } catch (error) {\n if (config.strict.strictRemoteEntry) {\n config.log.error(1, `Could not fetch remote '${remoteName}'.`, error);\n return Promise.reject(new NFError(`Could not fetch remote '${remoteName}'`));\n }\n config.log.warn(1, `Could not fetch remote '${remoteName}'. skipping init.`, error);\n\n return Promise.resolve(false);\n }\n }\n\n function prepareRemoteEntry(\n remoteEntry: RemoteEntry,\n expectedRemoteName: string,\n isOverride: boolean\n ): RemoteEntry {\n if (isOverride) remoteEntry.override = isOverride;\n\n if (!!config.hostRemoteEntry && expectedRemoteName === config.hostRemoteEntry.name) {\n remoteEntry.host = true;\n remoteEntry.name = config.hostRemoteEntry!.name;\n }\n\n if (remoteEntry.name !== expectedRemoteName) {\n const errorDetails = `Fetched remote '${remoteEntry.name}' does not match requested '${expectedRemoteName}'.`;\n if (config.strict.strictRemoteEntry) {\n throw new NFError(errorDetails);\n }\n config.log.warn(1, `${errorDetails} Omitting expected name.`);\n }\n\n return remoteEntry;\n }\n\n function removeSkippedRemotes(remoteEntries: (RemoteEntry | false)[]): RemoteEntry[] {\n return remoteEntries.filter((entry): entry is RemoteEntry => entry !== false);\n }\n\n function checkForSSE(remoteEntries: RemoteEntry[]): RemoteEntry[] {\n if (config.sse) {\n remoteEntries.forEach(entry => {\n if (entry.buildNotificationsEndpoint) {\n ports.sse.watchRemoteBuilds(\n _path.join(_path.getScope(entry.url), entry.buildNotificationsEndpoint)\n );\n config.log.debug(1, `Registered SSE endpoint of remote '${entry.name}' `);\n return;\n }\n config.log.debug(1, `Remote ${entry.name} has no defined 'buildNotificationsEndpoint'`);\n });\n }\n\n return remoteEntries;\n }\n}\n", "import type { ForProcessingRemoteEntries } from '../../driver-ports/init/for-processing-remote-entries.port';\nimport {\n type RemoteName,\n type RemoteEntry,\n type RemoteInfo,\n type SharedInfo,\n type SharedVersionMeta,\n type ScopedVersion,\n type SharedVersionAction,\n type SharedExternal,\n} from 'lib/1.domain';\nimport type { DrivingContract } from '../../driving-ports/driving.contract';\nimport type { LoggingConfig } from '../../config/log.contract';\nimport * as _path from 'lib/utils/path';\nimport type { ModeConfig } from 'lib/2.app/config/mode.contract';\nimport { NFError } from 'lib/native-federation.error';\n\nexport function createProcessRemoteEntries(\n config: LoggingConfig & ModeConfig,\n ports: Pick<\n DrivingContract,\n | 'remoteInfoRepo'\n | 'sharedExternalsRepo'\n | 'scopedExternalsRepo'\n | 'sharedChunksRepo'\n | 'versionCheck'\n >\n): ForProcessingRemoteEntries {\n /**\n * Step 2: Process remoteEntry objects\n *\n * Extracts the externals and remote-info objects from the provided remoteEntry objects.\n * The metadata will be merged into the existing cache/storage but the changes are not persisted (yet).\n *\n * - For remotes and scoped externals that means a full replace.\n * - For shared externals that means merging the versions into the currently cached externals.\n *\n * @param config\n * @param adapters\n * @returns Promise<void>\n */\n return remoteEntries => {\n try {\n remoteEntries.forEach(remoteEntry => {\n if (remoteEntry?.override) removeCachedRemoteEntry(remoteEntry);\n addRemoteInfoToStorage(remoteEntry);\n addExternalsToStorage(remoteEntry);\n addSharedChunksToStorage(remoteEntry);\n });\n return Promise.resolve(remoteEntries);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n function removeCachedRemoteEntry(remoteEntry: RemoteEntry): void {\n ports.remoteInfoRepo.remove(remoteEntry.name);\n ports.scopedExternalsRepo.remove(remoteEntry.name);\n ports.sharedExternalsRepo.removeFromAllScopes(remoteEntry.name);\n }\n\n function addRemoteInfoToStorage({ name, url, exposes }: RemoteEntry): void {\n ports.remoteInfoRepo.addOrUpdate(name, {\n scopeUrl: _path.getScope(url),\n exposes: Object.values(exposes ?? []).map(m => ({\n moduleName: m.key,\n file: m.outFileName,\n })),\n } as RemoteInfo);\n }\n\n function addExternalsToStorage(remoteEntry: RemoteEntry): void {\n remoteEntry.shared.forEach(external => {\n if (!external.version || !ports.versionCheck.isValidSemver(external.version)) {\n const errorMsg = `[${remoteEntry.name}][${external.packageName}] Version '${external.version}' is not a valid version.`;\n\n if (config.strict.strictExternalVersion) {\n config.log.error(2, errorMsg);\n throw new NFError(`Could not process remote '${remoteEntry.name}'`);\n }\n config.log.warn(2, errorMsg);\n }\n if (external.singleton) {\n addSharedExternal(remoteEntry.name, external, remoteEntry);\n } else {\n addScopedExternal(remoteEntry.name, external);\n }\n });\n }\n\n function addSharedChunksToStorage(remoteEntry: RemoteEntry): void {\n if (!remoteEntry.chunks) return;\n config.log.debug(\n 2,\n `Adding chunks for remote \"${remoteEntry.name}\", bundles: [${Object.keys(remoteEntry.chunks).join(', ')}]`\n );\n Object.entries(remoteEntry.chunks).forEach(([bundleName, chunks]) => {\n ports.sharedChunksRepo.addOrReplace(remoteEntry.name, bundleName, chunks);\n });\n }\n\n function addSharedExternal(\n remoteName: RemoteName,\n sharedInfo: SharedInfo,\n remoteEntry: RemoteEntry\n ): void {\n let action: SharedVersionAction = 'skip';\n\n const tag =\n sharedInfo.version ?? ports.versionCheck.smallestVersion(sharedInfo.requiredVersion);\n const remote: SharedVersionMeta = {\n file: sharedInfo.outFileName,\n name: remoteName,\n bundle: sharedInfo.bundle,\n strictVersion: sharedInfo.strictVersion,\n cached: false,\n requiredVersion: sharedInfo.requiredVersion || tag,\n };\n\n const scopeType = ports.sharedExternalsRepo.scopeType(sharedInfo.shareScope);\n\n if (scopeType === 'strict') {\n action = 'share';\n remote.requiredVersion = tag;\n }\n\n const cached: SharedExternal = ports.sharedExternalsRepo\n .tryGet(sharedInfo.packageName, sharedInfo.shareScope)\n .orElse({ dirty: false, versions: [] });\n\n const matchingVersion = cached.versions.find(version => version.tag === sharedInfo.version);\n let dirty = cached.dirty;\n\n if (!!matchingVersion) {\n if (\n remote.strictVersion &&\n matchingVersion.remotes[0]!.requiredVersion !== remote.requiredVersion\n ) {\n const errorMsg = `[${remoteName}][${sharedInfo.packageName}@${\n sharedInfo.version\n }] Required version-range '${\n remote.requiredVersion\n }' does not match cached version-range '${matchingVersion.remotes[0]!.requiredVersion}'`;\n if (config.strict.strictExternalSameVersionCompatibility) {\n config.log.error(2, errorMsg);\n throw new NFError(`Could not process remote '${remoteEntry.name}'`);\n }\n config.log.warn(2, errorMsg);\n }\n\n if (!matchingVersion.host && !!remoteEntry?.host) {\n matchingVersion.host = true;\n matchingVersion.remotes.unshift(remote);\n } else matchingVersion.remotes.push(remote);\n } else {\n if (scopeType !== 'strict') dirty = true;\n cached.versions.push({ tag, action, host: !!remoteEntry?.host, remotes: [remote] });\n }\n\n ports.sharedExternalsRepo.addOrUpdate(\n sharedInfo.packageName,\n {\n dirty,\n versions: cached.versions.sort((a, b) => ports.versionCheck.compare(b.tag, a.tag)),\n },\n sharedInfo.shareScope\n );\n }\n\n function addScopedExternal(scope: string, sharedInfo: SharedInfo): void {\n ports.scopedExternalsRepo.addExternal(scope, sharedInfo.packageName, {\n tag: sharedInfo.version ?? ports.versionCheck.smallestVersion(sharedInfo.requiredVersion),\n file: sharedInfo.outFileName,\n bundle: sharedInfo.bundle,\n } as ScopedVersion);\n }\n}\n", "import type { SharedVersion, ScopedVersion } from './version.contract';\n\nexport type ExternalName = string;\n\nexport type ScopedExternals = Record<string, ScopedExternal>;\n\nexport const GLOBAL_SCOPE = '__GLOBAL__';\n\nexport const STRICT_SCOPE = 'strict';\n\nexport type SharedExternal = {\n dirty: boolean;\n versions: SharedVersion[];\n};\n\nexport type shareScope = Record<string, SharedExternal>;\n\nexport type SharedExternals = Record<string, shareScope> & { [GLOBAL_SCOPE]: shareScope };\n\nexport type ScopedExternal = Record<string, ScopedVersion>;\n", "import type { ForDeterminingSharedExternals } from '../../driver-ports/init/for-determining-shared-externals.port';\nimport { GLOBAL_SCOPE, type SharedExternal } from 'lib/1.domain';\nimport { NFError } from 'lib/native-federation.error';\nimport type { DrivingContract } from '../../driving-ports/driving.contract';\nimport type { LoggingConfig } from '../../config/log.contract';\nimport type { ModeConfig } from '../../config/mode.contract';\n\nexport function createDetermineSharedExternals(\n config: LoggingConfig & ModeConfig,\n ports: Pick<DrivingContract, 'versionCheck' | 'sharedExternalsRepo'>\n): ForDeterminingSharedExternals {\n /**\n * Step 3: Determine which version is the optimal version to share.\n *\n * The shared external versions that were merged into the cache/storage caused the shared\n * external to be 'dirty', this step cleans all dirty externals in the storage by calculating\n * the most optimal version to share since only 1 version can be shared globally. All other\n * versions that are compatible are skipped and the incompatible ones are defined as scoped external.\n *\n * Check the docs for a full explanation of the dependency resolver.\n *\n * Priority:\n * 1) Latest external defined in 'host' remoteEntry (if available).\n * 2) If defined in config, prioritize latest available version.\n * 3) Find most optimal version, by comparing potential extra downloads per version.\n *\n * @param config\n * @param adapters\n * @returns\n */\n return () => {\n for (const shareScope of ports.sharedExternalsRepo.getScopes()) {\n const sharedExternals = ports.sharedExternalsRepo.getFromScope(shareScope);\n\n try {\n Object.entries(sharedExternals)\n .filter(([_, e]) => e.dirty)\n .forEach(([name, external]) =>\n ports.sharedExternalsRepo.addOrUpdate(\n name,\n setVersionActions(name, external),\n shareScope\n )\n );\n } catch (error) {\n config.log.error(\n 3,\n `[${shareScope ?? GLOBAL_SCOPE}] failed to determine shared externals.`,\n {\n sharedExternals,\n error,\n }\n );\n return Promise.reject(\n new NFError(\n `Could not determine shared externals in scope ${shareScope}.`,\n error as Error\n )\n );\n }\n }\n return Promise.resolve();\n };\n\n function setVersionActions(externalName: string, external: SharedExternal) {\n if (external.versions.length === 1) {\n external.versions[0]!.action = 'share';\n external.dirty = false;\n return external;\n }\n\n let sharedVersion = external.versions.find(v => v.host);\n\n if (!sharedVersion && config.profile.latestSharedExternal) {\n sharedVersion = external.versions[0];\n }\n\n if (!sharedVersion) {\n // find version with least extra downloads, sorted by SEMVER version (O^2 complexity)\n let leastExtraDownloads = Number.MAX_VALUE;\n external.versions.forEach(vA => {\n const extraDownloads = external.versions.filter(\n vB =>\n !vB.remotes[0]!.cached &&\n vB.remotes[0]!.strictVersion &&\n !ports.versionCheck.isCompatible(vA.tag, vB.remotes[0]!.requiredVersion)\n ).length;\n if (extraDownloads < leastExtraDownloads) {\n leastExtraDownloads = extraDownloads;\n sharedVersion = vA;\n }\n });\n }\n\n if (!sharedVersion) {\n throw new NFError(`[${externalName}] Could not determine shared version!`);\n }\n\n // Determine action of other versions based on chosen sharedVersion\n external.versions.forEach(v => {\n if (ports.versionCheck.isCompatible(sharedVersion!.tag, v.remotes[0]!.requiredVersion)) {\n v.action = 'skip';\n return;\n }\n\n if (config.strict.strictExternalCompatibility && v.remotes[0]!.strictVersion) {\n config.log.error(\n 3,\n `[${v.remotes[0]!.name}][${externalName}@${v.tag}] Is not compatible with requiredRange '${sharedVersion!.remotes[0]?.requiredVersion}' from remote '${sharedVersion!.remotes[0]!.name}'.`\n );\n\n throw new NFError(`External ${externalName}@${v.tag} could not be shared.`);\n }\n v.action = v.remotes[0]!.strictVersion ? 'scope' : 'skip';\n });\n\n sharedVersion.action = 'share';\n external.dirty = false;\n return external;\n }\n}\n", "export var BuildNotificationType;\n(function (BuildNotificationType) {\n BuildNotificationType[\"COMPLETED\"] = \"federation-rebuild-complete\";\n BuildNotificationType[\"ERROR\"] = \"federation-rebuild-error\";\n BuildNotificationType[\"CANCELLED\"] = \"federation-rebuild-cancelled\";\n})(BuildNotificationType || (BuildNotificationType = {}));\n", "export const CHUNK_PREFIX = '@nf-internal';\nexport function toChunkImport(fileName) {\n if (fileName.startsWith('./')) {\n fileName = fileName.slice(2);\n }\n const packageName = fileName.replace(/.(m|c)?js$/, '');\n return CHUNK_PREFIX + '/' + packageName;\n}\n", "import type { ForGeneratingImportMap } from '../../driver-ports/init/for-generating-import-map';\nimport type { DrivingContract } from '../../driving-ports/driving.contract';\nimport type { ImportMap, Imports } from 'lib/1.domain/import-map/import-map.contract';\nimport {\n GLOBAL_SCOPE,\n type RemoteName,\n type ScopedExternal,\n type RemoteInfo,\n type SharedExternal,\n type SharedVersion,\n} from 'lib/1.domain';\nimport type { LoggingConfig } from '../../config/log.contract';\nimport type { ModeConfig } from '../../config/mode.contract';\nimport * as _path from 'lib/utils/path';\nimport { NFError } from 'lib/native-federation.error';\nimport { toChunkImport } from '@softarc/native-federation/domain';\n\nexport function createGenerateImportMap(\n config: LoggingConfig & ModeConfig,\n ports: Pick<\n DrivingContract,\n 'remoteInfoRepo' | 'scopedExternalsRepo' | 'sharedChunksRepo' | 'sharedExternalsRepo'\n >\n): ForGeneratingImportMap {\n /**\n * Step 4: Generate an importMap from the cached remoteEntries\n *\n * The processed externals in the storage/cache (step 2 & 3) are used\n * to generate an importMap. The step returns the generated importMap object.\n */\n return () => {\n const importMap: ImportMap = { imports: {} };\n const chunkBundles: Record<string, Set<string>> = {};\n try {\n addScopedExternals(importMap, chunkBundles);\n addshareScopeExternals(importMap, chunkBundles);\n addGlobalSharedExternals(importMap, chunkBundles);\n addRemoteInfos(importMap, chunkBundles);\n\n addChunkImports(importMap, chunkBundles);\n\n return Promise.resolve(importMap);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n /**\n * Step 4.1: Begin with appending smallest scope of shared dependencies\n * @param importMap\n * @returns\n */\n function addScopedExternals(\n importMap: ImportMap,\n chunkBundles: Record<string, Set<string>>\n ): ImportMap {\n const scopedExternals = ports.scopedExternalsRepo.getAll();\n\n for (const [remoteName, externals] of Object.entries(scopedExternals)) {\n const remote = ports.remoteInfoRepo.tryGet(remoteName).orThrow(() => {\n config.log.error(4, `[scoped][${remoteName}] Remote name not found in cache.`);\n return new NFError('Could not create ImportMap.');\n });\n addToScope(importMap, remote.scopeUrl, createScopeModules(externals, remote.scopeUrl));\n\n Object.values(externals)\n .filter(e => !!e.bundle)\n .forEach(e => registerBundleChunks(chunkBundles, remoteName, e.bundle));\n }\n\n return importMap;\n }\n\n function createScopeModules(externals: ScopedExternal, scope: string): Imports {\n const modules: Imports = {};\n\n for (const [external, version] of Object.entries(externals)) {\n modules[external] = _path.join(scope, version.file);\n }\n\n return modules;\n }\n\n /**\n * Step 4.2: Added the shareScope externals, overriding the scoped externals that are shared\n * @param importMap\n * @returns\n */\n function addshareScopeExternals(\n importMap: ImportMap,\n chunkBundles: Record<string, Set<string>>\n ): ImportMap {\n const shareScopes = ports.sharedExternalsRepo.getScopes({ includeGlobal: false });\n\n for (const shareScope of shareScopes) {\n processshareScope(importMap, shareScope, chunkBundles);\n }\n\n return importMap;\n }\n\n function processshareScope(\n importMap: ImportMap,\n shareScope: string,\n chunkBundles: Record<string, Set<string>>\n ): void {\n const sharedExternals = ports.sharedExternalsRepo.getFromScope(shareScope);\n\n for (const [externalName, external] of Object.entries(sharedExternals)) {\n let override: SharedVersion | undefined | 'NOT_AVAILABLE' = undefined;\n let overrideScope: string | undefined = undefined;\n\n for (const version of external.versions) {\n if (version.action === 'scope') {\n for (const remote of version.remotes) {\n const remoteScope = getScope(shareScope, remote.name, externalName);\n addToScope(importMap, remoteScope, {\n [externalName]: _path.join(remoteScope, remote.file),\n });\n registerBundleChunks(chunkBundles, remote.name, remote.bundle);\n remote.cached = true;\n }\n continue;\n }\n\n const scope = getScope(shareScope, version.remotes[0]!.name, externalName);\n\n let targetFileUrl: string = _path.join(scope, version.remotes[0]!.file);\n version.remotes[0]!.cached = true;\n\n if (version.action === 'share') {\n registerBundleChunks(chunkBundles, version.remotes[0]!.name, version.remotes[0]!.bundle);\n }\n\n if (version.action === 'skip') {\n if (!override) {\n override = findOverride(external, shareScope, externalName) ?? 'NOT_AVAILABLE';\n }\n if (override !== 'NOT_AVAILABLE') {\n if (!overrideScope)\n overrideScope = getScope(shareScope, override.remotes[0]!.name, externalName);\n targetFileUrl = _path.join(overrideScope, override.remotes[0]!.file);\n override.remotes[0]!.cached = true;\n\n version.remotes[0]!.cached = false;\n }\n }\n version.remotes.forEach(r => {\n const scope = getScope(shareScope, r.name, externalName);\n addToScope(importMap, scope, { [externalName]: targetFileUrl });\n });\n }\n ports.sharedExternalsRepo.addOrUpdate(externalName, external, shareScope);\n }\n }\n\n function findOverride(\n external: SharedExternal,\n shareScope: string,\n externalName: string\n ): SharedVersion | undefined {\n const sharedVersions = external.versions.filter(v => v.action === 'share');\n const scopedExternalName = `${shareScope}.${externalName}`;\n\n if (sharedVersions.length > 1) {\n handleMultipleSharedVersions(scopedExternalName);\n }\n\n if (sharedVersions.length < 1) {\n if (config.strict.strictImportMap) {\n config.log.error(4, `[${shareScope}][${externalName}] shareScope has no override version.`);\n throw new NFError('Could not create ImportMap.');\n }\n config.log.debug(\n 4,\n `[${shareScope}][${externalName}] shareScope has no override version, scoping override versions.`\n );\n }\n\n return sharedVersions[0];\n }\n\n function handleMultipleSharedVersions(scopedExternalName: string): void {\n if (config.strict.strictImportMap) {\n config.log.error(\n 4,\n `[${scopedExternalName}] ShareScope external has multiple shared versions.`\n );\n throw new NFError('Could not create ImportMap.');\n }\n\n config.log.warn(4, `ShareScope external ${scopedExternalName} has multiple shared versions.`);\n }\n\n /**\n * Step 4.3: Added the globally shared externals.\n * @param importMap\n * @returns\n */\n function addGlobalSharedExternals(\n importMap: ImportMap,\n chunkBundles: Record<string, Set<string>>\n ): ImportMap {\n const sharedExternals = ports.sharedExternalsRepo.getFromScope();\n\n for (const [externalName, external] of Object.entries(sharedExternals)) {\n for (const version of external.versions) {\n if (version.action === 'skip') continue;\n if (version.action === 'scope') {\n for (const remote of version.remotes) {\n const remoteScope = getScope(GLOBAL_SCOPE, remote.name, externalName);\n addToScope(importMap, remoteScope, {\n [externalName]: _path.join(remoteScope, remote.file),\n });\n remote.cached = true;\n registerBundleChunks(chunkBundles, remote.name, remote.bundle);\n }\n continue;\n }\n\n if (importMap.imports[externalName]) {\n notifyDuplicateGlobalExternal(externalName);\n continue;\n }\n\n const scope = getScope(GLOBAL_SCOPE, version.remotes[0]!.name, externalName);\n addToGlobal(importMap, { [externalName]: _path.join(scope, version.remotes[0]!.file) });\n registerBundleChunks(chunkBundles, version.remotes[0]!.name, version.remotes[0]!.bundle);\n\n version.remotes[0]!.cached = true;\n }\n ports.sharedExternalsRepo.addOrUpdate(externalName, external);\n }\n\n return importMap;\n }\n\n function notifyDuplicateGlobalExternal(externalName: string): void {\n if (config.strict.strictImportMap) {\n config.log.error(4, `[${externalName}] Shared external has multiple shared versions.`);\n throw new NFError('Could not create ImportMap.');\n }\n\n config.log.warn(4, `Singleton external ${externalName} has multiple shared versions.`);\n }\n\n function addToScope(importMap: ImportMap, scope: string, imports: Imports): void {\n if (!importMap.scopes) importMap.scopes = {};\n if (!importMap.scopes[scope]) importMap.scopes[scope] = {};\n importMap.scopes[scope] = Object.assign(importMap.scopes[scope], imports);\n }\n function addToGlobal(importMap: ImportMap, imports: Imports): void {\n importMap.imports = Object.assign(importMap.imports, imports);\n }\n\n /**\n * Step 4.4: Added the remote-modules (into the global scope).\n * @param importMap\n * @returns\n */\n function addRemoteInfos(importMap: ImportMap, chunkBundles: Record<string, Set<string>>): void {\n const remotes = ports.remoteInfoRepo.getAll();\n\n for (const [remoteName, remote] of Object.entries(remotes)) {\n addRemoteExposedModules(importMap, remoteName, remote);\n registerBundleChunks(chunkBundles, remoteName, 'mapping-or-exposed');\n }\n }\n\n function addRemoteExposedModules(\n importMap: ImportMap,\n remoteName: string,\n remote: RemoteInfo\n ): void {\n for (const exposed of remote.exposes) {\n const moduleName = _path.join(remoteName, exposed.moduleName);\n const moduleUrl = _path.join(remote.scopeUrl, exposed.file);\n importMap.imports[moduleName] = moduleUrl;\n }\n }\n\n function registerBundleChunks(\n chunkBundles: Record<string, Set<string>>,\n remoteName: string,\n bundleName?: string\n ) {\n if (!bundleName) return chunkBundles;\n if (!chunkBundles[remoteName]) chunkBundles[remoteName] = new Set();\n chunkBundles[remoteName].add(bundleName);\n return chunkBundles;\n }\n\n function addChunkImports(importMap: ImportMap, chunkBundles: Record<string, Set<string>>) {\n Object.entries(chunkBundles).forEach(([remoteName, bundles]) => {\n const baseUrl = getScope('CHUNKS', remoteName);\n\n const imports = Array.from(bundles).reduce((_imports, bundleName) => {\n ports.sharedChunksRepo.tryGet(remoteName, bundleName).ifPresent(files => {\n files.forEach(file => {\n _imports[toChunkImport(file)] = _path.join(baseUrl, file);\n });\n });\n return _imports;\n }, {} as Imports);\n\n if (Object.keys(imports).length > 0) addToScope(importMap, baseUrl, imports);\n });\n\n return importMap;\n }\n\n function getScope(ctx: string, remoteName: RemoteName, externalName?: string) {\n return ports.remoteInfoRepo\n .tryGet(remoteName)\n .map(remote => remote.scopeUrl)\n .orThrow(() => {\n if (externalName) {\n config.log.error(\n 4,\n `[${ctx}][${externalName}][${remoteName}] Remote name not found in cache.`\n );\n } else {\n config.log.error(4, `[${ctx}][${remoteName}] Remote name not found in cache.`);\n }\n\n return new NFError('Could not create ImportMap.');\n });\n }\n}\n", "import type { DrivingContract } from '../../driving-ports/driving.contract';\nimport type { ForCommittingChanges } from '../../driver-ports/init/for-committing-changes.port';\nimport type { ImportMap } from 'lib/1.domain/import-map/import-map.contract';\nimport type { LoggingConfig } from 'lib/2.app/config';\n\nexport function createCommitChanges(\n config: LoggingConfig,\n ports: Pick<\n DrivingContract,\n | 'remoteInfoRepo'\n | 'scopedExternalsRepo'\n | 'sharedExternalsRepo'\n | 'sharedChunksRepo'\n | 'browser'\n >\n): ForCommittingChanges {\n /**\n * Step 5: Commit all changes\n *\n * The changes made to the storage/cache are persisted to storage, and the importmap is\n * inserted into the HTML DOM.\n *\n * This step only runs if all previous steps were succesful to prevent the persistence of\n * erroneous changes into storage which can corrupt other pages/routes of the host.\n *\n * @param adapters\n */\n return (importMap: ImportMap) =>\n Promise.resolve(importMap).then(addToBrowser).then(persistRepositoryChanges);\n\n function addToBrowser(importMap: ImportMap) {\n ports.browser.setImportMapFn(importMap);\n config.log.debug(5, 'Added import map to browser.', importMap);\n return importMap;\n }\n\n function persistRepositoryChanges() {\n ports.remoteInfoRepo.commit();\n ports.scopedExternalsRepo.commit();\n ports.sharedExternalsRepo.commit();\n ports.sharedChunksRepo.commit();\n return;\n }\n}\n", "import type { DrivingContract } from '../../driving-ports/driving.contract';\nimport type { ForExposingModuleLoader } from '../../driver-ports/init/for-exposing-module-loader.port';\nimport type { LoadRemoteModule } from 'lib/init-federation.contract';\nimport { NFError } from 'lib/native-federation.error';\nimport type { LoggingConfig } from '../../config/log.contract';\nimport * as _path from 'lib/utils/path';\n\nexport function createExposeModuleLoader(\n config: LoggingConfig,\n ports: Pick<DrivingContract, 'remoteInfoRepo' | 'browser'>\n): ForExposingModuleLoader {\n const loadRemoteModule: LoadRemoteModule = <TModule = unknown>(\n remoteName: string,\n exposedModule: string\n ): Promise<TModule> => {\n try {\n if (!ports.remoteInfoRepo.contains(remoteName)) {\n throw new NFError(`Remote '${remoteName}' is not initialized.`);\n }\n\n const remoteModuleUrl = ports.remoteInfoRepo\n .tryGetModule(remoteName, exposedModule)\n .orThrow(\n new NFError(\n `Exposed module '${exposedModule}' from remote '${remoteName}' not found in storage.`\n )\n );\n\n config.log.debug(6, `Loading initialized module '${remoteModuleUrl}'`);\n\n return ports.browser.importModule(remoteModuleUrl) as Promise<TModule>;\n } catch (error) {\n config.log.error(6, `Failed to load module ${_path.join(remoteName, exposedModule)}: `, {\n error,\n });\n\n return Promise.reject(\n new NFError(`Failed to load module ${_path.join(remoteName, exposedModule)}`)\n );\n }\n };\n\n /**\n * Step 6: expose module loader\n *\n * The module loader can only be used after the importmap was generated and added to\n * the DOM, hence the module loader fn is exposed to the host after the final commit\n * step.\n *\n * The loadRemoteModule is also a callback that is returned as a promise by the initFederation\n * function. This way the loadRemoteModule can be shared througout the host application using\n * CustomEvents or by adding it to the global Window object for easy access.\n *\n * @param adapters\n */\n return () => Promise.resolve(loadRemoteModule);\n}\n", "import type { FLOW_FACTORY } from 'lib/2.app/driver-ports/flow-factory.contract';\nimport type { InitDriversContract } from 'lib/2.app/driver-ports/init/drivers.contract';\nimport type { InitFlow } from 'lib/2.app/driver-ports/init/flow.contract';\nimport { createGetRemoteEntries } from '../../2.app/flows/init/get-remote-entries';\nimport { createProcessRemoteEntries } from '../../2.app/flows/init/process-remote-entries';\nimport { createDetermineSharedExternals } from '../../2.app/flows/init/determine-shared-externals';\nimport { createGenerateImportMap } from '../../2.app/flows/init/generate-import-map';\nimport { createCommitChanges } from '../../2.app/flows/init/commit-changes';\nimport { createExposeModuleLoader } from '../../2.app/flows/init/expose-module-loader';\nimport type { DrivingContract } from '../../2.app/driving-ports/driving.contract';\nimport type { ConfigContract } from '../../2.app/config/config.contract';\n\nexport const createInitDrivers = ({\n config,\n adapters,\n}: {\n config: ConfigContract;\n adapters: DrivingContract;\n}): InitDriversContract => ({\n getRemoteEntries: createGetRemoteEntries(config, adapters),\n processRemoteEntries: createProcessRemoteEntries(config, adapters),\n determineSharedExternals: createDetermineSharedExternals(config, adapters),\n generateImportMap: createGenerateImportMap(config, adapters),\n commitChanges: createCommitChanges(config, adapters),\n exposeModuleLoader: createExposeModuleLoader(config, adapters),\n});\n\nexport const INIT_FLOW_FACTORY = ({\n config,\n adapters,\n}: {\n config: ConfigContract;\n adapters: DrivingContract;\n}): FLOW_FACTORY<InitDriversContract> => {\n const flow = createInitDrivers({ config, adapters });\n\n return {\n flow,\n adapters,\n config,\n };\n};\n\nexport const createInitFlow = ({\n flow,\n adapters,\n config,\n}: FLOW_FACTORY<InitDriversContract>): InitFlow => {\n return remotesOrManifestUrl =>\n flow\n .getRemoteEntries(remotesOrManifestUrl)\n .then(flow.processRemoteEntries)\n .then(flow.determineSharedExternals)\n .then(flow.generateImportMap)\n .then(flow.commitChanges)\n .then(flow.exposeModuleLoader)\n .then(loadRemoteModule => ({\n config,\n adapters,\n loadRemoteModule,\n }));\n};\n", "import type { ForBrowserTasks } from 'lib/2.app/driving-ports/for-browser-tasks';\nimport type { ImportMapConfig } from 'lib/2.app/config/import-map.contract';\n\nconst createBrowser = (config: ImportMapConfig): ForBrowserTasks => {\n return {\n setImportMapFn: config.setImportMapFn,\n importModule: config.loadModuleFn,\n };\n};\n\nexport { createBrowser };\n", "import type { ForVersionChecking } from 'lib/2.app/driving-ports/for-version-checking.port';\nimport semverValid from 'semver/functions/valid';\nimport semverSatisfies from 'semver/functions/satisfies';\nimport semverCompare from 'semver/functions/compare';\nimport semverMinVersion from 'semver/ranges/min-version';\nimport semverValidRange from 'semver/ranges/valid';\n\nconst createVersionCheck = (): ForVersionChecking => {\n return {\n isValidSemver: function (version: string) {\n return semverValid(version) !== null;\n },\n isCompatible: function (version: string, range: string) {\n return semverSatisfies(version, range);\n },\n compare: function (versionA: string, versionB: string) {\n return semverCompare(versionA, versionB, true);\n },\n smallestVersion: function (versionRange: string) {\n if (!semverValidRange(versionRange)) return '0.0.0';\n const minVersion = semverMinVersion(versionRange);\n return minVersion?.raw ?? '0.0.0';\n },\n };\n};\n\nexport { createVersionCheck };\n", "import type { Manifest } from 'lib/1.domain';\nimport type { ForProvidingManifest } from 'lib/2.app/driving-ports/for-providing-manifest.port';\nimport { NFError } from 'lib/native-federation.error';\n\nconst createManifestProvider = (): ForProvidingManifest => {\n const mapToJson = (response: Response) => {\n if (!response.ok)\n return Promise.reject(new NFError(`${response.status} - ${response.statusText}`));\n return response.json() as Promise<Manifest>;\n };\n\n const formatError = (remoteEntryUrl: string) => (err: unknown) => {\n const msg = err instanceof Error ? err.message : String(err);\n throw new NFError(`Fetch of '${remoteEntryUrl}' returned ${msg}`);\n };\n\n return {\n provide: async function (remotesOrManifestUrl: string | Manifest) {\n if (typeof remotesOrManifestUrl !== 'string') return Promise.resolve(remotesOrManifestUrl);\n\n return fetch(remotesOrManifestUrl).then(mapToJson).catch(formatError(remotesOrManifestUrl));\n },\n };\n};\n\nexport { createManifestProvider };\n", "import type { RemoteEntry } from 'lib/1.domain/remote-entry/remote-entry.contract';\nimport type { ForProvidingRemoteEntries } from 'lib/2.app/driving-ports/for-providing-remote-entries.port';\nimport { NFError } from 'lib/native-federation.error';\n\nconst createRemoteEntryProvider = (): ForProvidingRemoteEntries => {\n const mapToJson = (response: Response) => {\n if (!response.ok)\n return Promise.reject(new Error(`${response.status} - ${response.statusText}`));\n return response.json() as Promise<RemoteEntry>;\n };\n\n const fillEmptyFields = (remoteEntryUrl: string) => (remoteEntry: RemoteEntry) => {\n if (!remoteEntry.exposes) remoteEntry.exposes = [];\n if (!remoteEntry.shared) remoteEntry.shared = [];\n if (!remoteEntry.url) remoteEntry.url = remoteEntryUrl;\n return remoteEntry;\n };\n\n const formatError = (remoteEntryUrl: string) => (err: unknown) => {\n const msg = err instanceof Error ? err.message : String(err);\n throw new NFError(`Fetch of '${remoteEntryUrl}' returned ${msg}`);\n };\n\n return {\n provide: async function (remoteEntryUrl: string) {\n return fetch(remoteEntryUrl)\n .then(mapToJson)\n .then(fillEmptyFields(remoteEntryUrl))\n .catch(formatError(remoteEntryUrl));\n },\n };\n};\n\nexport { createRemoteEntryProvider };\n", "export class Optional<T> {\n private constructor(private item?: T) {}\n\n public static of<T>(item?: T): Optional<T> {\n return new Optional(item);\n }\n public static empty<U>(): Optional<U> {\n return Optional.of<U>(undefined);\n }\n\n public isPresent() {\n return typeof this.item !== 'undefined' && this.item !== null;\n }\n public set<U>(other: U) {\n return Optional.of(other);\n }\n\n public ifPresent(callback: (_: T) => void): void {\n if (this.isPresent()) callback(this.item as T);\n }\n\n public map<U>(callback: (_: NonNullable<T>) => U | Optional<U>): Optional<U> {\n if (!this.isPresent()) return Optional.empty();\n\n const result = callback(this.item as NonNullable<T>);\n return result instanceof Optional ? result : Optional.of(result);\n }\n\n public orElse(other: Required<T>): NonNullable<T> {\n return this.isPresent() ? (this.item as NonNullable<T>) : (other as NonNullable<T>);\n }\n\n public orThrow(error: Error | string | (() => Error)): NonNullable<T> {\n if (this.isPresent()) return this.item as NonNullable<T>;\n if (typeof error === 'function') throw error();\n throw typeof error === 'string' ? new Error(error) : error;\n }\n\n public get(): T | undefined {\n return this.item;\n }\n}\n", "import type { RemoteInfo, RemoteName, Remotes } from 'lib/1.domain';\nimport type { StorageConfig, StorageEntry } from 'lib/2.app/config/storage.contract';\nimport type { ForRemoteInfoStorage } from 'lib/2.app/driving-ports/for-remote-info-storage.port';\nimport * as _path from 'lib/utils/path';\nimport { Optional } from 'lib/utils/optional';\n\nconst createRemoteInfoRepository = (config: StorageConfig): ForRemoteInfoStorage => {\n const STORAGE: StorageEntry<Remotes> = config.storage('remotes', {});\n if (config.clearStorage) STORAGE.clear();\n\n const _cache: Remotes = STORAGE.get() ?? {};\n\n return {\n contains: function (remoteName: RemoteName) {\n return !!_cache[remoteName];\n },\n remove: function (remoteName: RemoteName) {\n delete _cache[remoteName];\n return this;\n },\n addOrUpdate: function (remoteName: string, remote: RemoteInfo) {\n _cache[remoteName] = remote;\n return this;\n },\n tryGet: function (remoteName: RemoteName) {\n return Optional.of(_cache[remoteName]);\n },\n tryGetModule: function (remoteName: RemoteName, exposedModule: string) {\n return Optional.of(_cache[remoteName]?.exposes.find(m => m.moduleName === exposedModule)).map(\n m => _path.join(_cache[remoteName]!.scopeUrl, m.file)\n );\n },\n getAll: function () {\n return _cache;\n },\n commit: function () {\n STORAGE.set(_cache);\n return this;\n },\n };\n};\n\nexport { createRemoteInfoRepository };\n", "import type { ScopedExternals } from 'lib/1.domain/externals/external.contract';\nimport type { StorageConfig, StorageEntry } from 'lib/2.app/config/storage.contract';\nimport type { ForScopedExternalsStorage } from 'lib/2.app/driving-ports/for-scoped-externals-storage.port';\nimport type { RemoteName, ScopedVersion } from 'lib/1.domain';\nimport { Optional } from 'lib/utils/optional';\n\nconst createScopedExternalsRepository = (config: StorageConfig): ForScopedExternalsStorage => {\n const STORAGE: StorageEntry<ScopedExternals> = config.storage('scoped-externals', {});\n\n if (config.clearStorage) STORAGE.clear();\n\n const _cache: ScopedExternals = STORAGE.get() ?? {};\n\n return {\n addExternal: function (remoteName: RemoteName, external: string, version: ScopedVersion) {\n if (!_cache[remoteName]) _cache[remoteName] = {};\n _cache[remoteName][external] = version;\n return this;\n },\n remove: function (remoteName: RemoteName) {\n delete _cache[remoteName];\n return this;\n },\n getAll: function () {\n return _cache;\n },\n tryGet: function (remoteName: string) {\n return Optional.of(_cache[remoteName]);\n },\n commit: function () {\n STORAGE.set(_cache);\n return this;\n },\n };\n};\n\nexport { createScopedExternalsRepository };\n", "import {\n type SharedExternal,\n type SharedExternals,\n GLOBAL_SCOPE,\n STRICT_SCOPE,\n} from 'lib/1.domain/externals/external.contract';\nimport type { StorageConfig, StorageEntry } from 'lib/2.app/config/storage.contract';\nimport type { ForSharedExternalsStorage } from 'lib/2.app/driving-ports/for-shared-externals-storage.port';\nimport { Optional } from 'lib/utils/optional';\n\nconst createSharedExternalsRepository = (config: StorageConfig): ForSharedExternalsStorage => {\n const STORAGE: StorageEntry<SharedExternals> = config.storage<SharedExternals>(\n 'shared-externals',\n { [GLOBAL_SCOPE]: {} }\n );\n\n if (config.clearStorage) STORAGE.clear();\n\n const _cache: SharedExternals = STORAGE.get()!;\n\n return {\n getFromScope: function (shareScope?: string) {\n return { ..._cache[shareScope ?? GLOBAL_SCOPE] };\n },\n addOrUpdate: function (externalName: string, external: SharedExternal, shareScope?: string) {\n if (!_cache[shareScope ?? GLOBAL_SCOPE]) _cache[shareScope ?? GLOBAL_SCOPE] = {};\n _cache[shareScope ?? GLOBAL_SCOPE]![externalName] = external;\n return this;\n },\n getScopes: function (o = { includeGlobal: true }) {\n if (o.includeGlobal) return Object.keys(_cache);\n return Object.keys(_cache).filter(s => s !== GLOBAL_SCOPE);\n },\n removeFromAllScopes: function (remoteName: string) {\n Object.values(_cache).forEach(scope => {\n const removeExternals: string[] = [];\n\n Object.entries(scope).forEach(([name, external]) => {\n const removeVersionIdx: number[] = [];\n external.versions.forEach((version, i) => {\n const versionRemoteIDX = version.remotes.findIndex(r => r.name === remoteName);\n if (~versionRemoteIDX) {\n version.remotes.splice(versionRemoteIDX, 1);\n }\n\n if (version.remotes.length === 0) removeVersionIdx.push(i);\n });\n\n if (removeVersionIdx.length > 0) {\n for (let i = removeVersionIdx.length - 1; i >= 0; i--) {\n external.versions.splice(removeVersionIdx[i]!, 1);\n }\n external.dirty = true;\n\n if (external.versions.length === 0) removeExternals.push(name);\n }\n });\n removeExternals.forEach(name => delete scope[name]);\n });\n },\n scopeType: function (shareScope?: string) {\n switch (shareScope) {\n case GLOBAL_SCOPE:\n case null:\n case undefined:\n return 'global';\n case STRICT_SCOPE:\n return 'strict';\n default:\n return 'shareScope';\n }\n },\n tryGet: function (external: string, shareScope?: string) {\n return Optional.of(_cache[shareScope ?? GLOBAL_SCOPE]?.[external]);\n },\n commit: function () {\n STORAGE.set(_cache);\n return this;\n },\n };\n};\n\nexport { createSharedExternalsRepository };\n", "import { BuildNotificationType } from '@softarc/native-federation/domain';\nimport type { ImportMapConfig } from 'lib/2.app/config/import-map.contract';\nimport type { ForSSE } from 'lib/2.app/driving-ports/for-sse.port';\nimport type { LoggingConfig } from 'lib/options.index';\n\n/**\n * Watches for federation build completion events and automatically reloads the page.\n *\n * This function establishes a Server-Sent Events (SSE) connection to listen for\n * 'federation-rebuild-complete' notifications. When a build completes successfully,\n * it triggers a page reload to reflect the latest changes.\n * @param endpoint - The SSE endpoint URL to watch for build notifications.\n */\nconst createSSEHandler = (config: ImportMapConfig & LoggingConfig): ForSSE => {\n const subscribers: EventSource[] = [];\n\n return {\n watchRemoteBuilds: function (endpoint: string) {\n const eventSource = new EventSource(endpoint);\n\n eventSource.onmessage = function (event) {\n const data = JSON.parse(event.data);\n if (data.type === BuildNotificationType.COMPLETED) {\n subscribers.forEach(sub => sub.close());\n config.log.debug(0, '[SSE] Rebuild completed, reloading...');\n config.reloadBrowserFn();\n }\n };\n\n eventSource.onerror = function (event) {\n config.log.error(0, '[SSE] Connection error:', event);\n };\n subscribers.push(eventSource);\n },\n\n closeAll: function () {\n subscribers.forEach(sub => sub.close());\n subscribers.length = 0;\n },\n };\n};\n\nexport { createSSEHandler };\n", "import type { StorageEntryKey } from 'lib/2.app/config/storage.contract';\nimport { NFError } from 'lib/native-federation.error';\n\ntype CloneEntry = <T>(name: StorageEntryKey, raw: T) => T;\n\nconst cloneEntry: CloneEntry = <T>(name: StorageEntryKey, raw: T) => {\n try {\n if (typeof structuredClone === 'function') {\n return structuredClone(raw);\n }\n } catch {\n /* structured clone is unavailable */\n }\n try {\n return JSON.parse(JSON.stringify(raw));\n } catch {\n /* object is not stringifyable */\n }\n throw new NFError(`Could not parse storage entry '${String(name)}'`);\n};\n\nexport { CloneEntry, cloneEntry };\n", "import type { StorageConfig, StorageEntry } from 'lib/2.app/config/storage.contract';\nimport type { ForSharedChunksStorage } from 'lib/2.app/driving-ports/for-shared-chunks-storage.port';\nimport type { SharedChunks } from 'lib/1.domain/externals/chunks.contract';\nimport { Optional } from 'lib/sdk.index';\n\nconst createChunkRepository = (config: StorageConfig): ForSharedChunksStorage => {\n const STORAGE: StorageEntry<SharedChunks> = config.storage('shared-chunks', {});\n\n if (config.clearStorage) STORAGE.clear();\n\n const _cache: SharedChunks = STORAGE.get() ?? {};\n\n return {\n addOrReplace: function (remoteName: string, bundleName: string, chunks: string[]) {\n if (!_cache[remoteName]) _cache[remoteName] = {};\n _cache[remoteName][bundleName] = chunks;\n return this;\n },\n tryGet: function (remoteName: string, bundleName: string) {\n return Optional.of(_cache[remoteName]?.[bundleName]);\n },\n commit: function () {\n STORAGE.set(_cache);\n return this;\n },\n };\n};\n\nexport { createChunkRepository };\n", "import type { DrivingContract } from 'lib/2.app/driving-ports/driving.contract';\nimport type { ConfigContract } from 'lib/2.app/config/config.contract';\nimport { createBrowser } from 'lib/3.adapters/browser/browser';\nimport { createVersionCheck } from 'lib/3.adapters/checks/version.check';\nimport { createManifestProvider } from 'lib/3.adapters/http/manifest-provider';\nimport { createRemoteEntryProvider } from 'lib/3.adapters/http/remote-entry-provider';\nimport { createRemoteInfoRepository } from 'lib/3.adapters/storage/remote-info.repository';\nimport { createScopedExternalsRepository } from 'lib/3.adapters/storage/scoped-externals.repository';\nimport { createSharedExternalsRepository } from 'lib/3.adapters/storage/shared-externals.repository';\nimport { createSSEHandler } from 'lib/3.adapters/browser/sse-handler';\nimport { createChunkRepository } from 'lib/3.adapters/storage/chunk.repository';\n\nexport const createDriving = (\n config: ConfigContract\n): { adapters: DrivingContract; config: ConfigContract } => {\n const adapters = {\n versionCheck: createVersionCheck(),\n\n manifestProvider: createManifestProvider(),\n\n remoteEntryProvider: createRemoteEntryProvider(),\n\n remoteInfoRepo: createRemoteInfoRepository(config),\n scopedExternalsRepo: createScopedExternalsRepository(config),\n sharedExternalsRepo: createSharedExternalsRepository(config),\n sharedChunksRepo: createChunkRepository(config),\n\n browser: createBrowser(config),\n sse: createSSEHandler(config),\n };\n return { adapters, config };\n};\n", "import type { ImportMap } from 'lib/1.domain';\nimport type { SetImportMap } from 'lib/2.app/config/import-map.contract';\n\nexport const replaceInDOM =\n (mapType: string): SetImportMap =>\n (importMap: ImportMap, opts = {}) => {\n if (opts?.override) {\n document.head\n .querySelectorAll(`script[type=\"${mapType}\"]`)\n .forEach(importMap => importMap.remove());\n }\n\n document.head.appendChild(\n Object.assign(document.createElement('script'), {\n type: mapType,\n innerHTML: JSON.stringify(importMap),\n })\n );\n return Promise.resolve(importMap);\n };\n", "import type { ImportMapConfig } from 'lib/2.app/config/import-map.contract';\nimport { replaceInDOM } from './replace-in-dom';\n\nconst useDefaultImportMap = (): ImportMapConfig => ({\n loadModuleFn: url => import(/* @vite-ignore */ url),\n setImportMapFn: replaceInDOM('importmap'),\n reloadBrowserFn: () => {\n window.location.reload();\n },\n});\n\nexport { useDefaultImportMap };\n", "import type { ImportMapConfig, ImportMapOptions } from 'lib/2.app/config/import-map.contract';\nimport { useDefaultImportMap } from './use-default';\n\nexport const createImportMapConfig = (o: Partial<ImportMapOptions>): ImportMapConfig => {\n const fallback = useDefaultImportMap();\n return {\n setImportMapFn: o.setImportMapFn ?? fallback.setImportMapFn,\n loadModuleFn: o.loadModuleFn ?? fallback.loadModuleFn,\n reloadBrowserFn: o.reloadBrowserFn ?? fallback.reloadBrowserFn,\n };\n};\n", "import type { HostConfig, HostOptions } from 'lib/2.app/config/host.contract';\n\nexport const createHostConfig = (override: Partial<HostOptions>): HostConfig => {\n if (!override?.hostRemoteEntry) {\n return { hostRemoteEntry: false };\n }\n if (typeof override.hostRemoteEntry === 'string') {\n return {\n hostRemoteEntry: {\n name: '__NF-HOST__',\n url: override.hostRemoteEntry,\n },\n };\n }\n return {\n hostRemoteEntry: {\n name: '__NF-HOST__',\n ...override.hostRemoteEntry,\n },\n };\n};\n", "import type { Logger } from 'lib/2.app/config/log.contract';\n\nconst noopLogger: Logger = {\n debug: () => {},\n error: () => {},\n warn: () => {},\n};\n\nexport { noopLogger };\n", "export const LogLevel = {\n debug: 0,\n warn: 1,\n error: 2,\n};\n\nexport type LogType = keyof typeof LogLevel;\n\nexport type Logger = {\n error: (step: number, msg: string, details?: unknown) => void;\n warn: (step: number, msg: string, details?: unknown) => void;\n debug: (step: number, msg: string, details?: unknown) => void;\n};\n\nexport type LogHandler = Logger & {\n level: LogType;\n};\n\nexport type LoggingConfig = {\n log: LogHandler;\n sse: boolean;\n};\n\nexport type LoggingOptions = {\n logger?: Logger;\n logLevel?: LogType;\n sse?: boolean;\n};\n", "import {\n type LogType,\n type LogHandler,\n type Logger,\n LogLevel,\n} from 'lib/2.app/config/log.contract';\n\nconst createLogHandler = (logger: Logger, logLevel: LogType): LogHandler => {\n const logTypes = Object.keys(LogLevel).filter(key => isNaN(Number(key))) as LogType[];\n\n return logTypes.reduce(\n (acc, logMessageType) => {\n return {\n ...acc,\n [logMessageType]: (step: number, message: string, details: unknown) => {\n if (LogLevel[logMessageType] >= LogLevel[logLevel]) {\n logger[logMessageType](step, message, details);\n }\n },\n };\n },\n { level: logLevel } as LogHandler\n );\n};\n\nexport { createLogHandler };\n", "import type { LoggingConfig, LoggingOptions } from 'lib/2.app/config/log.contract';\nimport { noopLogger } from './noop.logger';\nimport { createLogHandler } from './log.handler';\n\nexport const createLogConfig = ({ logger, logLevel, sse }: LoggingOptions): LoggingConfig => ({\n log: createLogHandler(logger ?? noopLogger, logLevel ?? 'error'),\n sse: !!sse,\n});\n", "import { cloneEntry } from '../../utils/clone-entry';\nimport { type StorageEntryCreator, type StorageEntry } from 'lib/2.app/config/storage.contract';\n\nconst globalThisStorageEntry: StorageEntryCreator =\n (namespace: string) =>\n <TValue>(key: string, initialValue: TValue) => {\n if (!(globalThis as unknown as { [namespace]: unknown })[namespace]) {\n (globalThis as unknown as { [namespace]: unknown })[namespace] = {};\n }\n\n const storage = (globalThis as unknown as { [namespace]: { [P in typeof key]: TValue } })[\n namespace\n ]!;\n if (!storage[key]) storage[key] = initialValue;\n\n const entry: StorageEntry<TValue> = {\n get(): TValue {\n return cloneEntry(key, storage[key])!;\n },\n set(value: TValue): StorageEntry<TValue> {\n storage[key] = cloneEntry(key, value);\n return entry;\n },\n clear(): StorageEntry<TValue> {\n storage[key] = cloneEntry(key, initialValue);\n return this;\n },\n };\n\n return entry;\n };\n\nexport { globalThisStorageEntry };\n", "import type { StorageConfig, StorageOptions } from 'lib/2.app/config/storage.contract';\nimport { globalThisStorageEntry } from './global-this.storage';\n\nexport const createStorageConfig = (override: StorageOptions): StorageConfig => ({\n storage: override.storage\n ? override.storage(override.storageNamespace ?? '__NATIVE_FEDERATION__')\n : globalThisStorageEntry(override.storageNamespace ?? '__NATIVE_FEDERATION__'),\n clearStorage: override.clearStorage ?? false,\n});\n", "import type { ModeProfileConfig } from 'lib/2.app/config/mode.contract';\n\nexport const defaultProfile: ModeProfileConfig = {\n latestSharedExternal: false,\n overrideCachedRemotes: 'init-only',\n overrideCachedRemotesIfURLMatches: false,\n};\n", "import type { ModeConfig, ModeOptions } from 'lib/2.app/config/mode.contract';\nimport { defaultProfile } from './default.profile';\n\nexport const createModeConfig = (override: ModeOptions): ModeConfig => {\n const strictnessConfig =\n typeof override.strict === 'boolean'\n ? {\n strictRemoteEntry: override.strict,\n strictExternalCompatibility: override.strict,\n strictExternalSameVersionCompatibility: override.strict,\n strictExternalVersion: override.strict,\n strictImportMap: override.strict,\n }\n : {\n strictRemoteEntry: override.strict?.strictRemoteEntry ?? false,\n strictExternalCompatibility: override.strict?.strictExternalCompatibility ?? false,\n strictExternalSameVersionCompatibility:\n override.strict?.strictExternalCompatibility ?? false,\n strictExternalVersion: override.strict?.strictExternalVersion ?? false,\n strictImportMap: override.strict?.strictImportMap ?? false,\n };\n\n return {\n strict: strictnessConfig,\n profile: { ...defaultProfile, ...(override.profile ?? {}) },\n };\n};\n", "import type { ConfigContract, NFOptions } from 'lib/2.app/config/config.contract';\nimport { createImportMapConfig } from 'lib/4.config/import-map/import-map.config';\nimport { createHostConfig } from 'lib/4.config/host/host.config';\nimport { createLogConfig } from 'lib/4.config/logging/log.config';\nimport { createStorageConfig } from 'lib/4.config/storage/storage.config';\nimport { createModeConfig } from 'lib/4.config/mode/mode.config';\n\nexport const createConfigHandlers = (overrides: NFOptions): ConfigContract => ({\n ...createImportMapConfig(overrides),\n ...createHostConfig(overrides),\n ...createLogConfig(overrides),\n ...createStorageConfig(overrides),\n ...createModeConfig(overrides),\n});\n", "import type { ImportMap } from 'lib/1.domain/import-map/import-map.contract';\nimport type { RemoteEntry, SharedInfoActions } from 'lib/1.domain';\nimport type { LoggingConfig } from '../../config/log.contract';\nimport * as _path from 'lib/utils/path';\nimport type { ForConvertingToImportMap } from 'lib/2.app/driver-ports/dynamic-init/for-converting-to-import-map';\nimport type { DrivingContract } from 'lib/sdk.index';\nimport { toChunkImport } from '@softarc/native-federation/domain';\n\nexport function createConvertToImportMap(\n { log }: LoggingConfig,\n ports: Pick<DrivingContract, 'sharedChunksRepo'>\n): ForConvertingToImportMap {\n return ({ entry, actions }) => {\n const importMap: ImportMap = { imports: {} };\n\n addExternals(entry, actions, importMap);\n addRemoteInfos(entry, importMap);\n log.debug(9, `[${entry.name}] Processed actions:`, actions);\n return Promise.resolve(importMap);\n };\n\n function addExternals(\n remoteEntry: RemoteEntry,\n actions: SharedInfoActions,\n importMap: ImportMap\n ): void {\n if (!remoteEntry.shared) {\n return;\n }\n\n const remoteEntryScope = _path.getScope(remoteEntry.url);\n\n const chunkBundles = new Set<string>(['mapping-or-exposed']);\n remoteEntry.shared.forEach(external => {\n // Scoped externals\n if (!external.singleton) {\n addToScopes(\n remoteEntryScope,\n external.packageName,\n _path.join(remoteEntryScope, external.outFileName),\n importMap\n );\n if (external?.bundle) chunkBundles.add(external?.bundle);\n return;\n }\n\n if (!actions[external.packageName]) {\n log.warn(\n 9,\n `[${remoteEntry.name}] No action defined for shared external '${external.packageName}', skipping.`\n );\n return;\n }\n\n // Skipped shared externals\n if (actions[external.packageName]!.action === 'skip') {\n if (!external.shareScope) return;\n\n if (actions[external.packageName]!.override) {\n addToScopes(\n remoteEntryScope,\n external.packageName,\n actions[external.packageName]!.override!,\n importMap\n );\n return;\n }\n }\n\n // Chunks for shared externals\n if (external?.bundle) chunkBundles.add(external?.bundle);\n\n // Scoped shared externals\n if (actions[external.packageName]!.action === 'scope') {\n addToScopes(\n remoteEntryScope,\n external.packageName,\n _path.join(remoteEntryScope, external.outFileName),\n importMap\n );\n return;\n }\n\n // Shared externals with shareScope\n if (external.shareScope) {\n addToScopes(\n remoteEntryScope,\n external.packageName,\n _path.join(remoteEntryScope, external.outFileName),\n importMap\n );\n return;\n }\n\n // Default case: shared globally\n importMap.imports[external.packageName] = _path.join(remoteEntryScope, external.outFileName);\n });\n\n addChunkImports(importMap, remoteEntry.name, remoteEntryScope, chunkBundles);\n }\n\n function addToScopes(\n scope: string,\n packageName: string,\n url: string,\n importMap: ImportMap\n ): void {\n if (!importMap.scopes) importMap.scopes = {};\n if (!importMap.scopes[scope]) importMap.scopes[scope] = {};\n importMap.scopes[scope][packageName] = url;\n }\n\n function addRemoteInfos(remoteEntry: RemoteEntry, importMap: ImportMap): void {\n if (!remoteEntry.exposes) return;\n const scope = _path.getScope(remoteEntry.url);\n\n remoteEntry.exposes.forEach(exposed => {\n const moduleName = _path.join(remoteEntry.name, exposed.key);\n const moduleUrl = _path.join(scope, exposed.outFileName);\n importMap.imports[moduleName] = moduleUrl;\n });\n }\n\n function addChunkImports(\n importMap: ImportMap,\n remoteName: string,\n remoteEntryScope: string,\n chunkBundles: Set<string>\n ) {\n Array.from(chunkBundles).forEach(bundleName => {\n ports.sharedChunksRepo.tryGet(remoteName, bundleName).ifPresent(files => {\n files.forEach(file => {\n addToScopes(\n remoteEntryScope,\n toChunkImport(file),\n _path.join(remoteEntryScope, file),\n importMap\n );\n });\n });\n });\n return importMap;\n }\n}\n", "import type { RemoteEntryUrl } from 'lib/1.domain/remote-entry/manifest.contract';\nimport type { RemoteName } from 'lib/1.domain/remote/remote-info.contract';\nimport type { DrivingContract } from '../../driving-ports/driving.contract';\nimport type { LoggingConfig } from '../../config/log.contract';\nimport { NFError } from 'lib/native-federation.error';\nimport type { ModeConfig } from '../../config/mode.contract';\nimport type { ForGettingRemoteEntry } from '../../driver-ports/dynamic-init/for-getting-remote-entry.port';\nimport { Optional } from 'lib/utils/optional';\nimport type { RemoteEntry } from 'lib/1.domain';\nimport * as _path from 'lib/utils/path';\n\nexport function createGetRemoteEntry(\n config: LoggingConfig & ModeConfig,\n ports: Pick<DrivingContract, 'remoteEntryProvider' | 'remoteInfoRepo' | 'sse'>\n): ForGettingRemoteEntry {\n return async (remoteEntryUrl: RemoteEntryUrl, remoteName?: RemoteName) => {\n if (!!remoteName && shouldSkipCachedRemote(remoteEntryUrl, remoteName)) {\n config.log.debug(7, `Found remote '${remoteName}' in storage, omitting fetch.`);\n return Optional.empty<RemoteEntry>();\n }\n\n try {\n const remoteEntry = await ports.remoteEntryProvider.provide(remoteEntryUrl);\n\n config.log.debug(\n 7,\n `[${remoteEntry.name}] Fetched from '${remoteEntry.url}', exposing: ${JSON.stringify(remoteEntry.exposes)}`\n );\n\n if (!!remoteName && remoteEntry.name !== remoteName) {\n const errorMsg = `Fetched remote '${remoteEntry.name}' does not match requested '${remoteName}'.`;\n if (config.strict.strictRemoteEntry) {\n config.log.error(7, errorMsg);\n throw new NFError('Could not fetch remote entry');\n }\n config.log.warn(7, errorMsg + ' Omitting expected name.');\n }\n\n if (ports.remoteInfoRepo.contains(remoteEntry.name)) {\n remoteEntry.override = true;\n config.log.debug(7, `Overriding existing remote '${remoteName}' with '${remoteEntryUrl}'.`);\n }\n return Optional.of(checkForSSE(remoteEntry));\n } catch (error) {\n config.log.error(\n 7,\n `[${remoteName ?? 'unknown'}] Could not fetch remoteEntry from ${remoteEntryUrl}.`,\n error\n );\n return Promise.reject(\n new NFError(`[${remoteName ?? remoteEntryUrl}] Could not fetch remoteEntry.`)\n );\n }\n };\n\n function shouldSkipCachedRemote(remoteEntryUrl: string, remoteName: RemoteName): boolean {\n return ports.remoteInfoRepo\n .tryGet(remoteName)\n .map(\n cachedRemoteInfo =>\n config.profile.overrideCachedRemotes !== 'always' ||\n (!config.profile.overrideCachedRemotesIfURLMatches &&\n remoteEntryUrl === _path.join(cachedRemoteInfo.scopeUrl, 'remoteEntry.json'))\n )\n .orElse(false);\n }\n\n function checkForSSE(entry: RemoteEntry): RemoteEntry {\n if (config.sse) {\n if (entry.buildNotificationsEndpoint) {\n ports.sse.watchRemoteBuilds(\n _path.join(_path.getScope(entry.url), entry.buildNotificationsEndpoint)\n );\n config.log.debug(7, `Registered SSE endpoint of remote '${entry.name}' `);\n } else {\n config.log.debug(7, `Remote ${entry.name} has no defined 'buildNotificationsEndpoint'`);\n }\n }\n return entry;\n }\n}\n", "import type { ForUpdatingCache } from '../../driver-ports/dynamic-init/for-updating-cache';\nimport {\n type ScopedVersion,\n type RemoteEntry,\n type RemoteInfo,\n type RemoteName,\n type SharedInfo,\n type SharedInfoActions,\n type SharedVersion,\n type SharedVersionAction,\n type SharedVersionMeta,\n type SharedExternal,\n GLOBAL_SCOPE,\n} from 'lib/1.domain';\nimport type { DrivingContract } from '../../driving-ports/driving.contract';\nimport type { LoggingConfig } from '../../config/log.contract';\nimport * as _path from 'lib/utils/path';\nimport { NFError } from 'lib/native-federation.error';\nimport type { ModeConfig } from 'lib/2.app/config/mode.contract';\n\nexport function createUpdateCache(\n config: LoggingConfig & ModeConfig,\n ports: Pick<\n DrivingContract,\n | 'remoteInfoRepo'\n | 'sharedExternalsRepo'\n | 'scopedExternalsRepo'\n | 'sharedChunksRepo'\n | 'versionCheck'\n >\n): ForUpdatingCache {\n return remoteEntry => {\n try {\n if (remoteEntry?.override) removeCachedRemoteEntry(remoteEntry);\n addRemoteInfoToStorage(remoteEntry);\n const actions = mergeExternalsIntoStorage(remoteEntry);\n addSharedChunksToStorage(remoteEntry);\n\n return Promise.resolve({ entry: remoteEntry, actions });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n\n function removeCachedRemoteEntry(remoteEntry: RemoteEntry): void {\n ports.remoteInfoRepo.remove(remoteEntry.name);\n ports.scopedExternalsRepo.remove(remoteEntry.name);\n ports.sharedExternalsRepo.removeFromAllScopes(remoteEntry.name);\n }\n\n function addRemoteInfoToStorage({ name, url, exposes }: RemoteEntry) {\n ports.remoteInfoRepo.addOrUpdate(name, {\n scopeUrl: _path.getScope(url),\n exposes: Object.values(exposes ?? []).map(m => ({\n moduleName: m.key,\n file: m.outFileName,\n })),\n } as RemoteInfo);\n }\n\n function mergeExternalsIntoStorage(remoteEntry: RemoteEntry): SharedInfoActions {\n const actions: SharedInfoActions = {};\n remoteEntry.shared.forEach(external => {\n if (!external.version || !ports.versionCheck.isValidSemver(external.version)) {\n const errorMsg = `[${remoteEntry.name}][${external.packageName}] Version '${external.version}' is not a valid version.`;\n\n if (config.strict.strictExternalVersion) {\n config.log.error(8, errorMsg);\n throw new NFError(`Could not process remote '${remoteEntry.name}'`);\n }\n config.log.warn(8, errorMsg);\n }\n\n if (external.singleton) {\n const { action, sharedVersion } = addSharedExternal(remoteEntry.name, external);\n actions[external.packageName] = { action };\n\n if (action === 'skip' && external.shareScope && sharedVersion?.remotes[0]?.file) {\n actions[external.packageName]!.override = ports.remoteInfoRepo\n .tryGet(sharedVersion.remotes[0]!.name)\n .map(remote => _path.join(remote.scopeUrl, sharedVersion.remotes[0]!.file))\n .orThrow(() => {\n config.log.error(\n 8,\n `[${external.shareScope ?? GLOBAL_SCOPE}][${remoteEntry.name}][${\n external.packageName\n }@${external.version}][override] Remote name not found in cache.`\n );\n return new NFError(\n `Could not find override url from remote ${sharedVersion.remotes[0]!.name}`\n );\n });\n }\n } else {\n addScopedExternal(remoteEntry.name, external);\n }\n });\n return actions;\n }\n\n function addSharedChunksToStorage(remoteEntry: RemoteEntry): void {\n if (!remoteEntry.chunks) return;\n config.log.debug(\n 8,\n `Adding chunks for remote \"${remoteEntry.name}\", bundles: [${Object.keys(remoteEntry.chunks).join(', ')}]`\n );\n Object.entries(remoteEntry.chunks).forEach(([bundleName, chunks]) => {\n ports.sharedChunksRepo.addOrReplace(remoteEntry.name, bundleName, chunks);\n });\n }\n\n function addSharedExternal(\n remoteName: RemoteName,\n sharedInfo: SharedInfo\n ): { action: SharedVersionAction; sharedVersion?: SharedVersion } {\n const cached: SharedExternal = ports.sharedExternalsRepo\n .tryGet(sharedInfo.packageName, sharedInfo.shareScope)\n .orElse({ dirty: false, versions: [] });\n\n let action: SharedVersionAction = 'skip';\n\n const tag =\n sharedInfo.version ?? ports.versionCheck.smallestVersion(sharedInfo.requiredVersion);\n const remote: SharedVersionMeta = {\n file: sharedInfo.outFileName,\n strictVersion: sharedInfo.strictVersion,\n requiredVersion: sharedInfo.requiredVersion || tag,\n name: remoteName,\n bundle: sharedInfo.bundle,\n cached: false,\n };\n\n const scopeType = ports.sharedExternalsRepo.scopeType(sharedInfo.shareScope);\n\n if (scopeType === 'strict') {\n remote.requiredVersion = tag;\n action = 'share';\n }\n\n const sharedVersion = cached.versions.find(c => c.action === 'share');\n const isCompatible =\n !sharedVersion || ports.versionCheck.isCompatible(sharedVersion.tag, remote.requiredVersion);\n\n if (action === 'skip' && !isCompatible && remote.strictVersion) {\n action = 'scope';\n const errorMsg = `[${sharedInfo.shareScope ?? GLOBAL_SCOPE}][${remoteName}] ${\n sharedInfo.packageName\n }@${sharedInfo.version} Is not compatible with existing ${sharedInfo.packageName}@${\n sharedVersion!.tag\n } requiredRange '${sharedVersion!.remotes[0]?.requiredVersion}'`;\n\n if (config.strict.strictExternalCompatibility) {\n config.log.error(8, errorMsg);\n throw new NFError(`Could not process remote '${remoteName}'`);\n }\n config.log.warn(8, errorMsg);\n }\n\n const matchingVersion = cached.versions.find(cached => cached.tag === tag);\n\n if (!!matchingVersion) {\n if (\n remote.strictVersion &&\n matchingVersion.remotes[0]!.requiredVersion !== remote.requiredVersion\n ) {\n const errorMsg = `[${remoteName}][${sharedInfo.packageName}@${\n sharedInfo.version\n }] Required version '${remote.requiredVersion}' does not match existing '${\n matchingVersion.remotes[0]!.requiredVersion\n }'`;\n if (config.strict.strictExternalCompatibility) {\n config.log.error(8, errorMsg);\n throw new NFError(`Could not process remote '${remoteName}'`);\n }\n config.log.warn(8, errorMsg);\n }\n matchingVersion.remotes.push(remote);\n } else {\n if (!sharedVersion) action = 'share';\n remote.cached = action !== 'skip';\n cached.versions.push({ tag, action, host: false, remotes: [remote] });\n }\n\n ports.sharedExternalsRepo.addOrUpdate(\n sharedInfo.packageName,\n {\n dirty: cached.dirty,\n versions: cached.versions.sort((a, b) => ports.versionCheck.compare(b.tag, a.tag)),\n },\n sharedInfo.shareScope\n );\n\n return { action, sharedVersion };\n }\n\n function addScopedExternal(remoteName: RemoteName, sharedInfo: SharedInfo): void {\n ports.scopedExternalsRepo.addExternal(remoteName, sharedInfo.packageName, {\n tag: sharedInfo.version ?? ports.versionCheck.smallestVersion(sharedInfo.requiredVersion),\n file: sharedInfo.outFileName,\n bundle: sharedInfo.bundle,\n } as ScopedVersion);\n }\n}\n", "import type { RemoteEntry } from 'lib/1.domain';\nimport type { DynamicInitFlow } from 'lib/2.app/driver-ports/dynamic-init/flow.contract';\nimport type { FLOW_FACTORY } from 'lib/2.app/driver-ports/flow-factory.contract';\nimport { createConvertToImportMap } from 'lib/2.app/flows/dynamic-init/convert-to-import-map';\nimport { createGetRemoteEntry } from 'lib/2.app/flows/dynamic-init/get-remote-entry';\nimport { createUpdateCache } from 'lib/2.app/flows/dynamic-init/update-cache';\nimport { createCommitChanges } from 'lib/2.app/flows/init/commit-changes';\nimport type { DynamicInitDriversContract } from 'lib/audit.index';\nimport type { DrivingContract } from '../../2.app/driving-ports/driving.contract';\nimport type { ConfigContract } from '../../2.app/config/config.contract';\n\nexport const createDynamicInitDrivers = ({\n config,\n adapters,\n}: {\n config: ConfigContract;\n adapters: DrivingContract;\n}): DynamicInitDriversContract => ({\n getRemoteEntry: createGetRemoteEntry(config, adapters),\n updateCache: createUpdateCache(config, adapters),\n convertToImportMap: createConvertToImportMap(config, adapters),\n commitChanges: createCommitChanges(config, adapters),\n});\n\nexport const DYNAMIC_INIT_FLOW_FACTORY = ({\n config,\n adapters,\n}: {\n config: ConfigContract;\n adapters: DrivingContract;\n}): FLOW_FACTORY<DynamicInitDriversContract> => {\n const flow = createDynamicInitDrivers({ config, adapters });\n\n return {\n flow,\n adapters,\n config,\n };\n};\n\nexport const createDynamicInitFlow = ({\n flow,\n adapters,\n config,\n}: FLOW_FACTORY<DynamicInitDriversContract>): DynamicInitFlow => {\n const processDynamicRemoteEntry = async (remoteEntry: RemoteEntry) => {\n return flow.updateCache(remoteEntry).then(flow.convertToImportMap).then(flow.commitChanges);\n };\n const initRemoteEntry: DynamicInitFlow = (remoteEntryUrl, remoteName) =>\n flow\n .getRemoteEntry(remoteEntryUrl, remoteName)\n .then(entry => entry.map(processDynamicRemoteEntry).orElse(Promise.resolve()))\n .then(() => ({\n config,\n adapters,\n initRemoteEntry,\n }));\n\n return initRemoteEntry;\n};\n", "import type { LoadRemoteModuleOf, NativeFederationResult } from './init-federation.contract';\nimport type { NFOptions } from './2.app/config/config.contract';\nimport { createInitFlow, INIT_FLOW_FACTORY } from './5.di/flows/init.factory';\nimport { createDriving } from './5.di/driving.factory';\nimport { createConfigHandlers } from './5.di/config.factory';\nimport {\n createDynamicInitFlow,\n DYNAMIC_INIT_FLOW_FACTORY,\n} from './5.di/flows/dynamic-init.factory';\n\nconst initFederation = (\n remotesOrManifestUrl: string | Record<string, string>,\n options: NFOptions = {}\n): Promise<NativeFederationResult> => {\n const { adapters, config } = createDriving(createConfigHandlers(options));\n\n const stateDump = (msg: string) =>\n config.log.debug(0, msg, {\n remotes: { ...adapters.remoteInfoRepo.getAll() },\n 'shared-externals': adapters.sharedExternalsRepo\n .getScopes({ includeGlobal: true })\n .reduce(\n (acc, scope) => ({ ...acc, [scope]: adapters.sharedExternalsRepo.getFromScope(scope) }),\n {}\n ),\n 'scoped-externals': adapters.scopedExternalsRepo.getAll(),\n });\n\n const initFlow = createInitFlow(INIT_FLOW_FACTORY({ adapters, config }));\n const dynamicInitFlow = createDynamicInitFlow(DYNAMIC_INIT_FLOW_FACTORY({ config, adapters }));\n\n return initFlow(remotesOrManifestUrl)\n .then(({ loadRemoteModule }) => {\n const output = {\n config,\n adapters,\n loadRemoteModule,\n as: <TModule = unknown>() => ({\n loadRemoteModule: loadRemoteModule as LoadRemoteModuleOf<TModule>,\n load: loadRemoteModule as LoadRemoteModuleOf<TModule>,\n }),\n load: loadRemoteModule,\n };\n\n const initRemoteEntry = async (\n remoteEntryUrl: string,\n remoteName?: string\n ): Promise<NativeFederationResult> =>\n dynamicInitFlow(remoteEntryUrl, remoteName)\n .catch(e => {\n stateDump(`[dynamic-init][${remoteName ?? remoteEntryUrl}] STATE DUMP`);\n if (config.strict.strictRemoteEntry) return Promise.reject(e);\n else console.warn('Failed to initialize remote entry, continuing anyway.');\n return Promise.resolve();\n })\n .then(() => ({\n ...output,\n initRemoteEntry,\n }));\n\n return {\n ...output,\n initRemoteEntry,\n };\n })\n .catch(e => {\n stateDump(`[init] STATE DUMP`);\n return Promise.reject(e);\n });\n};\n\nexport { initFederation };\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["require_valid", "BuildNotificationType", "getScope", "scope", "import_valid", "semverValid", "semverSatisfies", "semverCompare", "semverValidRange", "semverMinVersion", "importMap", "cached"]
7
7
  }
package/fesm2022/sdk.mjs CHANGED
@@ -13,6 +13,7 @@ var Optional = class _Optional {
13
13
  constructor(item) {
14
14
  this.item = item;
15
15
  }
16
+ item;
16
17
  static of(item) {
17
18
  return new _Optional(item);
18
19
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/1.domain/externals/external.contract.ts", "../../src/lib/utils/optional.ts", "../../src/lib/utils/path.ts", "../../src/lib/native-federation.error.ts", "../../src/lib/utils/clone-entry.ts"],
4
4
  "sourcesContent": ["import type { SharedVersion, ScopedVersion } from './version.contract';\n\nexport type ExternalName = string;\n\nexport type ScopedExternals = Record<string, ScopedExternal>;\n\nexport const GLOBAL_SCOPE = '__GLOBAL__';\n\nexport const STRICT_SCOPE = 'strict';\n\nexport type SharedExternal = {\n dirty: boolean;\n versions: SharedVersion[];\n};\n\nexport type shareScope = Record<string, SharedExternal>;\n\nexport type SharedExternals = Record<string, shareScope> & { [GLOBAL_SCOPE]: shareScope };\n\nexport type ScopedExternal = Record<string, ScopedVersion>;\n", "export class Optional<T> {\n private constructor(private item?: T) {}\n\n public static of<T>(item?: T): Optional<T> {\n return new Optional(item);\n }\n public static empty<U>(): Optional<U> {\n return Optional.of<U>(undefined);\n }\n\n public isPresent() {\n return typeof this.item !== 'undefined' && this.item !== null;\n }\n public set<U>(other: U) {\n return Optional.of(other);\n }\n\n public ifPresent(callback: (_: T) => void): void {\n if (this.isPresent()) callback(this.item as T);\n }\n\n public map<U>(callback: (_: NonNullable<T>) => U | Optional<U>): Optional<U> {\n if (!this.isPresent()) return Optional.empty();\n\n const result = callback(this.item as NonNullable<T>);\n return result instanceof Optional ? result : Optional.of(result);\n }\n\n public orElse(other: Required<T>): NonNullable<T> {\n return this.isPresent() ? (this.item as NonNullable<T>) : (other as NonNullable<T>);\n }\n\n public orThrow(error: Error | string | (() => Error)): NonNullable<T> {\n if (this.isPresent()) return this.item as NonNullable<T>;\n if (typeof error === 'function') throw error();\n throw typeof error === 'string' ? new Error(error) : error;\n }\n\n public get(): T | undefined {\n return this.item;\n }\n}\n", "function join(pathA: string, pathB: string): string {\n pathA = pathA.endsWith('/') ? pathA.slice(0, -1) : pathA;\n pathB = pathB.startsWith('/') ? pathB.slice(1) : pathB;\n return `${pathA}/${pathB}`;\n}\n\nfunction getScope(path: string) {\n if (!path) return '';\n\n const parts = path.split('/');\n\n if (parts[parts.length - 1] === '' || parts[parts.length - 1]!.includes('.')) {\n parts.pop();\n }\n if (parts.length < 1) return '';\n\n return `${parts.join('/')}/`;\n}\n\nexport { join, getScope };\n", "class NFError extends Error {\n constructor(message: string, cause?: Error) {\n super(message, cause);\n this.name = 'NFError';\n }\n}\n\nexport { NFError };\n", "import type { StorageEntryKey } from 'lib/2.app/config/storage.contract';\nimport { NFError } from 'lib/native-federation.error';\n\ntype CloneEntry = <T>(name: StorageEntryKey, raw: T) => T;\n\nconst cloneEntry: CloneEntry = <T>(name: StorageEntryKey, raw: T) => {\n try {\n if (typeof structuredClone === 'function') {\n return structuredClone(raw);\n }\n } catch {\n /* structured clone is unavailable */\n }\n try {\n return JSON.parse(JSON.stringify(raw));\n } catch {\n /* object is not stringifyable */\n }\n throw new NFError(`Could not parse storage entry '${String(name)}'`);\n};\n\nexport { CloneEntry, cloneEntry };\n"],
5
- "mappings": ";;;;;;;AAMO,IAAM,eAAe;AAErB,IAAM,eAAe;;;ACRrB,IAAM,WAAN,MAAM,UAAY;AAAA,EACf,YAAoB,MAAU;AAAV;AAAA,EAAW;AAAA,EAEvC,OAAc,GAAM,MAAuB;AACzC,WAAO,IAAI,UAAS,IAAI;AAAA,EAC1B;AAAA,EACA,OAAc,QAAwB;AACpC,WAAO,UAAS,GAAM,MAAS;AAAA,EACjC;AAAA,EAEO,YAAY;AACjB,WAAO,OAAO,KAAK,SAAS,eAAe,KAAK,SAAS;AAAA,EAC3D;AAAA,EACO,IAAO,OAAU;AACtB,WAAO,UAAS,GAAG,KAAK;AAAA,EAC1B;AAAA,EAEO,UAAU,UAAgC;AAC/C,QAAI,KAAK,UAAU,EAAG,UAAS,KAAK,IAAS;AAAA,EAC/C;AAAA,EAEO,IAAO,UAA+D;AAC3E,QAAI,CAAC,KAAK,UAAU,EAAG,QAAO,UAAS,MAAM;AAE7C,UAAM,SAAS,SAAS,KAAK,IAAsB;AACnD,WAAO,kBAAkB,YAAW,SAAS,UAAS,GAAG,MAAM;AAAA,EACjE;AAAA,EAEO,OAAO,OAAoC;AAChD,WAAO,KAAK,UAAU,IAAK,KAAK,OAA2B;AAAA,EAC7D;AAAA,EAEO,QAAQ,OAAuD;AACpE,QAAI,KAAK,UAAU,EAAG,QAAO,KAAK;AAClC,QAAI,OAAO,UAAU,WAAY,OAAM,MAAM;AAC7C,UAAM,OAAO,UAAU,WAAW,IAAI,MAAM,KAAK,IAAI;AAAA,EACvD;AAAA,EAEO,MAAqB;AAC1B,WAAO,KAAK;AAAA,EACd;AACF;;;ACzCA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,KAAK,OAAe,OAAuB;AAClD,UAAQ,MAAM,SAAS,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI;AACnD,UAAQ,MAAM,WAAW,GAAG,IAAI,MAAM,MAAM,CAAC,IAAI;AACjD,SAAO,GAAG,KAAK,IAAI,KAAK;AAC1B;AAEA,SAAS,SAAS,MAAc;AAC9B,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,QAAQ,KAAK,MAAM,GAAG;AAE5B,MAAI,MAAM,MAAM,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,SAAS,CAAC,EAAG,SAAS,GAAG,GAAG;AAC5E,UAAM,IAAI;AAAA,EACZ;AACA,MAAI,MAAM,SAAS,EAAG,QAAO;AAE7B,SAAO,GAAG,MAAM,KAAK,GAAG,CAAC;AAC3B;;;ACjBA,IAAM,UAAN,cAAsB,MAAM;AAAA,EAC1B,YAAY,SAAiB,OAAe;AAC1C,UAAM,SAAS,KAAK;AACpB,SAAK,OAAO;AAAA,EACd;AACF;;;ACAA,IAAM,aAAyB,CAAI,MAAuB,QAAW;AACnE,MAAI;AACF,QAAI,OAAO,oBAAoB,YAAY;AACzC,aAAO,gBAAgB,GAAG;AAAA,IAC5B;AAAA,EACF,QAAQ;AAAA,EAER;AACA,MAAI;AACF,WAAO,KAAK,MAAM,KAAK,UAAU,GAAG,CAAC;AAAA,EACvC,QAAQ;AAAA,EAER;AACA,QAAM,IAAI,QAAQ,kCAAkC,OAAO,IAAI,CAAC,GAAG;AACrE;",
5
+ "mappings": ";;;;;;;AAMO,IAAM,eAAe;AAErB,IAAM,eAAe;;;ACRrB,IAAM,WAAN,MAAM,UAAY;AAAA,EACf,YAAoB,MAAU;AAAV;AAAA,EAAW;AAAA,EAAX;AAAA,EAE5B,OAAc,GAAM,MAAuB;AACzC,WAAO,IAAI,UAAS,IAAI;AAAA,EAC1B;AAAA,EACA,OAAc,QAAwB;AACpC,WAAO,UAAS,GAAM,MAAS;AAAA,EACjC;AAAA,EAEO,YAAY;AACjB,WAAO,OAAO,KAAK,SAAS,eAAe,KAAK,SAAS;AAAA,EAC3D;AAAA,EACO,IAAO,OAAU;AACtB,WAAO,UAAS,GAAG,KAAK;AAAA,EAC1B;AAAA,EAEO,UAAU,UAAgC;AAC/C,QAAI,KAAK,UAAU,EAAG,UAAS,KAAK,IAAS;AAAA,EAC/C;AAAA,EAEO,IAAO,UAA+D;AAC3E,QAAI,CAAC,KAAK,UAAU,EAAG,QAAO,UAAS,MAAM;AAE7C,UAAM,SAAS,SAAS,KAAK,IAAsB;AACnD,WAAO,kBAAkB,YAAW,SAAS,UAAS,GAAG,MAAM;AAAA,EACjE;AAAA,EAEO,OAAO,OAAoC;AAChD,WAAO,KAAK,UAAU,IAAK,KAAK,OAA2B;AAAA,EAC7D;AAAA,EAEO,QAAQ,OAAuD;AACpE,QAAI,KAAK,UAAU,EAAG,QAAO,KAAK;AAClC,QAAI,OAAO,UAAU,WAAY,OAAM,MAAM;AAC7C,UAAM,OAAO,UAAU,WAAW,IAAI,MAAM,KAAK,IAAI;AAAA,EACvD;AAAA,EAEO,MAAqB;AAC1B,WAAO,KAAK;AAAA,EACd;AACF;;;ACzCA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,KAAK,OAAe,OAAuB;AAClD,UAAQ,MAAM,SAAS,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI;AACnD,UAAQ,MAAM,WAAW,GAAG,IAAI,MAAM,MAAM,CAAC,IAAI;AACjD,SAAO,GAAG,KAAK,IAAI,KAAK;AAC1B;AAEA,SAAS,SAAS,MAAc;AAC9B,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,QAAQ,KAAK,MAAM,GAAG;AAE5B,MAAI,MAAM,MAAM,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,SAAS,CAAC,EAAG,SAAS,GAAG,GAAG;AAC5E,UAAM,IAAI;AAAA,EACZ;AACA,MAAI,MAAM,SAAS,EAAG,QAAO;AAE7B,SAAO,GAAG,MAAM,KAAK,GAAG,CAAC;AAC3B;;;ACjBA,IAAM,UAAN,cAAsB,MAAM;AAAA,EAC1B,YAAY,SAAiB,OAAe;AAC1C,UAAM,SAAS,KAAK;AACpB,SAAK,OAAO;AAAA,EACd;AACF;;;ACAA,IAAM,aAAyB,CAAI,MAAuB,QAAW;AACnE,MAAI;AACF,QAAI,OAAO,oBAAoB,YAAY;AACzC,aAAO,gBAAgB,GAAG;AAAA,IAC5B;AAAA,EACF,QAAQ;AAAA,EAER;AACA,MAAI;AACF,WAAO,KAAK,MAAM,KAAK,UAAU,GAAG,CAAC;AAAA,EACvC,QAAQ;AAAA,EAER;AACA,QAAM,IAAI,QAAQ,kCAAkC,OAAO,IAAI,CAAC,GAAG;AACrE;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.0.0",
2
+ "version": "4.0.1",
3
3
  "name": "@softarc/native-federation-orchestrator",
4
4
  "author": "Aukevanoost",
5
5
  "keywords": [
package/quickstart.mjs CHANGED
@@ -9,10 +9,10 @@ var es=Object.create;var Ro=Object.defineProperty;var ts=Object.getOwnPropertyDe
9
9
  //# sourceURL=`,eo=`
10
10
  //# sourceMappingURL=`,Ri=/url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g,ar=[],to=0,$i=()=>{if(++to>100)return new Promise(n=>ar.push(n))},Si=()=>{to--,ar.length&&ar.shift()()},ro=async(n,f,h)=>{if(ve&&!f.integrity)throw Error(`No integrity for ${n}${st(h)}.`);let g,y=$i();y&&await y;try{g=await oe(n,f)}catch($){throw $.message=`Unable to fetch ${n}${st(h)} - see network log for details.
11
11
  `+$.message,$}finally{Si()}if(!g.ok){let $=new TypeError(`${g.status} ${g.statusText} ${g.url}${st(h)}`);throw $.response=g,$}return g},rt,oo=async()=>{let n=await import(q);rt||(rt=n.transform)};async function no(n,f,h){let g=await ro(n,f,h),y,[,$,I,C]=(y=g.headers.get("content-type")||"").match(/^(?:[^/;]+\/(?:[^/+;]+\+)?(json)|(?:text|application)\/(?:x-)?((java|type)script|wasm|css))(?:;|$)/)||[];if(!(I=$||(C?C[0]+"s":I||/\.m?ts(\?|#|$)/.test(n)&&"ts")))throw Error(`Unsupported Content-Type "${y}" loading ${n}${st(h)}. Modules must be served with a valid MIME type like application/javascript.`);return{url:g.url,source:await(I>"v"?WebAssembly.compileStreaming(g):g.text()),type:I}}let cr="var h=import.meta.hot,",io=async(n,f,h)=>{let g=Fe.integrity[n];f=g&&!f.integrity?{...f,integrity:g}:f;let{url:y=n,source:$,type:I}=await(x||no)(n,f,h,no)||{};if(I==="wasm"){let C=WebAssembly.Module.exports(bi[y]=$),_=WebAssembly.Module.imports($),O=ut(y);$=`import*as $_ns from${O};`;let F=0,E="";for(let{module:o,kind:fe}of _){let ge=ut(o);$+=`import*as impt${F} from${ge};
12
- `,E+=`${ge}:${fe==="global"?`importShim._i.get(impt${F})||impt${F++}`:`impt${F++}`},`}$+=`${cr}i=await WebAssembly.instantiate(importShim._s[${O}],{${E}});importShim._i.set($_ns,i);`,E="";for(let{name:o,kind:fe}of C)$+=`export let ${o}=i.exports['${o}'];`,fe==="global"&&($+=`try{${o}=${o}.value}catch(_){${o}=undefined}`),E+=`${o},`;$+=`if(h)h.accept(m=>({${E}}=m))`}else if(I==="json")$=`${cr}j=JSON.parse(${JSON.stringify($)});export{j as default};if(h)h.accept(m=>j=m.default)`;else if(I==="css")$=`${cr}s=h&&h.data.s||new CSSStyleSheet();s.replaceSync(${JSON.stringify($.replace(Ri,(C,_="",O,F)=>`url(${_}${jr(O||F,y)}${_})`))});if(h){h.data.s=s;h.accept(()=>{})}export default s`;else if(I==="ts"){rt||await oo();let C=rt($,y);$=C===void 0?$:C}return{url:y,source:$,type:I}},lr=(n,f,h,g)=>{if(g&&ft[n]){let $=0;for(;ft[n+"#"+ ++$];);n+="#"+$}let y=ft[n];return y||(ft[n]=y={u:n,r:g?n:void 0,f:void 0,S:g,L:void 0,a:void 0,d:void 0,b:void 0,s:void 0,n:!1,N:!1,t:null,m:null},y.f=(async()=>{y.S===void 0&&({url:y.r,source:y.S,type:y.t}=await(ur[n]||io(n,f,h)),!y.n&&y.t!=="js"&&!P&&(y.t==="css"&&!et||y.t==="json"&&!Qe||y.t==="wasm"&&!It&&!at||y.t==="ts")&&(y.n=!0));try{y.a=di(y.S,y.u)}catch($){it($),y.a=[[],[],!1]}return y})(),y)},vi=n=>Error(`${n} feature must be enabled via <script type="esms-options">{ "polyfillEnable": ["${n}"] }<\/script>`),so=(n,f)=>{n.L||(n.L=n.f.then(()=>{let h=f;n.d=n.a[0].map(({n:g,d:y,t:$,a:I,se:C})=>{let _=$>=4,O=_&&$<6;if(_){if(!P&&(O?!Ge:!Qt))throw vi(O?"wasm-module-sources":"import-defer");(!O||!at)&&(n.n=!0)}let F;if(I>0&&!P&&Ve){let fe=n.S.slice(I,C-1);fe.includes("json")?Qe?F="":n.n=!0:fe.includes("css")&&(et?F="":n.n=!0)}if(y!==-1||!g)return;let E=lt(g,n.r||n.u);if((E.n||K)&&(n.n=!0),(y>=0||E.N)&&(n.N=!0),y!==-1)return;if(Oe&&Oe(E.r)&&!O)return{l:{b:E.r},s:!1};h.integrity&&(h={...h,integrity:void 0});let o={l:lr(E.r,h,n.r,F),s:O};return F===""&&(o.l.b=o.l.u),o.s||so(o.l,f),o}).filter(g=>g)}))},dt=()=>{for(let n of document.querySelectorAll(P?"link[rel=modulepreload-shim]":"link[rel=modulepreload]"))n.ep||Eo(n);for(let n of document.querySelectorAll("script[type]"))n.type==="importmap"+(P?"-shim":"")?n.ep||ho(n):n.type==="module"+(P?"-shim":"")&&(tt=!1,n.ep||go(n))},Nt=n=>{let f={};return n.integrity&&(f.integrity=n.integrity),n.referrerPolicy&&(f.referrerPolicy=n.referrerPolicy),n.fetchPriority&&(f.priority=n.fetchPriority),n.crossOrigin==="use-credentials"?f.credentials="include":n.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f},fr=Promise.resolve(),ao=!1,At=1,Ft=n=>{if(n===void 0){if(ao)return;ao=!0,At--}--At===0&&!ie&&(P||!Te)&&(document.removeEventListener("DOMContentLoaded",lo),document.dispatchEvent(new Event("DOMContentLoaded")))},pr=1,co=()=>{--pr===0&&!ie&&(P||!Te)&&(window.removeEventListener("load",fo),window.dispatchEvent(new Event("load")))},lo=async()=>{await Ue,Ft()},fo=async()=>{await Ue,Ft(),co()};c&&(document.addEventListener("DOMContentLoaded",lo),window.addEventListener("load",fo));let po=async()=>{await Ue,dt(),document.readyState==="complete"&&mr()},ht=1,mr=()=>{--ht===0&&(Ft(),!ie&&(P||!Te)&&(document.removeEventListener("readystatechange",po),document.dispatchEvent(new Event("readystatechange"))))},mo=n=>n.nextSibling||n.parentNode&&mo(n.parentNode),uo=(n,f)=>n.ep||!f&&(!n.src&&!n.innerHTML||!mo(n))||n.getAttribute("noshim")!==null||!(n.ep=!0),ho=(n,f=ht>0)=>{if(!uo(n,f)){if(n.src){if(!P)return;Kr=!0}mt=mt.then(async()=>{Fe=Dr(n.src?await(await ro(n.src,Nt(n))).json():JSON.parse(n.innerHTML),n.src||we,Fe)}).catch(h=>{h instanceof SyntaxError&&(h=new Error(`Unable to parse import map ${h.message} in: ${n.src||n.innerHTML}`)),it(h)}),!pt&&tt&&mt.then(()=>pt=Fe),!tt&&!nr&&(nr=!0,!P&&Te&&!kt&&(Te=!1,c&&Zr())),tt=!1}},go=(n,f=ht>0)=>{if(uo(n,f))return;let h=n.getAttribute("async")===null&&ht>0,g=At>0,y=pr>0;y&&pr++,h&&ht++,g&&At++;let $,I=n.lang==="ts";I&&!n.src?$=Promise.resolve(rt||oo()).then(()=>{let C=rt(n.innerHTML,we);return C!==void 0&&(Mr(),ir=!1),Tt(n.src||we,we,Nt(n),C===void 0?n.innerHTML:C,!P&&C===void 0,h&&fr,"ts")}).catch(it):$=Tt(n.src||we,we,Nt(n),n.src?void 0:n.innerHTML,!P,h&&fr,I?"ts":void 0).catch(it),ie||$.then(()=>n.dispatchEvent(new Event("load"))),h&&!I&&(fr=$.then(mr)),g&&$.then(Ft),y&&$.then(co)},ur={},Eo=n=>{n.ep=!0,Ue.then(()=>{Te&&!P||ur[n.href]||(ur[n.href]=io(n.href,Nt(n)))})}})();var H=class extends Error{constructor(t,i){super(t,i),this.name="NFError"}};function Y(r,t){return r=r.endsWith("/")?r.slice(0,-1):r,t=t.startsWith("/")?t.slice(1):t,`${r}/${t}`}function Ne(r){if(!r)return"";let t=r.split("/");return(t[t.length-1]===""||t[t.length-1].includes("."))&&t.pop(),t.length<1?"":`${t.join("/")}/`}function $o(r,t){return(u={})=>t.manifestProvider.provide(u).catch(p=>(r.log.error(1,"Could not fetch manifest.",p),Promise.reject(new H("Failed to fetch manifest")))).then(i).then(s).then(b).then(v);function i(u){if(!r.hostRemoteEntry)return u;let{name:p,url:R,cacheTag:S}=r.hostRemoteEntry,D=S?`${R}?cacheTag=${S}`:R;return{...u,[p]:D}}async function s(u){let p=Object.entries(u).map(([R,S])=>c(R,S));return Promise.all(p)}async function c(u,p){let R=!1,S=!1;if(t.remoteInfoRepo.tryGet(u).ifPresent(D=>{r.profile.overrideCachedRemotes!=="never"&&(p!==Y(D.scopeUrl,"remoteEntry.json")||r.profile.overrideCachedRemotesIfURLMatches)?(r.log.debug(1,`Overriding existing remote '${u}' with '${p}'.`),R=!0):(r.log.debug(1,`Found remote '${u}' in storage, omitting fetch.`),S=!0)}),S)return!1;try{let D=await t.remoteEntryProvider.provide(p);return r.log.debug(1,`Fetched '${D.name}' from '${D.url}', exposing: ${JSON.stringify(D.exposes)}`),d(D,u,R)}catch(D){return r.strict.strictRemoteEntry?(r.log.error(1,`Could not fetch remote '${u}'.`,D),Promise.reject(new H(`Could not fetch remote '${u}'`))):(r.log.warn(1,`Could not fetch remote '${u}'. skipping init.`,D),Promise.resolve(!1))}}function d(u,p,R){if(R&&(u.override=R),r.hostRemoteEntry&&p===r.hostRemoteEntry.name&&(u.host=!0,u.name=r.hostRemoteEntry.name),u.name!==p){let S=`Fetched remote '${u.name}' does not match requested '${p}'.`;if(r.strict.strictRemoteEntry)throw new H(S);r.log.warn(1,`${S} Omitting expected name.`)}return u}function b(u){return u.filter(p=>p!==!1)}function v(u){return r.sse&&u.forEach(p=>{if(p.buildNotificationsEndpoint){t.sse.watchRemoteBuilds(Y(Ne(p.url),p.buildNotificationsEndpoint)),r.log.debug(1,`Registered SSE endpoint of remote '${p.name}' `);return}r.log.debug(1,`Remote ${p.name} has no defined 'buildNotificationsEndpoint'`)}),u}}function So(r,t){return u=>{try{return u.forEach(p=>{p?.override&&i(p),s(p),c(p),d(p)}),Promise.resolve(u)}catch(p){return Promise.reject(p)}};function i(u){t.remoteInfoRepo.remove(u.name),t.scopedExternalsRepo.remove(u.name),t.sharedExternalsRepo.removeFromAllScopes(u.name)}function s({name:u,url:p,exposes:R}){t.remoteInfoRepo.addOrUpdate(u,{scopeUrl:Ne(p),exposes:Object.values(R??[]).map(S=>({moduleName:S.key,file:S.outFileName}))})}function c(u){u.shared.forEach(p=>{if(!p.version||!t.versionCheck.isValidSemver(p.version)){let R=`[${u.name}][${p.packageName}] Version '${p.version}' is not a valid version.`;if(r.strict.strictExternalVersion)throw r.log.error(2,R),new H(`Could not process remote '${u.name}'`);r.log.warn(2,R)}p.singleton?b(u.name,p,u):v(u.name,p)})}function d(u){u.chunks&&(r.log.debug(2,`Adding chunks for remote "${u.name}", bundles: [${Object.keys(u.chunks).join(", ")}]`),Object.entries(u.chunks).forEach(([p,R])=>{t.sharedChunksRepo.addOrReplace(u.name,p,R)}))}function b(u,p,R){let S="skip",D=p.version??t.versionCheck.smallestVersion(p.requiredVersion),P={file:p.outFileName,name:u,bundle:p.bundle,strictVersion:p.strictVersion,cached:!1,requiredVersion:p.requiredVersion||D},ue=t.sharedExternalsRepo.scopeType(p.shareScope);ue==="strict"&&(S="share",P.requiredVersion=D);let ne=t.sharedExternalsRepo.tryGet(p.packageName,p.shareScope).orElse({dirty:!1,versions:[]}),oe=ne.versions.find(L=>L.tag===p.version),x=ne.dirty;if(oe){if(P.strictVersion&&oe.remotes[0].requiredVersion!==P.requiredVersion){let L=`[${u}][${p.packageName}@${p.version}] Required version-range '${P.requiredVersion}' does not match cached version-range '${oe.remotes[0].requiredVersion}'`;if(r.strict.strictExternalSameVersionCompatibility)throw r.log.error(2,L),new H(`Could not process remote '${R.name}'`);r.log.warn(2,L)}!oe.host&&R?.host?(oe.host=!0,oe.remotes.unshift(P)):oe.remotes.push(P)}else ue!=="strict"&&(x=!0),ne.versions.push({tag:D,action:S,host:!!R?.host,remotes:[P]});t.sharedExternalsRepo.addOrUpdate(p.packageName,{dirty:x,versions:ne.versions.sort((L,q)=>t.versionCheck.compare(q.tag,L.tag))},p.shareScope)}function v(u,p){t.scopedExternalsRepo.addExternal(u,p.packageName,{tag:p.version??t.versionCheck.smallestVersion(p.requiredVersion),file:p.outFileName,bundle:p.bundle})}}var de="__GLOBAL__",vo="strict";function wo(r,t){return()=>{for(let s of t.sharedExternalsRepo.getScopes()){let c=t.sharedExternalsRepo.getFromScope(s);try{Object.entries(c).filter(([d,b])=>b.dirty).forEach(([d,b])=>t.sharedExternalsRepo.addOrUpdate(d,i(d,b),s))}catch(d){return r.log.error(3,`[${s??de}] failed to determine shared externals.`,{sharedExternals:c,error:d}),Promise.reject(new H(`Could not determine shared externals in scope ${s}.`,d))}}return Promise.resolve()};function i(s,c){if(c.versions.length===1)return c.versions[0].action="share",c.dirty=!1,c;let d=c.versions.find(b=>b.host);if(!d&&r.profile.latestSharedExternal&&(d=c.versions[0]),!d){let b=Number.MAX_VALUE;c.versions.forEach(v=>{let u=c.versions.filter(p=>!p.remotes[0].cached&&p.remotes[0].strictVersion&&!t.versionCheck.isCompatible(v.tag,p.remotes[0].requiredVersion)).length;u<b&&(b=u,d=v)})}if(!d)throw new H(`[${s}] Could not determine shared version!`);return c.versions.forEach(b=>{if(t.versionCheck.isCompatible(d.tag,b.remotes[0].requiredVersion)){b.action="skip";return}if(r.strict.strictExternalCompatibility&&b.remotes[0].strictVersion)throw r.log.error(3,`[${b.remotes[0].name}][${s}@${b.tag}] Is not compatible with requiredRange '${d.remotes[0]?.requiredVersion}' from remote '${d.remotes[0].name}'.`),new H(`External ${s}@${b.tag} could not be shared.`);b.action=b.remotes[0].strictVersion?"scope":"skip"}),d.action="share",c.dirty=!1,c}}var Rt;(function(r){r.COMPLETED="federation-rebuild-complete",r.ERROR="federation-rebuild-error",r.CANCELLED="federation-rebuild-cancelled"})(Rt||(Rt={}));var Co="@nf-internal";function $t(r){r.startsWith("./")&&(r=r.slice(2));let t=r.replace(/.(m|c)?js$/,"");return Co+"/"+t}function Io(r,t){return()=>{let x={imports:{}},L={};try{return i(x,L),c(x,L),u(x,L),D(x,L),ne(x,L),Promise.resolve(x)}catch(q){return Promise.reject(q)}};function i(x,L){let q=t.scopedExternalsRepo.getAll();for(let[U,B]of Object.entries(q)){let K=t.remoteInfoRepo.tryGet(U).orThrow(()=>(r.log.error(4,`[scoped][${U}] Remote name not found in cache.`),new H("Could not create ImportMap.")));R(x,K.scopeUrl,s(B,K.scopeUrl)),Object.values(B).filter(ie=>!!ie.bundle).forEach(ie=>ue(L,U,ie.bundle))}return x}function s(x,L){let q={};for(let[U,B]of Object.entries(x))q[U]=Y(L,B.file);return q}function c(x,L){let q=t.sharedExternalsRepo.getScopes({includeGlobal:!1});for(let U of q)d(x,U,L);return x}function d(x,L,q){let U=t.sharedExternalsRepo.getFromScope(L);for(let[B,K]of Object.entries(U)){let ie,ve;for(let le of K.versions){if(le.action==="scope"){for(let Me of le.remotes){let We=oe(L,Me.name,B);R(x,We,{[B]:Y(We,Me.file)}),ue(q,Me.name,Me.bundle),Me.cached=!0}continue}let Ke=oe(L,le.remotes[0].name,B),Ve=Y(Ke,le.remotes[0].file);le.remotes[0].cached=!0,le.action==="share"&&ue(q,le.remotes[0].name,le.remotes[0].bundle),le.action==="skip"&&(ie||(ie=b(K,L,B)??"NOT_AVAILABLE"),ie!=="NOT_AVAILABLE"&&(ve||(ve=oe(L,ie.remotes[0].name,B)),Ve=Y(ve,ie.remotes[0].file),ie.remotes[0].cached=!0,le.remotes[0].cached=!1)),le.remotes.forEach(Me=>{let We=oe(L,Me.name,B);R(x,We,{[B]:Ve})})}t.sharedExternalsRepo.addOrUpdate(B,K,L)}}function b(x,L,q){let U=x.versions.filter(K=>K.action==="share"),B=`${L}.${q}`;if(U.length>1&&v(B),U.length<1){if(r.strict.strictImportMap)throw r.log.error(4,`[${L}][${q}] shareScope has no override version.`),new H("Could not create ImportMap.");r.log.debug(4,`[${L}][${q}] shareScope has no override version, scoping override versions.`)}return U[0]}function v(x){if(r.strict.strictImportMap)throw r.log.error(4,`[${x}] ShareScope external has multiple shared versions.`),new H("Could not create ImportMap.");r.log.warn(4,`ShareScope external ${x} has multiple shared versions.`)}function u(x,L){let q=t.sharedExternalsRepo.getFromScope();for(let[U,B]of Object.entries(q)){for(let K of B.versions){if(K.action==="skip")continue;if(K.action==="scope"){for(let ve of K.remotes){let le=oe(de,ve.name,U);R(x,le,{[U]:Y(le,ve.file)}),ve.cached=!0,ue(L,ve.name,ve.bundle)}continue}if(x.imports[U]){p(U);continue}let ie=oe(de,K.remotes[0].name,U);S(x,{[U]:Y(ie,K.remotes[0].file)}),ue(L,K.remotes[0].name,K.remotes[0].bundle),K.remotes[0].cached=!0}t.sharedExternalsRepo.addOrUpdate(U,B)}return x}function p(x){if(r.strict.strictImportMap)throw r.log.error(4,`[${x}] Shared external has multiple shared versions.`),new H("Could not create ImportMap.");r.log.warn(4,`Singleton external ${x} has multiple shared versions.`)}function R(x,L,q){x.scopes||(x.scopes={}),x.scopes[L]||(x.scopes[L]={}),x.scopes[L]=Object.assign(x.scopes[L],q)}function S(x,L){x.imports=Object.assign(x.imports,L)}function D(x,L){let q=t.remoteInfoRepo.getAll();for(let[U,B]of Object.entries(q))P(x,U,B),ue(L,U,"mapping-or-exposed")}function P(x,L,q){for(let U of q.exposes){let B=Y(L,U.moduleName),K=Y(q.scopeUrl,U.file);x.imports[B]=K}}function ue(x,L,q){return q&&(x[L]||(x[L]=new Set),x[L].add(q)),x}function ne(x,L){return Object.entries(L).forEach(([q,U])=>{let B=oe("CHUNKS",q),K=Array.from(U).reduce((ie,ve)=>(t.sharedChunksRepo.tryGet(q,ve).ifPresent(le=>{le.forEach(Ke=>{ie[$t(Ke)]=Y(B,Ke)})}),ie),{});Object.keys(K).length>0&&R(x,B,K)}),x}function oe(x,L,q){return t.remoteInfoRepo.tryGet(L).map(U=>U.scopeUrl).orThrow(()=>(q?r.log.error(4,`[${x}][${q}][${L}] Remote name not found in cache.`):r.log.error(4,`[${x}][${L}] Remote name not found in cache.`),new H("Could not create ImportMap.")))}}function Vt(r,t){return c=>Promise.resolve(c).then(i).then(s);function i(c){return t.browser.setImportMapFn(c),r.log.debug(5,"Added import map to browser.",c),c}function s(){t.remoteInfoRepo.commit(),t.scopedExternalsRepo.commit(),t.sharedExternalsRepo.commit(),t.sharedChunksRepo.commit()}}function ko(r,t){let i=(s,c)=>{try{if(!t.remoteInfoRepo.contains(s))throw new H(`Remote '${s}' is not initialized.`);let d=t.remoteInfoRepo.tryGetModule(s,c).orThrow(new H(`Exposed module '${c}' from remote '${s}' not found in storage.`));return r.log.debug(6,`Loading initialized module '${d}'`),t.browser.importModule(d)}catch(d){return r.log.error(6,`Failed to load module ${Y(s,c)}: `,{error:d}),Promise.reject(new H(`Failed to load module ${Y(s,c)}`))}};return()=>Promise.resolve(i)}var ss=({config:r,adapters:t})=>({getRemoteEntries:$o(r,t),processRemoteEntries:So(r,t),determineSharedExternals:wo(r,t),generateImportMap:Io(r,t),commitChanges:Vt(r,t),exposeModuleLoader:ko(r,t)}),Lo=({config:r,adapters:t})=>({flow:ss({config:r,adapters:t}),adapters:t,config:r}),Oo=({flow:r,adapters:t,config:i})=>s=>r.getRemoteEntries(s).then(r.processRemoteEntries).then(r.determineSharedExternals).then(r.generateImportMap).then(r.commitChanges).then(r.exposeModuleLoader).then(c=>({config:i,adapters:t,loadRemoteModule:c}));var To=r=>({setImportMapFn:r.setImportMapFn,importModule:r.loadModuleFn});var Ln=yt(Xo()),On=yt(Sn()),Tn=yt(Xe()),xn=yt(Cn()),Nn=yt(kn()),An=()=>({isValidSemver:function(r){return(0,Ln.default)(r)!==null},isCompatible:function(r,t){return(0,On.default)(r,t)},compare:function(r,t){return(0,Tn.default)(r,t,!0)},smallestVersion:function(r){return(0,Nn.default)(r)?(0,xn.default)(r)?.raw??"0.0.0":"0.0.0"}});var Fn=()=>{let r=i=>i.ok?i.json():Promise.reject(new H(`${i.status} - ${i.statusText}`)),t=i=>s=>{let c=s instanceof Error?s.message:String(s);throw new H(`Fetch of '${i}' returned ${c}`)};return{provide:async function(i){return typeof i!="string"?Promise.resolve(i):fetch(i).then(r).catch(t(i))}}};var Pn=()=>{let r=s=>s.ok?s.json():Promise.reject(new Error(`${s.status} - ${s.statusText}`)),t=s=>c=>(c.exposes||(c.exposes=[]),c.shared||(c.shared=[]),c.url||(c.url=s),c),i=s=>c=>{let d=c instanceof Error?c.message:String(c);throw new H(`Fetch of '${s}' returned ${d}`)};return{provide:async function(s){return fetch(s).then(r).then(t(s)).catch(i(s))}}};var ye=class r{constructor(t){this.item=t}static of(t){return new r(t)}static empty(){return r.of(void 0)}isPresent(){return typeof this.item<"u"&&this.item!==null}set(t){return r.of(t)}ifPresent(t){this.isPresent()&&t(this.item)}map(t){if(!this.isPresent())return r.empty();let i=t(this.item);return i instanceof r?i:r.of(i)}orElse(t){return this.isPresent()?this.item:t}orThrow(t){if(this.isPresent())return this.item;throw typeof t=="function"?t():typeof t=="string"?new Error(t):t}get(){return this.item}};var Mn=r=>{let t=r.storage("remotes",{});r.clearStorage&&t.clear();let i=t.get()??{};return{contains:function(s){return!!i[s]},remove:function(s){return delete i[s],this},addOrUpdate:function(s,c){return i[s]=c,this},tryGet:function(s){return ye.of(i[s])},tryGetModule:function(s,c){return ye.of(i[s]?.exposes.find(d=>d.moduleName===c)).map(d=>Y(i[s].scopeUrl,d.file))},getAll:function(){return i},commit:function(){return t.set(i),this}}};var _n=r=>{let t=r.storage("scoped-externals",{});r.clearStorage&&t.clear();let i=t.get()??{};return{addExternal:function(s,c,d){return i[s]||(i[s]={}),i[s][c]=d,this},remove:function(s){return delete i[s],this},getAll:function(){return i},tryGet:function(s){return ye.of(i[s])},commit:function(){return t.set(i),this}}};var jn=r=>{let t=r.storage("shared-externals",{[de]:{}});r.clearStorage&&t.clear();let i=t.get();return{getFromScope:function(s){return{...i[s??de]}},addOrUpdate:function(s,c,d){return i[d??de]||(i[d??de]={}),i[d??de][s]=c,this},getScopes:function(s={includeGlobal:!0}){return s.includeGlobal?Object.keys(i):Object.keys(i).filter(c=>c!==de)},removeFromAllScopes:function(s){Object.values(i).forEach(c=>{let d=[];Object.entries(c).forEach(([b,v])=>{let u=[];if(v.versions.forEach((p,R)=>{let S=p.remotes.findIndex(D=>D.name===s);~S&&p.remotes.splice(S,1),p.remotes.length===0&&u.push(R)}),u.length>0){for(let p=u.length-1;p>=0;p--)v.versions.splice(u[p],1);v.dirty=!0,v.versions.length===0&&d.push(b)}}),d.forEach(b=>delete c[b])})},scopeType:function(s){switch(s){case de:case null:case void 0:return"global";case vo:return"strict";default:return"shareScope"}},tryGet:function(s,c){return ye.of(i[c??de]?.[s])},commit:function(){return t.set(i),this}}};var Dn=r=>{let t=[];return{watchRemoteBuilds:function(i){let s=new EventSource(i);s.onmessage=function(c){JSON.parse(c.data).type===Rt.COMPLETED&&(t.forEach(b=>b.close()),r.log.debug(0,"[SSE] Rebuild completed, reloading..."),r.reloadBrowserFn())},s.onerror=function(c){r.log.error(0,"[SSE] Connection error:",c)},t.push(s)},closeAll:function(){t.forEach(i=>i.close()),t.length=0}}};var Yt=(r,t)=>{try{if(typeof structuredClone=="function")return structuredClone(t)}catch{}try{return JSON.parse(JSON.stringify(t))}catch{}throw new H(`Could not parse storage entry '${String(r)}'`)};var Vn=r=>{let t=r.storage("shared-chunks",{});r.clearStorage&&t.clear();let i=t.get()??{};return{addOrReplace:function(s,c,d){return i[s]||(i[s]={}),i[s][c]=d,this},tryGet:function(s,c){return ye.of(i[s]?.[c])},commit:function(){return t.set(i),this}}};var Gn=r=>({adapters:{versionCheck:An(),manifestProvider:Fn(),remoteEntryProvider:Pn(),remoteInfoRepo:Mn(r),scopedExternalsRepo:_n(r),sharedExternalsRepo:jn(r),sharedChunksRepo:Vn(r),browser:To(r),sse:Dn(r)},config:r});var Jt=r=>(t,i={})=>(i?.override&&document.head.querySelectorAll(`script[type="${r}"]`).forEach(s=>s.remove()),document.head.appendChild(Object.assign(document.createElement("script"),{type:r,innerHTML:JSON.stringify(t)})),Promise.resolve(t));var qn=()=>({loadModuleFn:r=>import(r),setImportMapFn:Jt("importmap"),reloadBrowserFn:()=>{window.location.reload()}});var Hn=r=>{let t=qn();return{setImportMapFn:r.setImportMapFn??t.setImportMapFn,loadModuleFn:r.loadModuleFn??t.loadModuleFn,reloadBrowserFn:r.reloadBrowserFn??t.reloadBrowserFn}};var Un=r=>r?.hostRemoteEntry?typeof r.hostRemoteEntry=="string"?{hostRemoteEntry:{name:"__NF-HOST__",url:r.hostRemoteEntry}}:{hostRemoteEntry:{name:"__NF-HOST__",...r.hostRemoteEntry}}:{hostRemoteEntry:!1};var Xn={debug:()=>{},error:()=>{},warn:()=>{}};var zt={debug:0,warn:1,error:2};var Wn=(r,t)=>Object.keys(zt).filter(s=>isNaN(Number(s))).reduce((s,c)=>({...s,[c]:(d,b,v)=>{zt[c]>=zt[t]&&r[c](d,b,v)}}),{level:t});var Bn=({logger:r,logLevel:t,sse:i})=>({log:Wn(r??Xn,t??"error"),sse:!!i});var Yn=r=>(t,i)=>{globalThis[r]||(globalThis[r]={});let s=globalThis[r];s[t]||(s[t]=i);let c={get(){return Yt(t,s[t])},set(d){return s[t]=Yt(t,d),c},clear(){return s[t]=Yt(t,i),this}};return c};var Jn=r=>({storage:r.storage?r.storage(r.storageNamespace??"__NATIVE_FEDERATION__"):Yn(r.storageNamespace??"__NATIVE_FEDERATION__"),clearStorage:r.clearStorage??!1});var zn={latestSharedExternal:!1,overrideCachedRemotes:"init-only",overrideCachedRemotesIfURLMatches:!1};var Kn=r=>({strict:typeof r.strict=="boolean"?{strictRemoteEntry:r.strict,strictExternalCompatibility:r.strict,strictExternalSameVersionCompatibility:r.strict,strictExternalVersion:r.strict,strictImportMap:r.strict}:{strictRemoteEntry:r.strict?.strictRemoteEntry??!1,strictExternalCompatibility:r.strict?.strictExternalCompatibility??!1,strictExternalSameVersionCompatibility:r.strict?.strictExternalCompatibility??!1,strictExternalVersion:r.strict?.strictExternalVersion??!1,strictImportMap:r.strict?.strictImportMap??!1},profile:{...zn,...r.profile??{}}});var Zn=r=>({...Hn(r),...Un(r),...Bn(r),...Jn(r),...Kn(r)});function Qn({log:r},t){return({entry:b,actions:v})=>{let u={imports:{}};return i(b,v,u),c(b,u),r.debug(9,`[${b.name}] Processed actions:`,v),Promise.resolve(u)};function i(b,v,u){if(!b.shared)return;let p=Ne(b.url),R=new Set(["mapping-or-exposed"]);b.shared.forEach(S=>{if(!S.singleton){s(p,S.packageName,Y(p,S.outFileName),u),S?.bundle&&R.add(S?.bundle);return}if(!v[S.packageName]){r.warn(9,`[${b.name}] No action defined for shared external '${S.packageName}', skipping.`);return}if(v[S.packageName].action==="skip"){if(!S.shareScope)return;if(v[S.packageName].override){s(p,S.packageName,v[S.packageName].override,u);return}}if(S?.bundle&&R.add(S?.bundle),v[S.packageName].action==="scope"){s(p,S.packageName,Y(p,S.outFileName),u);return}if(S.shareScope){s(p,S.packageName,Y(p,S.outFileName),u);return}u.imports[S.packageName]=Y(p,S.outFileName)}),d(u,b.name,p,R)}function s(b,v,u,p){p.scopes||(p.scopes={}),p.scopes[b]||(p.scopes[b]={}),p.scopes[b][v]=u}function c(b,v){if(!b.exposes)return;let u=Ne(b.url);b.exposes.forEach(p=>{let R=Y(b.name,p.key),S=Y(u,p.outFileName);v.imports[R]=S})}function d(b,v,u,p){return Array.from(p).forEach(R=>{t.sharedChunksRepo.tryGet(v,R).ifPresent(S=>{S.forEach(D=>{s(u,$t(D),Y(u,D),b)})})}),b}}function ei(r,t){return async(c,d)=>{if(d&&i(c,d))return r.log.debug(7,`Found remote '${d}' in storage, omitting fetch.`),ye.empty();try{let b=await t.remoteEntryProvider.provide(c);if(r.log.debug(7,`[${b.name}] Fetched from '${b.url}', exposing: ${JSON.stringify(b.exposes)}`),d&&b.name!==d){let v=`Fetched remote '${b.name}' does not match requested '${d}'.`;if(r.strict.strictRemoteEntry)throw r.log.error(7,v),new H("Could not fetch remote entry");r.log.warn(7,v+" Omitting expected name.")}return t.remoteInfoRepo.contains(b.name)&&(b.override=!0,r.log.debug(7,`Overriding existing remote '${d}' with '${c}'.`)),ye.of(s(b))}catch(b){return r.log.error(7,`[${d??"unknown"}] Could not fetch remoteEntry from ${c}.`,b),Promise.reject(new H(`[${d??c}] Could not fetch remoteEntry.`))}};function i(c,d){return t.remoteInfoRepo.tryGet(d).map(b=>r.profile.overrideCachedRemotes!=="always"||!r.profile.overrideCachedRemotesIfURLMatches&&c===Y(b.scopeUrl,"remoteEntry.json")).orElse(!1)}function s(c){return r.sse&&(c.buildNotificationsEndpoint?(t.sse.watchRemoteBuilds(Y(Ne(c.url),c.buildNotificationsEndpoint)),r.log.debug(7,`Registered SSE endpoint of remote '${c.name}' `)):r.log.debug(7,`Remote ${c.name} has no defined 'buildNotificationsEndpoint'`)),c}}function ti(r,t){return u=>{try{u?.override&&i(u),s(u);let p=c(u);return d(u),Promise.resolve({entry:u,actions:p})}catch(p){return Promise.reject(p)}};function i(u){t.remoteInfoRepo.remove(u.name),t.scopedExternalsRepo.remove(u.name),t.sharedExternalsRepo.removeFromAllScopes(u.name)}function s({name:u,url:p,exposes:R}){t.remoteInfoRepo.addOrUpdate(u,{scopeUrl:Ne(p),exposes:Object.values(R??[]).map(S=>({moduleName:S.key,file:S.outFileName}))})}function c(u){let p={};return u.shared.forEach(R=>{if(!R.version||!t.versionCheck.isValidSemver(R.version)){let S=`[${u.name}][${R.packageName}] Version '${R.version}' is not a valid version.`;if(r.strict.strictExternalVersion)throw r.log.error(8,S),new H(`Could not process remote '${u.name}'`);r.log.warn(8,S)}if(R.singleton){let{action:S,sharedVersion:D}=b(u.name,R);p[R.packageName]={action:S},S==="skip"&&R.shareScope&&D?.remotes[0]?.file&&(p[R.packageName].override=t.remoteInfoRepo.tryGet(D.remotes[0].name).map(P=>Y(P.scopeUrl,D.remotes[0].file)).orThrow(()=>(r.log.error(8,`[${R.shareScope??de}][${u.name}][${R.packageName}@${R.version}][override] Remote name not found in cache.`),new H(`Could not find override url from remote ${D.remotes[0].name}`))))}else v(u.name,R)}),p}function d(u){u.chunks&&(r.log.debug(8,`Adding chunks for remote "${u.name}", bundles: [${Object.keys(u.chunks).join(", ")}]`),Object.entries(u.chunks).forEach(([p,R])=>{t.sharedChunksRepo.addOrReplace(u.name,p,R)}))}function b(u,p){let R=t.sharedExternalsRepo.tryGet(p.packageName,p.shareScope).orElse({dirty:!1,versions:[]}),S="skip",D=p.version??t.versionCheck.smallestVersion(p.requiredVersion),P={file:p.outFileName,strictVersion:p.strictVersion,requiredVersion:p.requiredVersion||D,name:u,bundle:p.bundle,cached:!1};t.sharedExternalsRepo.scopeType(p.shareScope)==="strict"&&(P.requiredVersion=D,S="share");let ne=R.versions.find(L=>L.action==="share"),oe=!ne||t.versionCheck.isCompatible(ne.tag,P.requiredVersion);if(S==="skip"&&!oe&&P.strictVersion){S="scope";let L=`[${p.shareScope??de}][${u}] ${p.packageName}@${p.version} Is not compatible with existing ${p.packageName}@${ne.tag} requiredRange '${ne.remotes[0]?.requiredVersion}'`;if(r.strict.strictExternalCompatibility)throw r.log.error(8,L),new H(`Could not process remote '${u}'`);r.log.warn(8,L)}let x=R.versions.find(L=>L.tag===D);if(x){if(P.strictVersion&&x.remotes[0].requiredVersion!==P.requiredVersion){let L=`[${u}][${p.packageName}@${p.version}] Required version '${P.requiredVersion}' does not match existing '${x.remotes[0].requiredVersion}'`;if(r.strict.strictExternalCompatibility)throw r.log.error(8,L),new H(`Could not process remote '${u}'`);r.log.warn(8,L)}x.remotes.push(P)}else ne||(S="share"),P.cached=S!=="skip",R.versions.push({tag:D,action:S,host:!1,remotes:[P]});return t.sharedExternalsRepo.addOrUpdate(p.packageName,{dirty:R.dirty,versions:R.versions.sort((L,q)=>t.versionCheck.compare(q.tag,L.tag))},p.shareScope),{action:S,sharedVersion:ne}}function v(u,p){t.scopedExternalsRepo.addExternal(u,p.packageName,{tag:p.version??t.versionCheck.smallestVersion(p.requiredVersion),file:p.outFileName,bundle:p.bundle})}}var va=({config:r,adapters:t})=>({getRemoteEntry:ei(r,t),updateCache:ti(r,t),convertToImportMap:Qn(r,t),commitChanges:Vt(r,t)}),ri=({config:r,adapters:t})=>({flow:va({config:r,adapters:t}),adapters:t,config:r}),oi=({flow:r,adapters:t,config:i})=>{let s=async d=>r.updateCache(d).then(r.convertToImportMap).then(r.commitChanges),c=(d,b)=>r.getRemoteEntry(d,b).then(v=>v.map(s).orElse(Promise.resolve())).then(()=>({config:i,adapters:t,initRemoteEntry:c}));return c};var ni=(r,t={})=>{let{adapters:i,config:s}=Gn(Zn(t)),c=v=>s.log.debug(0,v,{remotes:{...i.remoteInfoRepo.getAll()},"shared-externals":i.sharedExternalsRepo.getScopes({includeGlobal:!0}).reduce((u,p)=>({...u,[p]:i.sharedExternalsRepo.getFromScope(p)}),{}),"scoped-externals":i.scopedExternalsRepo.getAll()}),d=Oo(Lo({adapters:i,config:s})),b=oi(ri({config:s,adapters:i}));return d(r).then(({loadRemoteModule:v})=>{let u={config:s,adapters:i,loadRemoteModule:v,as:()=>({loadRemoteModule:v,load:v}),load:v},p=async(R,S)=>b(R,S).catch(D=>(c(`[dynamic-init][${S??R}] STATE DUMP`),s.strict.strictRemoteEntry?Promise.reject(D):(console.warn("Failed to initialize remote entry, continuing anyway."),Promise.resolve()))).then(()=>({...u,initRemoteEntry:p}));return{...u,initRemoteEntry:p}}).catch(v=>(c("[init] STATE DUMP"),Promise.reject(v)))};var ii={debug:(r,t,i)=>i?console.log(`[DEBUG][${r}]: ${t}`,i):console.log(`[DEBUG][${r}]: ${t}`),error:(r,t,i)=>i?console.error(`[NF][${r}]: ${t}`,i):console.error(`[NF][${r}]: ${t}`),warn:(r,t,i)=>i?console.warn(`[NF][${r}]: ${t}`,i):console.warn(`[NF][${r}]: ${t}`)};var si=(r={shimMode:!1})=>({loadModuleFn:t=>importShim(t),setImportMapFn:Jt(r.shimMode?"importmap-shim":"importmap"),reloadBrowserFn:()=>{window.location.reload()}});(async()=>{let r,t=document.querySelector('meta[name="mfe-feed"]')?.getAttribute("content");t&&(r=t);let i=document.getElementById("mfe-manifest");if(!r&&i?.textContent&&(r=JSON.parse(i.textContent)),!r){console.error(`Please provide a manifest in the HTML file:
12
+ `,E+=`${ge}:${fe==="global"?`importShim._i.get(impt${F})||impt${F++}`:`impt${F++}`},`}$+=`${cr}i=await WebAssembly.instantiate(importShim._s[${O}],{${E}});importShim._i.set($_ns,i);`,E="";for(let{name:o,kind:fe}of C)$+=`export let ${o}=i.exports['${o}'];`,fe==="global"&&($+=`try{${o}=${o}.value}catch(_){${o}=undefined}`),E+=`${o},`;$+=`if(h)h.accept(m=>({${E}}=m))`}else if(I==="json")$=`${cr}j=JSON.parse(${JSON.stringify($)});export{j as default};if(h)h.accept(m=>j=m.default)`;else if(I==="css")$=`${cr}s=h&&h.data.s||new CSSStyleSheet();s.replaceSync(${JSON.stringify($.replace(Ri,(C,_="",O,F)=>`url(${_}${jr(O||F,y)}${_})`))});if(h){h.data.s=s;h.accept(()=>{})}export default s`;else if(I==="ts"){rt||await oo();let C=rt($,y);$=C===void 0?$:C}return{url:y,source:$,type:I}},lr=(n,f,h,g)=>{if(g&&ft[n]){let $=0;for(;ft[n+"#"+ ++$];);n+="#"+$}let y=ft[n];return y||(ft[n]=y={u:n,r:g?n:void 0,f:void 0,S:g,L:void 0,a:void 0,d:void 0,b:void 0,s:void 0,n:!1,N:!1,t:null,m:null},y.f=(async()=>{y.S===void 0&&({url:y.r,source:y.S,type:y.t}=await(ur[n]||io(n,f,h)),!y.n&&y.t!=="js"&&!P&&(y.t==="css"&&!et||y.t==="json"&&!Qe||y.t==="wasm"&&!It&&!at||y.t==="ts")&&(y.n=!0));try{y.a=di(y.S,y.u)}catch($){it($),y.a=[[],[],!1]}return y})(),y)},vi=n=>Error(`${n} feature must be enabled via <script type="esms-options">{ "polyfillEnable": ["${n}"] }<\/script>`),so=(n,f)=>{n.L||(n.L=n.f.then(()=>{let h=f;n.d=n.a[0].map(({n:g,d:y,t:$,a:I,se:C})=>{let _=$>=4,O=_&&$<6;if(_){if(!P&&(O?!Ge:!Qt))throw vi(O?"wasm-module-sources":"import-defer");(!O||!at)&&(n.n=!0)}let F;if(I>0&&!P&&Ve){let fe=n.S.slice(I,C-1);fe.includes("json")?Qe?F="":n.n=!0:fe.includes("css")&&(et?F="":n.n=!0)}if(y!==-1||!g)return;let E=lt(g,n.r||n.u);if((E.n||K)&&(n.n=!0),(y>=0||E.N)&&(n.N=!0),y!==-1)return;if(Oe&&Oe(E.r)&&!O)return{l:{b:E.r},s:!1};h.integrity&&(h={...h,integrity:void 0});let o={l:lr(E.r,h,n.r,F),s:O};return F===""&&(o.l.b=o.l.u),o.s||so(o.l,f),o}).filter(g=>g)}))},dt=()=>{for(let n of document.querySelectorAll(P?"link[rel=modulepreload-shim]":"link[rel=modulepreload]"))n.ep||Eo(n);for(let n of document.querySelectorAll("script[type]"))n.type==="importmap"+(P?"-shim":"")?n.ep||ho(n):n.type==="module"+(P?"-shim":"")&&(tt=!1,n.ep||go(n))},Nt=n=>{let f={};return n.integrity&&(f.integrity=n.integrity),n.referrerPolicy&&(f.referrerPolicy=n.referrerPolicy),n.fetchPriority&&(f.priority=n.fetchPriority),n.crossOrigin==="use-credentials"?f.credentials="include":n.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f},fr=Promise.resolve(),ao=!1,At=1,Ft=n=>{if(n===void 0){if(ao)return;ao=!0,At--}--At===0&&!ie&&(P||!Te)&&(document.removeEventListener("DOMContentLoaded",lo),document.dispatchEvent(new Event("DOMContentLoaded")))},pr=1,co=()=>{--pr===0&&!ie&&(P||!Te)&&(window.removeEventListener("load",fo),window.dispatchEvent(new Event("load")))},lo=async()=>{await Ue,Ft()},fo=async()=>{await Ue,Ft(),co()};c&&(document.addEventListener("DOMContentLoaded",lo),window.addEventListener("load",fo));let po=async()=>{await Ue,dt(),document.readyState==="complete"&&mr()},ht=1,mr=()=>{--ht===0&&(Ft(),!ie&&(P||!Te)&&(document.removeEventListener("readystatechange",po),document.dispatchEvent(new Event("readystatechange"))))},mo=n=>n.nextSibling||n.parentNode&&mo(n.parentNode),uo=(n,f)=>n.ep||!f&&(!n.src&&!n.innerHTML||!mo(n))||n.getAttribute("noshim")!==null||!(n.ep=!0),ho=(n,f=ht>0)=>{if(!uo(n,f)){if(n.src){if(!P)return;Kr=!0}mt=mt.then(async()=>{Fe=Dr(n.src?await(await ro(n.src,Nt(n))).json():JSON.parse(n.innerHTML),n.src||we,Fe)}).catch(h=>{h instanceof SyntaxError&&(h=new Error(`Unable to parse import map ${h.message} in: ${n.src||n.innerHTML}`)),it(h)}),!pt&&tt&&mt.then(()=>pt=Fe),!tt&&!nr&&(nr=!0,!P&&Te&&!kt&&(Te=!1,c&&Zr())),tt=!1}},go=(n,f=ht>0)=>{if(uo(n,f))return;let h=n.getAttribute("async")===null&&ht>0,g=At>0,y=pr>0;y&&pr++,h&&ht++,g&&At++;let $,I=n.lang==="ts";I&&!n.src?$=Promise.resolve(rt||oo()).then(()=>{let C=rt(n.innerHTML,we);return C!==void 0&&(Mr(),ir=!1),Tt(n.src||we,we,Nt(n),C===void 0?n.innerHTML:C,!P&&C===void 0,h&&fr,"ts")}).catch(it):$=Tt(n.src||we,we,Nt(n),n.src?void 0:n.innerHTML,!P,h&&fr,I?"ts":void 0).catch(it),ie||$.then(()=>n.dispatchEvent(new Event("load"))),h&&!I&&(fr=$.then(mr)),g&&$.then(Ft),y&&$.then(co)},ur={},Eo=n=>{n.ep=!0,Ue.then(()=>{Te&&!P||ur[n.href]||(ur[n.href]=io(n.href,Nt(n)))})}})();var H=class extends Error{constructor(t,i){super(t,i),this.name="NFError"}};function Y(r,t){return r=r.endsWith("/")?r.slice(0,-1):r,t=t.startsWith("/")?t.slice(1):t,`${r}/${t}`}function Ne(r){if(!r)return"";let t=r.split("/");return(t[t.length-1]===""||t[t.length-1].includes("."))&&t.pop(),t.length<1?"":`${t.join("/")}/`}function $o(r,t){return(u={})=>t.manifestProvider.provide(u).catch(p=>(r.log.error(1,"Could not fetch manifest.",p),Promise.reject(new H("Failed to fetch manifest")))).then(i).then(s).then(b).then(v);function i(u){if(!r.hostRemoteEntry)return u;let{name:p,url:R,cacheTag:S}=r.hostRemoteEntry,D=S?`${R}?cacheTag=${S}`:R;return{...u,[p]:D}}async function s(u){let p=Object.entries(u).map(([R,S])=>c(R,S));return Promise.all(p)}async function c(u,p){let R=!1,S=!1;if(t.remoteInfoRepo.tryGet(u).ifPresent(D=>{r.profile.overrideCachedRemotes!=="never"&&(p!==Y(D.scopeUrl,"remoteEntry.json")||r.profile.overrideCachedRemotesIfURLMatches)?(r.log.debug(1,`Overriding existing remote '${u}' with '${p}'.`),R=!0):(r.log.debug(1,`Found remote '${u}' in storage, omitting fetch.`),S=!0)}),S)return!1;try{let D=await t.remoteEntryProvider.provide(p);return r.log.debug(1,`Fetched '${D.name}' from '${D.url}', exposing: ${JSON.stringify(D.exposes)}`),d(D,u,R)}catch(D){return r.strict.strictRemoteEntry?(r.log.error(1,`Could not fetch remote '${u}'.`,D),Promise.reject(new H(`Could not fetch remote '${u}'`))):(r.log.warn(1,`Could not fetch remote '${u}'. skipping init.`,D),Promise.resolve(!1))}}function d(u,p,R){if(R&&(u.override=R),r.hostRemoteEntry&&p===r.hostRemoteEntry.name&&(u.host=!0,u.name=r.hostRemoteEntry.name),u.name!==p){let S=`Fetched remote '${u.name}' does not match requested '${p}'.`;if(r.strict.strictRemoteEntry)throw new H(S);r.log.warn(1,`${S} Omitting expected name.`)}return u}function b(u){return u.filter(p=>p!==!1)}function v(u){return r.sse&&u.forEach(p=>{if(p.buildNotificationsEndpoint){t.sse.watchRemoteBuilds(Y(Ne(p.url),p.buildNotificationsEndpoint)),r.log.debug(1,`Registered SSE endpoint of remote '${p.name}' `);return}r.log.debug(1,`Remote ${p.name} has no defined 'buildNotificationsEndpoint'`)}),u}}function So(r,t){return u=>{try{return u.forEach(p=>{p?.override&&i(p),s(p),c(p),d(p)}),Promise.resolve(u)}catch(p){return Promise.reject(p)}};function i(u){t.remoteInfoRepo.remove(u.name),t.scopedExternalsRepo.remove(u.name),t.sharedExternalsRepo.removeFromAllScopes(u.name)}function s({name:u,url:p,exposes:R}){t.remoteInfoRepo.addOrUpdate(u,{scopeUrl:Ne(p),exposes:Object.values(R??[]).map(S=>({moduleName:S.key,file:S.outFileName}))})}function c(u){u.shared.forEach(p=>{if(!p.version||!t.versionCheck.isValidSemver(p.version)){let R=`[${u.name}][${p.packageName}] Version '${p.version}' is not a valid version.`;if(r.strict.strictExternalVersion)throw r.log.error(2,R),new H(`Could not process remote '${u.name}'`);r.log.warn(2,R)}p.singleton?b(u.name,p,u):v(u.name,p)})}function d(u){u.chunks&&(r.log.debug(2,`Adding chunks for remote "${u.name}", bundles: [${Object.keys(u.chunks).join(", ")}]`),Object.entries(u.chunks).forEach(([p,R])=>{t.sharedChunksRepo.addOrReplace(u.name,p,R)}))}function b(u,p,R){let S="skip",D=p.version??t.versionCheck.smallestVersion(p.requiredVersion),P={file:p.outFileName,name:u,bundle:p.bundle,strictVersion:p.strictVersion,cached:!1,requiredVersion:p.requiredVersion||D},ue=t.sharedExternalsRepo.scopeType(p.shareScope);ue==="strict"&&(S="share",P.requiredVersion=D);let ne=t.sharedExternalsRepo.tryGet(p.packageName,p.shareScope).orElse({dirty:!1,versions:[]}),oe=ne.versions.find(L=>L.tag===p.version),x=ne.dirty;if(oe){if(P.strictVersion&&oe.remotes[0].requiredVersion!==P.requiredVersion){let L=`[${u}][${p.packageName}@${p.version}] Required version-range '${P.requiredVersion}' does not match cached version-range '${oe.remotes[0].requiredVersion}'`;if(r.strict.strictExternalSameVersionCompatibility)throw r.log.error(2,L),new H(`Could not process remote '${R.name}'`);r.log.warn(2,L)}!oe.host&&R?.host?(oe.host=!0,oe.remotes.unshift(P)):oe.remotes.push(P)}else ue!=="strict"&&(x=!0),ne.versions.push({tag:D,action:S,host:!!R?.host,remotes:[P]});t.sharedExternalsRepo.addOrUpdate(p.packageName,{dirty:x,versions:ne.versions.sort((L,q)=>t.versionCheck.compare(q.tag,L.tag))},p.shareScope)}function v(u,p){t.scopedExternalsRepo.addExternal(u,p.packageName,{tag:p.version??t.versionCheck.smallestVersion(p.requiredVersion),file:p.outFileName,bundle:p.bundle})}}var de="__GLOBAL__",vo="strict";function wo(r,t){return()=>{for(let s of t.sharedExternalsRepo.getScopes()){let c=t.sharedExternalsRepo.getFromScope(s);try{Object.entries(c).filter(([d,b])=>b.dirty).forEach(([d,b])=>t.sharedExternalsRepo.addOrUpdate(d,i(d,b),s))}catch(d){return r.log.error(3,`[${s??de}] failed to determine shared externals.`,{sharedExternals:c,error:d}),Promise.reject(new H(`Could not determine shared externals in scope ${s}.`,d))}}return Promise.resolve()};function i(s,c){if(c.versions.length===1)return c.versions[0].action="share",c.dirty=!1,c;let d=c.versions.find(b=>b.host);if(!d&&r.profile.latestSharedExternal&&(d=c.versions[0]),!d){let b=Number.MAX_VALUE;c.versions.forEach(v=>{let u=c.versions.filter(p=>!p.remotes[0].cached&&p.remotes[0].strictVersion&&!t.versionCheck.isCompatible(v.tag,p.remotes[0].requiredVersion)).length;u<b&&(b=u,d=v)})}if(!d)throw new H(`[${s}] Could not determine shared version!`);return c.versions.forEach(b=>{if(t.versionCheck.isCompatible(d.tag,b.remotes[0].requiredVersion)){b.action="skip";return}if(r.strict.strictExternalCompatibility&&b.remotes[0].strictVersion)throw r.log.error(3,`[${b.remotes[0].name}][${s}@${b.tag}] Is not compatible with requiredRange '${d.remotes[0]?.requiredVersion}' from remote '${d.remotes[0].name}'.`),new H(`External ${s}@${b.tag} could not be shared.`);b.action=b.remotes[0].strictVersion?"scope":"skip"}),d.action="share",c.dirty=!1,c}}var Rt;(function(r){r.COMPLETED="federation-rebuild-complete",r.ERROR="federation-rebuild-error",r.CANCELLED="federation-rebuild-cancelled"})(Rt||(Rt={}));var Co="@nf-internal";function $t(r){r.startsWith("./")&&(r=r.slice(2));let t=r.replace(/.(m|c)?js$/,"");return Co+"/"+t}function Io(r,t){return()=>{let x={imports:{}},L={};try{return i(x,L),c(x,L),u(x,L),D(x,L),ne(x,L),Promise.resolve(x)}catch(q){return Promise.reject(q)}};function i(x,L){let q=t.scopedExternalsRepo.getAll();for(let[U,B]of Object.entries(q)){let K=t.remoteInfoRepo.tryGet(U).orThrow(()=>(r.log.error(4,`[scoped][${U}] Remote name not found in cache.`),new H("Could not create ImportMap.")));R(x,K.scopeUrl,s(B,K.scopeUrl)),Object.values(B).filter(ie=>!!ie.bundle).forEach(ie=>ue(L,U,ie.bundle))}return x}function s(x,L){let q={};for(let[U,B]of Object.entries(x))q[U]=Y(L,B.file);return q}function c(x,L){let q=t.sharedExternalsRepo.getScopes({includeGlobal:!1});for(let U of q)d(x,U,L);return x}function d(x,L,q){let U=t.sharedExternalsRepo.getFromScope(L);for(let[B,K]of Object.entries(U)){let ie,ve;for(let le of K.versions){if(le.action==="scope"){for(let Me of le.remotes){let We=oe(L,Me.name,B);R(x,We,{[B]:Y(We,Me.file)}),ue(q,Me.name,Me.bundle),Me.cached=!0}continue}let Ke=oe(L,le.remotes[0].name,B),Ve=Y(Ke,le.remotes[0].file);le.remotes[0].cached=!0,le.action==="share"&&ue(q,le.remotes[0].name,le.remotes[0].bundle),le.action==="skip"&&(ie||(ie=b(K,L,B)??"NOT_AVAILABLE"),ie!=="NOT_AVAILABLE"&&(ve||(ve=oe(L,ie.remotes[0].name,B)),Ve=Y(ve,ie.remotes[0].file),ie.remotes[0].cached=!0,le.remotes[0].cached=!1)),le.remotes.forEach(Me=>{let We=oe(L,Me.name,B);R(x,We,{[B]:Ve})})}t.sharedExternalsRepo.addOrUpdate(B,K,L)}}function b(x,L,q){let U=x.versions.filter(K=>K.action==="share"),B=`${L}.${q}`;if(U.length>1&&v(B),U.length<1){if(r.strict.strictImportMap)throw r.log.error(4,`[${L}][${q}] shareScope has no override version.`),new H("Could not create ImportMap.");r.log.debug(4,`[${L}][${q}] shareScope has no override version, scoping override versions.`)}return U[0]}function v(x){if(r.strict.strictImportMap)throw r.log.error(4,`[${x}] ShareScope external has multiple shared versions.`),new H("Could not create ImportMap.");r.log.warn(4,`ShareScope external ${x} has multiple shared versions.`)}function u(x,L){let q=t.sharedExternalsRepo.getFromScope();for(let[U,B]of Object.entries(q)){for(let K of B.versions){if(K.action==="skip")continue;if(K.action==="scope"){for(let ve of K.remotes){let le=oe(de,ve.name,U);R(x,le,{[U]:Y(le,ve.file)}),ve.cached=!0,ue(L,ve.name,ve.bundle)}continue}if(x.imports[U]){p(U);continue}let ie=oe(de,K.remotes[0].name,U);S(x,{[U]:Y(ie,K.remotes[0].file)}),ue(L,K.remotes[0].name,K.remotes[0].bundle),K.remotes[0].cached=!0}t.sharedExternalsRepo.addOrUpdate(U,B)}return x}function p(x){if(r.strict.strictImportMap)throw r.log.error(4,`[${x}] Shared external has multiple shared versions.`),new H("Could not create ImportMap.");r.log.warn(4,`Singleton external ${x} has multiple shared versions.`)}function R(x,L,q){x.scopes||(x.scopes={}),x.scopes[L]||(x.scopes[L]={}),x.scopes[L]=Object.assign(x.scopes[L],q)}function S(x,L){x.imports=Object.assign(x.imports,L)}function D(x,L){let q=t.remoteInfoRepo.getAll();for(let[U,B]of Object.entries(q))P(x,U,B),ue(L,U,"mapping-or-exposed")}function P(x,L,q){for(let U of q.exposes){let B=Y(L,U.moduleName),K=Y(q.scopeUrl,U.file);x.imports[B]=K}}function ue(x,L,q){return q&&(x[L]||(x[L]=new Set),x[L].add(q)),x}function ne(x,L){return Object.entries(L).forEach(([q,U])=>{let B=oe("CHUNKS",q),K=Array.from(U).reduce((ie,ve)=>(t.sharedChunksRepo.tryGet(q,ve).ifPresent(le=>{le.forEach(Ke=>{ie[$t(Ke)]=Y(B,Ke)})}),ie),{});Object.keys(K).length>0&&R(x,B,K)}),x}function oe(x,L,q){return t.remoteInfoRepo.tryGet(L).map(U=>U.scopeUrl).orThrow(()=>(q?r.log.error(4,`[${x}][${q}][${L}] Remote name not found in cache.`):r.log.error(4,`[${x}][${L}] Remote name not found in cache.`),new H("Could not create ImportMap.")))}}function Vt(r,t){return c=>Promise.resolve(c).then(i).then(s);function i(c){return t.browser.setImportMapFn(c),r.log.debug(5,"Added import map to browser.",c),c}function s(){t.remoteInfoRepo.commit(),t.scopedExternalsRepo.commit(),t.sharedExternalsRepo.commit(),t.sharedChunksRepo.commit()}}function ko(r,t){let i=(s,c)=>{try{if(!t.remoteInfoRepo.contains(s))throw new H(`Remote '${s}' is not initialized.`);let d=t.remoteInfoRepo.tryGetModule(s,c).orThrow(new H(`Exposed module '${c}' from remote '${s}' not found in storage.`));return r.log.debug(6,`Loading initialized module '${d}'`),t.browser.importModule(d)}catch(d){return r.log.error(6,`Failed to load module ${Y(s,c)}: `,{error:d}),Promise.reject(new H(`Failed to load module ${Y(s,c)}`))}};return()=>Promise.resolve(i)}var ss=({config:r,adapters:t})=>({getRemoteEntries:$o(r,t),processRemoteEntries:So(r,t),determineSharedExternals:wo(r,t),generateImportMap:Io(r,t),commitChanges:Vt(r,t),exposeModuleLoader:ko(r,t)}),Lo=({config:r,adapters:t})=>({flow:ss({config:r,adapters:t}),adapters:t,config:r}),Oo=({flow:r,adapters:t,config:i})=>s=>r.getRemoteEntries(s).then(r.processRemoteEntries).then(r.determineSharedExternals).then(r.generateImportMap).then(r.commitChanges).then(r.exposeModuleLoader).then(c=>({config:i,adapters:t,loadRemoteModule:c}));var To=r=>({setImportMapFn:r.setImportMapFn,importModule:r.loadModuleFn});var Ln=yt(Xo()),On=yt(Sn()),Tn=yt(Xe()),xn=yt(Cn()),Nn=yt(kn()),An=()=>({isValidSemver:function(r){return(0,Ln.default)(r)!==null},isCompatible:function(r,t){return(0,On.default)(r,t)},compare:function(r,t){return(0,Tn.default)(r,t,!0)},smallestVersion:function(r){return(0,Nn.default)(r)?(0,xn.default)(r)?.raw??"0.0.0":"0.0.0"}});var Fn=()=>{let r=i=>i.ok?i.json():Promise.reject(new H(`${i.status} - ${i.statusText}`)),t=i=>s=>{let c=s instanceof Error?s.message:String(s);throw new H(`Fetch of '${i}' returned ${c}`)};return{provide:async function(i){return typeof i!="string"?Promise.resolve(i):fetch(i).then(r).catch(t(i))}}};var Pn=()=>{let r=s=>s.ok?s.json():Promise.reject(new Error(`${s.status} - ${s.statusText}`)),t=s=>c=>(c.exposes||(c.exposes=[]),c.shared||(c.shared=[]),c.url||(c.url=s),c),i=s=>c=>{let d=c instanceof Error?c.message:String(c);throw new H(`Fetch of '${s}' returned ${d}`)};return{provide:async function(s){return fetch(s).then(r).then(t(s)).catch(i(s))}}};var ye=class r{constructor(t){this.item=t}item;static of(t){return new r(t)}static empty(){return r.of(void 0)}isPresent(){return typeof this.item<"u"&&this.item!==null}set(t){return r.of(t)}ifPresent(t){this.isPresent()&&t(this.item)}map(t){if(!this.isPresent())return r.empty();let i=t(this.item);return i instanceof r?i:r.of(i)}orElse(t){return this.isPresent()?this.item:t}orThrow(t){if(this.isPresent())return this.item;throw typeof t=="function"?t():typeof t=="string"?new Error(t):t}get(){return this.item}};var Mn=r=>{let t=r.storage("remotes",{});r.clearStorage&&t.clear();let i=t.get()??{};return{contains:function(s){return!!i[s]},remove:function(s){return delete i[s],this},addOrUpdate:function(s,c){return i[s]=c,this},tryGet:function(s){return ye.of(i[s])},tryGetModule:function(s,c){return ye.of(i[s]?.exposes.find(d=>d.moduleName===c)).map(d=>Y(i[s].scopeUrl,d.file))},getAll:function(){return i},commit:function(){return t.set(i),this}}};var _n=r=>{let t=r.storage("scoped-externals",{});r.clearStorage&&t.clear();let i=t.get()??{};return{addExternal:function(s,c,d){return i[s]||(i[s]={}),i[s][c]=d,this},remove:function(s){return delete i[s],this},getAll:function(){return i},tryGet:function(s){return ye.of(i[s])},commit:function(){return t.set(i),this}}};var jn=r=>{let t=r.storage("shared-externals",{[de]:{}});r.clearStorage&&t.clear();let i=t.get();return{getFromScope:function(s){return{...i[s??de]}},addOrUpdate:function(s,c,d){return i[d??de]||(i[d??de]={}),i[d??de][s]=c,this},getScopes:function(s={includeGlobal:!0}){return s.includeGlobal?Object.keys(i):Object.keys(i).filter(c=>c!==de)},removeFromAllScopes:function(s){Object.values(i).forEach(c=>{let d=[];Object.entries(c).forEach(([b,v])=>{let u=[];if(v.versions.forEach((p,R)=>{let S=p.remotes.findIndex(D=>D.name===s);~S&&p.remotes.splice(S,1),p.remotes.length===0&&u.push(R)}),u.length>0){for(let p=u.length-1;p>=0;p--)v.versions.splice(u[p],1);v.dirty=!0,v.versions.length===0&&d.push(b)}}),d.forEach(b=>delete c[b])})},scopeType:function(s){switch(s){case de:case null:case void 0:return"global";case vo:return"strict";default:return"shareScope"}},tryGet:function(s,c){return ye.of(i[c??de]?.[s])},commit:function(){return t.set(i),this}}};var Dn=r=>{let t=[];return{watchRemoteBuilds:function(i){let s=new EventSource(i);s.onmessage=function(c){JSON.parse(c.data).type===Rt.COMPLETED&&(t.forEach(b=>b.close()),r.log.debug(0,"[SSE] Rebuild completed, reloading..."),r.reloadBrowserFn())},s.onerror=function(c){r.log.error(0,"[SSE] Connection error:",c)},t.push(s)},closeAll:function(){t.forEach(i=>i.close()),t.length=0}}};var Yt=(r,t)=>{try{if(typeof structuredClone=="function")return structuredClone(t)}catch{}try{return JSON.parse(JSON.stringify(t))}catch{}throw new H(`Could not parse storage entry '${String(r)}'`)};var Vn=r=>{let t=r.storage("shared-chunks",{});r.clearStorage&&t.clear();let i=t.get()??{};return{addOrReplace:function(s,c,d){return i[s]||(i[s]={}),i[s][c]=d,this},tryGet:function(s,c){return ye.of(i[s]?.[c])},commit:function(){return t.set(i),this}}};var Gn=r=>({adapters:{versionCheck:An(),manifestProvider:Fn(),remoteEntryProvider:Pn(),remoteInfoRepo:Mn(r),scopedExternalsRepo:_n(r),sharedExternalsRepo:jn(r),sharedChunksRepo:Vn(r),browser:To(r),sse:Dn(r)},config:r});var Jt=r=>(t,i={})=>(i?.override&&document.head.querySelectorAll(`script[type="${r}"]`).forEach(s=>s.remove()),document.head.appendChild(Object.assign(document.createElement("script"),{type:r,innerHTML:JSON.stringify(t)})),Promise.resolve(t));var qn=()=>({loadModuleFn:r=>import(r),setImportMapFn:Jt("importmap"),reloadBrowserFn:()=>{window.location.reload()}});var Hn=r=>{let t=qn();return{setImportMapFn:r.setImportMapFn??t.setImportMapFn,loadModuleFn:r.loadModuleFn??t.loadModuleFn,reloadBrowserFn:r.reloadBrowserFn??t.reloadBrowserFn}};var Un=r=>r?.hostRemoteEntry?typeof r.hostRemoteEntry=="string"?{hostRemoteEntry:{name:"__NF-HOST__",url:r.hostRemoteEntry}}:{hostRemoteEntry:{name:"__NF-HOST__",...r.hostRemoteEntry}}:{hostRemoteEntry:!1};var Xn={debug:()=>{},error:()=>{},warn:()=>{}};var zt={debug:0,warn:1,error:2};var Wn=(r,t)=>Object.keys(zt).filter(s=>isNaN(Number(s))).reduce((s,c)=>({...s,[c]:(d,b,v)=>{zt[c]>=zt[t]&&r[c](d,b,v)}}),{level:t});var Bn=({logger:r,logLevel:t,sse:i})=>({log:Wn(r??Xn,t??"error"),sse:!!i});var Yn=r=>(t,i)=>{globalThis[r]||(globalThis[r]={});let s=globalThis[r];s[t]||(s[t]=i);let c={get(){return Yt(t,s[t])},set(d){return s[t]=Yt(t,d),c},clear(){return s[t]=Yt(t,i),this}};return c};var Jn=r=>({storage:r.storage?r.storage(r.storageNamespace??"__NATIVE_FEDERATION__"):Yn(r.storageNamespace??"__NATIVE_FEDERATION__"),clearStorage:r.clearStorage??!1});var zn={latestSharedExternal:!1,overrideCachedRemotes:"init-only",overrideCachedRemotesIfURLMatches:!1};var Kn=r=>({strict:typeof r.strict=="boolean"?{strictRemoteEntry:r.strict,strictExternalCompatibility:r.strict,strictExternalSameVersionCompatibility:r.strict,strictExternalVersion:r.strict,strictImportMap:r.strict}:{strictRemoteEntry:r.strict?.strictRemoteEntry??!1,strictExternalCompatibility:r.strict?.strictExternalCompatibility??!1,strictExternalSameVersionCompatibility:r.strict?.strictExternalCompatibility??!1,strictExternalVersion:r.strict?.strictExternalVersion??!1,strictImportMap:r.strict?.strictImportMap??!1},profile:{...zn,...r.profile??{}}});var Zn=r=>({...Hn(r),...Un(r),...Bn(r),...Jn(r),...Kn(r)});function Qn({log:r},t){return({entry:b,actions:v})=>{let u={imports:{}};return i(b,v,u),c(b,u),r.debug(9,`[${b.name}] Processed actions:`,v),Promise.resolve(u)};function i(b,v,u){if(!b.shared)return;let p=Ne(b.url),R=new Set(["mapping-or-exposed"]);b.shared.forEach(S=>{if(!S.singleton){s(p,S.packageName,Y(p,S.outFileName),u),S?.bundle&&R.add(S?.bundle);return}if(!v[S.packageName]){r.warn(9,`[${b.name}] No action defined for shared external '${S.packageName}', skipping.`);return}if(v[S.packageName].action==="skip"){if(!S.shareScope)return;if(v[S.packageName].override){s(p,S.packageName,v[S.packageName].override,u);return}}if(S?.bundle&&R.add(S?.bundle),v[S.packageName].action==="scope"){s(p,S.packageName,Y(p,S.outFileName),u);return}if(S.shareScope){s(p,S.packageName,Y(p,S.outFileName),u);return}u.imports[S.packageName]=Y(p,S.outFileName)}),d(u,b.name,p,R)}function s(b,v,u,p){p.scopes||(p.scopes={}),p.scopes[b]||(p.scopes[b]={}),p.scopes[b][v]=u}function c(b,v){if(!b.exposes)return;let u=Ne(b.url);b.exposes.forEach(p=>{let R=Y(b.name,p.key),S=Y(u,p.outFileName);v.imports[R]=S})}function d(b,v,u,p){return Array.from(p).forEach(R=>{t.sharedChunksRepo.tryGet(v,R).ifPresent(S=>{S.forEach(D=>{s(u,$t(D),Y(u,D),b)})})}),b}}function ei(r,t){return async(c,d)=>{if(d&&i(c,d))return r.log.debug(7,`Found remote '${d}' in storage, omitting fetch.`),ye.empty();try{let b=await t.remoteEntryProvider.provide(c);if(r.log.debug(7,`[${b.name}] Fetched from '${b.url}', exposing: ${JSON.stringify(b.exposes)}`),d&&b.name!==d){let v=`Fetched remote '${b.name}' does not match requested '${d}'.`;if(r.strict.strictRemoteEntry)throw r.log.error(7,v),new H("Could not fetch remote entry");r.log.warn(7,v+" Omitting expected name.")}return t.remoteInfoRepo.contains(b.name)&&(b.override=!0,r.log.debug(7,`Overriding existing remote '${d}' with '${c}'.`)),ye.of(s(b))}catch(b){return r.log.error(7,`[${d??"unknown"}] Could not fetch remoteEntry from ${c}.`,b),Promise.reject(new H(`[${d??c}] Could not fetch remoteEntry.`))}};function i(c,d){return t.remoteInfoRepo.tryGet(d).map(b=>r.profile.overrideCachedRemotes!=="always"||!r.profile.overrideCachedRemotesIfURLMatches&&c===Y(b.scopeUrl,"remoteEntry.json")).orElse(!1)}function s(c){return r.sse&&(c.buildNotificationsEndpoint?(t.sse.watchRemoteBuilds(Y(Ne(c.url),c.buildNotificationsEndpoint)),r.log.debug(7,`Registered SSE endpoint of remote '${c.name}' `)):r.log.debug(7,`Remote ${c.name} has no defined 'buildNotificationsEndpoint'`)),c}}function ti(r,t){return u=>{try{u?.override&&i(u),s(u);let p=c(u);return d(u),Promise.resolve({entry:u,actions:p})}catch(p){return Promise.reject(p)}};function i(u){t.remoteInfoRepo.remove(u.name),t.scopedExternalsRepo.remove(u.name),t.sharedExternalsRepo.removeFromAllScopes(u.name)}function s({name:u,url:p,exposes:R}){t.remoteInfoRepo.addOrUpdate(u,{scopeUrl:Ne(p),exposes:Object.values(R??[]).map(S=>({moduleName:S.key,file:S.outFileName}))})}function c(u){let p={};return u.shared.forEach(R=>{if(!R.version||!t.versionCheck.isValidSemver(R.version)){let S=`[${u.name}][${R.packageName}] Version '${R.version}' is not a valid version.`;if(r.strict.strictExternalVersion)throw r.log.error(8,S),new H(`Could not process remote '${u.name}'`);r.log.warn(8,S)}if(R.singleton){let{action:S,sharedVersion:D}=b(u.name,R);p[R.packageName]={action:S},S==="skip"&&R.shareScope&&D?.remotes[0]?.file&&(p[R.packageName].override=t.remoteInfoRepo.tryGet(D.remotes[0].name).map(P=>Y(P.scopeUrl,D.remotes[0].file)).orThrow(()=>(r.log.error(8,`[${R.shareScope??de}][${u.name}][${R.packageName}@${R.version}][override] Remote name not found in cache.`),new H(`Could not find override url from remote ${D.remotes[0].name}`))))}else v(u.name,R)}),p}function d(u){u.chunks&&(r.log.debug(8,`Adding chunks for remote "${u.name}", bundles: [${Object.keys(u.chunks).join(", ")}]`),Object.entries(u.chunks).forEach(([p,R])=>{t.sharedChunksRepo.addOrReplace(u.name,p,R)}))}function b(u,p){let R=t.sharedExternalsRepo.tryGet(p.packageName,p.shareScope).orElse({dirty:!1,versions:[]}),S="skip",D=p.version??t.versionCheck.smallestVersion(p.requiredVersion),P={file:p.outFileName,strictVersion:p.strictVersion,requiredVersion:p.requiredVersion||D,name:u,bundle:p.bundle,cached:!1};t.sharedExternalsRepo.scopeType(p.shareScope)==="strict"&&(P.requiredVersion=D,S="share");let ne=R.versions.find(L=>L.action==="share"),oe=!ne||t.versionCheck.isCompatible(ne.tag,P.requiredVersion);if(S==="skip"&&!oe&&P.strictVersion){S="scope";let L=`[${p.shareScope??de}][${u}] ${p.packageName}@${p.version} Is not compatible with existing ${p.packageName}@${ne.tag} requiredRange '${ne.remotes[0]?.requiredVersion}'`;if(r.strict.strictExternalCompatibility)throw r.log.error(8,L),new H(`Could not process remote '${u}'`);r.log.warn(8,L)}let x=R.versions.find(L=>L.tag===D);if(x){if(P.strictVersion&&x.remotes[0].requiredVersion!==P.requiredVersion){let L=`[${u}][${p.packageName}@${p.version}] Required version '${P.requiredVersion}' does not match existing '${x.remotes[0].requiredVersion}'`;if(r.strict.strictExternalCompatibility)throw r.log.error(8,L),new H(`Could not process remote '${u}'`);r.log.warn(8,L)}x.remotes.push(P)}else ne||(S="share"),P.cached=S!=="skip",R.versions.push({tag:D,action:S,host:!1,remotes:[P]});return t.sharedExternalsRepo.addOrUpdate(p.packageName,{dirty:R.dirty,versions:R.versions.sort((L,q)=>t.versionCheck.compare(q.tag,L.tag))},p.shareScope),{action:S,sharedVersion:ne}}function v(u,p){t.scopedExternalsRepo.addExternal(u,p.packageName,{tag:p.version??t.versionCheck.smallestVersion(p.requiredVersion),file:p.outFileName,bundle:p.bundle})}}var va=({config:r,adapters:t})=>({getRemoteEntry:ei(r,t),updateCache:ti(r,t),convertToImportMap:Qn(r,t),commitChanges:Vt(r,t)}),ri=({config:r,adapters:t})=>({flow:va({config:r,adapters:t}),adapters:t,config:r}),oi=({flow:r,adapters:t,config:i})=>{let s=async d=>r.updateCache(d).then(r.convertToImportMap).then(r.commitChanges),c=(d,b)=>r.getRemoteEntry(d,b).then(v=>v.map(s).orElse(Promise.resolve())).then(()=>({config:i,adapters:t,initRemoteEntry:c}));return c};var ni=(r,t={})=>{let{adapters:i,config:s}=Gn(Zn(t)),c=v=>s.log.debug(0,v,{remotes:{...i.remoteInfoRepo.getAll()},"shared-externals":i.sharedExternalsRepo.getScopes({includeGlobal:!0}).reduce((u,p)=>({...u,[p]:i.sharedExternalsRepo.getFromScope(p)}),{}),"scoped-externals":i.scopedExternalsRepo.getAll()}),d=Oo(Lo({adapters:i,config:s})),b=oi(ri({config:s,adapters:i}));return d(r).then(({loadRemoteModule:v})=>{let u={config:s,adapters:i,loadRemoteModule:v,as:()=>({loadRemoteModule:v,load:v}),load:v},p=async(R,S)=>b(R,S).catch(D=>(c(`[dynamic-init][${S??R}] STATE DUMP`),s.strict.strictRemoteEntry?Promise.reject(D):(console.warn("Failed to initialize remote entry, continuing anyway."),Promise.resolve()))).then(()=>({...u,initRemoteEntry:p}));return{...u,initRemoteEntry:p}}).catch(v=>(c("[init] STATE DUMP"),Promise.reject(v)))};var ii={debug:(r,t,i)=>i?console.log(`[DEBUG][${r}]: ${t}`,i):console.log(`[DEBUG][${r}]: ${t}`),error:(r,t,i)=>i?console.error(`[NF][${r}]: ${t}`,i):console.error(`[NF][${r}]: ${t}`),warn:(r,t,i)=>i?console.warn(`[NF][${r}]: ${t}`,i):console.warn(`[NF][${r}]: ${t}`)};var si=(r={shimMode:!1})=>({loadModuleFn:t=>importShim(t),setImportMapFn:Jt(r.shimMode?"importmap-shim":"importmap"),reloadBrowserFn:()=>{window.location.reload()}});(async()=>{let r,t=document.querySelector('meta[name="mfe-feed"]')?.getAttribute("content");t&&(r=t);let i=document.getElementById("mfe-manifest");if(!r&&i?.textContent&&(r=JSON.parse(i.textContent)),!r){console.error(`Please provide a manifest in the HTML file:
13
13
  <script type="application/json" id="mfe-manifest">
14
14
  {
15
15
  "remote1": "http://localhost:3000/remoteEntry.json",
16
16
  [...]
17
17
  }
18
- <\/script>`);return}await ni(r,{logger:ii,logLevel:"warn",...si({shimMode:!1})}).then(s=>{window.__NF_REGISTRY__!==void 0&&window.__NF_REGISTRY__.register("orch.init-ready",{...s}),window.loadRemoteModule=s.loadRemoteModule,window.dispatchEvent(new CustomEvent("mfe-loader-available",{detail:{...s}}))})})();
18
+ <\/script>`);return}await ni(r,{logger:ii,logLevel:"warn",sse:!0,...si({shimMode:!1})}).then(s=>{window.__NF_REGISTRY__!==void 0&&window.__NF_REGISTRY__.register("orch.init-ready",{...s}),window.loadRemoteModule=s.loadRemoteModule,window.dispatchEvent(new CustomEvent("mfe-loader-available",{detail:{...s}}))})})();