@softarc/native-federation-orchestrator 4.0.0-RC4 → 4.0.0
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 +2 -4
- package/README.md +15 -11
- package/fesm2022/@softarc/native-federation-orchestrator.mjs +55 -54
- package/fesm2022/@softarc/native-federation-orchestrator.mjs.map +3 -3
- package/package.json +1 -1
- package/quickstart.mjs +1 -1
- package/types/lib/2.app/config/mode.contract.d.ts +1 -0
- package/types/lib/index.d.ts +1 -1
- package/types/lib/init-federation.contract.d.ts +5 -5
package/LICENSE.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
Copyright (c)
|
|
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,5 +1,7 @@
|
|
|
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
|
|
|
5
7
|
> 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)
|
|
@@ -20,7 +22,9 @@ The library runs in the browser to orchestrate the integration of micro frontend
|
|
|
20
22
|
|
|
21
23
|
### Extends the Native Federation Ecosystem
|
|
22
24
|
|
|
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
|
|
25
|
+
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.
|
|
26
|
+
|
|
27
|
+
> Note: The orchestrator is fully backwards compatible and also works with native federation v3 remotes!
|
|
24
28
|
|
|
25
29
|
### What makes this orchestrator different?
|
|
26
30
|
|
|
@@ -60,7 +64,7 @@ Get up and running in under 2 minutes:
|
|
|
60
64
|
</script>
|
|
61
65
|
|
|
62
66
|
<!-- Include the orchestrator runtime -->
|
|
63
|
-
<script src="https://unpkg.com/@softarc/native-federation-orchestrator@
|
|
67
|
+
<script src="https://unpkg.com/@softarc/native-federation-orchestrator@4.0.0/quickstart.mjs"></script>
|
|
64
68
|
</head>
|
|
65
69
|
<body>
|
|
66
70
|
<!-- Use your loaded components -->
|
|
@@ -78,7 +82,7 @@ Your micro frontends are now loaded and ready to use. The runtime handles the wh
|
|
|
78
82
|
|
|
79
83
|
```html
|
|
80
84
|
<!-- Development and quick testing -->
|
|
81
|
-
<script src="https://unpkg.com/@softarc/native-federation-orchestrator@
|
|
85
|
+
<script src="https://unpkg.com/@softarc/native-federation-orchestrator@4.0.0/quickstart.mjs"></script>
|
|
82
86
|
```
|
|
83
87
|
|
|
84
88
|
## Advanced Usage
|
|
@@ -89,7 +93,7 @@ The quickstart is intended for experimenting. For production environments it is
|
|
|
89
93
|
import { initFederation } from '@softarc/native-federation-orchestrator';
|
|
90
94
|
import { consoleLogger, localStorageEntry } from '@softarc/native-federation-orchestrator/options';
|
|
91
95
|
|
|
92
|
-
const { loadRemoteModule } = await initFederation(
|
|
96
|
+
const { loadRemoteModule, load } = await initFederation(
|
|
93
97
|
// Manifest
|
|
94
98
|
{
|
|
95
99
|
'team/mfe1': 'http://localhost:3000/remoteEntry.json',
|
|
@@ -105,7 +109,7 @@ const { loadRemoteModule } = await initFederation(
|
|
|
105
109
|
);
|
|
106
110
|
|
|
107
111
|
// Load specific modules
|
|
108
|
-
const ButtonComponent = await
|
|
112
|
+
const ButtonComponent = await load('team/mfe1', './Button');
|
|
109
113
|
const HeaderComponent = await loadRemoteModule('team/mfe2', './Header');
|
|
110
114
|
```
|
|
111
115
|
|
|
@@ -113,12 +117,12 @@ const HeaderComponent = await loadRemoteModule('team/mfe2', './Header');
|
|
|
113
117
|
|
|
114
118
|
## Documentation
|
|
115
119
|
|
|
116
|
-
| Guide
|
|
117
|
-
|
|
|
118
|
-
| [🚀 Getting Started](https://github.com/
|
|
119
|
-
| [🏗️ Architecture](https://github.com/
|
|
120
|
-
| [⚙️ Configuration](https://github.com/
|
|
121
|
-
| [🔄 Version Resolution](https://github.com/
|
|
120
|
+
| Guide | Description |
|
|
121
|
+
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
|
|
122
|
+
| [🚀 Getting Started](https://github.com/native-federation/orchestrator/blob/main/docs/getting-started.md) | Detailed setup instructions and examples |
|
|
123
|
+
| [🏗️ Architecture](https://github.com/native-federation/orchestrator/blob/main/docs/architecture.md) | Understanding the native federation domain |
|
|
124
|
+
| [⚙️ Configuration](https://github.com/native-federation/orchestrator/blob/main/docs/config.md) | Complete configuration reference |
|
|
125
|
+
| [🔄 Version Resolution](https://github.com/native-federation/orchestrator/blob/main/docs/version-resolver.md) | How dependency conflicts are resolved |
|
|
122
126
|
|
|
123
127
|
## Native Federation Ecosystem
|
|
124
128
|
|
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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-
|
|
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
|
|
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-
|
|
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
|
|
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
|
-
|
|
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
|
|
@@ -2315,11 +2315,13 @@ var createModeConfig = (override) => {
|
|
|
2315
2315
|
const strictnessConfig = typeof override.strict === "boolean" ? {
|
|
2316
2316
|
strictRemoteEntry: override.strict,
|
|
2317
2317
|
strictExternalCompatibility: override.strict,
|
|
2318
|
+
strictExternalSameVersionCompatibility: override.strict,
|
|
2318
2319
|
strictExternalVersion: override.strict,
|
|
2319
2320
|
strictImportMap: override.strict
|
|
2320
2321
|
} : {
|
|
2321
2322
|
strictRemoteEntry: override.strict?.strictRemoteEntry ?? false,
|
|
2322
2323
|
strictExternalCompatibility: override.strict?.strictExternalCompatibility ?? false,
|
|
2324
|
+
strictExternalSameVersionCompatibility: override.strict?.strictExternalCompatibility ?? false,
|
|
2323
2325
|
strictExternalVersion: override.strict?.strictExternalVersion ?? false,
|
|
2324
2326
|
strictImportMap: override.strict?.strictImportMap ?? false
|
|
2325
2327
|
};
|
|
@@ -2681,11 +2683,10 @@ var initFederation = (remotesOrManifestUrl, options = {}) => {
|
|
|
2681
2683
|
adapters,
|
|
2682
2684
|
loadRemoteModule,
|
|
2683
2685
|
as: () => ({
|
|
2684
|
-
loadRemoteModule
|
|
2686
|
+
loadRemoteModule,
|
|
2687
|
+
load: loadRemoteModule
|
|
2685
2688
|
}),
|
|
2686
|
-
|
|
2687
|
-
loadModule: (exposedModule) => loadRemoteModule(remoteName, exposedModule)
|
|
2688
|
-
})
|
|
2689
|
+
load: loadRemoteModule
|
|
2689
2690
|
};
|
|
2690
2691
|
const initRemoteEntry = async (remoteEntryUrl, remoteName) => dynamicInitFlow(remoteEntryUrl, remoteName).catch((e) => {
|
|
2691
2692
|
stateDump(`[dynamic-init][${remoteName ?? remoteEntryUrl}] STATE DUMP`);
|