@softarc/native-federation-orchestrator 4.9.0 → 4.10.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 +12 -12
- package/fesm2022/@softarc/native-federation-orchestrator.mjs +490 -123
- package/fesm2022/@softarc/native-federation-orchestrator.mjs.map +4 -4
- package/fesm2022/module-federation.mjs.map +2 -2
- package/fesm2022/node.mjs +495 -123
- package/fesm2022/node.mjs.map +4 -4
- package/fesm2022/options.mjs +25 -2
- package/fesm2022/options.mjs.map +3 -3
- package/fesm2022/registry.mjs.map +2 -2
- package/package.json +3 -3
- package/quickstart.mjs +15 -13
- package/types/lib/core/1.domain/externals/basis.d.ts +2 -2
- package/types/lib/core/1.domain/externals/version.contract.d.ts +3 -0
- package/types/lib/core/1.domain/import-map/eager-preloads.d.ts +10 -0
- package/types/lib/core/1.domain/pooling/builds.d.ts +7 -1
- package/types/lib/core/1.domain/remote/remote-module.contract.d.ts +1 -0
- package/types/lib/core/1.domain/remote-entry/remote-entry.contract.d.ts +2 -2
- package/types/lib/core/2.app/config/import-map.contract.d.ts +4 -7
- package/types/lib/core/2.app/config/index.d.ts +2 -2
- package/types/lib/core/2.app/config/mode.contract.d.ts +1 -0
- package/types/lib/core/2.app/driver-ports/init/flow.contract.d.ts +2 -4
- package/types/lib/core/2.app/driver-ports/init/for-exposing-module-loader.port.d.ts +6 -2
- package/types/lib/core/2.app/driving-ports/for-browser-tasks.d.ts +1 -0
- package/types/lib/core/2.app/driving-ports/for-remote-info-storage.port.d.ts +1 -0
- package/types/lib/core/2.app/steps/collect-eager-preloads.d.ts +4 -0
- package/types/lib/core/2.app/steps/preload-hint.d.ts +4 -0
- package/types/lib/core/2.app/steps/store-remote-entry.d.ts +0 -14
- package/types/lib/core/4.config/import-map/index.d.ts +2 -0
- package/types/lib/core/4.config/import-map/no-preload.d.ts +2 -0
- package/types/lib/core/4.config/import-map/preload-in-dom.d.ts +2 -0
- package/types/lib/core/5.di/federation-result.factory.d.ts +3 -2
- package/types/lib/core/init-federation.contract.d.ts +2 -0
- package/types/lib/index.d.ts +1 -1
- package/types/lib/node/init-federation.node.d.ts +2 -7
- package/types/lib/node.index.d.ts +1 -1
- package/types/lib/registry/event-registry.contract.d.ts +1 -0
- package/types/lib/registry/event.contract.d.ts +6 -0
- package/types/lib/registry/for-managing-events.port.d.ts +1 -0
- package/types/lib/registry/registry.contract.d.ts +2 -0
- package/types/lib/registry/setup-registry.d.ts +1 -0
- package/types/scripts/announce-init-ready.d.ts +2 -0
- package/types/scripts/init-registry.d.ts +1 -0
package/fesm2022/node.mjs
CHANGED
|
@@ -28,9 +28,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
mod
|
|
29
29
|
));
|
|
30
30
|
|
|
31
|
-
// node_modules/.pnpm/semver@7.8.
|
|
31
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/debug.js
|
|
32
32
|
var require_debug = __commonJS({
|
|
33
|
-
"node_modules/.pnpm/semver@7.8.
|
|
33
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/debug.js"(exports, module) {
|
|
34
34
|
"use strict";
|
|
35
35
|
var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {
|
|
36
36
|
};
|
|
@@ -38,9 +38,9 @@ var require_debug = __commonJS({
|
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
40
|
|
|
41
|
-
// node_modules/.pnpm/semver@7.8.
|
|
41
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/constants.js
|
|
42
42
|
var require_constants = __commonJS({
|
|
43
|
-
"node_modules/.pnpm/semver@7.8.
|
|
43
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/constants.js"(exports, module) {
|
|
44
44
|
"use strict";
|
|
45
45
|
var SEMVER_SPEC_VERSION = "2.0.0";
|
|
46
46
|
var MAX_LENGTH = 256;
|
|
@@ -48,6 +48,33 @@ var require_constants = __commonJS({
|
|
|
48
48
|
9007199254740991;
|
|
49
49
|
var MAX_SAFE_COMPONENT_LENGTH = 16;
|
|
50
50
|
var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;
|
|
51
|
+
var WHITESPACE_CHARACTERS = [
|
|
52
|
+
" ",
|
|
53
|
+
"\n",
|
|
54
|
+
"\v",
|
|
55
|
+
"\f",
|
|
56
|
+
"\r",
|
|
57
|
+
" ",
|
|
58
|
+
"\xA0",
|
|
59
|
+
"\u1680",
|
|
60
|
+
"\u2000",
|
|
61
|
+
"\u2001",
|
|
62
|
+
"\u2002",
|
|
63
|
+
"\u2003",
|
|
64
|
+
"\u2004",
|
|
65
|
+
"\u2005",
|
|
66
|
+
"\u2006",
|
|
67
|
+
"\u2007",
|
|
68
|
+
"\u2008",
|
|
69
|
+
"\u2009",
|
|
70
|
+
"\u200A",
|
|
71
|
+
"\u2028",
|
|
72
|
+
"\u2029",
|
|
73
|
+
"\u202F",
|
|
74
|
+
"\u205F",
|
|
75
|
+
"\u3000",
|
|
76
|
+
"\uFEFF"
|
|
77
|
+
];
|
|
51
78
|
var RELEASE_TYPES = [
|
|
52
79
|
"major",
|
|
53
80
|
"premajor",
|
|
@@ -62,6 +89,7 @@ var require_constants = __commonJS({
|
|
|
62
89
|
MAX_SAFE_COMPONENT_LENGTH,
|
|
63
90
|
MAX_SAFE_BUILD_LENGTH,
|
|
64
91
|
MAX_SAFE_INTEGER,
|
|
92
|
+
WHITESPACE_CHARACTERS,
|
|
65
93
|
RELEASE_TYPES,
|
|
66
94
|
SEMVER_SPEC_VERSION,
|
|
67
95
|
FLAG_INCLUDE_PRERELEASE: 1,
|
|
@@ -70,9 +98,9 @@ var require_constants = __commonJS({
|
|
|
70
98
|
}
|
|
71
99
|
});
|
|
72
100
|
|
|
73
|
-
// node_modules/.pnpm/semver@7.8.
|
|
101
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/re.js
|
|
74
102
|
var require_re = __commonJS({
|
|
75
|
-
"node_modules/.pnpm/semver@7.8.
|
|
103
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/re.js"(exports, module) {
|
|
76
104
|
"use strict";
|
|
77
105
|
var {
|
|
78
106
|
MAX_SAFE_COMPONENT_LENGTH,
|
|
@@ -158,9 +186,9 @@ var require_re = __commonJS({
|
|
|
158
186
|
}
|
|
159
187
|
});
|
|
160
188
|
|
|
161
|
-
// node_modules/.pnpm/semver@7.8.
|
|
189
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/parse-options.js
|
|
162
190
|
var require_parse_options = __commonJS({
|
|
163
|
-
"node_modules/.pnpm/semver@7.8.
|
|
191
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/parse-options.js"(exports, module) {
|
|
164
192
|
"use strict";
|
|
165
193
|
var looseOption = Object.freeze({ loose: true });
|
|
166
194
|
var emptyOpts = Object.freeze({});
|
|
@@ -177,9 +205,9 @@ var require_parse_options = __commonJS({
|
|
|
177
205
|
}
|
|
178
206
|
});
|
|
179
207
|
|
|
180
|
-
// node_modules/.pnpm/semver@7.8.
|
|
208
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/identifiers.js
|
|
181
209
|
var require_identifiers = __commonJS({
|
|
182
|
-
"node_modules/.pnpm/semver@7.8.
|
|
210
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/identifiers.js"(exports, module) {
|
|
183
211
|
"use strict";
|
|
184
212
|
var numeric = /^[0-9]+$/;
|
|
185
213
|
var compareIdentifiers = (a, b) => {
|
|
@@ -202,9 +230,9 @@ var require_identifiers = __commonJS({
|
|
|
202
230
|
}
|
|
203
231
|
});
|
|
204
232
|
|
|
205
|
-
// node_modules/.pnpm/semver@7.8.
|
|
233
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/classes/semver.js
|
|
206
234
|
var require_semver = __commonJS({
|
|
207
|
-
"node_modules/.pnpm/semver@7.8.
|
|
235
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/classes/semver.js"(exports, module) {
|
|
208
236
|
"use strict";
|
|
209
237
|
var debug = require_debug();
|
|
210
238
|
var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
|
|
@@ -494,9 +522,9 @@ var require_semver = __commonJS({
|
|
|
494
522
|
}
|
|
495
523
|
});
|
|
496
524
|
|
|
497
|
-
// node_modules/.pnpm/semver@7.8.
|
|
525
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/parse.js
|
|
498
526
|
var require_parse = __commonJS({
|
|
499
|
-
"node_modules/.pnpm/semver@7.8.
|
|
527
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/parse.js"(exports, module) {
|
|
500
528
|
"use strict";
|
|
501
529
|
var SemVer2 = require_semver();
|
|
502
530
|
var parse = (version, options, throwErrors = false) => {
|
|
@@ -516,9 +544,9 @@ var require_parse = __commonJS({
|
|
|
516
544
|
}
|
|
517
545
|
});
|
|
518
546
|
|
|
519
|
-
// node_modules/.pnpm/semver@7.8.
|
|
547
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/valid.js
|
|
520
548
|
var require_valid = __commonJS({
|
|
521
|
-
"node_modules/.pnpm/semver@7.8.
|
|
549
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/valid.js"(exports, module) {
|
|
522
550
|
"use strict";
|
|
523
551
|
var parse = require_parse();
|
|
524
552
|
var valid = (version, options) => {
|
|
@@ -529,9 +557,9 @@ var require_valid = __commonJS({
|
|
|
529
557
|
}
|
|
530
558
|
});
|
|
531
559
|
|
|
532
|
-
// node_modules/.pnpm/semver@7.8.
|
|
560
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/lrucache.js
|
|
533
561
|
var require_lrucache = __commonJS({
|
|
534
|
-
"node_modules/.pnpm/semver@7.8.
|
|
562
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/lrucache.js"(exports, module) {
|
|
535
563
|
"use strict";
|
|
536
564
|
var LRUCache = class {
|
|
537
565
|
constructor() {
|
|
@@ -567,9 +595,9 @@ var require_lrucache = __commonJS({
|
|
|
567
595
|
}
|
|
568
596
|
});
|
|
569
597
|
|
|
570
|
-
// node_modules/.pnpm/semver@7.8.
|
|
598
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/compare.js
|
|
571
599
|
var require_compare = __commonJS({
|
|
572
|
-
"node_modules/.pnpm/semver@7.8.
|
|
600
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/compare.js"(exports, module) {
|
|
573
601
|
"use strict";
|
|
574
602
|
var SemVer2 = require_semver();
|
|
575
603
|
var compare = (a, b, loose) => new SemVer2(a, loose).compare(new SemVer2(b, loose));
|
|
@@ -577,9 +605,9 @@ var require_compare = __commonJS({
|
|
|
577
605
|
}
|
|
578
606
|
});
|
|
579
607
|
|
|
580
|
-
// node_modules/.pnpm/semver@7.8.
|
|
608
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/eq.js
|
|
581
609
|
var require_eq = __commonJS({
|
|
582
|
-
"node_modules/.pnpm/semver@7.8.
|
|
610
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/eq.js"(exports, module) {
|
|
583
611
|
"use strict";
|
|
584
612
|
var compare = require_compare();
|
|
585
613
|
var eq = (a, b, loose) => compare(a, b, loose) === 0;
|
|
@@ -587,9 +615,9 @@ var require_eq = __commonJS({
|
|
|
587
615
|
}
|
|
588
616
|
});
|
|
589
617
|
|
|
590
|
-
// node_modules/.pnpm/semver@7.8.
|
|
618
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/neq.js
|
|
591
619
|
var require_neq = __commonJS({
|
|
592
|
-
"node_modules/.pnpm/semver@7.8.
|
|
620
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/neq.js"(exports, module) {
|
|
593
621
|
"use strict";
|
|
594
622
|
var compare = require_compare();
|
|
595
623
|
var neq = (a, b, loose) => compare(a, b, loose) !== 0;
|
|
@@ -597,9 +625,9 @@ var require_neq = __commonJS({
|
|
|
597
625
|
}
|
|
598
626
|
});
|
|
599
627
|
|
|
600
|
-
// node_modules/.pnpm/semver@7.8.
|
|
628
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/gt.js
|
|
601
629
|
var require_gt = __commonJS({
|
|
602
|
-
"node_modules/.pnpm/semver@7.8.
|
|
630
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/gt.js"(exports, module) {
|
|
603
631
|
"use strict";
|
|
604
632
|
var compare = require_compare();
|
|
605
633
|
var gt = (a, b, loose) => compare(a, b, loose) > 0;
|
|
@@ -607,9 +635,9 @@ var require_gt = __commonJS({
|
|
|
607
635
|
}
|
|
608
636
|
});
|
|
609
637
|
|
|
610
|
-
// node_modules/.pnpm/semver@7.8.
|
|
638
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/gte.js
|
|
611
639
|
var require_gte = __commonJS({
|
|
612
|
-
"node_modules/.pnpm/semver@7.8.
|
|
640
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/gte.js"(exports, module) {
|
|
613
641
|
"use strict";
|
|
614
642
|
var compare = require_compare();
|
|
615
643
|
var gte = (a, b, loose) => compare(a, b, loose) >= 0;
|
|
@@ -617,9 +645,9 @@ var require_gte = __commonJS({
|
|
|
617
645
|
}
|
|
618
646
|
});
|
|
619
647
|
|
|
620
|
-
// node_modules/.pnpm/semver@7.8.
|
|
648
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/lt.js
|
|
621
649
|
var require_lt = __commonJS({
|
|
622
|
-
"node_modules/.pnpm/semver@7.8.
|
|
650
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/lt.js"(exports, module) {
|
|
623
651
|
"use strict";
|
|
624
652
|
var compare = require_compare();
|
|
625
653
|
var lt = (a, b, loose) => compare(a, b, loose) < 0;
|
|
@@ -627,9 +655,9 @@ var require_lt = __commonJS({
|
|
|
627
655
|
}
|
|
628
656
|
});
|
|
629
657
|
|
|
630
|
-
// node_modules/.pnpm/semver@7.8.
|
|
658
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/lte.js
|
|
631
659
|
var require_lte = __commonJS({
|
|
632
|
-
"node_modules/.pnpm/semver@7.8.
|
|
660
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/lte.js"(exports, module) {
|
|
633
661
|
"use strict";
|
|
634
662
|
var compare = require_compare();
|
|
635
663
|
var lte = (a, b, loose) => compare(a, b, loose) <= 0;
|
|
@@ -637,9 +665,9 @@ var require_lte = __commonJS({
|
|
|
637
665
|
}
|
|
638
666
|
});
|
|
639
667
|
|
|
640
|
-
// node_modules/.pnpm/semver@7.8.
|
|
668
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/cmp.js
|
|
641
669
|
var require_cmp = __commonJS({
|
|
642
|
-
"node_modules/.pnpm/semver@7.8.
|
|
670
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/cmp.js"(exports, module) {
|
|
643
671
|
"use strict";
|
|
644
672
|
var eq = require_eq();
|
|
645
673
|
var neq = require_neq();
|
|
@@ -687,9 +715,9 @@ var require_cmp = __commonJS({
|
|
|
687
715
|
}
|
|
688
716
|
});
|
|
689
717
|
|
|
690
|
-
// node_modules/.pnpm/semver@7.8.
|
|
718
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/classes/comparator.js
|
|
691
719
|
var require_comparator = __commonJS({
|
|
692
|
-
"node_modules/.pnpm/semver@7.8.
|
|
720
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/classes/comparator.js"(exports, module) {
|
|
693
721
|
"use strict";
|
|
694
722
|
var ANY = /* @__PURE__ */ Symbol("SemVer ANY");
|
|
695
723
|
var Comparator = class _Comparator {
|
|
@@ -800,9 +828,200 @@ var require_comparator = __commonJS({
|
|
|
800
828
|
}
|
|
801
829
|
});
|
|
802
830
|
|
|
803
|
-
// node_modules/.pnpm/semver@7.8.
|
|
831
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/trim-comparator-whitespace.js
|
|
832
|
+
var require_trim_comparator_whitespace = __commonJS({
|
|
833
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/internal/trim-comparator-whitespace.js"(exports, module) {
|
|
834
|
+
"use strict";
|
|
835
|
+
var {
|
|
836
|
+
MAX_LENGTH,
|
|
837
|
+
MAX_SAFE_BUILD_LENGTH,
|
|
838
|
+
WHITESPACE_CHARACTERS
|
|
839
|
+
} = require_constants();
|
|
840
|
+
var whitespace = new Uint8Array(65536);
|
|
841
|
+
for (const char of WHITESPACE_CHARACTERS) {
|
|
842
|
+
whitespace[char.charCodeAt(0)] = 1;
|
|
843
|
+
}
|
|
844
|
+
var isWhitespace = (char) => char !== void 0 && whitespace[char.charCodeAt(0)] === 1;
|
|
845
|
+
var isVersionPrefix = (char) => char === "v" || char === "=" || isWhitespace(char);
|
|
846
|
+
var isDigit = (char) => char !== void 0 && char >= "0" && char <= "9";
|
|
847
|
+
var isLetter = (char) => char !== void 0 && (char >= "a" && char <= "z" || char >= "A" && char <= "Z");
|
|
848
|
+
var isIdentifierCharacter = (char) => isDigit(char) || isLetter(char) || char === "-";
|
|
849
|
+
var isVersionStart = (char) => isDigit(char) || char === "x" || char === "X" || char === "*";
|
|
850
|
+
var findDigitsEndIndex = (range, start, limit, digitRuns) => {
|
|
851
|
+
if (!isDigit(range[start])) {
|
|
852
|
+
return start;
|
|
853
|
+
}
|
|
854
|
+
if (start >= digitRuns.start && start < digitRuns.end) {
|
|
855
|
+
return Math.min(start + limit, digitRuns.end);
|
|
856
|
+
}
|
|
857
|
+
if (start >= digitRuns.previousStart && start < digitRuns.previousEnd) {
|
|
858
|
+
return Math.min(start + limit, digitRuns.previousEnd);
|
|
859
|
+
}
|
|
860
|
+
let end = start + 1;
|
|
861
|
+
while (isDigit(range[end])) {
|
|
862
|
+
end++;
|
|
863
|
+
}
|
|
864
|
+
digitRuns.previousStart = digitRuns.start;
|
|
865
|
+
digitRuns.previousEnd = digitRuns.end;
|
|
866
|
+
digitRuns.start = start;
|
|
867
|
+
digitRuns.end = end;
|
|
868
|
+
return Math.min(start + limit, end);
|
|
869
|
+
};
|
|
870
|
+
var findVersionNumberEndIndex = (range, start, loose, digitRuns) => {
|
|
871
|
+
if (!loose && range[start] === "0") {
|
|
872
|
+
return start + 1;
|
|
873
|
+
}
|
|
874
|
+
return findDigitsEndIndex(range, start, loose ? MAX_LENGTH : MAX_LENGTH + 1, digitRuns);
|
|
875
|
+
};
|
|
876
|
+
var findPrereleaseIdentifierEndIndex = (range, start, loose, digitRuns) => {
|
|
877
|
+
const digitsEnd = findDigitsEndIndex(range, start, MAX_LENGTH, digitRuns);
|
|
878
|
+
if (isLetter(range[digitsEnd]) || range[digitsEnd] === "-") {
|
|
879
|
+
let end = digitsEnd + 1;
|
|
880
|
+
const limit = end + MAX_SAFE_BUILD_LENGTH;
|
|
881
|
+
while (end < limit && isIdentifierCharacter(range[end])) {
|
|
882
|
+
end++;
|
|
883
|
+
}
|
|
884
|
+
return end;
|
|
885
|
+
}
|
|
886
|
+
return findVersionNumberEndIndex(range, start, loose, digitRuns);
|
|
887
|
+
};
|
|
888
|
+
var findPrereleaseEndIndex = (range, start, loose, digitRuns) => {
|
|
889
|
+
const hyphen = range[start] === "-";
|
|
890
|
+
if (!loose && !hyphen) {
|
|
891
|
+
return start;
|
|
892
|
+
}
|
|
893
|
+
const identifierStart = start + (hyphen ? 1 : 0);
|
|
894
|
+
let end = findPrereleaseIdentifierEndIndex(range, identifierStart, loose, digitRuns);
|
|
895
|
+
if (end === identifierStart) {
|
|
896
|
+
if (!loose || !hyphen) {
|
|
897
|
+
return start;
|
|
898
|
+
}
|
|
899
|
+
end = findPrereleaseIdentifierEndIndex(range, start, loose, digitRuns);
|
|
900
|
+
}
|
|
901
|
+
while (range[end] === ".") {
|
|
902
|
+
const next = findPrereleaseIdentifierEndIndex(range, end + 1, loose, digitRuns);
|
|
903
|
+
if (next === end + 1) {
|
|
904
|
+
break;
|
|
905
|
+
}
|
|
906
|
+
end = next;
|
|
907
|
+
}
|
|
908
|
+
return end;
|
|
909
|
+
};
|
|
910
|
+
var findBuildIdentifierEndIndex = (range, start) => {
|
|
911
|
+
let end = start;
|
|
912
|
+
while (end - start < MAX_SAFE_BUILD_LENGTH && isIdentifierCharacter(range[end])) {
|
|
913
|
+
end++;
|
|
914
|
+
}
|
|
915
|
+
return end;
|
|
916
|
+
};
|
|
917
|
+
var findBuildEndIndex = (range, start) => {
|
|
918
|
+
if (range[start] !== "+") {
|
|
919
|
+
return start;
|
|
920
|
+
}
|
|
921
|
+
let end = findBuildIdentifierEndIndex(range, start + 1);
|
|
922
|
+
if (end === start + 1) {
|
|
923
|
+
return start;
|
|
924
|
+
}
|
|
925
|
+
while (range[end] === ".") {
|
|
926
|
+
const next = findBuildIdentifierEndIndex(range, end + 1);
|
|
927
|
+
if (next === end + 1) {
|
|
928
|
+
break;
|
|
929
|
+
}
|
|
930
|
+
end = next;
|
|
931
|
+
}
|
|
932
|
+
return end;
|
|
933
|
+
};
|
|
934
|
+
var findLooseFullVersionEndIndex = (range, start, digitRuns) => {
|
|
935
|
+
let end = start;
|
|
936
|
+
for (let component = 0; component < 3; component++) {
|
|
937
|
+
const next = findVersionNumberEndIndex(range, end, true, digitRuns);
|
|
938
|
+
if (next === end) {
|
|
939
|
+
return start;
|
|
940
|
+
}
|
|
941
|
+
end = next;
|
|
942
|
+
if (component < 2) {
|
|
943
|
+
if (range[end] !== ".") {
|
|
944
|
+
return start;
|
|
945
|
+
}
|
|
946
|
+
end++;
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
const prereleaseEnd = findPrereleaseEndIndex(range, end, true, digitRuns);
|
|
950
|
+
return findBuildEndIndex(range, prereleaseEnd);
|
|
951
|
+
};
|
|
952
|
+
var findPartialVersionComponentEndIndex = (range, start, digitRuns) => {
|
|
953
|
+
if (isDigit(range[start])) {
|
|
954
|
+
return findVersionNumberEndIndex(range, start, false, digitRuns);
|
|
955
|
+
}
|
|
956
|
+
return isVersionStart(range[start]) ? start + 1 : start;
|
|
957
|
+
};
|
|
958
|
+
var findPartialVersionEndIndex = (range, start, digitRuns) => {
|
|
959
|
+
let end = findPartialVersionComponentEndIndex(range, start, digitRuns);
|
|
960
|
+
for (let component = 0; component < 2; component++) {
|
|
961
|
+
if (range[end] !== ".") {
|
|
962
|
+
return end;
|
|
963
|
+
}
|
|
964
|
+
const next = findPartialVersionComponentEndIndex(range, end + 1, digitRuns);
|
|
965
|
+
if (next === end + 1) {
|
|
966
|
+
return end;
|
|
967
|
+
}
|
|
968
|
+
end = next;
|
|
969
|
+
}
|
|
970
|
+
const prereleaseEnd = findPrereleaseEndIndex(range, end, false, digitRuns);
|
|
971
|
+
return findBuildEndIndex(range, prereleaseEnd);
|
|
972
|
+
};
|
|
973
|
+
var findVersionEndIndex = (range, start, digitRuns) => {
|
|
974
|
+
const fullVersionEnd = findLooseFullVersionEndIndex(range, start, digitRuns);
|
|
975
|
+
return fullVersionEnd !== start ? fullVersionEnd : findPartialVersionEndIndex(range, start, digitRuns);
|
|
976
|
+
};
|
|
977
|
+
var findRemovableWhitespaceIndex = (range, matchStart) => {
|
|
978
|
+
let position = matchStart;
|
|
979
|
+
if (isWhitespace(range[position])) {
|
|
980
|
+
position++;
|
|
981
|
+
}
|
|
982
|
+
if (range[position] === "<" || range[position] === ">") {
|
|
983
|
+
position++;
|
|
984
|
+
}
|
|
985
|
+
if (range[position] === "=") {
|
|
986
|
+
position++;
|
|
987
|
+
}
|
|
988
|
+
return isWhitespace(range[position]) ? position : -1;
|
|
989
|
+
};
|
|
990
|
+
var trimComparatorWhitespace = (range) => {
|
|
991
|
+
let result = "";
|
|
992
|
+
let copyFrom = 0;
|
|
993
|
+
let cursor = 0;
|
|
994
|
+
const digitRuns = { start: -1, end: -1, previousStart: -1, previousEnd: -1 };
|
|
995
|
+
while (cursor < range.length) {
|
|
996
|
+
const matchStart = cursor;
|
|
997
|
+
if (range[cursor] === "<" || range[cursor] === ">") {
|
|
998
|
+
cursor++;
|
|
999
|
+
} else if (!isVersionPrefix(range[cursor]) && !isVersionStart(range[cursor])) {
|
|
1000
|
+
cursor++;
|
|
1001
|
+
continue;
|
|
1002
|
+
}
|
|
1003
|
+
while (cursor < range.length && isVersionPrefix(range[cursor])) {
|
|
1004
|
+
cursor++;
|
|
1005
|
+
}
|
|
1006
|
+
if (!isVersionStart(range[cursor])) {
|
|
1007
|
+
continue;
|
|
1008
|
+
}
|
|
1009
|
+
const whitespacePosition = findRemovableWhitespaceIndex(range, matchStart);
|
|
1010
|
+
if (whitespacePosition !== -1) {
|
|
1011
|
+
result += range.slice(copyFrom, whitespacePosition);
|
|
1012
|
+
copyFrom = whitespacePosition + 1;
|
|
1013
|
+
}
|
|
1014
|
+
cursor = findVersionEndIndex(range, cursor, digitRuns);
|
|
1015
|
+
}
|
|
1016
|
+
return result + range.slice(copyFrom);
|
|
1017
|
+
};
|
|
1018
|
+
module.exports = trimComparatorWhitespace;
|
|
1019
|
+
}
|
|
1020
|
+
});
|
|
1021
|
+
|
|
1022
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/classes/range.js
|
|
804
1023
|
var require_range = __commonJS({
|
|
805
|
-
"node_modules/.pnpm/semver@7.8.
|
|
1024
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/classes/range.js"(exports, module) {
|
|
806
1025
|
"use strict";
|
|
807
1026
|
var SPACE_CHARACTERS = /\s+/g;
|
|
808
1027
|
var Range = class _Range {
|
|
@@ -881,7 +1100,7 @@ var require_range = __commonJS({
|
|
|
881
1100
|
const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE];
|
|
882
1101
|
range = range.replace(hr, hyphenReplace(this.options.includePrerelease));
|
|
883
1102
|
debug("hyphen replace", range);
|
|
884
|
-
range = range
|
|
1103
|
+
range = trimComparatorWhitespace(range);
|
|
885
1104
|
debug("comparator trim", range);
|
|
886
1105
|
range = range.replace(re[t.TILDETRIM], tildeTrimReplace);
|
|
887
1106
|
debug("tilde trim", range);
|
|
@@ -951,11 +1170,11 @@ var require_range = __commonJS({
|
|
|
951
1170
|
var Comparator = require_comparator();
|
|
952
1171
|
var debug = require_debug();
|
|
953
1172
|
var SemVer2 = require_semver();
|
|
1173
|
+
var trimComparatorWhitespace = require_trim_comparator_whitespace();
|
|
954
1174
|
var {
|
|
955
1175
|
safeRe: re,
|
|
956
1176
|
src,
|
|
957
1177
|
t,
|
|
958
|
-
comparatorTrimReplace,
|
|
959
1178
|
tildeTrimReplace,
|
|
960
1179
|
caretTrimReplace
|
|
961
1180
|
} = require_re();
|
|
@@ -1185,9 +1404,9 @@ var require_range = __commonJS({
|
|
|
1185
1404
|
}
|
|
1186
1405
|
});
|
|
1187
1406
|
|
|
1188
|
-
// node_modules/.pnpm/semver@7.8.
|
|
1407
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/satisfies.js
|
|
1189
1408
|
var require_satisfies = __commonJS({
|
|
1190
|
-
"node_modules/.pnpm/semver@7.8.
|
|
1409
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/functions/satisfies.js"(exports, module) {
|
|
1191
1410
|
"use strict";
|
|
1192
1411
|
var Range = require_range();
|
|
1193
1412
|
var satisfies = (version, range, options) => {
|
|
@@ -1202,9 +1421,9 @@ var require_satisfies = __commonJS({
|
|
|
1202
1421
|
}
|
|
1203
1422
|
});
|
|
1204
1423
|
|
|
1205
|
-
// node_modules/.pnpm/semver@7.8.
|
|
1424
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/ranges/min-version.js
|
|
1206
1425
|
var require_min_version = __commonJS({
|
|
1207
|
-
"node_modules/.pnpm/semver@7.8.
|
|
1426
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/ranges/min-version.js"(exports, module) {
|
|
1208
1427
|
"use strict";
|
|
1209
1428
|
var SemVer2 = require_semver();
|
|
1210
1429
|
var Range = require_range();
|
|
@@ -1261,9 +1480,9 @@ var require_min_version = __commonJS({
|
|
|
1261
1480
|
}
|
|
1262
1481
|
});
|
|
1263
1482
|
|
|
1264
|
-
// node_modules/.pnpm/semver@7.8.
|
|
1483
|
+
// node_modules/.pnpm/semver@7.8.6/node_modules/semver/ranges/valid.js
|
|
1265
1484
|
var require_valid2 = __commonJS({
|
|
1266
|
-
"node_modules/.pnpm/semver@7.8.
|
|
1485
|
+
"node_modules/.pnpm/semver@7.8.6/node_modules/semver/ranges/valid.js"(exports, module) {
|
|
1267
1486
|
"use strict";
|
|
1268
1487
|
var Range = require_range();
|
|
1269
1488
|
var validRange = (range, options) => {
|
|
@@ -1281,7 +1500,8 @@ var require_valid2 = __commonJS({
|
|
|
1281
1500
|
var createBrowser = (config) => {
|
|
1282
1501
|
return {
|
|
1283
1502
|
setImportMapFn: config.setImportMapFn,
|
|
1284
|
-
importModule: config.loadModuleFn
|
|
1503
|
+
importModule: config.loadModuleFn,
|
|
1504
|
+
preloadModules: config.preloadModulesFn
|
|
1285
1505
|
};
|
|
1286
1506
|
};
|
|
1287
1507
|
|
|
@@ -1411,7 +1631,7 @@ function markDense(shared) {
|
|
|
1411
1631
|
return shared.map((entry) => "entries" in entry ? { ...entry, dense: true } : entry);
|
|
1412
1632
|
}
|
|
1413
1633
|
|
|
1414
|
-
// node_modules/.pnpm/@softarc+native-federation@4.
|
|
1634
|
+
// node_modules/.pnpm/@softarc+native-federation@4.10.0/node_modules/@softarc/native-federation/dist/lib/domain/core/chunk.js
|
|
1415
1635
|
var CHUNK_PREFIX = "@nf-internal";
|
|
1416
1636
|
var SCRIPT_EXTENSION = /\.(m|c)?js$/;
|
|
1417
1637
|
function toChunkImport(fileName) {
|
|
@@ -1422,7 +1642,7 @@ function toChunkImport(fileName) {
|
|
|
1422
1642
|
return CHUNK_PREFIX + "/" + packageName;
|
|
1423
1643
|
}
|
|
1424
1644
|
|
|
1425
|
-
// node_modules/.pnpm/@softarc+native-federation@4.
|
|
1645
|
+
// node_modules/.pnpm/@softarc+native-federation@4.10.0/node_modules/@softarc/native-federation/dist/lib/utils/normalize.js
|
|
1426
1646
|
function inferPackageFromSecondary(secondary) {
|
|
1427
1647
|
const parts = secondary.split("/");
|
|
1428
1648
|
if (secondary.startsWith("@") && parts.length >= 2) {
|
|
@@ -1431,7 +1651,7 @@ function inferPackageFromSecondary(secondary) {
|
|
|
1431
1651
|
return parts[0];
|
|
1432
1652
|
}
|
|
1433
1653
|
|
|
1434
|
-
// node_modules/.pnpm/@softarc+native-federation@4.
|
|
1654
|
+
// node_modules/.pnpm/@softarc+native-federation@4.10.0/node_modules/@softarc/native-federation/dist/lib/core/output/densify-externals.js
|
|
1435
1655
|
function isDense(entry) {
|
|
1436
1656
|
return "entries" in entry;
|
|
1437
1657
|
}
|
|
@@ -1615,6 +1835,11 @@ var createRemoteInfoRepository = (config) => {
|
|
|
1615
1835
|
(m) => join(_cache[remoteName].scopeUrl, m.file)
|
|
1616
1836
|
);
|
|
1617
1837
|
},
|
|
1838
|
+
getModuleChunkUrls: function(remoteName, exposedModule) {
|
|
1839
|
+
const remote = _cache[remoteName];
|
|
1840
|
+
const chunks = remote?.exposes.find((m) => m.moduleName === exposedModule)?.chunks ?? [];
|
|
1841
|
+
return chunks.map((file) => join(remote.scopeUrl, file));
|
|
1842
|
+
},
|
|
1618
1843
|
getAll: function() {
|
|
1619
1844
|
return _cache;
|
|
1620
1845
|
},
|
|
@@ -1930,6 +2155,18 @@ var replaceInDOM = (mapType, trustedTypesPolicyName = "nfo") => (importMap, opts
|
|
|
1930
2155
|
return Promise.resolve(importMap);
|
|
1931
2156
|
};
|
|
1932
2157
|
|
|
2158
|
+
// src/lib/core/4.config/import-map/preload-in-dom.ts
|
|
2159
|
+
var preloadInDOM = (rel) => {
|
|
2160
|
+
const preloaded = /* @__PURE__ */ new Set();
|
|
2161
|
+
return (urls) => {
|
|
2162
|
+
for (const href of urls) {
|
|
2163
|
+
if (preloaded.has(href)) continue;
|
|
2164
|
+
preloaded.add(href);
|
|
2165
|
+
document.head.appendChild(Object.assign(document.createElement("link"), { rel, href }));
|
|
2166
|
+
}
|
|
2167
|
+
};
|
|
2168
|
+
};
|
|
2169
|
+
|
|
1933
2170
|
// src/lib/core/4.config/import-map/use-default.ts
|
|
1934
2171
|
var useDefaultImportMap = (trustedTypesPolicyName = "nfo") => ({
|
|
1935
2172
|
loadModuleFn: (url) => {
|
|
@@ -1940,20 +2177,27 @@ var useDefaultImportMap = (trustedTypesPolicyName = "nfo") => ({
|
|
|
1940
2177
|
);
|
|
1941
2178
|
},
|
|
1942
2179
|
setImportMapFn: replaceInDOM("importmap", trustedTypesPolicyName),
|
|
2180
|
+
preloadModulesFn: preloadInDOM("modulepreload"),
|
|
1943
2181
|
reloadBrowserFn: () => {
|
|
1944
2182
|
window.location.reload();
|
|
1945
2183
|
}
|
|
1946
2184
|
});
|
|
1947
2185
|
|
|
2186
|
+
// src/lib/core/4.config/import-map/no-preload.ts
|
|
2187
|
+
var noPreload = () => {
|
|
2188
|
+
};
|
|
2189
|
+
|
|
1948
2190
|
// src/lib/core/4.config/import-map/import-map.config.ts
|
|
1949
2191
|
var createImportMapConfig = (o) => {
|
|
1950
2192
|
const fallback = useDefaultImportMap(o.trustedTypesPolicyName);
|
|
1951
2193
|
return {
|
|
1952
2194
|
setImportMapFn: o.setImportMapFn ?? fallback.setImportMapFn,
|
|
1953
2195
|
loadModuleFn: o.loadModuleFn ?? fallback.loadModuleFn,
|
|
1954
|
-
reloadBrowserFn: o.reloadBrowserFn ?? fallback.reloadBrowserFn
|
|
2196
|
+
reloadBrowserFn: o.reloadBrowserFn ?? fallback.reloadBrowserFn,
|
|
2197
|
+
preloadModulesFn: o.preloadModulesFn ?? defaultPreload(o, fallback)
|
|
1955
2198
|
};
|
|
1956
2199
|
};
|
|
2200
|
+
var defaultPreload = (o, fallback) => o.loadModuleFn ? noPreload : fallback.preloadModulesFn;
|
|
1957
2201
|
|
|
1958
2202
|
// src/lib/core/4.config/host/host.config.ts
|
|
1959
2203
|
var createHostConfig = (override) => {
|
|
@@ -2060,7 +2304,7 @@ globalThisStorageEntry.type = "globalThis";
|
|
|
2060
2304
|
Object.freeze(globalThisStorageEntry);
|
|
2061
2305
|
|
|
2062
2306
|
// src/lib/core/4.config/orchestrator-version.ts
|
|
2063
|
-
var ORCHESTRATOR_VERSION = true ? "4.
|
|
2307
|
+
var ORCHESTRATOR_VERSION = true ? "4.10.1" : "dev";
|
|
2064
2308
|
|
|
2065
2309
|
// src/lib/core/4.config/storage/publish-storage-info.ts
|
|
2066
2310
|
var KEYS = Object.freeze(Object.values(STORAGE_KEYS));
|
|
@@ -2165,7 +2409,8 @@ var defaultProfile = {
|
|
|
2165
2409
|
skipInvalidExternalVersions: false,
|
|
2166
2410
|
overrideCachedRemotes: "init-only",
|
|
2167
2411
|
overrideCachedRemotesIfURLMatches: false,
|
|
2168
|
-
mergeManifests: true
|
|
2412
|
+
mergeManifests: true,
|
|
2413
|
+
enableDebugging: false
|
|
2169
2414
|
};
|
|
2170
2415
|
|
|
2171
2416
|
// src/lib/core/4.config/mode/mode.config.ts
|
|
@@ -2210,10 +2455,10 @@ var createInitFlow = ({
|
|
|
2210
2455
|
adapters,
|
|
2211
2456
|
config
|
|
2212
2457
|
}) => {
|
|
2213
|
-
return (remotesOrManifestUrl) => flow.getRemoteEntries(remotesOrManifestUrl).then(flow.processRemoteEntries).then(flow.poolSharedExternals).then(flow.determineSharedExternals).then(flow.decideServingBuilds).then(flow.generateImportMap).then((importMap) => flow.commitChanges(importMap, { override: true })).then(flow.exposeModuleLoader).then((
|
|
2458
|
+
return (remotesOrManifestUrl) => flow.getRemoteEntries(remotesOrManifestUrl).then(flow.processRemoteEntries).then(flow.poolSharedExternals).then(flow.determineSharedExternals).then(flow.decideServingBuilds).then(flow.generateImportMap).then((importMap) => flow.commitChanges(importMap, { override: true })).then(flow.exposeModuleLoader).then((access) => ({
|
|
2214
2459
|
config,
|
|
2215
2460
|
adapters,
|
|
2216
|
-
|
|
2461
|
+
...access
|
|
2217
2462
|
}));
|
|
2218
2463
|
};
|
|
2219
2464
|
|
|
@@ -2249,10 +2494,14 @@ function createStoreRemoteEntry(config, ports, logStep) {
|
|
|
2249
2494
|
function addRemoteInfoToStorage({ name, url, exposes, integrity }) {
|
|
2250
2495
|
ports.remoteInfoRepo.addOrUpdate(name, {
|
|
2251
2496
|
scopeUrl: getScope(url),
|
|
2252
|
-
exposes: Object.values(exposes ?? []).map((m) =>
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2497
|
+
exposes: Object.values(exposes ?? []).map((m) => {
|
|
2498
|
+
const chunks = Object.values(m.chunks ?? {}).filter((c) => c.initial).map((c) => c.file);
|
|
2499
|
+
return {
|
|
2500
|
+
moduleName: m.key,
|
|
2501
|
+
file: m.outFileName,
|
|
2502
|
+
...chunks.length ? { chunks } : {}
|
|
2503
|
+
};
|
|
2504
|
+
}),
|
|
2256
2505
|
...integrity ? { integrity } : {}
|
|
2257
2506
|
});
|
|
2258
2507
|
}
|
|
@@ -2283,10 +2532,13 @@ function createStoreRemoteEntry(config, ports, logStep) {
|
|
|
2283
2532
|
});
|
|
2284
2533
|
}
|
|
2285
2534
|
function addScopedExternal(remoteEntry, sharedInfo, tag) {
|
|
2286
|
-
|
|
2535
|
+
const { packageName, entries } = sharedInfo;
|
|
2536
|
+
const key = packageName in entries ? packageName : Object.keys(entries)[0] ?? packageName;
|
|
2537
|
+
ports.scopedExternalsRepo.addExternal(remoteEntry.name, key, {
|
|
2287
2538
|
tag,
|
|
2288
2539
|
bundle: sharedInfo.bundle,
|
|
2289
|
-
entries
|
|
2540
|
+
entries,
|
|
2541
|
+
...sharedInfo.preload ? { preload: true } : {}
|
|
2290
2542
|
});
|
|
2291
2543
|
}
|
|
2292
2544
|
function resolveVersion(remoteEntry, external) {
|
|
@@ -2315,7 +2567,9 @@ function createStoreRemoteEntry(config, ports, logStep) {
|
|
|
2315
2567
|
requiredVersion: scopeType === "strict" ? tag : sharedInfo.requiredVersion || tag,
|
|
2316
2568
|
...sharedInfo.pool?.trim() ? { pool: sharedInfo.pool } : {},
|
|
2317
2569
|
...sharedInfo.dense ? { dense: true } : {},
|
|
2318
|
-
entries: sharedInfo.entries
|
|
2570
|
+
entries: sharedInfo.entries,
|
|
2571
|
+
...sharedInfo.preload ? { preload: true } : {},
|
|
2572
|
+
...sharedInfo.dev ? { dev: true } : {}
|
|
2319
2573
|
};
|
|
2320
2574
|
let stored;
|
|
2321
2575
|
const readRecord = () => stored ??= ports.sharedExternalsRepo.tryGet(sharedInfo.packageName, sharedInfo.shareScope).get() ?? { dirty: false, versions: [] };
|
|
@@ -2339,7 +2593,9 @@ function createStoreRemoteEntry(config, ports, logStep) {
|
|
|
2339
2593
|
sharedInfo.packageName,
|
|
2340
2594
|
{
|
|
2341
2595
|
...readRecord(),
|
|
2342
|
-
versions: readRecord().versions.sort(
|
|
2596
|
+
versions: readRecord().versions.sort(
|
|
2597
|
+
(a, b) => ports.versionCheck.compare(b.tag, a.tag)
|
|
2598
|
+
)
|
|
2343
2599
|
},
|
|
2344
2600
|
sharedInfo.shareScope
|
|
2345
2601
|
);
|
|
@@ -2480,19 +2736,20 @@ function compareStrings(a, b) {
|
|
|
2480
2736
|
|
|
2481
2737
|
// src/lib/core/1.domain/externals/basis.ts
|
|
2482
2738
|
var coverage = (remote) => Object.keys(remote.entries).length;
|
|
2483
|
-
function isBetterBasis(candidate, basis) {
|
|
2739
|
+
function isBetterBasis(candidate, basis, preferDev = false) {
|
|
2740
|
+
if (preferDev && Boolean(basis.dev) !== Boolean(candidate.dev)) return Boolean(candidate.dev);
|
|
2484
2741
|
if (basis.cached !== candidate.cached) return candidate.cached;
|
|
2485
2742
|
const byCoverage = coverage(candidate) - coverage(basis);
|
|
2486
2743
|
return byCoverage === 0 ? compareStrings(candidate.name, basis.name) < 0 : byCoverage > 0;
|
|
2487
2744
|
}
|
|
2488
|
-
function addRemoteToVersion(version, remote, isHost = false) {
|
|
2745
|
+
function addRemoteToVersion(version, remote, isHost = false, preferDev = false) {
|
|
2489
2746
|
if (isHost) {
|
|
2490
2747
|
version.host = true;
|
|
2491
2748
|
version.remotes.unshift(remote);
|
|
2492
2749
|
return;
|
|
2493
2750
|
}
|
|
2494
2751
|
const basis = version.remotes[0];
|
|
2495
|
-
if (basis && !version.host && isBetterBasis(remote, basis)) {
|
|
2752
|
+
if (basis && !version.host && isBetterBasis(remote, basis, preferDev)) {
|
|
2496
2753
|
version.remotes.unshift(remote);
|
|
2497
2754
|
return;
|
|
2498
2755
|
}
|
|
@@ -2650,7 +2907,12 @@ function createProcessRemoteEntries(config, ports) {
|
|
|
2650
2907
|
const matchingVersion = findVersionForTag(cached2.versions, tag);
|
|
2651
2908
|
if (matchingVersion) {
|
|
2652
2909
|
assertSameVersionCompatibility(matchingVersion);
|
|
2653
|
-
addRemoteToVersion(
|
|
2910
|
+
addRemoteToVersion(
|
|
2911
|
+
matchingVersion,
|
|
2912
|
+
remote,
|
|
2913
|
+
!matchingVersion.host && !!remoteEntry?.host,
|
|
2914
|
+
config.profile.enableDebugging
|
|
2915
|
+
);
|
|
2654
2916
|
} else {
|
|
2655
2917
|
cached2.versions.push({
|
|
2656
2918
|
tag,
|
|
@@ -2914,14 +3176,11 @@ function groupByPackage(items, nameOf, packageOf) {
|
|
|
2914
3176
|
// src/lib/core/1.domain/pooling/builds.ts
|
|
2915
3177
|
function copiesByRemote(members) {
|
|
2916
3178
|
const shipped = /* @__PURE__ */ new Map();
|
|
2917
|
-
for (const member of members)
|
|
2918
|
-
const
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
seen.add(meta.name);
|
|
2923
|
-
let copies = shipped.get(meta.name);
|
|
2924
|
-
if (!copies) shipped.set(meta.name, copies = []);
|
|
3179
|
+
for (const member of members)
|
|
3180
|
+
for (const [remote, records] of recordsByRemote(member)) {
|
|
3181
|
+
let copies = shipped.get(remote);
|
|
3182
|
+
if (!copies) shipped.set(remote, copies = []);
|
|
3183
|
+
for (const { version, meta } of records)
|
|
2925
3184
|
copies.push({
|
|
2926
3185
|
member: member.name,
|
|
2927
3186
|
tag: version.tag,
|
|
@@ -2930,10 +3189,19 @@ function copiesByRemote(members) {
|
|
|
2930
3189
|
host: version.host && meta === version.remotes[0],
|
|
2931
3190
|
specifiers: Object.keys(meta.entries)
|
|
2932
3191
|
});
|
|
2933
|
-
|
|
2934
|
-
}
|
|
3192
|
+
}
|
|
2935
3193
|
return shipped;
|
|
2936
3194
|
}
|
|
3195
|
+
function recordsByRemote(member) {
|
|
3196
|
+
const records = /* @__PURE__ */ new Map();
|
|
3197
|
+
for (const version of member.external.versions)
|
|
3198
|
+
for (const meta of version.remotes) {
|
|
3199
|
+
const mine = records.get(meta.name);
|
|
3200
|
+
if (!mine) records.set(meta.name, [{ version, meta }]);
|
|
3201
|
+
else if (mine[0].version.tag === version.tag) mine.push({ version, meta });
|
|
3202
|
+
}
|
|
3203
|
+
return records;
|
|
3204
|
+
}
|
|
2937
3205
|
var specifierCount = (copies) => copies.reduce((n, copy) => n + copy.specifiers.length, 0);
|
|
2938
3206
|
function buildOf(owner, copies, packageOf) {
|
|
2939
3207
|
const tags = new SpecifierTags(packageOf);
|
|
@@ -3310,7 +3578,7 @@ function memberRecord(member, pool, compare) {
|
|
|
3310
3578
|
const row = { tag, host: false, action, remotes: [meta] };
|
|
3311
3579
|
placed.push(row);
|
|
3312
3580
|
if (meta.name !== pool.winner) return;
|
|
3313
|
-
winnerRow
|
|
3581
|
+
winnerRow ??= row;
|
|
3314
3582
|
row.host = pool.winnerIsHost;
|
|
3315
3583
|
};
|
|
3316
3584
|
for (const version of member.external.versions)
|
|
@@ -3324,9 +3592,9 @@ function memberRecord(member, pool, compare) {
|
|
|
3324
3592
|
place(version.tag, "skip", { ...meta, servedBy: placement.owner });
|
|
3325
3593
|
else place(version.tag, "scope", { ...meta, poolCause: placement.cause });
|
|
3326
3594
|
}
|
|
3595
|
+
const rank2 = (name) => name === pool.winner ? 0 : claimsGlobally(name) ? 1 : 2;
|
|
3327
3596
|
const rows = mergeRows(placed, winnerRow);
|
|
3328
|
-
for (const row of rows)
|
|
3329
|
-
row.remotes.sort((a, b) => Number(!claimsGlobally(a.name)) - Number(!claimsGlobally(b.name)));
|
|
3597
|
+
for (const row of rows) row.remotes.sort((a, b) => rank2(a.name) - rank2(b.name));
|
|
3330
3598
|
const order = { share: 0, skip: 1, scope: 2 };
|
|
3331
3599
|
const newest = byTag(compare);
|
|
3332
3600
|
const versions = rows.sort((a, b) => newest(a, b) || order[a.action] - order[b.action]);
|
|
@@ -3347,14 +3615,16 @@ function moveCopy(external, remote, move, compare) {
|
|
|
3347
3615
|
if ("fromMap" in move) return recordFromMap(external, remote);
|
|
3348
3616
|
const moved = [];
|
|
3349
3617
|
const versions = external.versions.map((v) => {
|
|
3350
|
-
const
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
return { ...v, remotes: v.remotes.
|
|
3618
|
+
const replaced = /* @__PURE__ */ new Map();
|
|
3619
|
+
for (const copy of v.remotes) {
|
|
3620
|
+
if (copy.name !== remote) continue;
|
|
3621
|
+
const { servedBy: _servedBy, ...rest } = copy;
|
|
3622
|
+
replaced.set(copy, { ...rest, cached: true, poolCause: move.cause });
|
|
3623
|
+
}
|
|
3624
|
+
if (replaced.size === 0) return v;
|
|
3625
|
+
if (v.action === "scope") return { ...v, remotes: v.remotes.map((r) => replaced.get(r) ?? r) };
|
|
3626
|
+
for (const meta of replaced.values()) moved.push({ tag: v.tag, meta });
|
|
3627
|
+
return { ...v, remotes: v.remotes.filter((r) => !replaced.has(r)) };
|
|
3358
3628
|
}).filter((v) => v.remotes.length > 0);
|
|
3359
3629
|
for (const { tag, meta } of moved) {
|
|
3360
3630
|
const scoped = rowAt(versions, tag, "scope");
|
|
@@ -3367,10 +3637,10 @@ function recordFromMap(external, remote) {
|
|
|
3367
3637
|
const opened = external.versions.find(
|
|
3368
3638
|
(v) => v.action !== "skip" && v.remotes.some((r) => r.name === remote)
|
|
3369
3639
|
);
|
|
3370
|
-
const meta = { ...opened.remotes.find((r) => r.name === remote), cached: false };
|
|
3371
3640
|
const joined = rowAt(external.versions, opened.tag, "skip");
|
|
3372
3641
|
const into = joined ? { ...joined, remotes: [...joined.remotes] } : { ...opened, action: "skip", remotes: [] };
|
|
3373
|
-
|
|
3642
|
+
for (const copy of opened.remotes)
|
|
3643
|
+
if (copy.name === remote) addRemoteToVersion(into, { ...copy, cached: false });
|
|
3374
3644
|
const versions = external.versions.flatMap((v) => {
|
|
3375
3645
|
if (v === joined) return [into];
|
|
3376
3646
|
if (v !== opened) return [v];
|
|
@@ -3555,11 +3825,12 @@ function cheapestBuild(field, costOf) {
|
|
|
3555
3825
|
}
|
|
3556
3826
|
function shareServingCopies(external, serving) {
|
|
3557
3827
|
for (const row of external.versions) {
|
|
3558
|
-
|
|
3559
|
-
|
|
3828
|
+
if (row.action !== "skip" || rowAt(external.versions, row.tag, "share")) continue;
|
|
3829
|
+
const own = row.remotes.filter((c) => c.name === serving.remote);
|
|
3830
|
+
if (own.length === 0) continue;
|
|
3560
3831
|
row.action = "share";
|
|
3561
|
-
if (row.remotes[0] !==
|
|
3562
|
-
row.remotes = [
|
|
3832
|
+
if (row.remotes[0] !== own[0]) row.host = false;
|
|
3833
|
+
row.remotes = [...own, ...row.remotes.filter((c) => c.name !== serving.remote)];
|
|
3563
3834
|
}
|
|
3564
3835
|
}
|
|
3565
3836
|
function followServingBuild(external, serving, accepts) {
|
|
@@ -3604,20 +3875,20 @@ function shareRows(external) {
|
|
|
3604
3875
|
return external?.versions.filter((v) => v.action === "share") ?? [];
|
|
3605
3876
|
}
|
|
3606
3877
|
function buildsOf(rows, rootRows, consumers) {
|
|
3607
|
-
const
|
|
3878
|
+
const builds = /* @__PURE__ */ new Map();
|
|
3608
3879
|
for (const row of rows)
|
|
3609
3880
|
for (const copy of row.remotes) {
|
|
3610
3881
|
const key = `${row.tag}|${copy.name}`;
|
|
3611
|
-
if (copy.servedBy ||
|
|
3882
|
+
if (copy.servedBy || builds.has(key) || shipsTwoTags(consumers.get(copy.name))) continue;
|
|
3612
3883
|
const basis = copy === row.remotes[0];
|
|
3613
|
-
|
|
3884
|
+
builds.set(key, {
|
|
3614
3885
|
remote: copy.name,
|
|
3615
3886
|
tag: row.tag,
|
|
3616
3887
|
host: basis && row.host,
|
|
3617
3888
|
rootBasis: basis && rootRows.includes(row)
|
|
3618
3889
|
});
|
|
3619
3890
|
}
|
|
3620
|
-
return [...
|
|
3891
|
+
return [...builds.values()];
|
|
3621
3892
|
}
|
|
3622
3893
|
function pooledBuild(externals, rows) {
|
|
3623
3894
|
const winner = externals.find(([, e]) => e.poolWinner !== void 0)?.[1].poolWinner;
|
|
@@ -3626,10 +3897,7 @@ function pooledBuild(externals, rows) {
|
|
|
3626
3897
|
);
|
|
3627
3898
|
const own = shipped.find((c) => c.remote === winner);
|
|
3628
3899
|
if (own) return own;
|
|
3629
|
-
const width = ({ remote, tag }) => externals.
|
|
3630
|
-
const copy = shareRows(e).find((row) => row.tag === tag)?.remotes.find((c) => c.name === remote);
|
|
3631
|
-
return n + Object.keys(copy?.entries ?? {}).length;
|
|
3632
|
-
}, 0);
|
|
3900
|
+
const width = ({ remote, tag }) => externals.flatMap(([, e]) => shareRows(e).find((row) => row.tag === tag)?.remotes ?? []).filter((copy) => copy.name === remote).reduce((n, copy) => n + Object.keys(copy.entries).length, 0);
|
|
3633
3901
|
return shipped.map((c) => ({ c, width: width(c) })).sort((a, b) => b.width - a.width || compareStrings(a.c.remote, b.c.remote))[0]?.c;
|
|
3634
3902
|
}
|
|
3635
3903
|
function consumersOf(externals) {
|
|
@@ -4256,16 +4524,99 @@ function shipsOnly(version, served) {
|
|
|
4256
4524
|
return only;
|
|
4257
4525
|
}
|
|
4258
4526
|
|
|
4527
|
+
// src/lib/core/2.app/steps/preload-hint.ts
|
|
4528
|
+
function createPreloadHint(log, browser, logStep) {
|
|
4529
|
+
const ignore = (error) => log.debug(logStep, "Ignored a failing preload hint.", error);
|
|
4530
|
+
return (collectUrls) => {
|
|
4531
|
+
if (!browser.preloadModules) return;
|
|
4532
|
+
try {
|
|
4533
|
+
const urls = collectUrls();
|
|
4534
|
+
if (urls.length === 0) return;
|
|
4535
|
+
void Promise.resolve(browser.preloadModules(urls)).catch(ignore);
|
|
4536
|
+
} catch (error) {
|
|
4537
|
+
ignore(error);
|
|
4538
|
+
}
|
|
4539
|
+
};
|
|
4540
|
+
}
|
|
4541
|
+
|
|
4542
|
+
// src/lib/core/1.domain/import-map/eager-preloads.ts
|
|
4543
|
+
function eagerPreloadUrls(importMap, candidates) {
|
|
4544
|
+
let mapped;
|
|
4545
|
+
const urls = /* @__PURE__ */ new Set();
|
|
4546
|
+
const bundlesAdded = /* @__PURE__ */ new Set();
|
|
4547
|
+
for (const { scopeUrl, entryFiles, bundle } of candidates) {
|
|
4548
|
+
mapped ??= mappedUrls(importMap);
|
|
4549
|
+
const entryUrls = entryFiles.map((file) => join(scopeUrl, file));
|
|
4550
|
+
const served = entryUrls.length > 0 && entryUrls.every((url) => mapped.has(url));
|
|
4551
|
+
if (!served) continue;
|
|
4552
|
+
entryUrls.forEach((url) => urls.add(url));
|
|
4553
|
+
if (!bundle) continue;
|
|
4554
|
+
const bundleKey = `${scopeUrl}
|
|
4555
|
+
${bundle.name}`;
|
|
4556
|
+
if (bundlesAdded.has(bundleKey)) continue;
|
|
4557
|
+
bundlesAdded.add(bundleKey);
|
|
4558
|
+
bundle.chunkFiles.forEach((file) => urls.add(join(scopeUrl, file)));
|
|
4559
|
+
}
|
|
4560
|
+
return [...urls];
|
|
4561
|
+
}
|
|
4562
|
+
var mappedUrls = (importMap) => /* @__PURE__ */ new Set([
|
|
4563
|
+
...Object.values(importMap.imports),
|
|
4564
|
+
...Object.values(importMap.scopes ?? {}).flatMap((scope) => Object.values(scope))
|
|
4565
|
+
]);
|
|
4566
|
+
|
|
4567
|
+
// src/lib/core/2.app/steps/collect-eager-preloads.ts
|
|
4568
|
+
function createCollectEagerPreloads(ports) {
|
|
4569
|
+
return (importMap) => eagerPreloadUrls(importMap, candidates());
|
|
4570
|
+
function* candidates() {
|
|
4571
|
+
for (const [remoteName, copy] of storedCopies()) {
|
|
4572
|
+
if (!copy.preload) continue;
|
|
4573
|
+
const scopeUrl = ports.remoteInfoRepo.tryGet(remoteName).get()?.scopeUrl;
|
|
4574
|
+
if (!scopeUrl) continue;
|
|
4575
|
+
yield {
|
|
4576
|
+
scopeUrl,
|
|
4577
|
+
entryFiles: Object.values(copy.entries),
|
|
4578
|
+
...copy.bundle && {
|
|
4579
|
+
bundle: {
|
|
4580
|
+
name: copy.bundle,
|
|
4581
|
+
chunkFiles: ports.sharedChunksRepo.tryGet(remoteName, copy.bundle).orElse([])
|
|
4582
|
+
}
|
|
4583
|
+
}
|
|
4584
|
+
};
|
|
4585
|
+
}
|
|
4586
|
+
}
|
|
4587
|
+
function* storedCopies() {
|
|
4588
|
+
const shared = ports.sharedExternalsRepo;
|
|
4589
|
+
for (const shareScope of shared.getScopes())
|
|
4590
|
+
for (const external of Object.values(shared.getFromScope(shareScope)))
|
|
4591
|
+
for (const version of external.versions)
|
|
4592
|
+
for (const copy of version.remotes) yield [copy.name, copy];
|
|
4593
|
+
for (const [remoteName, externals] of Object.entries(ports.scopedExternalsRepo.getAll()))
|
|
4594
|
+
for (const copy of Object.values(externals)) yield [remoteName, copy];
|
|
4595
|
+
}
|
|
4596
|
+
}
|
|
4597
|
+
|
|
4259
4598
|
// src/lib/core/2.app/steps/commit-changes.ts
|
|
4260
4599
|
function createCommitChanges(config, ports) {
|
|
4261
|
-
|
|
4600
|
+
const preload = createPreloadHint(config.log, ports.browser, 5);
|
|
4601
|
+
const collectEagerPreloads = createCollectEagerPreloads(ports);
|
|
4602
|
+
return (importMap, { markUndecided = false, ...browserOpts } = {}) => Promise.resolve(importMap).then((map) => addToBrowser(map, browserOpts)).then((added) => {
|
|
4262
4603
|
if (markUndecided) markUndecidedScopes();
|
|
4263
4604
|
persistRepositoryChanges();
|
|
4605
|
+
preloadOnceAdded(added, importMap);
|
|
4264
4606
|
});
|
|
4265
4607
|
function addToBrowser(importMap, opts) {
|
|
4266
|
-
ports.browser.setImportMapFn(importMap, opts);
|
|
4608
|
+
const added = ports.browser.setImportMapFn(importMap, opts);
|
|
4267
4609
|
config.log.debug(5, "Added import map to browser.", importMap);
|
|
4268
|
-
return
|
|
4610
|
+
return { added };
|
|
4611
|
+
}
|
|
4612
|
+
function preloadOnceAdded({ added }, importMap) {
|
|
4613
|
+
Promise.resolve(added).then(
|
|
4614
|
+
() => preload(() => collectEagerPreloads(importMap)),
|
|
4615
|
+
(error) => {
|
|
4616
|
+
config.log.error(5, "Could not add the import map.", error);
|
|
4617
|
+
return Promise.reject(error);
|
|
4618
|
+
}
|
|
4619
|
+
);
|
|
4269
4620
|
}
|
|
4270
4621
|
function markUndecidedScopes() {
|
|
4271
4622
|
const repo = ports.sharedExternalsRepo;
|
|
@@ -4306,6 +4657,7 @@ function createRollbackChanges(config, ports) {
|
|
|
4306
4657
|
|
|
4307
4658
|
// src/lib/core/2.app/steps/expose-module-loader.ts
|
|
4308
4659
|
function createExposeModuleLoader(config, ports) {
|
|
4660
|
+
const preload = createPreloadHint(config.log, ports.browser, 6);
|
|
4309
4661
|
const loadRemoteModule = (remoteName, exposedModule) => {
|
|
4310
4662
|
try {
|
|
4311
4663
|
if (!ports.remoteInfoRepo.contains(remoteName)) {
|
|
@@ -4317,6 +4669,7 @@ function createExposeModuleLoader(config, ports) {
|
|
|
4317
4669
|
)
|
|
4318
4670
|
);
|
|
4319
4671
|
config.log.debug(6, `Loading initialized module '${remoteModuleUrl}'`);
|
|
4672
|
+
preload(() => ports.remoteInfoRepo.getModuleChunkUrls(remoteName, exposedModule));
|
|
4320
4673
|
return ports.browser.importModule(remoteModuleUrl);
|
|
4321
4674
|
} catch (error) {
|
|
4322
4675
|
config.log.error(6, `Failed to load module ${join(remoteName, exposedModule)}: `, {
|
|
@@ -4327,7 +4680,15 @@ function createExposeModuleLoader(config, ports) {
|
|
|
4327
4680
|
);
|
|
4328
4681
|
}
|
|
4329
4682
|
};
|
|
4330
|
-
|
|
4683
|
+
const preloadRemoteModule = (remoteName, exposedModule) => preload(() => {
|
|
4684
|
+
const url = ports.remoteInfoRepo.tryGetModule(remoteName, exposedModule);
|
|
4685
|
+
if (!url.isPresent()) {
|
|
4686
|
+
config.log.debug(6, `Nothing to preload for '${remoteName}/${exposedModule}'.`);
|
|
4687
|
+
return [];
|
|
4688
|
+
}
|
|
4689
|
+
return [url.get(), ...ports.remoteInfoRepo.getModuleChunkUrls(remoteName, exposedModule)];
|
|
4690
|
+
});
|
|
4691
|
+
return () => Promise.resolve({ loadRemoteModule, preloadRemoteModule });
|
|
4331
4692
|
}
|
|
4332
4693
|
|
|
4333
4694
|
// src/lib/core/2.app/steps/get-remote-entry.ts
|
|
@@ -4690,11 +5051,15 @@ function coverFromMap(remote, mine, view, actions, policy) {
|
|
|
4690
5051
|
const files = [];
|
|
4691
5052
|
for (const member of mine) {
|
|
4692
5053
|
const action = actions[member.name];
|
|
4693
|
-
const
|
|
4694
|
-
if (!
|
|
4695
|
-
const
|
|
5054
|
+
const copies = recordsByRemote(member).get(remote);
|
|
5055
|
+
if (!copies) continue;
|
|
5056
|
+
const entries = {};
|
|
5057
|
+
for (const { meta } of copies)
|
|
5058
|
+
for (const [specifier, file] of Object.entries(meta.entries)) entries[specifier] ??= file;
|
|
5059
|
+
const inShareRow = copies.some(({ version }) => version.action === "share");
|
|
5060
|
+
const mapped = mapFiles(entries, view, policy, action);
|
|
4696
5061
|
if ("unmapped" in mapped) return mapped;
|
|
4697
|
-
files.push({ member, action,
|
|
5062
|
+
files.push({ member, action, entries, inShareRow, ...mapped });
|
|
4698
5063
|
}
|
|
4699
5064
|
const reaches = reachesOf(remote, files, view);
|
|
4700
5065
|
const bound = boundByFile(reaches, view);
|
|
@@ -4704,19 +5069,19 @@ function coverFromMap(remote, mine, view, actions, policy) {
|
|
|
4704
5069
|
if (gap !== void 0) return { gap };
|
|
4705
5070
|
return { covers: files.filter(covering).map(coverOf) };
|
|
4706
5071
|
}
|
|
4707
|
-
function gapOf({
|
|
4708
|
-
const entrypoints = Object.keys(
|
|
5072
|
+
function gapOf({ entries, covered }, servedPackages, packageOf) {
|
|
5073
|
+
const entrypoints = Object.keys(entries);
|
|
4709
5074
|
const missing = entrypoints.filter((specifier) => !covered.has(specifier));
|
|
4710
5075
|
if (missing.length < entrypoints.length) return missing[0];
|
|
4711
5076
|
return missing.find((specifier) => servedPackages.has(packageOf(specifier)));
|
|
4712
5077
|
}
|
|
4713
|
-
function covering({ action,
|
|
5078
|
+
function covering({ action, entries, covered }) {
|
|
4714
5079
|
if (action.action === "skip") return true;
|
|
4715
|
-
const entrypoints = Object.keys(
|
|
5080
|
+
const entrypoints = Object.keys(entries);
|
|
4716
5081
|
return entrypoints.length > 0 && entrypoints.every((specifier) => covered.has(specifier));
|
|
4717
5082
|
}
|
|
4718
|
-
function coverOf({ member, action,
|
|
4719
|
-
const toSkip = action.action !== "skip" || covered.size > action.covered.length &&
|
|
5083
|
+
function coverOf({ member, action, inShareRow, covered, override }) {
|
|
5084
|
+
const toSkip = action.action !== "skip" || covered.size > action.covered.length && inShareRow;
|
|
4720
5085
|
return { name: member.name, toSkip, override };
|
|
4721
5086
|
}
|
|
4722
5087
|
function reachesOf(remote, files, view) {
|
|
@@ -4727,7 +5092,7 @@ function reachesOf(remote, files, view) {
|
|
|
4727
5092
|
};
|
|
4728
5093
|
for (const file of files) {
|
|
4729
5094
|
const takesMap = covering(file);
|
|
4730
|
-
for (const [specifier, own] of Object.entries(file.
|
|
5095
|
+
for (const [specifier, own] of Object.entries(file.entries)) {
|
|
4731
5096
|
if (!takesMap || !file.covered.has(specifier)) reaches.set(specifier, { remote, file: own });
|
|
4732
5097
|
else {
|
|
4733
5098
|
const reach = fromMap(specifier);
|
|
@@ -4754,10 +5119,10 @@ function boundByFile(reaches, view) {
|
|
|
4754
5119
|
}
|
|
4755
5120
|
return void 0;
|
|
4756
5121
|
}
|
|
4757
|
-
function mapFiles(
|
|
5122
|
+
function mapFiles(entries, view, policy, action) {
|
|
4758
5123
|
const covered = new Set(action.covered);
|
|
4759
5124
|
const override = { ...action.override };
|
|
4760
|
-
for (const specifier in
|
|
5125
|
+
for (const specifier in entries) {
|
|
4761
5126
|
const source = view.global.get(specifier);
|
|
4762
5127
|
if (!source) continue;
|
|
4763
5128
|
if (policy.shareScope !== GLOBAL_SCOPE) {
|
|
@@ -5081,6 +5446,9 @@ var createFederationResult = ({
|
|
|
5081
5446
|
config,
|
|
5082
5447
|
adapters,
|
|
5083
5448
|
loadRemoteModule,
|
|
5449
|
+
// A host composing init by hand may not pass it.
|
|
5450
|
+
preloadRemoteModule = () => {
|
|
5451
|
+
},
|
|
5084
5452
|
initRemoteEntryFlow,
|
|
5085
5453
|
afterInitRemoteEntry
|
|
5086
5454
|
}) => {
|
|
@@ -5096,6 +5464,7 @@ var createFederationResult = ({
|
|
|
5096
5464
|
adapters,
|
|
5097
5465
|
loadRemoteModule,
|
|
5098
5466
|
load: loadRemoteModule,
|
|
5467
|
+
preloadRemoteModule,
|
|
5099
5468
|
as: () => ({
|
|
5100
5469
|
loadRemoteModule,
|
|
5101
5470
|
load: loadRemoteModule
|
|
@@ -5209,7 +5578,9 @@ var useNodeImportMap = () => {
|
|
|
5209
5578
|
setImportMapFn: (importMap) => nodeLoader.setMap(importMap).then(() => importMap),
|
|
5210
5579
|
setHostInstancesFn: (keys) => nodeLoader.setHostInstances(keys).then(() => keys),
|
|
5211
5580
|
reloadBrowserFn: () => {
|
|
5212
|
-
}
|
|
5581
|
+
},
|
|
5582
|
+
// import() would evaluate the module, and the loader thread reads a module only once it is imported.
|
|
5583
|
+
preloadModulesFn: noPreload
|
|
5213
5584
|
};
|
|
5214
5585
|
};
|
|
5215
5586
|
|
|
@@ -5288,6 +5659,7 @@ var initNodeFederation = (remotesOrManifestUrl, options = {}) => {
|
|
|
5288
5659
|
loadModuleFn: options.loadModuleFn ?? nodeConfig.loadModuleFn,
|
|
5289
5660
|
setImportMapFn: options.setImportMapFn ?? nodeConfig.setImportMapFn,
|
|
5290
5661
|
reloadBrowserFn: options.reloadBrowserFn ?? nodeConfig.reloadBrowserFn,
|
|
5662
|
+
preloadModulesFn: options.preloadModulesFn ?? nodeConfig.preloadModulesFn,
|
|
5291
5663
|
sse: false
|
|
5292
5664
|
});
|
|
5293
5665
|
const adapters = buildNodeAdapters(config);
|
|
@@ -5311,11 +5683,11 @@ var initNodeFederation = (remotesOrManifestUrl, options = {}) => {
|
|
|
5311
5683
|
const factory = INIT_FLOW_FACTORY({ adapters, config });
|
|
5312
5684
|
const initFlow = createInitFlow(factory);
|
|
5313
5685
|
const initRemoteEntryFlow = createInitRemoteEntryFlow(factory);
|
|
5314
|
-
return hostInstancesReady.then(() => initFlow(remotesOrManifestUrl)).then((
|
|
5315
|
-
(
|
|
5686
|
+
return hostInstancesReady.then(() => initFlow(remotesOrManifestUrl)).then((access) => nodeConfig.nodeLoader.ready().then(() => access)).then(
|
|
5687
|
+
(access) => createFederationResult({
|
|
5316
5688
|
config,
|
|
5317
5689
|
adapters,
|
|
5318
|
-
|
|
5690
|
+
...access,
|
|
5319
5691
|
initRemoteEntryFlow,
|
|
5320
5692
|
afterInitRemoteEntry: () => nodeConfig.nodeLoader.ready()
|
|
5321
5693
|
})
|