@softarc/native-federation-orchestrator 4.3.0 → 4.4.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.
@@ -0,0 +1,56 @@
1
+ // src/lib/utils/path.ts
2
+ function join(pathA, pathB) {
3
+ pathA = pathA.endsWith("/") ? pathA.slice(0, -1) : pathA;
4
+ pathB = pathB.startsWith("/") ? pathB.slice(1) : pathB;
5
+ return `${pathA}/${pathB}`;
6
+ }
7
+
8
+ // src/lib/module-federation/get-shared.ts
9
+ function createGetShared(ports) {
10
+ return (options = {}) => {
11
+ const shared = {};
12
+ for (const scope of ports.sharedExternalsRepo.getScopes({ includeGlobal: true })) {
13
+ const scopeType = ports.sharedExternalsRepo.scopeType(scope);
14
+ const externals = ports.sharedExternalsRepo.getFromScope(scope);
15
+ for (const [packageName, external] of Object.entries(externals)) {
16
+ const shareVersions = external.versions.filter((v) => v.action === "share");
17
+ if (shareVersions.length === 0) continue;
18
+ const versions = scopeType === "strict" ? shareVersions : shareVersions.slice(0, 1);
19
+ const singleton = scopeType === "strict" ? false : options.singleton ?? true;
20
+ for (const version of versions) {
21
+ const url = resolveUrl(version);
22
+ if (!url) continue;
23
+ const shareObject = {
24
+ version: version.tag,
25
+ get: () => ports.browser.importModule(url).then((module) => () => module),
26
+ shareConfig: {
27
+ singleton,
28
+ requiredVersion: resolveRequiredVersion(version, options, scopeType),
29
+ ...scopeType === "strict" ? { strictVersion: true } : {}
30
+ }
31
+ };
32
+ if (scopeType !== "global") shareObject.scope = scope;
33
+ if (!shared[packageName]) shared[packageName] = [];
34
+ shared[packageName].push(shareObject);
35
+ }
36
+ }
37
+ }
38
+ return shared;
39
+ };
40
+ function resolveUrl(version) {
41
+ const source = version.remotes[0];
42
+ if (!source) return void 0;
43
+ return ports.remoteInfoRepo.tryGet(source.name).map((remote) => join(remote.scopeUrl, source.file)).get();
44
+ }
45
+ }
46
+ function resolveRequiredVersion(version, options, scopeType) {
47
+ if (scopeType === "strict") return version.tag;
48
+ if (typeof options.requiredVersionPrefix === "string") {
49
+ return `${options.requiredVersionPrefix}${version.tag}`;
50
+ }
51
+ return version.remotes[0]?.requiredVersion || `^${version.tag}`;
52
+ }
53
+ export {
54
+ createGetShared
55
+ };
56
+ //# sourceMappingURL=module-federation.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/lib/utils/path.ts", "../../src/lib/module-federation/get-shared.ts"],
4
+ "sourcesContent": ["function join(pathA: string, pathB: string): string {\n pathA = pathA.endsWith('/') ? pathA.slice(0, -1) : pathA;\n pathB = pathB.startsWith('/') ? pathB.slice(1) : pathB;\n return `${pathA}/${pathB}`;\n}\n\nfunction getScope(path: string) {\n if (!path) return '';\n\n const parts = path.split('/');\n\n if (parts[parts.length - 1] === '' || parts[parts.length - 1]!.includes('.')) {\n parts.pop();\n }\n if (parts.length < 1) return '';\n\n return `${parts.join('/')}/`;\n}\n\nexport { join, getScope };\n", "import type { DrivingContract } from 'lib/core/2.app/driving-ports/driving.contract';\nimport type { SharedVersion } from 'lib/core/1.domain';\nimport type { GetSharedOptions, ShareInfos, Shared } from './share-infos.contract';\nimport * as _path from 'lib/utils/path';\n\n/**\n * Adapts native federation's shared externals to the `ShareInfos` shape webpack\n * Module Federation expects (see `docs/module-federation.md`).\n */\nexport function createGetShared(\n ports: Pick<DrivingContract, 'sharedExternalsRepo' | 'remoteInfoRepo' | 'browser'>\n): (options?: GetSharedOptions) => ShareInfos {\n return (options = {}) => {\n const shared: ShareInfos = {};\n\n for (const scope of ports.sharedExternalsRepo.getScopes({ includeGlobal: true })) {\n const scopeType = ports.sharedExternalsRepo.scopeType(scope);\n const externals = ports.sharedExternalsRepo.getFromScope(scope);\n\n for (const [packageName, external] of Object.entries(externals)) {\n const shareVersions = external.versions.filter(v => v.action === 'share');\n if (shareVersions.length === 0) continue;\n\n // The strict scope is a version -> location map: every version is shared\n // side by side and stays non-singleton. Other scopes share one singleton.\n const versions = scopeType === 'strict' ? shareVersions : shareVersions.slice(0, 1);\n const singleton = scopeType === 'strict' ? false : (options.singleton ?? true);\n\n for (const version of versions) {\n const url = resolveUrl(version);\n if (!url) continue;\n\n const shareObject: Shared = {\n version: version.tag,\n get: () => ports.browser.importModule(url).then(module => () => module),\n shareConfig: {\n singleton,\n requiredVersion: resolveRequiredVersion(version, options, scopeType),\n ...(scopeType === 'strict' ? { strictVersion: true } : {}),\n },\n };\n if (scopeType !== 'global') shareObject.scope = scope;\n\n if (!shared[packageName]) shared[packageName] = [];\n shared[packageName]!.push(shareObject);\n }\n }\n }\n\n return shared;\n };\n\n function resolveUrl(version: SharedVersion): string | undefined {\n const source = version.remotes[0];\n if (!source) return undefined;\n\n return ports.remoteInfoRepo\n .tryGet(source.name)\n .map(remote => _path.join(remote.scopeUrl, source.file))\n .get();\n }\n}\n\nfunction resolveRequiredVersion(\n version: SharedVersion,\n options: GetSharedOptions,\n scopeType: 'global' | 'strict' | 'shareScope'\n): string {\n // Strict shares a specific version, not a range: pin to the exact tag so a\n // consumer reuses only that version (MF matches via satisfy(version, required)).\n if (scopeType === 'strict') return version.tag;\n if (typeof options.requiredVersionPrefix === 'string') {\n return `${options.requiredVersionPrefix}${version.tag}`;\n }\n return version.remotes[0]?.requiredVersion || `^${version.tag}`;\n}\n"],
5
+ "mappings": ";AAAA,SAAS,KAAK,OAAe,OAAuB;AAClD,UAAQ,MAAM,SAAS,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI;AACnD,UAAQ,MAAM,WAAW,GAAG,IAAI,MAAM,MAAM,CAAC,IAAI;AACjD,SAAO,GAAG,KAAK,IAAI,KAAK;AAC1B;;;ACKO,SAAS,gBACd,OAC4C;AAC5C,SAAO,CAAC,UAAU,CAAC,MAAM;AACvB,UAAM,SAAqB,CAAC;AAE5B,eAAW,SAAS,MAAM,oBAAoB,UAAU,EAAE,eAAe,KAAK,CAAC,GAAG;AAChF,YAAM,YAAY,MAAM,oBAAoB,UAAU,KAAK;AAC3D,YAAM,YAAY,MAAM,oBAAoB,aAAa,KAAK;AAE9D,iBAAW,CAAC,aAAa,QAAQ,KAAK,OAAO,QAAQ,SAAS,GAAG;AAC/D,cAAM,gBAAgB,SAAS,SAAS,OAAO,OAAK,EAAE,WAAW,OAAO;AACxE,YAAI,cAAc,WAAW,EAAG;AAIhC,cAAM,WAAW,cAAc,WAAW,gBAAgB,cAAc,MAAM,GAAG,CAAC;AAClF,cAAM,YAAY,cAAc,WAAW,QAAS,QAAQ,aAAa;AAEzE,mBAAW,WAAW,UAAU;AAC9B,gBAAM,MAAM,WAAW,OAAO;AAC9B,cAAI,CAAC,IAAK;AAEV,gBAAM,cAAsB;AAAA,YAC1B,SAAS,QAAQ;AAAA,YACjB,KAAK,MAAM,MAAM,QAAQ,aAAa,GAAG,EAAE,KAAK,YAAU,MAAM,MAAM;AAAA,YACtE,aAAa;AAAA,cACX;AAAA,cACA,iBAAiB,uBAAuB,SAAS,SAAS,SAAS;AAAA,cACnE,GAAI,cAAc,WAAW,EAAE,eAAe,KAAK,IAAI,CAAC;AAAA,YAC1D;AAAA,UACF;AACA,cAAI,cAAc,SAAU,aAAY,QAAQ;AAEhD,cAAI,CAAC,OAAO,WAAW,EAAG,QAAO,WAAW,IAAI,CAAC;AACjD,iBAAO,WAAW,EAAG,KAAK,WAAW;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,WAAW,SAA4C;AAC9D,UAAM,SAAS,QAAQ,QAAQ,CAAC;AAChC,QAAI,CAAC,OAAQ,QAAO;AAEpB,WAAO,MAAM,eACV,OAAO,OAAO,IAAI,EAClB,IAAI,YAAgB,KAAK,OAAO,UAAU,OAAO,IAAI,CAAC,EACtD,IAAI;AAAA,EACT;AACF;AAEA,SAAS,uBACP,SACA,SACA,WACQ;AAGR,MAAI,cAAc,SAAU,QAAO,QAAQ;AAC3C,MAAI,OAAO,QAAQ,0BAA0B,UAAU;AACrD,WAAO,GAAG,QAAQ,qBAAqB,GAAG,QAAQ,GAAG;AAAA,EACvD;AACA,SAAO,QAAQ,QAAQ,CAAC,GAAG,mBAAmB,IAAI,QAAQ,GAAG;AAC/D;",
6
+ "names": []
7
+ }
package/fesm2022/node.mjs CHANGED
@@ -5,7 +5,11 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __commonJS = (cb, mod) => function __require() {
8
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
8
+ try {
9
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
+ } catch (e) {
11
+ throw mod = 0, e;
12
+ }
9
13
  };
10
14
  var __copyProps = (to, from, except, desc) => {
11
15
  if (from && typeof from === "object" || typeof from === "function") {
@@ -24,9 +28,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
28
  mod
25
29
  ));
26
30
 
27
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/debug.js
31
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js
28
32
  var require_debug = __commonJS({
29
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/debug.js"(exports, module) {
33
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js"(exports, module) {
30
34
  "use strict";
31
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) : () => {
32
36
  };
@@ -34,9 +38,9 @@ var require_debug = __commonJS({
34
38
  }
35
39
  });
36
40
 
37
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/constants.js
41
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js
38
42
  var require_constants = __commonJS({
39
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/constants.js"(exports, module) {
43
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js"(exports, module) {
40
44
  "use strict";
41
45
  var SEMVER_SPEC_VERSION = "2.0.0";
42
46
  var MAX_LENGTH = 256;
@@ -66,9 +70,9 @@ var require_constants = __commonJS({
66
70
  }
67
71
  });
68
72
 
69
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/re.js
73
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js
70
74
  var require_re = __commonJS({
71
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/re.js"(exports, module) {
75
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js"(exports, module) {
72
76
  "use strict";
73
77
  var {
74
78
  MAX_SAFE_COMPONENT_LENGTH,
@@ -154,9 +158,9 @@ var require_re = __commonJS({
154
158
  }
155
159
  });
156
160
 
157
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/parse-options.js
161
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js
158
162
  var require_parse_options = __commonJS({
159
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/parse-options.js"(exports, module) {
163
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js"(exports, module) {
160
164
  "use strict";
161
165
  var looseOption = Object.freeze({ loose: true });
162
166
  var emptyOpts = Object.freeze({});
@@ -173,9 +177,9 @@ var require_parse_options = __commonJS({
173
177
  }
174
178
  });
175
179
 
176
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/identifiers.js
180
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js
177
181
  var require_identifiers = __commonJS({
178
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/identifiers.js"(exports, module) {
182
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js"(exports, module) {
179
183
  "use strict";
180
184
  var numeric = /^[0-9]+$/;
181
185
  var compareIdentifiers = (a, b) => {
@@ -198,9 +202,9 @@ var require_identifiers = __commonJS({
198
202
  }
199
203
  });
200
204
 
201
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/classes/semver.js
205
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js
202
206
  var require_semver = __commonJS({
203
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/classes/semver.js"(exports, module) {
207
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js"(exports, module) {
204
208
  "use strict";
205
209
  var debug = require_debug();
206
210
  var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
@@ -490,9 +494,9 @@ var require_semver = __commonJS({
490
494
  }
491
495
  });
492
496
 
493
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/parse.js
497
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js
494
498
  var require_parse = __commonJS({
495
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/parse.js"(exports, module) {
499
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js"(exports, module) {
496
500
  "use strict";
497
501
  var SemVer = require_semver();
498
502
  var parse = (version, options, throwErrors = false) => {
@@ -512,9 +516,9 @@ var require_parse = __commonJS({
512
516
  }
513
517
  });
514
518
 
515
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/valid.js
519
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js
516
520
  var require_valid = __commonJS({
517
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/valid.js"(exports, module) {
521
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js"(exports, module) {
518
522
  "use strict";
519
523
  var parse = require_parse();
520
524
  var valid = (version, options) => {
@@ -525,9 +529,9 @@ var require_valid = __commonJS({
525
529
  }
526
530
  });
527
531
 
528
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/lrucache.js
532
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/lrucache.js
529
533
  var require_lrucache = __commonJS({
530
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/internal/lrucache.js"(exports, module) {
534
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/lrucache.js"(exports, module) {
531
535
  "use strict";
532
536
  var LRUCache = class {
533
537
  constructor() {
@@ -563,9 +567,9 @@ var require_lrucache = __commonJS({
563
567
  }
564
568
  });
565
569
 
566
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/compare.js
570
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare.js
567
571
  var require_compare = __commonJS({
568
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/compare.js"(exports, module) {
572
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare.js"(exports, module) {
569
573
  "use strict";
570
574
  var SemVer = require_semver();
571
575
  var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
@@ -573,9 +577,9 @@ var require_compare = __commonJS({
573
577
  }
574
578
  });
575
579
 
576
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/eq.js
580
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/eq.js
577
581
  var require_eq = __commonJS({
578
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/eq.js"(exports, module) {
582
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/eq.js"(exports, module) {
579
583
  "use strict";
580
584
  var compare = require_compare();
581
585
  var eq = (a, b, loose) => compare(a, b, loose) === 0;
@@ -583,9 +587,9 @@ var require_eq = __commonJS({
583
587
  }
584
588
  });
585
589
 
586
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/neq.js
590
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/neq.js
587
591
  var require_neq = __commonJS({
588
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/neq.js"(exports, module) {
592
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/neq.js"(exports, module) {
589
593
  "use strict";
590
594
  var compare = require_compare();
591
595
  var neq = (a, b, loose) => compare(a, b, loose) !== 0;
@@ -593,9 +597,9 @@ var require_neq = __commonJS({
593
597
  }
594
598
  });
595
599
 
596
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/gt.js
600
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gt.js
597
601
  var require_gt = __commonJS({
598
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/gt.js"(exports, module) {
602
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gt.js"(exports, module) {
599
603
  "use strict";
600
604
  var compare = require_compare();
601
605
  var gt = (a, b, loose) => compare(a, b, loose) > 0;
@@ -603,9 +607,9 @@ var require_gt = __commonJS({
603
607
  }
604
608
  });
605
609
 
606
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/gte.js
610
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gte.js
607
611
  var require_gte = __commonJS({
608
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/gte.js"(exports, module) {
612
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gte.js"(exports, module) {
609
613
  "use strict";
610
614
  var compare = require_compare();
611
615
  var gte = (a, b, loose) => compare(a, b, loose) >= 0;
@@ -613,9 +617,9 @@ var require_gte = __commonJS({
613
617
  }
614
618
  });
615
619
 
616
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/lt.js
620
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lt.js
617
621
  var require_lt = __commonJS({
618
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/lt.js"(exports, module) {
622
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lt.js"(exports, module) {
619
623
  "use strict";
620
624
  var compare = require_compare();
621
625
  var lt = (a, b, loose) => compare(a, b, loose) < 0;
@@ -623,9 +627,9 @@ var require_lt = __commonJS({
623
627
  }
624
628
  });
625
629
 
626
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/lte.js
630
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lte.js
627
631
  var require_lte = __commonJS({
628
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/lte.js"(exports, module) {
632
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lte.js"(exports, module) {
629
633
  "use strict";
630
634
  var compare = require_compare();
631
635
  var lte = (a, b, loose) => compare(a, b, loose) <= 0;
@@ -633,9 +637,9 @@ var require_lte = __commonJS({
633
637
  }
634
638
  });
635
639
 
636
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/cmp.js
640
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/cmp.js
637
641
  var require_cmp = __commonJS({
638
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/cmp.js"(exports, module) {
642
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/cmp.js"(exports, module) {
639
643
  "use strict";
640
644
  var eq = require_eq();
641
645
  var neq = require_neq();
@@ -683,9 +687,9 @@ var require_cmp = __commonJS({
683
687
  }
684
688
  });
685
689
 
686
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/classes/comparator.js
690
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/comparator.js
687
691
  var require_comparator = __commonJS({
688
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/classes/comparator.js"(exports, module) {
692
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/comparator.js"(exports, module) {
689
693
  "use strict";
690
694
  var ANY = /* @__PURE__ */ Symbol("SemVer ANY");
691
695
  var Comparator = class _Comparator {
@@ -796,9 +800,9 @@ var require_comparator = __commonJS({
796
800
  }
797
801
  });
798
802
 
799
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/classes/range.js
803
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/range.js
800
804
  var require_range = __commonJS({
801
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/classes/range.js"(exports, module) {
805
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/range.js"(exports, module) {
802
806
  "use strict";
803
807
  var SPACE_CHARACTERS = /\s+/g;
804
808
  var Range = class _Range {
@@ -985,20 +989,22 @@ var require_range = __commonJS({
985
989
  return comp;
986
990
  };
987
991
  var isX = (id) => !id || id.toLowerCase() === "x" || id === "*";
992
+ var invalidXRangeOrder = (M, m, p) => isX(M) && !isX(m) || isX(m) && p && !isX(p);
988
993
  var replaceTildes = (comp, options) => {
989
994
  return comp.trim().split(/\s+/).map((c) => replaceTilde(c, options)).join(" ");
990
995
  };
991
996
  var replaceTilde = (comp, options) => {
992
997
  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];
998
+ const z = options.includePrerelease ? "-0" : "";
993
999
  return comp.replace(r, (_, M, m, p, pr) => {
994
1000
  debug("tilde", comp, _, M, m, p, pr);
995
1001
  let ret;
996
1002
  if (isX(M)) {
997
1003
  ret = "";
998
1004
  } else if (isX(m)) {
999
- ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;
1005
+ ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;
1000
1006
  } else if (isX(p)) {
1001
- ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;
1007
+ ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;
1002
1008
  } else if (pr) {
1003
1009
  debug("replaceTilde pr", pr);
1004
1010
  ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;
@@ -1065,6 +1071,9 @@ var require_range = __commonJS({
1065
1071
  const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];
1066
1072
  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
1067
1073
  debug("xRange", comp, ret, gtlt, M, m, p, pr);
1074
+ if (invalidXRangeOrder(M, m, p)) {
1075
+ return comp;
1076
+ }
1068
1077
  const xM = isX(M);
1069
1078
  const xm = xM || isX(m);
1070
1079
  const xp = xm || isX(p);
@@ -1176,9 +1185,9 @@ var require_range = __commonJS({
1176
1185
  }
1177
1186
  });
1178
1187
 
1179
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/satisfies.js
1188
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/satisfies.js
1180
1189
  var require_satisfies = __commonJS({
1181
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/functions/satisfies.js"(exports, module) {
1190
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/satisfies.js"(exports, module) {
1182
1191
  "use strict";
1183
1192
  var Range = require_range();
1184
1193
  var satisfies = (version, range, options) => {
@@ -1193,9 +1202,9 @@ var require_satisfies = __commonJS({
1193
1202
  }
1194
1203
  });
1195
1204
 
1196
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/ranges/min-version.js
1205
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-version.js
1197
1206
  var require_min_version = __commonJS({
1198
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/ranges/min-version.js"(exports, module) {
1207
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-version.js"(exports, module) {
1199
1208
  "use strict";
1200
1209
  var SemVer = require_semver();
1201
1210
  var Range = require_range();
@@ -1252,9 +1261,9 @@ var require_min_version = __commonJS({
1252
1261
  }
1253
1262
  });
1254
1263
 
1255
- // node_modules/.pnpm/semver@7.8.3/node_modules/semver/ranges/valid.js
1264
+ // node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/valid.js
1256
1265
  var require_valid2 = __commonJS({
1257
- "node_modules/.pnpm/semver@7.8.3/node_modules/semver/ranges/valid.js"(exports, module) {
1266
+ "node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/valid.js"(exports, module) {
1258
1267
  "use strict";
1259
1268
  var Range = require_range();
1260
1269
  var validRange = (range, options) => {
@@ -1683,7 +1692,7 @@ var getTrustedTypesPolicy = (name = "nfo") => {
1683
1692
  });
1684
1693
  cachedPolicy = {
1685
1694
  createScript: (input) => native.createScript(input),
1686
- createScriptURL: (input) => native.createScriptURL(input)
1695
+ createScriptURL: (input) => String(native.createScriptURL(input))
1687
1696
  };
1688
1697
  return cachedPolicy;
1689
1698
  };
@@ -1840,6 +1849,7 @@ var createStorageConfig = (override) => ({
1840
1849
  // src/lib/core/4.config/mode/default.profile.ts
1841
1850
  var defaultProfile = {
1842
1851
  latestSharedExternal: false,
1852
+ skipInvalidExternalVersions: false,
1843
1853
  overrideCachedRemotes: "init-only",
1844
1854
  overrideCachedRemotesIfURLMatches: false
1845
1855
  };
@@ -1880,7 +1890,7 @@ var createInitFlow = ({
1880
1890
  adapters,
1881
1891
  config
1882
1892
  }) => {
1883
- return (remotesOrManifestUrl) => flow.getRemoteEntries(remotesOrManifestUrl).then(flow.processRemoteEntries).then(flow.determineSharedExternals).then(flow.generateImportMap).then(flow.commitChanges).then(flow.exposeModuleLoader).then((loadRemoteModule) => ({
1893
+ return (remotesOrManifestUrl) => flow.getRemoteEntries(remotesOrManifestUrl).then(flow.processRemoteEntries).then(flow.determineSharedExternals).then(flow.generateImportMap).then((importMap) => flow.commitChanges(importMap, { override: true })).then(flow.exposeModuleLoader).then((loadRemoteModule) => ({
1884
1894
  config,
1885
1895
  adapters,
1886
1896
  loadRemoteModule
@@ -2014,11 +2024,12 @@ function createStoreRemoteEntry(config, ports, logStep) {
2014
2024
  }
2015
2025
  function addExternalsToStorage(remoteEntry, onSharedExternal) {
2016
2026
  remoteEntry.shared.forEach((external) => {
2017
- validateExternalVersion(remoteEntry, external);
2027
+ const tag = resolveVersion(remoteEntry, external);
2028
+ if (tag === null) return;
2018
2029
  if (external.singleton) {
2019
- onSharedExternal(remoteEntry, external, sharedExternalContext(remoteEntry, external));
2030
+ onSharedExternal(remoteEntry, external, sharedExternalContext(remoteEntry, external, tag));
2020
2031
  } else {
2021
- addScopedExternal(remoteEntry, external);
2032
+ addScopedExternal(remoteEntry, external, tag);
2022
2033
  }
2023
2034
  });
2024
2035
  }
@@ -2032,25 +2043,30 @@ function createStoreRemoteEntry(config, ports, logStep) {
2032
2043
  ports.sharedChunksRepo.addOrReplace(remoteEntry.name, bundleName, chunks);
2033
2044
  });
2034
2045
  }
2035
- function addScopedExternal(remoteEntry, sharedInfo) {
2046
+ function addScopedExternal(remoteEntry, sharedInfo, tag) {
2036
2047
  ports.scopedExternalsRepo.addExternal(remoteEntry.name, sharedInfo.packageName, {
2037
- tag: sharedInfo.version ?? ports.versionCheck.smallestVersion(sharedInfo.requiredVersion),
2048
+ tag,
2038
2049
  file: sharedInfo.outFileName,
2039
2050
  bundle: sharedInfo.bundle
2040
2051
  });
2041
2052
  }
2042
- function validateExternalVersion(remoteEntry, external) {
2043
- if (!external.version || !ports.versionCheck.isValidSemver(external.version)) {
2044
- const errorMsg = `[${remoteEntry.name}][${external.packageName}] Version '${external.version}' is not a valid version.`;
2045
- if (config.strict.strictExternalVersion) {
2046
- config.log.error(logStep, errorMsg);
2047
- throw new NFError(`Could not process remote '${remoteEntry.name}'`);
2048
- }
2049
- config.log.warn(logStep, errorMsg);
2053
+ function resolveVersion(remoteEntry, external) {
2054
+ if (external.version && ports.versionCheck.isValidSemver(external.version)) {
2055
+ return external.version;
2056
+ }
2057
+ const errorMsg = `[${remoteEntry.name}][${external.packageName}] Version '${external.version}' is not a valid version.`;
2058
+ if (config.strict.strictExternalVersion) {
2059
+ config.log.error(logStep, errorMsg);
2060
+ throw new NFError(`Could not process remote '${remoteEntry.name}'`);
2050
2061
  }
2062
+ if (config.profile.skipInvalidExternalVersions) {
2063
+ config.log.warn(logStep, `${errorMsg} Skipping external.`);
2064
+ return null;
2065
+ }
2066
+ config.log.warn(logStep, errorMsg);
2067
+ return ports.versionCheck.smallestVersion(external.requiredVersion);
2051
2068
  }
2052
- function sharedExternalContext(remoteEntry, sharedInfo) {
2053
- const tag = sharedInfo.version ?? ports.versionCheck.smallestVersion(sharedInfo.requiredVersion);
2069
+ function sharedExternalContext(remoteEntry, sharedInfo, tag) {
2054
2070
  const scopeType = ports.sharedExternalsRepo.scopeType(sharedInfo.shareScope);
2055
2071
  const remote = {
2056
2072
  file: sharedInfo.outFileName,
@@ -2206,15 +2222,7 @@ function createDetermineSharedExternals(config, ports) {
2206
2222
  }
2207
2223
  }
2208
2224
 
2209
- // node_modules/.pnpm/@softarc+native-federation@4.1.3_typescript@6.0.3/node_modules/@softarc/native-federation/src/lib/domain/core/build-notification-options.contract.js
2210
- var BuildNotificationType;
2211
- (function(BuildNotificationType2) {
2212
- BuildNotificationType2["COMPLETED"] = "federation-rebuild-complete";
2213
- BuildNotificationType2["ERROR"] = "federation-rebuild-error";
2214
- BuildNotificationType2["CANCELLED"] = "federation-rebuild-cancelled";
2215
- })(BuildNotificationType || (BuildNotificationType = {}));
2216
-
2217
- // node_modules/.pnpm/@softarc+native-federation@4.1.3_typescript@6.0.3/node_modules/@softarc/native-federation/src/lib/domain/core/chunk.js
2225
+ // node_modules/.pnpm/@softarc+native-federation@4.2.1_typescript@6.0.3/node_modules/@softarc/native-federation/dist/lib/domain/core/chunk.js
2218
2226
  var CHUNK_PREFIX = "@nf-internal";
2219
2227
  function toChunkImport(fileName) {
2220
2228
  if (fileName.startsWith("./")) {
@@ -2465,9 +2473,9 @@ function createGenerateImportMap(config, ports) {
2465
2473
 
2466
2474
  // src/lib/core/2.app/steps/commit-changes.ts
2467
2475
  function createCommitChanges(config, ports) {
2468
- return (importMap) => Promise.resolve(importMap).then(addToBrowser).then(persistRepositoryChanges);
2469
- function addToBrowser(importMap) {
2470
- ports.browser.setImportMapFn(importMap);
2476
+ return (importMap, opts = {}) => Promise.resolve(importMap).then((map) => addToBrowser(map, opts)).then(persistRepositoryChanges);
2477
+ function addToBrowser(importMap, opts) {
2478
+ ports.browser.setImportMapFn(importMap, opts);
2471
2479
  config.log.debug(5, "Added import map to browser.", importMap);
2472
2480
  return importMap;
2473
2481
  }