@softarc/native-federation-node 3.5.1 → 4.0.0-RC1

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 CHANGED
@@ -1,11 +1,11 @@
1
- # native-federation-node
1
+ # node
2
2
 
3
3
  This library was generated with [Nx](https://nx.dev).
4
4
 
5
5
  ## Building
6
6
 
7
- Run `nx build native-federation-node` to build the library.
7
+ Run `nx build node` to build the library.
8
8
 
9
9
  ## Running unit tests
10
10
 
11
- Run `nx test native-federation-node` to execute the unit tests via [Jest](https://jestjs.io).
11
+ Run `nx test node` to execute the unit tests via [Vitest](https://vitest.dev/).
@@ -0,0 +1,2 @@
1
+ export * from './lib/node/init-node-federation.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,201 @@
1
+ // packages/node/src/lib/node/init-node-federation.ts
2
+ import * as fs2 from "node:fs/promises";
3
+ import { register } from "node:module";
4
+ import * as path2 from "node:path";
5
+ import { pathToFileURL } from "node:url";
6
+ import {
7
+ fetchAndRegisterRemotes,
8
+ mergeImportMaps,
9
+ processHostInfo
10
+ } from "@softarc/native-federation-runtime";
11
+
12
+ // packages/node/src/lib/utils/import-map-loader.js
13
+ import path from "path";
14
+ import url from "url";
15
+ import { promises as fs } from "fs";
16
+ import process from "process";
17
+ var IMPORT_MAP_FILE_NAME = "node.importmap";
18
+ var baseURL = url.pathToFileURL(process.cwd()) + path.sep;
19
+ function resolveAndComposeImportMap(parsed) {
20
+ if (!isPlainObject(parsed)) {
21
+ throw Error(`Invalid import map - top level must be an object`);
22
+ }
23
+ let sortedAndNormalizedImports = {};
24
+ if (Object.prototype.hasOwnProperty.call(parsed, "imports")) {
25
+ if (!isPlainObject(parsed.imports)) {
26
+ throw Error(`Invalid import map - "imports" property must be an object`);
27
+ }
28
+ sortedAndNormalizedImports = sortAndNormalizeSpecifierMap(
29
+ parsed.imports,
30
+ baseURL
31
+ );
32
+ }
33
+ let sortedAndNormalizedScopes = {};
34
+ if (Object.prototype.hasOwnProperty.call(parsed, "scopes")) {
35
+ if (!isPlainObject(parsed.scopes)) {
36
+ throw Error(`Invalid import map - "scopes" property must be an object`);
37
+ }
38
+ sortedAndNormalizedScopes = sortAndNormalizeScopes(parsed.scopes, baseURL);
39
+ }
40
+ const invalidKeys = Object.keys(parsed).filter(
41
+ (key) => key !== "imports" && key !== "scopes"
42
+ );
43
+ if (invalidKeys.length > 0) {
44
+ console.warn(
45
+ `Invalid top-level key${invalidKeys.length > 0 ? "s" : ""} in import map - ${invalidKeys.join(", ")}`
46
+ );
47
+ }
48
+ return {
49
+ imports: sortedAndNormalizedImports,
50
+ scopes: sortedAndNormalizedScopes
51
+ };
52
+ }
53
+ function sortAndNormalizeSpecifierMap(map, baseURL2) {
54
+ const normalized = {};
55
+ for (const specifierKey in map) {
56
+ const value = map[specifierKey];
57
+ const normalizedSpecifierKey = normalizeSpecifierKey(specifierKey, baseURL2);
58
+ if (normalizedSpecifierKey === null) {
59
+ continue;
60
+ }
61
+ const addressURL = parseURLLikeSpecifier(value, baseURL2);
62
+ if (addressURL === null) {
63
+ console.warn(
64
+ `Invalid URL address for import map specifier '${specifierKey}'`
65
+ );
66
+ normalized[normalizedSpecifierKey] = null;
67
+ continue;
68
+ }
69
+ if (specifierKey.endsWith("/") && !addressURL.endsWith("/")) {
70
+ console.warn(
71
+ `Invalid URL address for import map specifier '${specifierKey}' - since the specifier ends in slash, so must the address`
72
+ );
73
+ normalized[normalizedSpecifierKey] = null;
74
+ continue;
75
+ }
76
+ normalized[normalizedSpecifierKey] = addressURL;
77
+ }
78
+ return normalized;
79
+ }
80
+ function normalizeSpecifierKey(key) {
81
+ if (key === "") {
82
+ console.warn(`Specifier keys in import maps may not be the empty string`);
83
+ return null;
84
+ }
85
+ return parseURLLikeSpecifier(key, baseURL) || key;
86
+ }
87
+ function parseURLLikeSpecifier(specifier, baseURL2) {
88
+ const useBaseUrlAsParent = specifier.startsWith("/") || specifier.startsWith("./") || specifier.startsWith("../");
89
+ try {
90
+ return new URL(specifier, useBaseUrlAsParent ? baseURL2 : void 0).href;
91
+ } catch {
92
+ return null;
93
+ }
94
+ }
95
+ function sortAndNormalizeScopes(map, baseURL2) {
96
+ const normalized = {};
97
+ for (const scopePrefix in map) {
98
+ const potentialSpecifierMap = map[scopePrefix];
99
+ if (!isPlainObject(potentialSpecifierMap)) {
100
+ throw TypeError(
101
+ `The value of scope ${scopePrefix} must be a JSON object`
102
+ );
103
+ }
104
+ let scopePrefixURL;
105
+ try {
106
+ scopePrefixURL = new URL(scopePrefix, baseURL2).href;
107
+ } catch {
108
+ console.warn(
109
+ `Scope prefix URL '${scopePrefix}' was not parseable in import map`
110
+ );
111
+ continue;
112
+ }
113
+ normalized[scopePrefixURL] = sortAndNormalizeSpecifierMap(
114
+ potentialSpecifierMap,
115
+ baseURL2
116
+ );
117
+ }
118
+ return normalized;
119
+ }
120
+ function isPlainObject(obj) {
121
+ return obj === Object(obj) && !Array.isArray(obj);
122
+ }
123
+ var importMapPromise = getImportMapPromise();
124
+ async function getImportMapPromise() {
125
+ const relativePath = process.env.IMPORT_MAP_PATH || IMPORT_MAP_FILE_NAME;
126
+ const importMapPath = path.resolve(process.cwd(), relativePath);
127
+ let str;
128
+ try {
129
+ str = await fs.readFile(importMapPath);
130
+ } catch {
131
+ return emptyMap();
132
+ }
133
+ let json;
134
+ try {
135
+ json = await JSON.parse(str);
136
+ } catch (err) {
137
+ throw Error(
138
+ `Import map at ${importMapPath} contains invalid json: ${err.message}`
139
+ );
140
+ }
141
+ return resolveAndComposeImportMap(json);
142
+ }
143
+ globalThis.nodeLoader = globalThis.nodeLoader || {};
144
+ globalThis.nodeLoader.setImportMapPromise = function setImportMapPromise(promise) {
145
+ importMapPromise = promise.then((map) => {
146
+ return resolveAndComposeImportMap(map);
147
+ });
148
+ };
149
+ function emptyMap() {
150
+ return { imports: {}, scopes: {} };
151
+ }
152
+
153
+ // packages/node/src/lib/utils/loader-as-data-url.js
154
+ var resolver = "aW1wb3J0IHBhdGggZnJvbSAncGF0aCc7CmltcG9ydCB1cmwgZnJvbSAndXJsJzsKaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7CgpleHBvcnQgY29uc3QgSU1QT1JUX01BUF9GSUxFX05BTUUgPSAnbm9kZS5pbXBvcnRtYXAnOwoKY29uc3QgYmFzZVVSTCA9IHVybC5wYXRoVG9GaWxlVVJMKHByb2Nlc3MuY3dkKCkpICsgcGF0aC5zZXA7CgovLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ltcG9ydC1tYXBzLyNuZXctcmVzb2x2ZS1hbGdvcml0aG0KZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVTcGVjaWZpZXIoaW1wb3J0TWFwLCBzcGVjaWZpZXIsIHBhcmVudFVSTCkgewogIGxldCBjdXJyZW50QmFzZVVSTDsKICBpZiAocGFyZW50VVJMKSB7CiAgICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IHBhcmVudFVSTC5sYXN0SW5kZXhPZihwYXRoLnNlcCk7CiAgICBjdXJyZW50QmFzZVVSTCA9IHBhcmVudFVSTC5zbGljZSgwLCBsYXN0U2xhc2hJbmRleCArIDEpOwogIH0gZWxzZSB7CiAgICBjdXJyZW50QmFzZVVSTCA9IGJhc2VVUkw7CiAgfQogIGNvbnN0IG5vcm1hbGl6ZWRTcGVjaWZpZXIgPQogICAgcGFyc2VVUkxMaWtlU3BlY2lmaWVyKHNwZWNpZmllciwgY3VycmVudEJhc2VVUkwpIHx8IHNwZWNpZmllcjsKICBmb3IgKGxldCBzY29wZVByZWZpeCBpbiBpbXBvcnRNYXAuc2NvcGVzKSB7CiAgICBpZiAoCiAgICAgIHNjb3BlUHJlZml4ID09PSBjdXJyZW50QmFzZVVSTCB8fAogICAgICAoc2NvcGVQcmVmaXguZW5kc1dpdGgoJy8nKSAmJiBjdXJyZW50QmFzZVVSTC5zdGFydHNXaXRoKHNjb3BlUHJlZml4KSkKICAgICkgewogICAgICBjb25zdCBzY29wZUltcG9ydHNNYXRjaCA9IHJlc29sdmVJbXBvcnRzTWF0Y2goCiAgICAgICAgbm9ybWFsaXplZFNwZWNpZmllciwKICAgICAgICBpbXBvcnRNYXAuc2NvcGVzW3Njb3BlUHJlZml4XSwKICAgICAgKTsKICAgICAgaWYgKHNjb3BlSW1wb3J0c01hdGNoKSB7CiAgICAgICAgcmV0dXJuIHNjb3BlSW1wb3J0c01hdGNoOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBjb25zdCB0b3BMZXZlbEltcG9ydHNNYXRjaCA9IHJlc29sdmVJbXBvcnRzTWF0Y2goCiAgICAgICAgbm9ybWFsaXplZFNwZWNpZmllciwKICAgICAgICBpbXBvcnRNYXAuaW1wb3J0cywKICAgICAgKTsKICAgICAgaWYgKHRvcExldmVsSW1wb3J0c01hdGNoKSB7CiAgICAgICAgcmV0dXJuIHRvcExldmVsSW1wb3J0c01hdGNoOwogICAgICB9CiAgICB9CiAgfQoKICByZXR1cm4gcmVzb2x2ZUltcG9ydHNNYXRjaChub3JtYWxpemVkU3BlY2lmaWVyLCBpbXBvcnRNYXAuaW1wb3J0cyk7Cn0KCi8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vaW1wb3J0LW1hcHMvI3Jlc29sdmUtYW4taW1wb3J0cy1tYXRjaApmdW5jdGlvbiByZXNvbHZlSW1wb3J0c01hdGNoKG5vcm1hbGl6ZWRTcGVjaWZpZXIsIHNwZWNpZmllck1hcCkgewogIGZvciAobGV0IHNwZWNpZmllcktleSBpbiBzcGVjaWZpZXJNYXApIHsKICAgIGNvbnN0IHJlc29sdXRpb25SZXN1bHQgPSBzcGVjaWZpZXJNYXBbc3BlY2lmaWVyS2V5XTsKCiAgICBpZiAoc3BlY2lmaWVyS2V5ID09PSBub3JtYWxpemVkU3BlY2lmaWVyKSB7CiAgICAgIGlmIChyZXNvbHV0aW9uUmVzdWx0ID09PSBudWxsKSB7CiAgICAgICAgdGhyb3cgVHlwZUVycm9yKAogICAgICAgICAgYFRoZSBpbXBvcnQgbWFwIHJlc29sdXRpb24gb2YgJHtzcGVjaWZpZXJLZXl9IGZhaWxlZCBkdWUgdG8gYSBudWxsIGVudHJ5YCwKICAgICAgICApOwogICAgICB9CiAgICAgIHJldHVybiByZXNvbHV0aW9uUmVzdWx0OwogICAgfSBlbHNlIGlmICgKICAgICAgc3BlY2lmaWVyS2V5LmVuZHNXaXRoKCcvJykgJiYKICAgICAgbm9ybWFsaXplZFNwZWNpZmllci5zdGFydHNXaXRoKHNwZWNpZmllcktleSkKICAgICkgewogICAgICBpZiAocmVzb2x1dGlvblJlc3VsdCA9PT0gbnVsbCkgewogICAgICAgIHRocm93IFR5cGVFcnJvcigKICAgICAgICAgIGBUaGUgaW1wb3J0IG1hcCByZXNvbHV0aW9uIG9mICR7c3BlY2lmaWVyS2V5fSBmYWlsZWQgZHVlIHRvIGEgbnVsbCBlbnRyeWAsCiAgICAgICAgKTsKICAgICAgfQogICAgICBjb25zdCBhZnRlclByZWZpeCA9IG5vcm1hbGl6ZWRTcGVjaWZpZXIuc2xpY2Uoc3BlY2lmaWVyS2V5Lmxlbmd0aCk7CiAgICAgIHRyeSB7CiAgICAgICAgcmV0dXJuIG5ldyBVUkwoYWZ0ZXJQcmVmaXgsIHJlc29sdXRpb25SZXN1bHQpLmhyZWY7CiAgICAgIH0gY2F0Y2ggewogICAgICAgIHRocm93IFR5cGVFcnJvcigKICAgICAgICAgIGBUaGUgaW1wb3J0IG1hcCByZXNvbHV0aW9uIG9mICR7c3BlY2lmaWVyS2V5fSBmYWlsZWQgZHVlIHRvIFVSTCBwYXJzZSBmYWlsdXJlYCwKICAgICAgICApOwogICAgICB9CiAgICB9CiAgfQoKICByZXR1cm4gbnVsbDsKfQoKLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9pbXBvcnQtbWFwcy8jcGFyc2luZwpleHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAocGFyc2VkKSB7CiAgLy8gU3RlcCAyCiAgaWYgKCFpc1BsYWluT2JqZWN0KHBhcnNlZCkpIHsKICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGltcG9ydCBtYXAgLSB0b3AgbGV2ZWwgbXVzdCBiZSBhbiBvYmplY3RgKTsKICB9CgogIC8vIFN0ZXAgMwogIGxldCBzb3J0ZWRBbmROb3JtYWxpemVkSW1wb3J0cyA9IHt9OwoKICAvLyBTdGVwIDQKICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcnNlZCwgJ2ltcG9ydHMnKSkgewogICAgLy8gU3RlcCA0LjEKICAgIGlmICghaXNQbGFpbk9iamVjdChwYXJzZWQuaW1wb3J0cykpIHsKICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaW1wb3J0IG1hcCAtICJpbXBvcnRzIiBwcm9wZXJ0eSBtdXN0IGJlIGFuIG9iamVjdGApOwogICAgfQoKICAgIC8vIFN0ZXAgNC4yCiAgICBzb3J0ZWRBbmROb3JtYWxpemVkSW1wb3J0cyA9IHNvcnRBbmROb3JtYWxpemVTcGVjaWZpZXJNYXAoCiAgICAgIHBhcnNlZC5pbXBvcnRzLAogICAgICBiYXNlVVJMLAogICAgKTsKICB9CgogIC8vIFN0ZXAgNQogIGxldCBzb3J0ZWRBbmROb3JtYWxpemVkU2NvcGVzID0ge307CgogIC8vIFN0ZXAgNgogIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGFyc2VkLCAnc2NvcGVzJykpIHsKICAgIC8vIFN0ZXAgNi4xCiAgICBpZiAoIWlzUGxhaW5PYmplY3QocGFyc2VkLnNjb3BlcykpIHsKICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaW1wb3J0IG1hcCAtICJzY29wZXMiIHByb3BlcnR5IG11c3QgYmUgYW4gb2JqZWN0YCk7CiAgICB9CgogICAgLy8gU3RlcCA2LjIKICAgIHNvcnRlZEFuZE5vcm1hbGl6ZWRTY29wZXMgPSBzb3J0QW5kTm9ybWFsaXplU2NvcGVzKHBhcnNlZC5zY29wZXMsIGJhc2VVUkwpOwogIH0KCiAgLy8gU3RlcCA3CiAgY29uc3QgaW52YWxpZEtleXMgPSBPYmplY3Qua2V5cyhwYXJzZWQpLmZpbHRlcigKICAgIChrZXkpID0+IGtleSAhPT0gJ2ltcG9ydHMnICYmIGtleSAhPT0gJ3Njb3BlcycsCiAgKTsKICBpZiAoaW52YWxpZEtleXMubGVuZ3RoID4gMCkgewogICAgY29uc29sZS53YXJuKAogICAgICBgSW52YWxpZCB0b3AtbGV2ZWwga2V5JHsKICAgICAgICBpbnZhbGlkS2V5cy5sZW5ndGggPiAwID8gJ3MnIDogJycKICAgICAgfSBpbiBpbXBvcnQgbWFwIC0gJHtpbnZhbGlkS2V5cy5qb2luKCcsICcpfWAsCiAgICApOwogIH0KCiAgLy8gU3RlcCA4CiAgcmV0dXJuIHsKICAgIGltcG9ydHM6IHNvcnRlZEFuZE5vcm1hbGl6ZWRJbXBvcnRzLAogICAgc2NvcGVzOiBzb3J0ZWRBbmROb3JtYWxpemVkU2NvcGVzLAogIH07Cn0KCi8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vaW1wb3J0LW1hcHMvI3NvcnQtYW5kLW5vcm1hbGl6ZS1hLXNwZWNpZmllci1tYXAKZnVuY3Rpb24gc29ydEFuZE5vcm1hbGl6ZVNwZWNpZmllck1hcChtYXAsIGJhc2VVUkwpIHsKICBjb25zdCBub3JtYWxpemVkID0ge307CgogIGZvciAobGV0IHNwZWNpZmllcktleSBpbiBtYXApIHsKICAgIGNvbnN0IHZhbHVlID0gbWFwW3NwZWNpZmllcktleV07CgogICAgY29uc3Qgbm9ybWFsaXplZFNwZWNpZmllcktleSA9IG5vcm1hbGl6ZVNwZWNpZmllcktleShzcGVjaWZpZXJLZXksIGJhc2VVUkwpOwogICAgaWYgKG5vcm1hbGl6ZWRTcGVjaWZpZXJLZXkgPT09IG51bGwpIHsKICAgICAgY29udGludWU7CiAgICB9CgogICAgbGV0IGFkZHJlc3NVUkwgPSBwYXJzZVVSTExpa2VTcGVjaWZpZXIodmFsdWUsIGJhc2VVUkwpOwogICAgaWYgKGFkZHJlc3NVUkwgPT09IG51bGwpIHsKICAgICAgY29uc29sZS53YXJuKAogICAgICAgIGBJbnZhbGlkIFVSTCBhZGRyZXNzIGZvciBpbXBvcnQgbWFwIHNwZWNpZmllciAnJHtzcGVjaWZpZXJLZXl9J2AsCiAgICAgICk7CiAgICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplZFNwZWNpZmllcktleV0gPSBudWxsOwogICAgICBjb250aW51ZTsKICAgIH0KCiAgICBpZiAoc3BlY2lmaWVyS2V5LmVuZHNXaXRoKCcvJykgJiYgIWFkZHJlc3NVUkwuZW5kc1dpdGgoJy8nKSkgewogICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgYEludmFsaWQgVVJMIGFkZHJlc3MgZm9yIGltcG9ydCBtYXAgc3BlY2lmaWVyICcke3NwZWNpZmllcktleX0nIC0gc2luY2UgdGhlIHNwZWNpZmllciBlbmRzIGluIHNsYXNoLCBzbyBtdXN0IHRoZSBhZGRyZXNzYCwKICAgICAgKTsKICAgICAgbm9ybWFsaXplZFtub3JtYWxpemVkU3BlY2lmaWVyS2V5XSA9IG51bGw7CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplZFNwZWNpZmllcktleV0gPSBhZGRyZXNzVVJMOwogIH0KCiAgcmV0dXJuIG5vcm1hbGl6ZWQ7Cn0KCi8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vaW1wb3J0LW1hcHMvI25vcm1hbGl6ZS1hLXNwZWNpZmllci1rZXkKZnVuY3Rpb24gbm9ybWFsaXplU3BlY2lmaWVyS2V5KGtleSkgewogIGlmIChrZXkgPT09ICcnKSB7CiAgICBjb25zb2xlLndhcm4oYFNwZWNpZmllciBrZXlzIGluIGltcG9ydCBtYXBzIG1heSBub3QgYmUgdGhlIGVtcHR5IHN0cmluZ2ApOwogICAgcmV0dXJuIG51bGw7CiAgfQoKICByZXR1cm4gcGFyc2VVUkxMaWtlU3BlY2lmaWVyKGtleSwgYmFzZVVSTCkgfHwga2V5Owp9CgovLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ltcG9ydC1tYXBzLyNwYXJzZS1hLXVybC1saWtlLWltcG9ydC1zcGVjaWZpZXIKZnVuY3Rpb24gcGFyc2VVUkxMaWtlU3BlY2lmaWVyKHNwZWNpZmllciwgYmFzZVVSTCkgewogIGNvbnN0IHVzZUJhc2VVcmxBc1BhcmVudCA9CiAgICBzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpIHx8CiAgICBzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLi8nKSB8fAogICAgc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy4uLycpOwoKICB0cnkgewogICAgcmV0dXJuIG5ldyBVUkwoc3BlY2lmaWVyLCB1c2VCYXNlVXJsQXNQYXJlbnQgPyBiYXNlVVJMIDogdW5kZWZpbmVkKS5ocmVmOwogIH0gY2F0Y2ggewogICAgcmV0dXJuIG51bGw7CiAgfQp9CgovLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ltcG9ydC1tYXBzLyNzb3J0LWFuZC1ub3JtYWxpemUtc2NvcGVzCmZ1bmN0aW9uIHNvcnRBbmROb3JtYWxpemVTY29wZXMobWFwLCBiYXNlVVJMKSB7CiAgbGV0IG5vcm1hbGl6ZWQgPSB7fTsKCiAgZm9yIChsZXQgc2NvcGVQcmVmaXggaW4gbWFwKSB7CiAgICBjb25zdCBwb3RlbnRpYWxTcGVjaWZpZXJNYXAgPSBtYXBbc2NvcGVQcmVmaXhdOwogICAgaWYgKCFpc1BsYWluT2JqZWN0KHBvdGVudGlhbFNwZWNpZmllck1hcCkpIHsKICAgICAgdGhyb3cgVHlwZUVycm9yKAogICAgICAgIGBUaGUgdmFsdWUgb2Ygc2NvcGUgJHtzY29wZVByZWZpeH0gbXVzdCBiZSBhIEpTT04gb2JqZWN0YCwKICAgICAgKTsKICAgIH0KCiAgICBsZXQgc2NvcGVQcmVmaXhVUkw7CiAgICB0cnkgewogICAgICBzY29wZVByZWZpeFVSTCA9IG5ldyBVUkwoc2NvcGVQcmVmaXgsIGJhc2VVUkwpLmhyZWY7CiAgICB9IGNhdGNoIHsKICAgICAgY29uc29sZS53YXJuKAogICAgICAgIGBTY29wZSBwcmVmaXggVVJMICcke3Njb3BlUHJlZml4fScgd2FzIG5vdCBwYXJzZWFibGUgaW4gaW1wb3J0IG1hcGAsCiAgICAgICk7CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIG5vcm1hbGl6ZWRbc2NvcGVQcmVmaXhVUkxdID0gc29ydEFuZE5vcm1hbGl6ZVNwZWNpZmllck1hcCgKICAgICAgcG90ZW50aWFsU3BlY2lmaWVyTWFwLAogICAgICBiYXNlVVJMLAogICAgKTsKICB9CgogIHJldHVybiBub3JtYWxpemVkOwp9CgpmdW5jdGlvbiBpc1BsYWluT2JqZWN0KG9iaikgewogIHJldHVybiBvYmogPT09IE9iamVjdChvYmopICYmICFBcnJheS5pc0FycmF5KG9iaik7Cn0KCi8vIC0tLQoKbGV0IGltcG9ydE1hcFByb21pc2UgPSBnZXRJbXBvcnRNYXBQcm9taXNlKCk7CgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZShzcGVjaWZpZXIsIGNvbnRleHQsIGRlZmF1bHRSZXNvbHZlKSB7CiAgY29uc3QgeyBwYXJlbnRVUkwgPSBudWxsIH0gPSBjb250ZXh0OwogIGNvbnN0IGltcG9ydE1hcCA9IGF3YWl0IGltcG9ydE1hcFByb21pc2U7CiAgY29uc3QgaW1wb3J0TWFwVXJsID0gcmVzb2x2ZVNwZWNpZmllcihpbXBvcnRNYXAsIHNwZWNpZmllciwgcGFyZW50VVJMKTsKCiAgcmV0dXJuIGRlZmF1bHRSZXNvbHZlKGltcG9ydE1hcFVybCA/PyBzcGVjaWZpZXIsIGNvbnRleHQsIGRlZmF1bHRSZXNvbHZlKTsKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWQodXJsLCBjb250ZXh0LCBkZWZhdWx0TG9hZCkgewogIGlmICh1cmwuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IHVybC5zdGFydHNXaXRoKCdodHRwczovLycpKSB7CiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCh1cmwpOwogICAgaWYgKCFyZXMub2spIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlIGZyb20gJHt1cmx9YCk7CiAgICB9CiAgICBjb25zdCBzb3VyY2UgPSBhd2FpdCByZXMudGV4dCgpOwogICAgcmV0dXJuIHsKICAgICAgc2hvcnRDaXJjdWl0OiB0cnVlLAogICAgICBmb3JtYXQ6ICdtb2R1bGUnLAogICAgICBzb3VyY2UsCiAgICB9OwogIH0KCiAgaWYgKCF1cmwuc3RhcnRzV2l0aCgnbm9kZTonKSkgewogICAgY29udGV4dC5mb3JtYXQgPSAnbW9kdWxlJzsKICB9CgogIHJldHVybiBkZWZhdWx0TG9hZCh1cmwsIGNvbnRleHQsIGRlZmF1bHRMb2FkKTsKfQoKYXN5bmMgZnVuY3Rpb24gZ2V0SW1wb3J0TWFwUHJvbWlzZSgpIHsKICBjb25zdCByZWxhdGl2ZVBhdGggPSBwcm9jZXNzLmVudi5JTVBPUlRfTUFQX1BBVEggfHwgSU1QT1JUX01BUF9GSUxFX05BTUU7CiAgY29uc3QgaW1wb3J0TWFwUGF0aCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCByZWxhdGl2ZVBhdGgpOwoKICBsZXQgc3RyOwogIHRyeSB7CiAgICBzdHIgPSBhd2FpdCBmcy5yZWFkRmlsZShpbXBvcnRNYXBQYXRoKTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJldHVybiBlbXB0eU1hcCgpOwogIH0KCiAgbGV0IGpzb247CiAgdHJ5IHsKICAgIGpzb24gPSBhd2FpdCBKU09OLnBhcnNlKHN0cik7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICB0aHJvdyBFcnJvcigKICAgICAgYEltcG9ydCBtYXAgYXQgJHtpbXBvcnRNYXBQYXRofSBjb250YWlucyBpbnZhbGlkIGpzb246ICR7ZXJyLm1lc3NhZ2V9YCwKICAgICk7CiAgfQoKICByZXR1cm4gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAoanNvbik7Cn0KCmdsb2JhbC5ub2RlTG9hZGVyID0gZ2xvYmFsLm5vZGVMb2FkZXIgfHwge307CgpnbG9iYWwubm9kZUxvYWRlci5zZXRJbXBvcnRNYXBQcm9taXNlID0gZnVuY3Rpb24gc2V0SW1wb3J0TWFwUHJvbWlzZShwcm9taXNlKSB7CiAgaW1wb3J0TWFwUHJvbWlzZSA9IHByb21pc2UudGhlbigobWFwKSA9PiB7CiAgICByZXR1cm4gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAobWFwKTsKICB9KTsKfTsKCmZ1bmN0aW9uIGVtcHR5TWFwKCkgewogIHJldHVybiB7IGltcG9ydHM6IHt9LCBzY29wZXM6IHt9IH07Cn0K";
155
+
156
+ // packages/node/src/lib/node/init-node-federation.ts
157
+ var defaultOptions = {
158
+ remotesOrManifestUrl: {},
159
+ relBundlePath: "../browser",
160
+ throwIfRemoteNotFound: false
161
+ };
162
+ async function initNodeFederation(options) {
163
+ const mergedOptions = { ...defaultOptions, ...options };
164
+ const importMap = await createNodeImportMap(mergedOptions);
165
+ await writeImportMap(importMap);
166
+ await writeResolver();
167
+ register(pathToFileURL("./federation-resolver.mjs").href);
168
+ }
169
+ async function createNodeImportMap(options) {
170
+ const { remotesOrManifestUrl, relBundlePath } = options;
171
+ const remotes = typeof remotesOrManifestUrl === "object" ? remotesOrManifestUrl : await loadFsManifest(remotesOrManifestUrl);
172
+ const hostInfo = await loadFsFederationInfo(relBundlePath);
173
+ const hostImportMap = await processHostInfo(hostInfo, "./" + relBundlePath);
174
+ const remotesImportMap = await fetchAndRegisterRemotes(remotes, {
175
+ throwIfRemoteNotFound: options.throwIfRemoteNotFound,
176
+ cacheTag: options.cacheTag
177
+ });
178
+ const importMap = mergeImportMaps(hostImportMap, remotesImportMap);
179
+ return importMap;
180
+ }
181
+ async function loadFsManifest(manifestUrl) {
182
+ const content = await fs2.readFile(manifestUrl, "utf-8");
183
+ const manifest = JSON.parse(content);
184
+ return manifest;
185
+ }
186
+ async function loadFsFederationInfo(relBundlePath) {
187
+ const manifestPath = path2.join(relBundlePath, "remoteEntry.json");
188
+ const content = await fs2.readFile(manifestPath, "utf-8");
189
+ const manifest = JSON.parse(content);
190
+ return manifest;
191
+ }
192
+ async function writeImportMap(map) {
193
+ await fs2.writeFile(IMPORT_MAP_FILE_NAME, JSON.stringify(map, null, 2), "utf-8");
194
+ }
195
+ async function writeResolver() {
196
+ const buffer = Buffer.from(resolver, "base64");
197
+ await fs2.writeFile("federation-resolver.mjs", buffer, "utf-8");
198
+ }
199
+ export {
200
+ initNodeFederation
201
+ };
@@ -5,3 +5,4 @@ export type InitNodeFederationOptions = {
5
5
  cacheTag?: string;
6
6
  };
7
7
  export declare function initNodeFederation(options: Partial<InitNodeFederationOptions>): Promise<void>;
8
+ //# sourceMappingURL=init-node-federation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-node-federation.d.ts","sourceRoot":"","sources":["../../../src/lib/node/init-node-federation.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,yBAAyB,GAAG;IACtC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAQF,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -0,0 +1,8 @@
1
+ export type FStartArgs = {
2
+ entry: string;
3
+ relBundlePath: string;
4
+ remotesOrManifestUrl: string | undefined;
5
+ [key: string]: string | undefined;
6
+ };
7
+ export declare function parseFStartArgs(): FStartArgs;
8
+ //# sourceMappingURL=fstart-args-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fstart-args-parser.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/fstart-args-parser.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAQF,wBAAgB,eAAe,eA+B9B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fstart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fstart.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/fstart.ts"],"names":[],"mappings":""}
@@ -6,3 +6,4 @@ export function resolveAndComposeImportMap(parsed: any): {
6
6
  export function resolve(specifier: any, context: any, defaultResolve: any): Promise<any>;
7
7
  export function load(url: any, context: any, defaultLoad: any): Promise<any>;
8
8
  export const IMPORT_MAP_FILE_NAME: "node.importmap";
9
+ //# sourceMappingURL=import-map-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-map-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/import-map-loader.js"],"names":[],"mappings":"AAUA,sFAkCC;AAsCD;;;EAsDC;AAoGD,yFAMC;AAED,6EAmBC;AAlQD,mCAAoC,gBAAgB,CAAC"}
@@ -1 +1,2 @@
1
1
  export const resolver: "aW1wb3J0IHBhdGggZnJvbSAncGF0aCc7CmltcG9ydCB1cmwgZnJvbSAndXJsJzsKaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7CgpleHBvcnQgY29uc3QgSU1QT1JUX01BUF9GSUxFX05BTUUgPSAnbm9kZS5pbXBvcnRtYXAnOwoKY29uc3QgYmFzZVVSTCA9IHVybC5wYXRoVG9GaWxlVVJMKHByb2Nlc3MuY3dkKCkpICsgcGF0aC5zZXA7CgovLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ltcG9ydC1tYXBzLyNuZXctcmVzb2x2ZS1hbGdvcml0aG0KZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVTcGVjaWZpZXIoaW1wb3J0TWFwLCBzcGVjaWZpZXIsIHBhcmVudFVSTCkgewogIGxldCBjdXJyZW50QmFzZVVSTDsKICBpZiAocGFyZW50VVJMKSB7CiAgICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IHBhcmVudFVSTC5sYXN0SW5kZXhPZihwYXRoLnNlcCk7CiAgICBjdXJyZW50QmFzZVVSTCA9IHBhcmVudFVSTC5zbGljZSgwLCBsYXN0U2xhc2hJbmRleCArIDEpOwogIH0gZWxzZSB7CiAgICBjdXJyZW50QmFzZVVSTCA9IGJhc2VVUkw7CiAgfQogIGNvbnN0IG5vcm1hbGl6ZWRTcGVjaWZpZXIgPQogICAgcGFyc2VVUkxMaWtlU3BlY2lmaWVyKHNwZWNpZmllciwgY3VycmVudEJhc2VVUkwpIHx8IHNwZWNpZmllcjsKICBmb3IgKGxldCBzY29wZVByZWZpeCBpbiBpbXBvcnRNYXAuc2NvcGVzKSB7CiAgICBpZiAoCiAgICAgIHNjb3BlUHJlZml4ID09PSBjdXJyZW50QmFzZVVSTCB8fAogICAgICAoc2NvcGVQcmVmaXguZW5kc1dpdGgoJy8nKSAmJiBjdXJyZW50QmFzZVVSTC5zdGFydHNXaXRoKHNjb3BlUHJlZml4KSkKICAgICkgewogICAgICBjb25zdCBzY29wZUltcG9ydHNNYXRjaCA9IHJlc29sdmVJbXBvcnRzTWF0Y2goCiAgICAgICAgbm9ybWFsaXplZFNwZWNpZmllciwKICAgICAgICBpbXBvcnRNYXAuc2NvcGVzW3Njb3BlUHJlZml4XSwKICAgICAgKTsKICAgICAgaWYgKHNjb3BlSW1wb3J0c01hdGNoKSB7CiAgICAgICAgcmV0dXJuIHNjb3BlSW1wb3J0c01hdGNoOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBjb25zdCB0b3BMZXZlbEltcG9ydHNNYXRjaCA9IHJlc29sdmVJbXBvcnRzTWF0Y2goCiAgICAgICAgbm9ybWFsaXplZFNwZWNpZmllciwKICAgICAgICBpbXBvcnRNYXAuaW1wb3J0cywKICAgICAgKTsKICAgICAgaWYgKHRvcExldmVsSW1wb3J0c01hdGNoKSB7CiAgICAgICAgcmV0dXJuIHRvcExldmVsSW1wb3J0c01hdGNoOwogICAgICB9CiAgICB9CiAgfQoKICByZXR1cm4gcmVzb2x2ZUltcG9ydHNNYXRjaChub3JtYWxpemVkU3BlY2lmaWVyLCBpbXBvcnRNYXAuaW1wb3J0cyk7Cn0KCi8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vaW1wb3J0LW1hcHMvI3Jlc29sdmUtYW4taW1wb3J0cy1tYXRjaApmdW5jdGlvbiByZXNvbHZlSW1wb3J0c01hdGNoKG5vcm1hbGl6ZWRTcGVjaWZpZXIsIHNwZWNpZmllck1hcCkgewogIGZvciAobGV0IHNwZWNpZmllcktleSBpbiBzcGVjaWZpZXJNYXApIHsKICAgIGNvbnN0IHJlc29sdXRpb25SZXN1bHQgPSBzcGVjaWZpZXJNYXBbc3BlY2lmaWVyS2V5XTsKCiAgICBpZiAoc3BlY2lmaWVyS2V5ID09PSBub3JtYWxpemVkU3BlY2lmaWVyKSB7CiAgICAgIGlmIChyZXNvbHV0aW9uUmVzdWx0ID09PSBudWxsKSB7CiAgICAgICAgdGhyb3cgVHlwZUVycm9yKAogICAgICAgICAgYFRoZSBpbXBvcnQgbWFwIHJlc29sdXRpb24gb2YgJHtzcGVjaWZpZXJLZXl9IGZhaWxlZCBkdWUgdG8gYSBudWxsIGVudHJ5YCwKICAgICAgICApOwogICAgICB9CiAgICAgIHJldHVybiByZXNvbHV0aW9uUmVzdWx0OwogICAgfSBlbHNlIGlmICgKICAgICAgc3BlY2lmaWVyS2V5LmVuZHNXaXRoKCcvJykgJiYKICAgICAgbm9ybWFsaXplZFNwZWNpZmllci5zdGFydHNXaXRoKHNwZWNpZmllcktleSkKICAgICkgewogICAgICBpZiAocmVzb2x1dGlvblJlc3VsdCA9PT0gbnVsbCkgewogICAgICAgIHRocm93IFR5cGVFcnJvcigKICAgICAgICAgIGBUaGUgaW1wb3J0IG1hcCByZXNvbHV0aW9uIG9mICR7c3BlY2lmaWVyS2V5fSBmYWlsZWQgZHVlIHRvIGEgbnVsbCBlbnRyeWAsCiAgICAgICAgKTsKICAgICAgfQogICAgICBjb25zdCBhZnRlclByZWZpeCA9IG5vcm1hbGl6ZWRTcGVjaWZpZXIuc2xpY2Uoc3BlY2lmaWVyS2V5Lmxlbmd0aCk7CiAgICAgIHRyeSB7CiAgICAgICAgcmV0dXJuIG5ldyBVUkwoYWZ0ZXJQcmVmaXgsIHJlc29sdXRpb25SZXN1bHQpLmhyZWY7CiAgICAgIH0gY2F0Y2ggewogICAgICAgIHRocm93IFR5cGVFcnJvcigKICAgICAgICAgIGBUaGUgaW1wb3J0IG1hcCByZXNvbHV0aW9uIG9mICR7c3BlY2lmaWVyS2V5fSBmYWlsZWQgZHVlIHRvIFVSTCBwYXJzZSBmYWlsdXJlYCwKICAgICAgICApOwogICAgICB9CiAgICB9CiAgfQoKICByZXR1cm4gbnVsbDsKfQoKLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9pbXBvcnQtbWFwcy8jcGFyc2luZwpleHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAocGFyc2VkKSB7CiAgLy8gU3RlcCAyCiAgaWYgKCFpc1BsYWluT2JqZWN0KHBhcnNlZCkpIHsKICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGltcG9ydCBtYXAgLSB0b3AgbGV2ZWwgbXVzdCBiZSBhbiBvYmplY3RgKTsKICB9CgogIC8vIFN0ZXAgMwogIGxldCBzb3J0ZWRBbmROb3JtYWxpemVkSW1wb3J0cyA9IHt9OwoKICAvLyBTdGVwIDQKICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcnNlZCwgJ2ltcG9ydHMnKSkgewogICAgLy8gU3RlcCA0LjEKICAgIGlmICghaXNQbGFpbk9iamVjdChwYXJzZWQuaW1wb3J0cykpIHsKICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaW1wb3J0IG1hcCAtICJpbXBvcnRzIiBwcm9wZXJ0eSBtdXN0IGJlIGFuIG9iamVjdGApOwogICAgfQoKICAgIC8vIFN0ZXAgNC4yCiAgICBzb3J0ZWRBbmROb3JtYWxpemVkSW1wb3J0cyA9IHNvcnRBbmROb3JtYWxpemVTcGVjaWZpZXJNYXAoCiAgICAgIHBhcnNlZC5pbXBvcnRzLAogICAgICBiYXNlVVJMLAogICAgKTsKICB9CgogIC8vIFN0ZXAgNQogIGxldCBzb3J0ZWRBbmROb3JtYWxpemVkU2NvcGVzID0ge307CgogIC8vIFN0ZXAgNgogIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGFyc2VkLCAnc2NvcGVzJykpIHsKICAgIC8vIFN0ZXAgNi4xCiAgICBpZiAoIWlzUGxhaW5PYmplY3QocGFyc2VkLnNjb3BlcykpIHsKICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaW1wb3J0IG1hcCAtICJzY29wZXMiIHByb3BlcnR5IG11c3QgYmUgYW4gb2JqZWN0YCk7CiAgICB9CgogICAgLy8gU3RlcCA2LjIKICAgIHNvcnRlZEFuZE5vcm1hbGl6ZWRTY29wZXMgPSBzb3J0QW5kTm9ybWFsaXplU2NvcGVzKHBhcnNlZC5zY29wZXMsIGJhc2VVUkwpOwogIH0KCiAgLy8gU3RlcCA3CiAgY29uc3QgaW52YWxpZEtleXMgPSBPYmplY3Qua2V5cyhwYXJzZWQpLmZpbHRlcigKICAgIChrZXkpID0+IGtleSAhPT0gJ2ltcG9ydHMnICYmIGtleSAhPT0gJ3Njb3BlcycsCiAgKTsKICBpZiAoaW52YWxpZEtleXMubGVuZ3RoID4gMCkgewogICAgY29uc29sZS53YXJuKAogICAgICBgSW52YWxpZCB0b3AtbGV2ZWwga2V5JHsKICAgICAgICBpbnZhbGlkS2V5cy5sZW5ndGggPiAwID8gJ3MnIDogJycKICAgICAgfSBpbiBpbXBvcnQgbWFwIC0gJHtpbnZhbGlkS2V5cy5qb2luKCcsICcpfWAsCiAgICApOwogIH0KCiAgLy8gU3RlcCA4CiAgcmV0dXJuIHsKICAgIGltcG9ydHM6IHNvcnRlZEFuZE5vcm1hbGl6ZWRJbXBvcnRzLAogICAgc2NvcGVzOiBzb3J0ZWRBbmROb3JtYWxpemVkU2NvcGVzLAogIH07Cn0KCi8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vaW1wb3J0LW1hcHMvI3NvcnQtYW5kLW5vcm1hbGl6ZS1hLXNwZWNpZmllci1tYXAKZnVuY3Rpb24gc29ydEFuZE5vcm1hbGl6ZVNwZWNpZmllck1hcChtYXAsIGJhc2VVUkwpIHsKICBjb25zdCBub3JtYWxpemVkID0ge307CgogIGZvciAobGV0IHNwZWNpZmllcktleSBpbiBtYXApIHsKICAgIGNvbnN0IHZhbHVlID0gbWFwW3NwZWNpZmllcktleV07CgogICAgY29uc3Qgbm9ybWFsaXplZFNwZWNpZmllcktleSA9IG5vcm1hbGl6ZVNwZWNpZmllcktleShzcGVjaWZpZXJLZXksIGJhc2VVUkwpOwogICAgaWYgKG5vcm1hbGl6ZWRTcGVjaWZpZXJLZXkgPT09IG51bGwpIHsKICAgICAgY29udGludWU7CiAgICB9CgogICAgbGV0IGFkZHJlc3NVUkwgPSBwYXJzZVVSTExpa2VTcGVjaWZpZXIodmFsdWUsIGJhc2VVUkwpOwogICAgaWYgKGFkZHJlc3NVUkwgPT09IG51bGwpIHsKICAgICAgY29uc29sZS53YXJuKAogICAgICAgIGBJbnZhbGlkIFVSTCBhZGRyZXNzIGZvciBpbXBvcnQgbWFwIHNwZWNpZmllciAnJHtzcGVjaWZpZXJLZXl9J2AsCiAgICAgICk7CiAgICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplZFNwZWNpZmllcktleV0gPSBudWxsOwogICAgICBjb250aW51ZTsKICAgIH0KCiAgICBpZiAoc3BlY2lmaWVyS2V5LmVuZHNXaXRoKCcvJykgJiYgIWFkZHJlc3NVUkwuZW5kc1dpdGgoJy8nKSkgewogICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgYEludmFsaWQgVVJMIGFkZHJlc3MgZm9yIGltcG9ydCBtYXAgc3BlY2lmaWVyICcke3NwZWNpZmllcktleX0nIC0gc2luY2UgdGhlIHNwZWNpZmllciBlbmRzIGluIHNsYXNoLCBzbyBtdXN0IHRoZSBhZGRyZXNzYCwKICAgICAgKTsKICAgICAgbm9ybWFsaXplZFtub3JtYWxpemVkU3BlY2lmaWVyS2V5XSA9IG51bGw7CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplZFNwZWNpZmllcktleV0gPSBhZGRyZXNzVVJMOwogIH0KCiAgcmV0dXJuIG5vcm1hbGl6ZWQ7Cn0KCi8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vaW1wb3J0LW1hcHMvI25vcm1hbGl6ZS1hLXNwZWNpZmllci1rZXkKZnVuY3Rpb24gbm9ybWFsaXplU3BlY2lmaWVyS2V5KGtleSkgewogIGlmIChrZXkgPT09ICcnKSB7CiAgICBjb25zb2xlLndhcm4oYFNwZWNpZmllciBrZXlzIGluIGltcG9ydCBtYXBzIG1heSBub3QgYmUgdGhlIGVtcHR5IHN0cmluZ2ApOwogICAgcmV0dXJuIG51bGw7CiAgfQoKICByZXR1cm4gcGFyc2VVUkxMaWtlU3BlY2lmaWVyKGtleSwgYmFzZVVSTCkgfHwga2V5Owp9CgovLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ltcG9ydC1tYXBzLyNwYXJzZS1hLXVybC1saWtlLWltcG9ydC1zcGVjaWZpZXIKZnVuY3Rpb24gcGFyc2VVUkxMaWtlU3BlY2lmaWVyKHNwZWNpZmllciwgYmFzZVVSTCkgewogIGNvbnN0IHVzZUJhc2VVcmxBc1BhcmVudCA9CiAgICBzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpIHx8CiAgICBzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLi8nKSB8fAogICAgc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy4uLycpOwoKICB0cnkgewogICAgcmV0dXJuIG5ldyBVUkwoc3BlY2lmaWVyLCB1c2VCYXNlVXJsQXNQYXJlbnQgPyBiYXNlVVJMIDogdW5kZWZpbmVkKS5ocmVmOwogIH0gY2F0Y2ggewogICAgcmV0dXJuIG51bGw7CiAgfQp9CgovLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ltcG9ydC1tYXBzLyNzb3J0LWFuZC1ub3JtYWxpemUtc2NvcGVzCmZ1bmN0aW9uIHNvcnRBbmROb3JtYWxpemVTY29wZXMobWFwLCBiYXNlVVJMKSB7CiAgbGV0IG5vcm1hbGl6ZWQgPSB7fTsKCiAgZm9yIChsZXQgc2NvcGVQcmVmaXggaW4gbWFwKSB7CiAgICBjb25zdCBwb3RlbnRpYWxTcGVjaWZpZXJNYXAgPSBtYXBbc2NvcGVQcmVmaXhdOwogICAgaWYgKCFpc1BsYWluT2JqZWN0KHBvdGVudGlhbFNwZWNpZmllck1hcCkpIHsKICAgICAgdGhyb3cgVHlwZUVycm9yKAogICAgICAgIGBUaGUgdmFsdWUgb2Ygc2NvcGUgJHtzY29wZVByZWZpeH0gbXVzdCBiZSBhIEpTT04gb2JqZWN0YCwKICAgICAgKTsKICAgIH0KCiAgICBsZXQgc2NvcGVQcmVmaXhVUkw7CiAgICB0cnkgewogICAgICBzY29wZVByZWZpeFVSTCA9IG5ldyBVUkwoc2NvcGVQcmVmaXgsIGJhc2VVUkwpLmhyZWY7CiAgICB9IGNhdGNoIHsKICAgICAgY29uc29sZS53YXJuKAogICAgICAgIGBTY29wZSBwcmVmaXggVVJMICcke3Njb3BlUHJlZml4fScgd2FzIG5vdCBwYXJzZWFibGUgaW4gaW1wb3J0IG1hcGAsCiAgICAgICk7CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIG5vcm1hbGl6ZWRbc2NvcGVQcmVmaXhVUkxdID0gc29ydEFuZE5vcm1hbGl6ZVNwZWNpZmllck1hcCgKICAgICAgcG90ZW50aWFsU3BlY2lmaWVyTWFwLAogICAgICBiYXNlVVJMLAogICAgKTsKICB9CgogIHJldHVybiBub3JtYWxpemVkOwp9CgpmdW5jdGlvbiBpc1BsYWluT2JqZWN0KG9iaikgewogIHJldHVybiBvYmogPT09IE9iamVjdChvYmopICYmICFBcnJheS5pc0FycmF5KG9iaik7Cn0KCi8vIC0tLQoKbGV0IGltcG9ydE1hcFByb21pc2UgPSBnZXRJbXBvcnRNYXBQcm9taXNlKCk7CgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZShzcGVjaWZpZXIsIGNvbnRleHQsIGRlZmF1bHRSZXNvbHZlKSB7CiAgY29uc3QgeyBwYXJlbnRVUkwgPSBudWxsIH0gPSBjb250ZXh0OwogIGNvbnN0IGltcG9ydE1hcCA9IGF3YWl0IGltcG9ydE1hcFByb21pc2U7CiAgY29uc3QgaW1wb3J0TWFwVXJsID0gcmVzb2x2ZVNwZWNpZmllcihpbXBvcnRNYXAsIHNwZWNpZmllciwgcGFyZW50VVJMKTsKCiAgcmV0dXJuIGRlZmF1bHRSZXNvbHZlKGltcG9ydE1hcFVybCA/PyBzcGVjaWZpZXIsIGNvbnRleHQsIGRlZmF1bHRSZXNvbHZlKTsKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWQodXJsLCBjb250ZXh0LCBkZWZhdWx0TG9hZCkgewogIGlmICh1cmwuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IHVybC5zdGFydHNXaXRoKCdodHRwczovLycpKSB7CiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCh1cmwpOwogICAgaWYgKCFyZXMub2spIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlIGZyb20gJHt1cmx9YCk7CiAgICB9CiAgICBjb25zdCBzb3VyY2UgPSBhd2FpdCByZXMudGV4dCgpOwogICAgcmV0dXJuIHsKICAgICAgc2hvcnRDaXJjdWl0OiB0cnVlLAogICAgICBmb3JtYXQ6ICdtb2R1bGUnLAogICAgICBzb3VyY2UsCiAgICB9OwogIH0KCiAgaWYgKCF1cmwuc3RhcnRzV2l0aCgnbm9kZTonKSkgewogICAgY29udGV4dC5mb3JtYXQgPSAnbW9kdWxlJzsKICB9CgogIHJldHVybiBkZWZhdWx0TG9hZCh1cmwsIGNvbnRleHQsIGRlZmF1bHRMb2FkKTsKfQoKYXN5bmMgZnVuY3Rpb24gZ2V0SW1wb3J0TWFwUHJvbWlzZSgpIHsKICBjb25zdCByZWxhdGl2ZVBhdGggPSBwcm9jZXNzLmVudi5JTVBPUlRfTUFQX1BBVEggfHwgSU1QT1JUX01BUF9GSUxFX05BTUU7CiAgY29uc3QgaW1wb3J0TWFwUGF0aCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCByZWxhdGl2ZVBhdGgpOwoKICBsZXQgc3RyOwogIHRyeSB7CiAgICBzdHIgPSBhd2FpdCBmcy5yZWFkRmlsZShpbXBvcnRNYXBQYXRoKTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJldHVybiBlbXB0eU1hcCgpOwogIH0KCiAgbGV0IGpzb247CiAgdHJ5IHsKICAgIGpzb24gPSBhd2FpdCBKU09OLnBhcnNlKHN0cik7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICB0aHJvdyBFcnJvcigKICAgICAgYEltcG9ydCBtYXAgYXQgJHtpbXBvcnRNYXBQYXRofSBjb250YWlucyBpbnZhbGlkIGpzb246ICR7ZXJyLm1lc3NhZ2V9YCwKICAgICk7CiAgfQoKICByZXR1cm4gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAoanNvbik7Cn0KCmdsb2JhbC5ub2RlTG9hZGVyID0gZ2xvYmFsLm5vZGVMb2FkZXIgfHwge307CgpnbG9iYWwubm9kZUxvYWRlci5zZXRJbXBvcnRNYXBQcm9taXNlID0gZnVuY3Rpb24gc2V0SW1wb3J0TWFwUHJvbWlzZShwcm9taXNlKSB7CiAgaW1wb3J0TWFwUHJvbWlzZSA9IHByb21pc2UudGhlbigobWFwKSA9PiB7CiAgICByZXR1cm4gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAobWFwKTsKICB9KTsKfTsKCmZ1bmN0aW9uIGVtcHR5TWFwKCkgewogIHJldHVybiB7IGltcG9ydHM6IHt9LCBzY29wZXM6IHt9IH07Cn0K";
2
+ //# sourceMappingURL=loader-as-data-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader-as-data-url.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/loader-as-data-url.js"],"names":[],"mappings":"AAAA,uBACE,k5UAAk5U,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,43 @@
1
1
  {
2
2
  "name": "@softarc/native-federation-node",
3
- "version": "3.5.1",
4
- "license": "MIT",
5
- "dependencies": {
6
- "@softarc/native-federation-runtime": "~3.5.1",
7
- "tslib": "^2.8.1"
8
- },
9
- "types": "./src/index.d.ts",
10
- "module": "./src/index.js",
3
+ "version": "4.0.0-RC1",
11
4
  "type": "module",
12
- "main": "./src/index.js"
13
- }
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ "./package.json": "./package.json",
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "!**/*.tsbuildinfo"
19
+ ],
20
+ "nx": {
21
+ "targets": {
22
+ "build": {
23
+ "executor": "@nx/esbuild:esbuild",
24
+ "outputs": [
25
+ "{options.outputPath}"
26
+ ],
27
+ "options": {
28
+ "outputPath": "packages/node/dist",
29
+ "main": "packages/node/src/index.ts",
30
+ "tsConfig": "packages/node/tsconfig.lib.json",
31
+ "format": [
32
+ "esm"
33
+ ],
34
+ "declarationRootDir": "packages/node/src"
35
+ }
36
+ }
37
+ }
38
+ },
39
+ "dependencies": {
40
+ "@softarc/native-federation": "4.0.0-RC1",
41
+ "@softarc/native-federation-runtime": "4.0.0-RC1"
42
+ }
43
+ }
package/src/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './lib/node/init-node-federation';
package/src/index.js DELETED
@@ -1,2 +0,0 @@
1
- export * from './lib/node/init-node-federation';
2
- //# sourceMappingURL=index.js.map
package/src/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/native-federation-node/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
@@ -1,54 +0,0 @@
1
- import * as fs from 'node:fs/promises';
2
- import { register } from 'node:module';
3
- import * as path from 'node:path';
4
- import { pathToFileURL } from 'node:url';
5
- import { processRemoteInfos, mergeImportMaps, processHostInfo, } from '@softarc/native-federation-runtime';
6
- import { IMPORT_MAP_FILE_NAME } from '../utils/import-map-loader';
7
- import { resolver } from '../utils/loader-as-data-url';
8
- const defaultOptions = {
9
- remotesOrManifestUrl: {},
10
- relBundlePath: '../browser',
11
- throwIfRemoteNotFound: false,
12
- };
13
- export async function initNodeFederation(options) {
14
- const mergedOptions = { ...defaultOptions, ...options };
15
- const importMap = await createNodeImportMap(mergedOptions);
16
- // const normalized = resolveAndComposeImportMap(importMap) as ImportMap;
17
- // await writeImportMap(normalized);
18
- await writeImportMap(importMap);
19
- await writeResolver();
20
- register(pathToFileURL('./federation-resolver.mjs').href);
21
- }
22
- async function createNodeImportMap(options) {
23
- const { remotesOrManifestUrl, relBundlePath } = options;
24
- const remotes = typeof remotesOrManifestUrl === 'object'
25
- ? remotesOrManifestUrl
26
- : await loadFsManifest(remotesOrManifestUrl);
27
- const hostInfo = await loadFsFederationInfo(relBundlePath);
28
- const hostImportMap = await processHostInfo(hostInfo, './' + relBundlePath);
29
- const remotesImportMap = await processRemoteInfos(remotes, {
30
- throwIfRemoteNotFound: options.throwIfRemoteNotFound,
31
- cacheTag: options.cacheTag,
32
- });
33
- const importMap = mergeImportMaps(hostImportMap, remotesImportMap);
34
- return importMap;
35
- }
36
- async function loadFsManifest(manifestUrl) {
37
- const content = await fs.readFile(manifestUrl, 'utf-8');
38
- const manifest = JSON.parse(content);
39
- return manifest;
40
- }
41
- async function loadFsFederationInfo(relBundlePath) {
42
- const manifestPath = path.join(relBundlePath, 'remoteEntry.json');
43
- const content = await fs.readFile(manifestPath, 'utf-8');
44
- const manifest = JSON.parse(content);
45
- return manifest;
46
- }
47
- async function writeImportMap(map) {
48
- await fs.writeFile(IMPORT_MAP_FILE_NAME, JSON.stringify(map, null, 2), 'utf-8');
49
- }
50
- async function writeResolver() {
51
- const buffer = Buffer.from(resolver, 'base64');
52
- await fs.writeFile('federation-resolver.mjs', buffer, 'utf-8');
53
- }
54
- //# sourceMappingURL=init-node-federation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init-node-federation.js","sourceRoot":"","sources":["../../../../../../libs/native-federation-node/src/lib/node/init-node-federation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export type FStartArgs = {
2
- entry: string;
3
- relBundlePath: string;
4
- remotesOrManifestUrl: string;
5
- };
6
- export declare function parseFStartArgs(): FStartArgs;
@@ -1,61 +0,0 @@
1
- import * as fs from 'node:fs';
2
- const defaultArgs = {
3
- entry: './server.mjs',
4
- remotesOrManifestUrl: '../browser/federation.manifest.json',
5
- relBundlePath: '../browser/',
6
- };
7
- export function parseFStartArgs() {
8
- const args = {
9
- entry: '',
10
- remotesOrManifestUrl: '',
11
- relBundlePath: '',
12
- };
13
- let key = '';
14
- for (let i = 2; i < process.argv.length; i++) {
15
- const cand = process.argv[i];
16
- if (cand.startsWith('--')) {
17
- const candKey = cand.substring(2);
18
- if (defaultArgs[candKey]) {
19
- key = candKey;
20
- }
21
- else {
22
- console.error(`switch ${cand} not supported!`);
23
- exitWithUsage(defaultArgs);
24
- }
25
- }
26
- else if (key) {
27
- args[key] = cand;
28
- key = '';
29
- }
30
- else {
31
- console.error(`unreladed value ${cand}!`);
32
- exitWithUsage(defaultArgs);
33
- }
34
- }
35
- applyDefaultArgs(args);
36
- return args;
37
- }
38
- function applyDefaultArgs(args) {
39
- if (args.relBundlePath && !args.remotesOrManifestUrl) {
40
- const cand = defaultArgs.relBundlePath + 'federation.manifest.json';
41
- if (fs.existsSync(cand)) {
42
- args.remotesOrManifestUrl = cand;
43
- }
44
- }
45
- args.entry = args.entry || defaultArgs.entry;
46
- args.relBundlePath = args.relBundlePath || defaultArgs.relBundlePath;
47
- args.remotesOrManifestUrl =
48
- args.remotesOrManifestUrl || defaultArgs.remotesOrManifestUrl;
49
- if (!fs.existsSync(args.remotesOrManifestUrl)) {
50
- args.remotesOrManifestUrl = undefined;
51
- }
52
- }
53
- function exitWithUsage(defaultArgs) {
54
- let args = '';
55
- for (const key in defaultArgs) {
56
- args += `[--${key} ${defaultArgs[key]}] `;
57
- }
58
- console.log('usage: nfstart ' + args);
59
- process.exit(1);
60
- }
61
- //# sourceMappingURL=fstart-args-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fstart-args-parser.js","sourceRoot":"","sources":["../../../../../../libs/native-federation-node/src/lib/utils/fstart-args-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAQ9B,MAAM,WAAW,GAAe;IAC9B,KAAK,EAAE,cAAc;IACrB,oBAAoB,EAAE,qCAAqC;IAC3D,aAAa,EAAE,aAAa;CAC7B,CAAC;AAEF,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAe;QACvB,KAAK,EAAE,EAAE;QACT,oBAAoB,EAAE,EAAE;QACxB,aAAa,EAAE,EAAE;KAClB,CAAC;IAEF,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,GAAG,GAAG,OAAO,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,iBAAiB,CAAC,CAAC;gBAC/C,aAAa,CAAC,WAAW,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACjB,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,GAAG,CAAC,CAAC;YAC1C,aAAa,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEvB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAgB;IACxC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,WAAW,CAAC,aAAa,GAAG,0BAA0B,CAAC;QACpE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;IAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,WAAW,CAAC,aAAa,CAAC;IACrE,IAAI,CAAC,oBAAoB;QACvB,IAAI,CAAC,oBAAoB,IAAI,WAAW,CAAC,oBAAoB,CAAC;IAEhE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,WAAuB;IAC5C,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,IAAI,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,13 +0,0 @@
1
- import { initNodeFederation } from '../node/init-node-federation';
2
- import { parseFStartArgs } from './fstart-args-parser';
3
- const args = parseFStartArgs();
4
- (async () => {
5
- await initNodeFederation({
6
- ...(args.remotesOrManifestUrl
7
- ? { remotesOrManifestUrl: args.remotesOrManifestUrl }
8
- : {}),
9
- relBundlePath: args.relBundlePath,
10
- });
11
- await import(args.entry);
12
- })();
13
- //# sourceMappingURL=fstart.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fstart.js","sourceRoot":"","sources":["../../../../../../libs/native-federation-node/src/lib/utils/fstart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAE/B,CAAC,KAAK,IAAI,EAAE;IACV,MAAM,kBAAkB,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,oBAAoB;YAC3B,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACrD,CAAC,CAAC,EAAE,CAAC;QACP,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC,EAAE,CAAC"}
@@ -1,220 +0,0 @@
1
- import path from 'path';
2
- import url from 'url';
3
- import { promises as fs } from 'fs';
4
- export const IMPORT_MAP_FILE_NAME = 'node.importmap';
5
- const baseURL = url.pathToFileURL(process.cwd()) + path.sep;
6
- // https://wicg.github.io/import-maps/#new-resolve-algorithm
7
- export function resolveSpecifier(importMap, specifier, parentURL) {
8
- let currentBaseURL;
9
- if (parentURL) {
10
- const lastSlashIndex = parentURL.lastIndexOf(path.sep);
11
- currentBaseURL = parentURL.slice(0, lastSlashIndex + 1);
12
- }
13
- else {
14
- currentBaseURL = baseURL;
15
- }
16
- const normalizedSpecifier = parseURLLikeSpecifier(specifier, currentBaseURL) || specifier;
17
- for (let scopePrefix in importMap.scopes) {
18
- if (scopePrefix === currentBaseURL ||
19
- (scopePrefix.endsWith('/') && currentBaseURL.startsWith(scopePrefix))) {
20
- const scopeImportsMatch = resolveImportsMatch(normalizedSpecifier, importMap.scopes[scopePrefix]);
21
- if (scopeImportsMatch) {
22
- return scopeImportsMatch;
23
- }
24
- }
25
- else {
26
- const topLevelImportsMatch = resolveImportsMatch(normalizedSpecifier, importMap.imports);
27
- if (topLevelImportsMatch) {
28
- return topLevelImportsMatch;
29
- }
30
- }
31
- }
32
- return resolveImportsMatch(normalizedSpecifier, importMap.imports);
33
- }
34
- // https://wicg.github.io/import-maps/#resolve-an-imports-match
35
- function resolveImportsMatch(normalizedSpecifier, specifierMap) {
36
- for (let specifierKey in specifierMap) {
37
- const resolutionResult = specifierMap[specifierKey];
38
- if (specifierKey === normalizedSpecifier) {
39
- if (resolutionResult === null) {
40
- throw TypeError(`The import map resolution of ${specifierKey} failed due to a null entry`);
41
- }
42
- return resolutionResult;
43
- }
44
- else if (specifierKey.endsWith('/') &&
45
- normalizedSpecifier.startsWith(specifierKey)) {
46
- if (resolutionResult === null) {
47
- throw TypeError(`The import map resolution of ${specifierKey} failed due to a null entry`);
48
- }
49
- const afterPrefix = normalizedSpecifier.slice(specifierKey.length);
50
- try {
51
- return new URL(afterPrefix, resolutionResult).href;
52
- }
53
- catch {
54
- throw TypeError(`The import map resolution of ${specifierKey} failed due to URL parse failure`);
55
- }
56
- }
57
- }
58
- return null;
59
- }
60
- // https://wicg.github.io/import-maps/#parsing
61
- export function resolveAndComposeImportMap(parsed) {
62
- // Step 2
63
- if (!isPlainObject(parsed)) {
64
- throw Error(`Invalid import map - top level must be an object`);
65
- }
66
- // Step 3
67
- let sortedAndNormalizedImports = {};
68
- // Step 4
69
- if (Object.prototype.hasOwnProperty.call(parsed, 'imports')) {
70
- // Step 4.1
71
- if (!isPlainObject(parsed.imports)) {
72
- throw Error(`Invalid import map - "imports" property must be an object`);
73
- }
74
- // Step 4.2
75
- sortedAndNormalizedImports = sortAndNormalizeSpecifierMap(parsed.imports, baseURL);
76
- }
77
- // Step 5
78
- let sortedAndNormalizedScopes = {};
79
- // Step 6
80
- if (Object.prototype.hasOwnProperty.call(parsed, 'scopes')) {
81
- // Step 6.1
82
- if (!isPlainObject(parsed.scopes)) {
83
- throw Error(`Invalid import map - "scopes" property must be an object`);
84
- }
85
- // Step 6.2
86
- sortedAndNormalizedScopes = sortAndNormalizeScopes(parsed.scopes, baseURL);
87
- }
88
- // Step 7
89
- const invalidKeys = Object.keys(parsed).filter((key) => key !== 'imports' && key !== 'scopes');
90
- if (invalidKeys.length > 0) {
91
- console.warn(`Invalid top-level key${invalidKeys.length > 0 ? 's' : ''} in import map - ${invalidKeys.join(', ')}`);
92
- }
93
- // Step 8
94
- return {
95
- imports: sortedAndNormalizedImports,
96
- scopes: sortedAndNormalizedScopes,
97
- };
98
- }
99
- // https://wicg.github.io/import-maps/#sort-and-normalize-a-specifier-map
100
- function sortAndNormalizeSpecifierMap(map, baseURL) {
101
- const normalized = {};
102
- for (let specifierKey in map) {
103
- const value = map[specifierKey];
104
- const normalizedSpecifierKey = normalizeSpecifierKey(specifierKey, baseURL);
105
- if (normalizedSpecifierKey === null) {
106
- continue;
107
- }
108
- let addressURL = parseURLLikeSpecifier(value, baseURL);
109
- if (addressURL === null) {
110
- console.warn(`Invalid URL address for import map specifier '${specifierKey}'`);
111
- normalized[normalizedSpecifierKey] = null;
112
- continue;
113
- }
114
- if (specifierKey.endsWith('/') && !addressURL.endsWith('/')) {
115
- console.warn(`Invalid URL address for import map specifier '${specifierKey}' - since the specifier ends in slash, so must the address`);
116
- normalized[normalizedSpecifierKey] = null;
117
- continue;
118
- }
119
- normalized[normalizedSpecifierKey] = addressURL;
120
- }
121
- return normalized;
122
- }
123
- // https://wicg.github.io/import-maps/#normalize-a-specifier-key
124
- function normalizeSpecifierKey(key) {
125
- if (key === '') {
126
- console.warn(`Specifier keys in import maps may not be the empty string`);
127
- return null;
128
- }
129
- return parseURLLikeSpecifier(key, baseURL) || key;
130
- }
131
- // https://wicg.github.io/import-maps/#parse-a-url-like-import-specifier
132
- function parseURLLikeSpecifier(specifier, baseURL) {
133
- const useBaseUrlAsParent = specifier.startsWith('/') ||
134
- specifier.startsWith('./') ||
135
- specifier.startsWith('../');
136
- try {
137
- return new URL(specifier, useBaseUrlAsParent ? baseURL : undefined).href;
138
- }
139
- catch {
140
- return null;
141
- }
142
- }
143
- // https://wicg.github.io/import-maps/#sort-and-normalize-scopes
144
- function sortAndNormalizeScopes(map, baseURL) {
145
- let normalized = {};
146
- for (let scopePrefix in map) {
147
- const potentialSpecifierMap = map[scopePrefix];
148
- if (!isPlainObject(potentialSpecifierMap)) {
149
- throw TypeError(`The value of scope ${scopePrefix} must be a JSON object`);
150
- }
151
- let scopePrefixURL;
152
- try {
153
- scopePrefixURL = new URL(scopePrefix, baseURL).href;
154
- }
155
- catch {
156
- console.warn(`Scope prefix URL '${scopePrefix}' was not parseable in import map`);
157
- continue;
158
- }
159
- normalized[scopePrefixURL] = sortAndNormalizeSpecifierMap(potentialSpecifierMap, baseURL);
160
- }
161
- return normalized;
162
- }
163
- function isPlainObject(obj) {
164
- return obj === Object(obj) && !Array.isArray(obj);
165
- }
166
- // ---
167
- let importMapPromise = getImportMapPromise();
168
- export async function resolve(specifier, context, defaultResolve) {
169
- const { parentURL = null } = context;
170
- const importMap = await importMapPromise;
171
- const importMapUrl = resolveSpecifier(importMap, specifier, parentURL);
172
- return defaultResolve(importMapUrl ?? specifier, context, defaultResolve);
173
- }
174
- export async function load(url, context, defaultLoad) {
175
- if (url.startsWith('http://') || url.startsWith('https://')) {
176
- const res = await fetch(url);
177
- if (!res.ok) {
178
- throw new Error(`Failed to fetch module from ${url}`);
179
- }
180
- const source = await res.text();
181
- return {
182
- shortCircuit: true,
183
- format: 'module',
184
- source,
185
- };
186
- }
187
- if (!url.startsWith('node:')) {
188
- context.format = 'module';
189
- }
190
- return defaultLoad(url, context, defaultLoad);
191
- }
192
- async function getImportMapPromise() {
193
- const relativePath = process.env.IMPORT_MAP_PATH || IMPORT_MAP_FILE_NAME;
194
- const importMapPath = path.resolve(process.cwd(), relativePath);
195
- let str;
196
- try {
197
- str = await fs.readFile(importMapPath);
198
- }
199
- catch (err) {
200
- return emptyMap();
201
- }
202
- let json;
203
- try {
204
- json = await JSON.parse(str);
205
- }
206
- catch (err) {
207
- throw Error(`Import map at ${importMapPath} contains invalid json: ${err.message}`);
208
- }
209
- return resolveAndComposeImportMap(json);
210
- }
211
- global.nodeLoader = global.nodeLoader || {};
212
- global.nodeLoader.setImportMapPromise = function setImportMapPromise(promise) {
213
- importMapPromise = promise.then((map) => {
214
- return resolveAndComposeImportMap(map);
215
- });
216
- };
217
- function emptyMap() {
218
- return { imports: {}, scopes: {} };
219
- }
220
- //# sourceMappingURL=import-map-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-map-loader.js","sourceRoot":"","sources":["../../../../../../libs/native-federation-node/src/lib/utils/import-map-loader.js"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export const resolver = 'aW1wb3J0IHBhdGggZnJvbSAncGF0aCc7CmltcG9ydCB1cmwgZnJvbSAndXJsJzsKaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7CgpleHBvcnQgY29uc3QgSU1QT1JUX01BUF9GSUxFX05BTUUgPSAnbm9kZS5pbXBvcnRtYXAnOwoKY29uc3QgYmFzZVVSTCA9IHVybC5wYXRoVG9GaWxlVVJMKHByb2Nlc3MuY3dkKCkpICsgcGF0aC5zZXA7CgovLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ltcG9ydC1tYXBzLyNuZXctcmVzb2x2ZS1hbGdvcml0aG0KZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVTcGVjaWZpZXIoaW1wb3J0TWFwLCBzcGVjaWZpZXIsIHBhcmVudFVSTCkgewogIGxldCBjdXJyZW50QmFzZVVSTDsKICBpZiAocGFyZW50VVJMKSB7CiAgICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IHBhcmVudFVSTC5sYXN0SW5kZXhPZihwYXRoLnNlcCk7CiAgICBjdXJyZW50QmFzZVVSTCA9IHBhcmVudFVSTC5zbGljZSgwLCBsYXN0U2xhc2hJbmRleCArIDEpOwogIH0gZWxzZSB7CiAgICBjdXJyZW50QmFzZVVSTCA9IGJhc2VVUkw7CiAgfQogIGNvbnN0IG5vcm1hbGl6ZWRTcGVjaWZpZXIgPQogICAgcGFyc2VVUkxMaWtlU3BlY2lmaWVyKHNwZWNpZmllciwgY3VycmVudEJhc2VVUkwpIHx8IHNwZWNpZmllcjsKICBmb3IgKGxldCBzY29wZVByZWZpeCBpbiBpbXBvcnRNYXAuc2NvcGVzKSB7CiAgICBpZiAoCiAgICAgIHNjb3BlUHJlZml4ID09PSBjdXJyZW50QmFzZVVSTCB8fAogICAgICAoc2NvcGVQcmVmaXguZW5kc1dpdGgoJy8nKSAmJiBjdXJyZW50QmFzZVVSTC5zdGFydHNXaXRoKHNjb3BlUHJlZml4KSkKICAgICkgewogICAgICBjb25zdCBzY29wZUltcG9ydHNNYXRjaCA9IHJlc29sdmVJbXBvcnRzTWF0Y2goCiAgICAgICAgbm9ybWFsaXplZFNwZWNpZmllciwKICAgICAgICBpbXBvcnRNYXAuc2NvcGVzW3Njb3BlUHJlZml4XSwKICAgICAgKTsKICAgICAgaWYgKHNjb3BlSW1wb3J0c01hdGNoKSB7CiAgICAgICAgcmV0dXJuIHNjb3BlSW1wb3J0c01hdGNoOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBjb25zdCB0b3BMZXZlbEltcG9ydHNNYXRjaCA9IHJlc29sdmVJbXBvcnRzTWF0Y2goCiAgICAgICAgbm9ybWFsaXplZFNwZWNpZmllciwKICAgICAgICBpbXBvcnRNYXAuaW1wb3J0cywKICAgICAgKTsKICAgICAgaWYgKHRvcExldmVsSW1wb3J0c01hdGNoKSB7CiAgICAgICAgcmV0dXJuIHRvcExldmVsSW1wb3J0c01hdGNoOwogICAgICB9CiAgICB9CiAgfQoKICByZXR1cm4gcmVzb2x2ZUltcG9ydHNNYXRjaChub3JtYWxpemVkU3BlY2lmaWVyLCBpbXBvcnRNYXAuaW1wb3J0cyk7Cn0KCi8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vaW1wb3J0LW1hcHMvI3Jlc29sdmUtYW4taW1wb3J0cy1tYXRjaApmdW5jdGlvbiByZXNvbHZlSW1wb3J0c01hdGNoKG5vcm1hbGl6ZWRTcGVjaWZpZXIsIHNwZWNpZmllck1hcCkgewogIGZvciAobGV0IHNwZWNpZmllcktleSBpbiBzcGVjaWZpZXJNYXApIHsKICAgIGNvbnN0IHJlc29sdXRpb25SZXN1bHQgPSBzcGVjaWZpZXJNYXBbc3BlY2lmaWVyS2V5XTsKCiAgICBpZiAoc3BlY2lmaWVyS2V5ID09PSBub3JtYWxpemVkU3BlY2lmaWVyKSB7CiAgICAgIGlmIChyZXNvbHV0aW9uUmVzdWx0ID09PSBudWxsKSB7CiAgICAgICAgdGhyb3cgVHlwZUVycm9yKAogICAgICAgICAgYFRoZSBpbXBvcnQgbWFwIHJlc29sdXRpb24gb2YgJHtzcGVjaWZpZXJLZXl9IGZhaWxlZCBkdWUgdG8gYSBudWxsIGVudHJ5YCwKICAgICAgICApOwogICAgICB9CiAgICAgIHJldHVybiByZXNvbHV0aW9uUmVzdWx0OwogICAgfSBlbHNlIGlmICgKICAgICAgc3BlY2lmaWVyS2V5LmVuZHNXaXRoKCcvJykgJiYKICAgICAgbm9ybWFsaXplZFNwZWNpZmllci5zdGFydHNXaXRoKHNwZWNpZmllcktleSkKICAgICkgewogICAgICBpZiAocmVzb2x1dGlvblJlc3VsdCA9PT0gbnVsbCkgewogICAgICAgIHRocm93IFR5cGVFcnJvcigKICAgICAgICAgIGBUaGUgaW1wb3J0IG1hcCByZXNvbHV0aW9uIG9mICR7c3BlY2lmaWVyS2V5fSBmYWlsZWQgZHVlIHRvIGEgbnVsbCBlbnRyeWAsCiAgICAgICAgKTsKICAgICAgfQogICAgICBjb25zdCBhZnRlclByZWZpeCA9IG5vcm1hbGl6ZWRTcGVjaWZpZXIuc2xpY2Uoc3BlY2lmaWVyS2V5Lmxlbmd0aCk7CiAgICAgIHRyeSB7CiAgICAgICAgcmV0dXJuIG5ldyBVUkwoYWZ0ZXJQcmVmaXgsIHJlc29sdXRpb25SZXN1bHQpLmhyZWY7CiAgICAgIH0gY2F0Y2ggewogICAgICAgIHRocm93IFR5cGVFcnJvcigKICAgICAgICAgIGBUaGUgaW1wb3J0IG1hcCByZXNvbHV0aW9uIG9mICR7c3BlY2lmaWVyS2V5fSBmYWlsZWQgZHVlIHRvIFVSTCBwYXJzZSBmYWlsdXJlYCwKICAgICAgICApOwogICAgICB9CiAgICB9CiAgfQoKICByZXR1cm4gbnVsbDsKfQoKLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9pbXBvcnQtbWFwcy8jcGFyc2luZwpleHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAocGFyc2VkKSB7CiAgLy8gU3RlcCAyCiAgaWYgKCFpc1BsYWluT2JqZWN0KHBhcnNlZCkpIHsKICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGltcG9ydCBtYXAgLSB0b3AgbGV2ZWwgbXVzdCBiZSBhbiBvYmplY3RgKTsKICB9CgogIC8vIFN0ZXAgMwogIGxldCBzb3J0ZWRBbmROb3JtYWxpemVkSW1wb3J0cyA9IHt9OwoKICAvLyBTdGVwIDQKICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcnNlZCwgJ2ltcG9ydHMnKSkgewogICAgLy8gU3RlcCA0LjEKICAgIGlmICghaXNQbGFpbk9iamVjdChwYXJzZWQuaW1wb3J0cykpIHsKICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaW1wb3J0IG1hcCAtICJpbXBvcnRzIiBwcm9wZXJ0eSBtdXN0IGJlIGFuIG9iamVjdGApOwogICAgfQoKICAgIC8vIFN0ZXAgNC4yCiAgICBzb3J0ZWRBbmROb3JtYWxpemVkSW1wb3J0cyA9IHNvcnRBbmROb3JtYWxpemVTcGVjaWZpZXJNYXAoCiAgICAgIHBhcnNlZC5pbXBvcnRzLAogICAgICBiYXNlVVJMLAogICAgKTsKICB9CgogIC8vIFN0ZXAgNQogIGxldCBzb3J0ZWRBbmROb3JtYWxpemVkU2NvcGVzID0ge307CgogIC8vIFN0ZXAgNgogIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGFyc2VkLCAnc2NvcGVzJykpIHsKICAgIC8vIFN0ZXAgNi4xCiAgICBpZiAoIWlzUGxhaW5PYmplY3QocGFyc2VkLnNjb3BlcykpIHsKICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaW1wb3J0IG1hcCAtICJzY29wZXMiIHByb3BlcnR5IG11c3QgYmUgYW4gb2JqZWN0YCk7CiAgICB9CgogICAgLy8gU3RlcCA2LjIKICAgIHNvcnRlZEFuZE5vcm1hbGl6ZWRTY29wZXMgPSBzb3J0QW5kTm9ybWFsaXplU2NvcGVzKHBhcnNlZC5zY29wZXMsIGJhc2VVUkwpOwogIH0KCiAgLy8gU3RlcCA3CiAgY29uc3QgaW52YWxpZEtleXMgPSBPYmplY3Qua2V5cyhwYXJzZWQpLmZpbHRlcigKICAgIChrZXkpID0+IGtleSAhPT0gJ2ltcG9ydHMnICYmIGtleSAhPT0gJ3Njb3BlcycsCiAgKTsKICBpZiAoaW52YWxpZEtleXMubGVuZ3RoID4gMCkgewogICAgY29uc29sZS53YXJuKAogICAgICBgSW52YWxpZCB0b3AtbGV2ZWwga2V5JHsKICAgICAgICBpbnZhbGlkS2V5cy5sZW5ndGggPiAwID8gJ3MnIDogJycKICAgICAgfSBpbiBpbXBvcnQgbWFwIC0gJHtpbnZhbGlkS2V5cy5qb2luKCcsICcpfWAsCiAgICApOwogIH0KCiAgLy8gU3RlcCA4CiAgcmV0dXJuIHsKICAgIGltcG9ydHM6IHNvcnRlZEFuZE5vcm1hbGl6ZWRJbXBvcnRzLAogICAgc2NvcGVzOiBzb3J0ZWRBbmROb3JtYWxpemVkU2NvcGVzLAogIH07Cn0KCi8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vaW1wb3J0LW1hcHMvI3NvcnQtYW5kLW5vcm1hbGl6ZS1hLXNwZWNpZmllci1tYXAKZnVuY3Rpb24gc29ydEFuZE5vcm1hbGl6ZVNwZWNpZmllck1hcChtYXAsIGJhc2VVUkwpIHsKICBjb25zdCBub3JtYWxpemVkID0ge307CgogIGZvciAobGV0IHNwZWNpZmllcktleSBpbiBtYXApIHsKICAgIGNvbnN0IHZhbHVlID0gbWFwW3NwZWNpZmllcktleV07CgogICAgY29uc3Qgbm9ybWFsaXplZFNwZWNpZmllcktleSA9IG5vcm1hbGl6ZVNwZWNpZmllcktleShzcGVjaWZpZXJLZXksIGJhc2VVUkwpOwogICAgaWYgKG5vcm1hbGl6ZWRTcGVjaWZpZXJLZXkgPT09IG51bGwpIHsKICAgICAgY29udGludWU7CiAgICB9CgogICAgbGV0IGFkZHJlc3NVUkwgPSBwYXJzZVVSTExpa2VTcGVjaWZpZXIodmFsdWUsIGJhc2VVUkwpOwogICAgaWYgKGFkZHJlc3NVUkwgPT09IG51bGwpIHsKICAgICAgY29uc29sZS53YXJuKAogICAgICAgIGBJbnZhbGlkIFVSTCBhZGRyZXNzIGZvciBpbXBvcnQgbWFwIHNwZWNpZmllciAnJHtzcGVjaWZpZXJLZXl9J2AsCiAgICAgICk7CiAgICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplZFNwZWNpZmllcktleV0gPSBudWxsOwogICAgICBjb250aW51ZTsKICAgIH0KCiAgICBpZiAoc3BlY2lmaWVyS2V5LmVuZHNXaXRoKCcvJykgJiYgIWFkZHJlc3NVUkwuZW5kc1dpdGgoJy8nKSkgewogICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgYEludmFsaWQgVVJMIGFkZHJlc3MgZm9yIGltcG9ydCBtYXAgc3BlY2lmaWVyICcke3NwZWNpZmllcktleX0nIC0gc2luY2UgdGhlIHNwZWNpZmllciBlbmRzIGluIHNsYXNoLCBzbyBtdXN0IHRoZSBhZGRyZXNzYCwKICAgICAgKTsKICAgICAgbm9ybWFsaXplZFtub3JtYWxpemVkU3BlY2lmaWVyS2V5XSA9IG51bGw7CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplZFNwZWNpZmllcktleV0gPSBhZGRyZXNzVVJMOwogIH0KCiAgcmV0dXJuIG5vcm1hbGl6ZWQ7Cn0KCi8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vaW1wb3J0LW1hcHMvI25vcm1hbGl6ZS1hLXNwZWNpZmllci1rZXkKZnVuY3Rpb24gbm9ybWFsaXplU3BlY2lmaWVyS2V5KGtleSkgewogIGlmIChrZXkgPT09ICcnKSB7CiAgICBjb25zb2xlLndhcm4oYFNwZWNpZmllciBrZXlzIGluIGltcG9ydCBtYXBzIG1heSBub3QgYmUgdGhlIGVtcHR5IHN0cmluZ2ApOwogICAgcmV0dXJuIG51bGw7CiAgfQoKICByZXR1cm4gcGFyc2VVUkxMaWtlU3BlY2lmaWVyKGtleSwgYmFzZVVSTCkgfHwga2V5Owp9CgovLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ltcG9ydC1tYXBzLyNwYXJzZS1hLXVybC1saWtlLWltcG9ydC1zcGVjaWZpZXIKZnVuY3Rpb24gcGFyc2VVUkxMaWtlU3BlY2lmaWVyKHNwZWNpZmllciwgYmFzZVVSTCkgewogIGNvbnN0IHVzZUJhc2VVcmxBc1BhcmVudCA9CiAgICBzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpIHx8CiAgICBzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLi8nKSB8fAogICAgc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy4uLycpOwoKICB0cnkgewogICAgcmV0dXJuIG5ldyBVUkwoc3BlY2lmaWVyLCB1c2VCYXNlVXJsQXNQYXJlbnQgPyBiYXNlVVJMIDogdW5kZWZpbmVkKS5ocmVmOwogIH0gY2F0Y2ggewogICAgcmV0dXJuIG51bGw7CiAgfQp9CgovLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ltcG9ydC1tYXBzLyNzb3J0LWFuZC1ub3JtYWxpemUtc2NvcGVzCmZ1bmN0aW9uIHNvcnRBbmROb3JtYWxpemVTY29wZXMobWFwLCBiYXNlVVJMKSB7CiAgbGV0IG5vcm1hbGl6ZWQgPSB7fTsKCiAgZm9yIChsZXQgc2NvcGVQcmVmaXggaW4gbWFwKSB7CiAgICBjb25zdCBwb3RlbnRpYWxTcGVjaWZpZXJNYXAgPSBtYXBbc2NvcGVQcmVmaXhdOwogICAgaWYgKCFpc1BsYWluT2JqZWN0KHBvdGVudGlhbFNwZWNpZmllck1hcCkpIHsKICAgICAgdGhyb3cgVHlwZUVycm9yKAogICAgICAgIGBUaGUgdmFsdWUgb2Ygc2NvcGUgJHtzY29wZVByZWZpeH0gbXVzdCBiZSBhIEpTT04gb2JqZWN0YCwKICAgICAgKTsKICAgIH0KCiAgICBsZXQgc2NvcGVQcmVmaXhVUkw7CiAgICB0cnkgewogICAgICBzY29wZVByZWZpeFVSTCA9IG5ldyBVUkwoc2NvcGVQcmVmaXgsIGJhc2VVUkwpLmhyZWY7CiAgICB9IGNhdGNoIHsKICAgICAgY29uc29sZS53YXJuKAogICAgICAgIGBTY29wZSBwcmVmaXggVVJMICcke3Njb3BlUHJlZml4fScgd2FzIG5vdCBwYXJzZWFibGUgaW4gaW1wb3J0IG1hcGAsCiAgICAgICk7CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIG5vcm1hbGl6ZWRbc2NvcGVQcmVmaXhVUkxdID0gc29ydEFuZE5vcm1hbGl6ZVNwZWNpZmllck1hcCgKICAgICAgcG90ZW50aWFsU3BlY2lmaWVyTWFwLAogICAgICBiYXNlVVJMLAogICAgKTsKICB9CgogIHJldHVybiBub3JtYWxpemVkOwp9CgpmdW5jdGlvbiBpc1BsYWluT2JqZWN0KG9iaikgewogIHJldHVybiBvYmogPT09IE9iamVjdChvYmopICYmICFBcnJheS5pc0FycmF5KG9iaik7Cn0KCi8vIC0tLQoKbGV0IGltcG9ydE1hcFByb21pc2UgPSBnZXRJbXBvcnRNYXBQcm9taXNlKCk7CgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZShzcGVjaWZpZXIsIGNvbnRleHQsIGRlZmF1bHRSZXNvbHZlKSB7CiAgY29uc3QgeyBwYXJlbnRVUkwgPSBudWxsIH0gPSBjb250ZXh0OwogIGNvbnN0IGltcG9ydE1hcCA9IGF3YWl0IGltcG9ydE1hcFByb21pc2U7CiAgY29uc3QgaW1wb3J0TWFwVXJsID0gcmVzb2x2ZVNwZWNpZmllcihpbXBvcnRNYXAsIHNwZWNpZmllciwgcGFyZW50VVJMKTsKCiAgcmV0dXJuIGRlZmF1bHRSZXNvbHZlKGltcG9ydE1hcFVybCA/PyBzcGVjaWZpZXIsIGNvbnRleHQsIGRlZmF1bHRSZXNvbHZlKTsKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWQodXJsLCBjb250ZXh0LCBkZWZhdWx0TG9hZCkgewogIGlmICh1cmwuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IHVybC5zdGFydHNXaXRoKCdodHRwczovLycpKSB7CiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCh1cmwpOwogICAgaWYgKCFyZXMub2spIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlIGZyb20gJHt1cmx9YCk7CiAgICB9CiAgICBjb25zdCBzb3VyY2UgPSBhd2FpdCByZXMudGV4dCgpOwogICAgcmV0dXJuIHsKICAgICAgc2hvcnRDaXJjdWl0OiB0cnVlLAogICAgICBmb3JtYXQ6ICdtb2R1bGUnLAogICAgICBzb3VyY2UsCiAgICB9OwogIH0KCiAgaWYgKCF1cmwuc3RhcnRzV2l0aCgnbm9kZTonKSkgewogICAgY29udGV4dC5mb3JtYXQgPSAnbW9kdWxlJzsKICB9CgogIHJldHVybiBkZWZhdWx0TG9hZCh1cmwsIGNvbnRleHQsIGRlZmF1bHRMb2FkKTsKfQoKYXN5bmMgZnVuY3Rpb24gZ2V0SW1wb3J0TWFwUHJvbWlzZSgpIHsKICBjb25zdCByZWxhdGl2ZVBhdGggPSBwcm9jZXNzLmVudi5JTVBPUlRfTUFQX1BBVEggfHwgSU1QT1JUX01BUF9GSUxFX05BTUU7CiAgY29uc3QgaW1wb3J0TWFwUGF0aCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCByZWxhdGl2ZVBhdGgpOwoKICBsZXQgc3RyOwogIHRyeSB7CiAgICBzdHIgPSBhd2FpdCBmcy5yZWFkRmlsZShpbXBvcnRNYXBQYXRoKTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJldHVybiBlbXB0eU1hcCgpOwogIH0KCiAgbGV0IGpzb247CiAgdHJ5IHsKICAgIGpzb24gPSBhd2FpdCBKU09OLnBhcnNlKHN0cik7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICB0aHJvdyBFcnJvcigKICAgICAgYEltcG9ydCBtYXAgYXQgJHtpbXBvcnRNYXBQYXRofSBjb250YWlucyBpbnZhbGlkIGpzb246ICR7ZXJyLm1lc3NhZ2V9YCwKICAgICk7CiAgfQoKICByZXR1cm4gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAoanNvbik7Cn0KCmdsb2JhbC5ub2RlTG9hZGVyID0gZ2xvYmFsLm5vZGVMb2FkZXIgfHwge307CgpnbG9iYWwubm9kZUxvYWRlci5zZXRJbXBvcnRNYXBQcm9taXNlID0gZnVuY3Rpb24gc2V0SW1wb3J0TWFwUHJvbWlzZShwcm9taXNlKSB7CiAgaW1wb3J0TWFwUHJvbWlzZSA9IHByb21pc2UudGhlbigobWFwKSA9PiB7CiAgICByZXR1cm4gcmVzb2x2ZUFuZENvbXBvc2VJbXBvcnRNYXAobWFwKTsKICB9KTsKfTsKCmZ1bmN0aW9uIGVtcHR5TWFwKCkgewogIHJldHVybiB7IGltcG9ydHM6IHt9LCBzY29wZXM6IHt9IH07Cn0K';
2
- //# sourceMappingURL=loader-as-data-url.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader-as-data-url.js","sourceRoot":"","sources":["../../../../../../libs/native-federation-node/src/lib/utils/loader-as-data-url.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GACnB,k5UAAk5U,CAAC"}