@softarc/native-federation-orchestrator 4.0.0-RC4 → 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/LICENSE.md CHANGED
@@ -1,9 +1,7 @@
1
- Copyright (c) 2025 Topicusonderwijs
2
-
3
- Based on [@softarc/native-federation-runtime](https://www.npmjs.com/package/@softarc/native-federation-runtime), specialized for non-SPA hosts.
1
+ Copyright (c) 2026 Native federation team
4
2
 
5
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
4
 
7
5
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
6
 
9
- THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,7 +1,12 @@
1
1
  # Native federation orchestrator
2
2
 
3
+ 🎉 **v4.0 is here — the orchestrator is now stable and ready for production use!**
4
+
3
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.
4
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
+
5
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)
6
11
 
7
12
  ## Key Features
@@ -20,7 +25,9 @@ The library runs in the browser to orchestrate the integration of micro frontend
20
25
 
21
26
  ### Extends the Native Federation Ecosystem
22
27
 
23
- This library provides an alternative runtime to [@softarc/native-federation-runtime](https://www.npmjs.com/package/@softarc/native-federation-runtime), extending native federation capabilities specifically for non-SPA environments while maintaining full compatibility with the broader ecosystem. It can load any remotes that have been built using [@softarc/native-federation](https://www.npmjs.com/package/@softarc/native-federation) and expose a `remoteEntry.json` metadata file.
28
+ This library provides an alternative runtime to [@softarc/native-federation-runtime](https://www.npmjs.com/package/@softarc/native-federation-runtime), extending native federation capabilities while maintaining full compatibility with the broader ecosystem. It can load any remotes that have been built using [@softarc/native-federation](https://www.npmjs.com/package/@softarc/native-federation) and expose a `remoteEntry.json` metadata file.
29
+
30
+ > Note: The orchestrator is fully backwards compatible and also works with native federation v3 remotes!
24
31
 
25
32
  ### What makes this orchestrator different?
26
33
 
@@ -60,7 +67,7 @@ Get up and running in under 2 minutes:
60
67
  </script>
61
68
 
62
69
  <!-- Include the orchestrator runtime -->
63
- <script src="https://unpkg.com/@softarc/native-federation-orchestrator@1.1.5/quickstart.mjs"></script>
70
+ <script src="https://unpkg.com/@softarc/native-federation-orchestrator@4.0.1/quickstart.mjs"></script>
64
71
  </head>
65
72
  <body>
66
73
  <!-- Use your loaded components -->
@@ -78,7 +85,7 @@ Your micro frontends are now loaded and ready to use. The runtime handles the wh
78
85
 
79
86
  ```html
80
87
  <!-- Development and quick testing -->
81
- <script src="https://unpkg.com/@softarc/native-federation-orchestrator@1.1.5/quickstart.mjs"></script>
88
+ <script src="https://unpkg.com/@softarc/native-federation-orchestrator@4.0.1/quickstart.mjs"></script>
82
89
  ```
83
90
 
84
91
  ## Advanced Usage
@@ -89,7 +96,7 @@ The quickstart is intended for experimenting. For production environments it is
89
96
  import { initFederation } from '@softarc/native-federation-orchestrator';
90
97
  import { consoleLogger, localStorageEntry } from '@softarc/native-federation-orchestrator/options';
91
98
 
92
- const { loadRemoteModule } = await initFederation(
99
+ const { loadRemoteModule, load } = await initFederation(
93
100
  // Manifest
94
101
  {
95
102
  'team/mfe1': 'http://localhost:3000/remoteEntry.json',
@@ -105,7 +112,7 @@ const { loadRemoteModule } = await initFederation(
105
112
  );
106
113
 
107
114
  // Load specific modules
108
- const ButtonComponent = await loadRemoteModule('team/mfe1', './Button');
115
+ const ButtonComponent = await load('team/mfe1', './Button');
109
116
  const HeaderComponent = await loadRemoteModule('team/mfe2', './Header');
110
117
  ```
111
118
 
@@ -113,12 +120,20 @@ const HeaderComponent = await loadRemoteModule('team/mfe2', './Header');
113
120
 
114
121
  ## Documentation
115
122
 
116
- | Guide | Description |
117
- | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
118
- | [🚀 Getting Started](https://github.com/topicusonderwijs/@softarc/native-federation-orchestrator/blob/main/docs/getting-started.md) | Detailed setup instructions and examples |
119
- | [🏗️ Architecture](https://github.com/topicusonderwijs/@softarc/native-federation-orchestrator/blob/main/docs/architecture.md) | Understanding the native federation domain |
120
- | [⚙️ Configuration](https://github.com/topicusonderwijs/@softarc/native-federation-orchestrator/blob/main/docs/config.md) | Complete configuration reference |
121
- | [🔄 Version Resolution](https://github.com/topicusonderwijs/@softarc/native-federation-orchestrator/blob/main/docs/version-resolver.md) | How dependency conflicts are resolved |
123
+ | Guide | Description |
124
+ | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
125
+ | [🚀 Getting Started](https://github.com/native-federation/orchestrator/blob/main/docs/getting-started.md) | Detailed setup instructions and examples |
126
+ | [🏗️ Architecture](https://github.com/native-federation/orchestrator/blob/main/docs/architecture.md) | Understanding the native federation domain |
127
+ | [⚙️ Configuration](https://github.com/native-federation/orchestrator/blob/main/docs/config.md) | Complete configuration reference |
128
+ | [🔄 Version Resolution](https://github.com/native-federation/orchestrator/blob/main/docs/version-resolver.md) | How dependency conflicts are resolved |
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. |
122
137
 
123
138
  ## Native Federation Ecosystem
124
139
 
@@ -24,9 +24,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  mod
25
25
  ));
26
26
 
27
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js
27
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/debug.js
28
28
  var require_debug = __commonJS({
29
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js"(exports, module) {
29
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/debug.js"(exports, module) {
30
30
  "use strict";
31
31
  var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {
32
32
  };
@@ -34,9 +34,9 @@ var require_debug = __commonJS({
34
34
  }
35
35
  });
36
36
 
37
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js
37
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js
38
38
  var require_constants = __commonJS({
39
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js"(exports, module) {
39
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js"(exports, module) {
40
40
  "use strict";
41
41
  var SEMVER_SPEC_VERSION = "2.0.0";
42
42
  var MAX_LENGTH = 256;
@@ -66,9 +66,9 @@ var require_constants = __commonJS({
66
66
  }
67
67
  });
68
68
 
69
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js
69
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/re.js
70
70
  var require_re = __commonJS({
71
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js"(exports, module) {
71
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/re.js"(exports, module) {
72
72
  "use strict";
73
73
  var {
74
74
  MAX_SAFE_COMPONENT_LENGTH,
@@ -154,9 +154,9 @@ var require_re = __commonJS({
154
154
  }
155
155
  });
156
156
 
157
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js
157
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/parse-options.js
158
158
  var require_parse_options = __commonJS({
159
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js"(exports, module) {
159
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/parse-options.js"(exports, module) {
160
160
  "use strict";
161
161
  var looseOption = Object.freeze({ loose: true });
162
162
  var emptyOpts = Object.freeze({});
@@ -173,9 +173,9 @@ var require_parse_options = __commonJS({
173
173
  }
174
174
  });
175
175
 
176
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js
176
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/identifiers.js
177
177
  var require_identifiers = __commonJS({
178
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js"(exports, module) {
178
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/identifiers.js"(exports, module) {
179
179
  "use strict";
180
180
  var numeric = /^[0-9]+$/;
181
181
  var compareIdentifiers = (a, b) => {
@@ -198,9 +198,9 @@ var require_identifiers = __commonJS({
198
198
  }
199
199
  });
200
200
 
201
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js
201
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/semver.js
202
202
  var require_semver = __commonJS({
203
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js"(exports, module) {
203
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/semver.js"(exports, module) {
204
204
  "use strict";
205
205
  var debug = require_debug();
206
206
  var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
@@ -477,9 +477,9 @@ var require_semver = __commonJS({
477
477
  }
478
478
  });
479
479
 
480
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js
480
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/parse.js
481
481
  var require_parse = __commonJS({
482
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js"(exports, module) {
482
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/parse.js"(exports, module) {
483
483
  "use strict";
484
484
  var SemVer = require_semver();
485
485
  var parse = (version, options, throwErrors = false) => {
@@ -499,9 +499,9 @@ var require_parse = __commonJS({
499
499
  }
500
500
  });
501
501
 
502
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js
502
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/valid.js
503
503
  var require_valid = __commonJS({
504
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js"(exports, module) {
504
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/valid.js"(exports, module) {
505
505
  "use strict";
506
506
  var parse = require_parse();
507
507
  var valid = (version, options) => {
@@ -512,9 +512,9 @@ var require_valid = __commonJS({
512
512
  }
513
513
  });
514
514
 
515
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js
515
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/lrucache.js
516
516
  var require_lrucache = __commonJS({
517
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js"(exports, module) {
517
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/lrucache.js"(exports, module) {
518
518
  "use strict";
519
519
  var LRUCache = class {
520
520
  constructor() {
@@ -550,9 +550,9 @@ var require_lrucache = __commonJS({
550
550
  }
551
551
  });
552
552
 
553
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js
553
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare.js
554
554
  var require_compare = __commonJS({
555
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js"(exports, module) {
555
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare.js"(exports, module) {
556
556
  "use strict";
557
557
  var SemVer = require_semver();
558
558
  var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
@@ -560,9 +560,9 @@ var require_compare = __commonJS({
560
560
  }
561
561
  });
562
562
 
563
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js
563
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/eq.js
564
564
  var require_eq = __commonJS({
565
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js"(exports, module) {
565
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/eq.js"(exports, module) {
566
566
  "use strict";
567
567
  var compare = require_compare();
568
568
  var eq = (a, b, loose) => compare(a, b, loose) === 0;
@@ -570,9 +570,9 @@ var require_eq = __commonJS({
570
570
  }
571
571
  });
572
572
 
573
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js
573
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/neq.js
574
574
  var require_neq = __commonJS({
575
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js"(exports, module) {
575
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/neq.js"(exports, module) {
576
576
  "use strict";
577
577
  var compare = require_compare();
578
578
  var neq = (a, b, loose) => compare(a, b, loose) !== 0;
@@ -580,9 +580,9 @@ var require_neq = __commonJS({
580
580
  }
581
581
  });
582
582
 
583
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js
583
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gt.js
584
584
  var require_gt = __commonJS({
585
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js"(exports, module) {
585
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gt.js"(exports, module) {
586
586
  "use strict";
587
587
  var compare = require_compare();
588
588
  var gt = (a, b, loose) => compare(a, b, loose) > 0;
@@ -590,9 +590,9 @@ var require_gt = __commonJS({
590
590
  }
591
591
  });
592
592
 
593
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js
593
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gte.js
594
594
  var require_gte = __commonJS({
595
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js"(exports, module) {
595
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gte.js"(exports, module) {
596
596
  "use strict";
597
597
  var compare = require_compare();
598
598
  var gte = (a, b, loose) => compare(a, b, loose) >= 0;
@@ -600,9 +600,9 @@ var require_gte = __commonJS({
600
600
  }
601
601
  });
602
602
 
603
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js
603
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lt.js
604
604
  var require_lt = __commonJS({
605
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js"(exports, module) {
605
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lt.js"(exports, module) {
606
606
  "use strict";
607
607
  var compare = require_compare();
608
608
  var lt = (a, b, loose) => compare(a, b, loose) < 0;
@@ -610,9 +610,9 @@ var require_lt = __commonJS({
610
610
  }
611
611
  });
612
612
 
613
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js
613
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lte.js
614
614
  var require_lte = __commonJS({
615
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js"(exports, module) {
615
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lte.js"(exports, module) {
616
616
  "use strict";
617
617
  var compare = require_compare();
618
618
  var lte = (a, b, loose) => compare(a, b, loose) <= 0;
@@ -620,9 +620,9 @@ var require_lte = __commonJS({
620
620
  }
621
621
  });
622
622
 
623
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js
623
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/cmp.js
624
624
  var require_cmp = __commonJS({
625
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js"(exports, module) {
625
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/cmp.js"(exports, module) {
626
626
  "use strict";
627
627
  var eq = require_eq();
628
628
  var neq = require_neq();
@@ -670,9 +670,9 @@ var require_cmp = __commonJS({
670
670
  }
671
671
  });
672
672
 
673
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js
673
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/comparator.js
674
674
  var require_comparator = __commonJS({
675
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js"(exports, module) {
675
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/comparator.js"(exports, module) {
676
676
  "use strict";
677
677
  var ANY = /* @__PURE__ */ Symbol("SemVer ANY");
678
678
  var Comparator = class _Comparator {
@@ -783,9 +783,9 @@ var require_comparator = __commonJS({
783
783
  }
784
784
  });
785
785
 
786
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js
786
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/range.js
787
787
  var require_range = __commonJS({
788
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js"(exports, module) {
788
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/range.js"(exports, module) {
789
789
  "use strict";
790
790
  var SPACE_CHARACTERS = /\s+/g;
791
791
  var Range = class _Range {
@@ -1160,9 +1160,9 @@ var require_range = __commonJS({
1160
1160
  }
1161
1161
  });
1162
1162
 
1163
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js
1163
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/satisfies.js
1164
1164
  var require_satisfies = __commonJS({
1165
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js"(exports, module) {
1165
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/satisfies.js"(exports, module) {
1166
1166
  "use strict";
1167
1167
  var Range = require_range();
1168
1168
  var satisfies = (version, range, options) => {
@@ -1177,9 +1177,9 @@ var require_satisfies = __commonJS({
1177
1177
  }
1178
1178
  });
1179
1179
 
1180
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js
1180
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-version.js
1181
1181
  var require_min_version = __commonJS({
1182
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js"(exports, module) {
1182
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-version.js"(exports, module) {
1183
1183
  "use strict";
1184
1184
  var SemVer = require_semver();
1185
1185
  var Range = require_range();
@@ -1236,9 +1236,9 @@ var require_min_version = __commonJS({
1236
1236
  }
1237
1237
  });
1238
1238
 
1239
- // node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js
1239
+ // node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/valid.js
1240
1240
  var require_valid2 = __commonJS({
1241
- "node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js"(exports, module) {
1241
+ "node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/valid.js"(exports, module) {
1242
1242
  "use strict";
1243
1243
  var Range = require_range();
1244
1244
  var validRange = (range, options) => {
@@ -1439,7 +1439,7 @@ function createProcessRemoteEntries(config, ports) {
1439
1439
  if (!!matchingVersion) {
1440
1440
  if (remote.strictVersion && matchingVersion.remotes[0].requiredVersion !== remote.requiredVersion) {
1441
1441
  const errorMsg = `[${remoteName}][${sharedInfo.packageName}@${sharedInfo.version}] Required version-range '${remote.requiredVersion}' does not match cached version-range '${matchingVersion.remotes[0].requiredVersion}'`;
1442
- if (config.strict.strictExternalCompatibility) {
1442
+ if (config.strict.strictExternalSameVersionCompatibility) {
1443
1443
  config.log.error(2, errorMsg);
1444
1444
  throw new NFError(`Could not process remote '${remoteEntry.name}'`);
1445
1445
  }
@@ -1552,7 +1552,7 @@ function createDetermineSharedExternals(config, ports) {
1552
1552
  }
1553
1553
  }
1554
1554
 
1555
- // node_modules/.pnpm/@softarc+native-federation@4.0.0-RC4_typescript@5.9.3_b0fd05590f82ec18d047413a60a6fe2a/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-RC4_typescript@5.9.3_b0fd05590f82ec18d047413a60a6fe2a/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("./")) {
@@ -1796,8 +1796,7 @@ function createCommitChanges(config, ports) {
1796
1796
 
1797
1797
  // src/lib/2.app/flows/init/expose-module-loader.ts
1798
1798
  function createExposeModuleLoader(config, ports) {
1799
- return () => Promise.resolve(loadRemoteModule);
1800
- function loadRemoteModule(remoteName, exposedModule) {
1799
+ const loadRemoteModule = (remoteName, exposedModule) => {
1801
1800
  try {
1802
1801
  if (!ports.remoteInfoRepo.contains(remoteName)) {
1803
1802
  throw new NFError(`Remote '${remoteName}' is not initialized.`);
@@ -1817,7 +1816,8 @@ function createExposeModuleLoader(config, ports) {
1817
1816
  new NFError(`Failed to load module ${join(remoteName, exposedModule)}`)
1818
1817
  );
1819
1818
  }
1820
- }
1819
+ };
1820
+ return () => Promise.resolve(loadRemoteModule);
1821
1821
  }
1822
1822
 
1823
1823
  // src/lib/5.di/flows/init.factory.ts
@@ -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
  }
@@ -2315,11 +2316,13 @@ var createModeConfig = (override) => {
2315
2316
  const strictnessConfig = typeof override.strict === "boolean" ? {
2316
2317
  strictRemoteEntry: override.strict,
2317
2318
  strictExternalCompatibility: override.strict,
2319
+ strictExternalSameVersionCompatibility: override.strict,
2318
2320
  strictExternalVersion: override.strict,
2319
2321
  strictImportMap: override.strict
2320
2322
  } : {
2321
2323
  strictRemoteEntry: override.strict?.strictRemoteEntry ?? false,
2322
2324
  strictExternalCompatibility: override.strict?.strictExternalCompatibility ?? false,
2325
+ strictExternalSameVersionCompatibility: override.strict?.strictExternalCompatibility ?? false,
2323
2326
  strictExternalVersion: override.strict?.strictExternalVersion ?? false,
2324
2327
  strictImportMap: override.strict?.strictImportMap ?? false
2325
2328
  };
@@ -2681,11 +2684,10 @@ var initFederation = (remotesOrManifestUrl, options = {}) => {
2681
2684
  adapters,
2682
2685
  loadRemoteModule,
2683
2686
  as: () => ({
2684
- loadRemoteModule
2687
+ loadRemoteModule,
2688
+ load: loadRemoteModule
2685
2689
  }),
2686
- remote: (remoteName) => ({
2687
- loadModule: (exposedModule) => loadRemoteModule(remoteName, exposedModule)
2688
- })
2690
+ load: loadRemoteModule
2689
2691
  };
2690
2692
  const initRemoteEntry = async (remoteEntryUrl, remoteName) => dynamicInitFlow(remoteEntryUrl, remoteName).catch((e) => {
2691
2693
  stateDump(`[dynamic-init][${remoteName ?? remoteEntryUrl}] STATE DUMP`);