@softarc/native-federation-orchestrator 4.1.1 → 4.2.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 +5 -0
- package/fesm2022/@softarc/native-federation-orchestrator.mjs +47 -47
- package/fesm2022/@softarc/native-federation-orchestrator.mjs.map +3 -3
- package/fesm2022/node.mjs +2973 -0
- package/fesm2022/node.mjs.map +7 -0
- package/fesm2022/options.mjs +1 -1
- package/fesm2022/options.mjs.map +2 -2
- package/fesm2022/registry.mjs +78 -30
- package/fesm2022/registry.mjs.map +4 -4
- package/fesm2022/sdk.mjs +1 -1
- package/fesm2022/sdk.mjs.map +2 -2
- package/init-registry.mjs +1 -1
- package/node-loader/loader.mjs +92 -0
- package/node-loader/loader.mjs.map +7 -0
- package/package.json +12 -4
- package/quickstart.mjs +11 -11
- package/types/lib/1.domain/registry/event-registry.contract.d.ts +4 -1
- package/types/lib/1.domain/registry/index.d.ts +0 -1
- package/types/lib/2.app/config/registry.contract.d.ts +2 -2
- package/types/lib/2.app/flows/registry/setup-registry.d.ts +2 -2
- package/types/lib/3.adapters/node/fs-manifest-provider.d.ts +3 -0
- package/types/lib/3.adapters/node/fs-remote-entry-provider.d.ts +3 -0
- package/types/lib/3.adapters/node/loader-url.d.ts +8 -0
- package/types/lib/3.adapters/node/node-loader.client.d.ts +9 -0
- package/types/lib/3.adapters/node/noop-sse.d.ts +3 -0
- package/types/lib/4.config/import-map/use-node.d.ts +6 -0
- package/types/lib/init-federation.node.d.ts +6 -0
- package/types/lib/node.index.d.ts +5 -0
- package/types/lib/utils/node/read-source.d.ts +1 -0
- package/types/lib/utils/node/to-url.d.ts +3 -0
- package/types/node-loader.d.ts +41 -0
- package/types/lib/1.domain/registry/registry-options.contract.d.ts +0 -11
package/README.md
CHANGED
|
@@ -16,6 +16,7 @@ A lightweight **runtime micro frontend orchestrator** that loads micro frontends
|
|
|
16
16
|
- 💾 **Advanced Caching** - Optimized for page-reload scenarios with flexible storage options like localStorage and sessionStorage
|
|
17
17
|
- 🔄 **Smart Dependency Resolution** - Automatic version conflict resolution and sharing based on the module federation mental model.
|
|
18
18
|
- 🌐 **Full native-federation compatibility** - Works with standard remoteEntry.json format.
|
|
19
|
+
- 🖥️ **Server-side rendering ready** - First-class Node.js entry point (`/node`) that runs the same pipeline through a `module.register()` loader hook.
|
|
19
20
|
- ⚡ **Lightweight & Fast** - Minimal bundle size (~80kb) with tree-shaking support.
|
|
20
21
|
- 🛠️ **Highly Configurable** - Extensive options and SDK for fine-tuning behavior.
|
|
21
22
|
|
|
@@ -23,6 +24,8 @@ A lightweight **runtime micro frontend orchestrator** that loads micro frontends
|
|
|
23
24
|
|
|
24
25
|
The library runs in the browser to orchestrate the integration of micro frontends into plain HTML pages. While the host application can be SSR, the micro frontends are loaded as ES modules at runtime, providing the benefits of micro frontend architecture without requiring a full SPA framework.
|
|
25
26
|
|
|
27
|
+
The same pipeline is also available on the server via the `/node` subpath export, which installs a Node `module.register()` loader hook so federated `import(...)` calls resolve through the orchestrator-built import map. See the [Node.js usage guide](./docs/node.md).
|
|
28
|
+
|
|
26
29
|
### Extends the Native Federation Ecosystem
|
|
27
30
|
|
|
28
31
|
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.
|
|
@@ -123,8 +126,10 @@ const HeaderComponent = await loadRemoteModule('team/mfe2', './Header');
|
|
|
123
126
|
| Guide | Description |
|
|
124
127
|
| ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
|
|
125
128
|
| [🚀 Getting Started](https://github.com/native-federation/orchestrator/blob/main/docs/getting-started.md) | Detailed setup instructions and examples |
|
|
129
|
+
| [🖥️ Node.js (server-side) usage](https://github.com/native-federation/orchestrator/blob/main/docs/node.md) | SSR / Node entry, loader hook, migration guide |
|
|
126
130
|
| [🏗️ Architecture](https://github.com/native-federation/orchestrator/blob/main/docs/architecture.md) | Understanding the native federation domain |
|
|
127
131
|
| [⚙️ Configuration](https://github.com/native-federation/orchestrator/blob/main/docs/config.md) | Complete configuration reference |
|
|
132
|
+
| [📡 Event Registry](https://github.com/native-federation/orchestrator/blob/main/docs/event-registry.md) | In-page event bus for cross-MFE communication |
|
|
128
133
|
| [🔄 Version Resolution](https://github.com/native-federation/orchestrator/blob/main/docs/version-resolver.md) | How dependency conflicts are resolved |
|
|
129
134
|
| [🔒 Security & Trusted Types](https://github.com/native-federation/orchestrator/blob/main/docs/security.md) | CSP setup and the built-in Trusted Types policy |
|
|
130
135
|
|
|
@@ -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.
|
|
27
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/internal/debug.js
|
|
28
28
|
var require_debug = __commonJS({
|
|
29
|
-
"node_modules/.pnpm/semver@7.
|
|
29
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
37
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/internal/constants.js
|
|
38
38
|
var require_constants = __commonJS({
|
|
39
|
-
"node_modules/.pnpm/semver@7.
|
|
39
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
69
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/internal/re.js
|
|
70
70
|
var require_re = __commonJS({
|
|
71
|
-
"node_modules/.pnpm/semver@7.
|
|
71
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
157
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/internal/parse-options.js
|
|
158
158
|
var require_parse_options = __commonJS({
|
|
159
|
-
"node_modules/.pnpm/semver@7.
|
|
159
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
176
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/internal/identifiers.js
|
|
177
177
|
var require_identifiers = __commonJS({
|
|
178
|
-
"node_modules/.pnpm/semver@7.
|
|
178
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
201
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/classes/semver.js
|
|
202
202
|
var require_semver = __commonJS({
|
|
203
|
-
"node_modules/.pnpm/semver@7.
|
|
203
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
480
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/parse.js
|
|
481
481
|
var require_parse = __commonJS({
|
|
482
|
-
"node_modules/.pnpm/semver@7.
|
|
482
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
502
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/valid.js
|
|
503
503
|
var require_valid = __commonJS({
|
|
504
|
-
"node_modules/.pnpm/semver@7.
|
|
504
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
515
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/internal/lrucache.js
|
|
516
516
|
var require_lrucache = __commonJS({
|
|
517
|
-
"node_modules/.pnpm/semver@7.
|
|
517
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
553
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/compare.js
|
|
554
554
|
var require_compare = __commonJS({
|
|
555
|
-
"node_modules/.pnpm/semver@7.
|
|
555
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
563
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/eq.js
|
|
564
564
|
var require_eq = __commonJS({
|
|
565
|
-
"node_modules/.pnpm/semver@7.
|
|
565
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
573
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/neq.js
|
|
574
574
|
var require_neq = __commonJS({
|
|
575
|
-
"node_modules/.pnpm/semver@7.
|
|
575
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
583
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/gt.js
|
|
584
584
|
var require_gt = __commonJS({
|
|
585
|
-
"node_modules/.pnpm/semver@7.
|
|
585
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
593
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/gte.js
|
|
594
594
|
var require_gte = __commonJS({
|
|
595
|
-
"node_modules/.pnpm/semver@7.
|
|
595
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
603
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/lt.js
|
|
604
604
|
var require_lt = __commonJS({
|
|
605
|
-
"node_modules/.pnpm/semver@7.
|
|
605
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
613
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/lte.js
|
|
614
614
|
var require_lte = __commonJS({
|
|
615
|
-
"node_modules/.pnpm/semver@7.
|
|
615
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
623
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/cmp.js
|
|
624
624
|
var require_cmp = __commonJS({
|
|
625
|
-
"node_modules/.pnpm/semver@7.
|
|
625
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
673
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/classes/comparator.js
|
|
674
674
|
var require_comparator = __commonJS({
|
|
675
|
-
"node_modules/.pnpm/semver@7.
|
|
675
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
786
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/classes/range.js
|
|
787
787
|
var require_range = __commonJS({
|
|
788
|
-
"node_modules/.pnpm/semver@7.
|
|
788
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
1163
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/satisfies.js
|
|
1164
1164
|
var require_satisfies = __commonJS({
|
|
1165
|
-
"node_modules/.pnpm/semver@7.
|
|
1165
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
1180
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/min-version.js
|
|
1181
1181
|
var require_min_version = __commonJS({
|
|
1182
|
-
"node_modules/.pnpm/semver@7.
|
|
1182
|
+
"node_modules/.pnpm/semver@7.8.0/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.
|
|
1239
|
+
// node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/valid.js
|
|
1240
1240
|
var require_valid2 = __commonJS({
|
|
1241
|
-
"node_modules/.pnpm/semver@7.
|
|
1241
|
+
"node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/valid.js"(exports, module) {
|
|
1242
1242
|
"use strict";
|
|
1243
1243
|
var Range = require_range();
|
|
1244
1244
|
var validRange = (range, options) => {
|
|
@@ -1562,7 +1562,7 @@ function createDetermineSharedExternals(config, ports) {
|
|
|
1562
1562
|
}
|
|
1563
1563
|
}
|
|
1564
1564
|
|
|
1565
|
-
// node_modules/.pnpm/@softarc+native-federation@4.1.
|
|
1565
|
+
// node_modules/.pnpm/@softarc+native-federation@4.1.3_typescript@5.9.3/node_modules/@softarc/native-federation/src/lib/domain/core/build-notification-options.contract.js
|
|
1566
1566
|
var BuildNotificationType;
|
|
1567
1567
|
(function(BuildNotificationType2) {
|
|
1568
1568
|
BuildNotificationType2["COMPLETED"] = "federation-rebuild-complete";
|
|
@@ -1570,7 +1570,7 @@ var BuildNotificationType;
|
|
|
1570
1570
|
BuildNotificationType2["CANCELLED"] = "federation-rebuild-cancelled";
|
|
1571
1571
|
})(BuildNotificationType || (BuildNotificationType = {}));
|
|
1572
1572
|
|
|
1573
|
-
// node_modules/.pnpm/@softarc+native-federation@4.1.
|
|
1573
|
+
// node_modules/.pnpm/@softarc+native-federation@4.1.3_typescript@5.9.3/node_modules/@softarc/native-federation/src/lib/domain/core/chunk.js
|
|
1574
1574
|
var CHUNK_PREFIX = "@nf-internal";
|
|
1575
1575
|
function toChunkImport(fileName) {
|
|
1576
1576
|
if (fileName.startsWith("./")) {
|
|
@@ -2224,7 +2224,7 @@ var cloneEntry = (name, raw) => {
|
|
|
2224
2224
|
return JSON.parse(JSON.stringify(raw));
|
|
2225
2225
|
} catch {
|
|
2226
2226
|
}
|
|
2227
|
-
throw new NFError(`Could not
|
|
2227
|
+
throw new NFError(`Could not clone entry '${String(name)}'`);
|
|
2228
2228
|
};
|
|
2229
2229
|
|
|
2230
2230
|
// src/lib/3.adapters/storage/chunk.repository.ts
|