@module-federation/sdk 2.3.3 → 2.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.
- package/dist/constant.cjs +0 -8
- package/dist/constant.cjs.map +1 -1
- package/dist/constant.d.ts +1 -8
- package/dist/constant.js +1 -8
- package/dist/constant.js.map +1 -1
- package/dist/generateSnapshotFromManifest.cjs +0 -15
- package/dist/generateSnapshotFromManifest.cjs.map +1 -1
- package/dist/generateSnapshotFromManifest.js +0 -15
- package/dist/generateSnapshotFromManifest.js.map +1 -1
- package/dist/index.cjs +0 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/types/plugins/ContainerPlugin.cjs.map +1 -1
- package/dist/types/plugins/ContainerPlugin.d.ts +0 -4
- package/dist/types/plugins/ContainerPlugin.js.map +1 -1
- package/dist/types/snapshot.d.ts +0 -3
- package/dist/types/stats.d.ts +0 -2
- package/package.json +2 -2
package/dist/constant.cjs
CHANGED
|
@@ -28,13 +28,6 @@ const MFModuleType = {
|
|
|
28
28
|
const MODULE_DEVTOOL_IDENTIFIER = "__MF_DEVTOOLS_MODULE_INFO__";
|
|
29
29
|
const ENCODE_NAME_PREFIX = "ENCODE_NAME_PREFIX";
|
|
30
30
|
const TEMP_DIR = ".federation";
|
|
31
|
-
const MFPrefetchCommon = {
|
|
32
|
-
identifier: "MFDataPrefetch",
|
|
33
|
-
globalKey: "__PREFETCH__",
|
|
34
|
-
library: "mf-data-prefetch",
|
|
35
|
-
exportsKey: "__PREFETCH_EXPORTS__",
|
|
36
|
-
fileName: "bootstrap.js"
|
|
37
|
-
};
|
|
38
31
|
let TreeShakingStatus = /* @__PURE__ */ function(TreeShakingStatus) {
|
|
39
32
|
/**
|
|
40
33
|
* Not handled by deploy server, needs to infer by the real runtime period.
|
|
@@ -58,7 +51,6 @@ exports.EncodedNameTransformMap = EncodedNameTransformMap;
|
|
|
58
51
|
exports.FederationModuleManifest = FederationModuleManifest;
|
|
59
52
|
exports.MANIFEST_EXT = MANIFEST_EXT;
|
|
60
53
|
exports.MFModuleType = MFModuleType;
|
|
61
|
-
exports.MFPrefetchCommon = MFPrefetchCommon;
|
|
62
54
|
exports.MODULE_DEVTOOL_IDENTIFIER = MODULE_DEVTOOL_IDENTIFIER;
|
|
63
55
|
exports.ManifestFileName = ManifestFileName;
|
|
64
56
|
exports.NameTransformMap = NameTransformMap;
|
package/dist/constant.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.cjs","names":[],"sources":["../src/constant.ts"],"sourcesContent":["export const FederationModuleManifest = 'federation-manifest.json';\nexport const MANIFEST_EXT = '.json';\n\nexport const BROWSER_LOG_KEY = 'FEDERATION_DEBUG';\n\nexport const NameTransformSymbol = {\n AT: '@',\n HYPHEN: '-',\n SLASH: '/',\n} as const;\nexport const NameTransformMap = {\n [NameTransformSymbol.AT]: 'scope_',\n [NameTransformSymbol.HYPHEN]: '_',\n [NameTransformSymbol.SLASH]: '__',\n} as const;\n\nexport const EncodedNameTransformMap = {\n [NameTransformMap[NameTransformSymbol.AT]]: NameTransformSymbol.AT,\n [NameTransformMap[NameTransformSymbol.HYPHEN]]: NameTransformSymbol.HYPHEN,\n [NameTransformMap[NameTransformSymbol.SLASH]]: NameTransformSymbol.SLASH,\n};\n\nexport const SEPARATOR = ':';\n\nexport const ManifestFileName = 'mf-manifest.json';\nexport const StatsFileName = 'mf-stats.json';\n\nexport const MFModuleType = {\n NPM: 'npm',\n APP: 'app',\n};\n\nexport const MODULE_DEVTOOL_IDENTIFIER = '__MF_DEVTOOLS_MODULE_INFO__';\nexport const ENCODE_NAME_PREFIX = 'ENCODE_NAME_PREFIX';\nexport const TEMP_DIR = '.federation';\n\nexport const
|
|
1
|
+
{"version":3,"file":"constant.cjs","names":[],"sources":["../src/constant.ts"],"sourcesContent":["export const FederationModuleManifest = 'federation-manifest.json';\nexport const MANIFEST_EXT = '.json';\n\nexport const BROWSER_LOG_KEY = 'FEDERATION_DEBUG';\n\nexport const NameTransformSymbol = {\n AT: '@',\n HYPHEN: '-',\n SLASH: '/',\n} as const;\nexport const NameTransformMap = {\n [NameTransformSymbol.AT]: 'scope_',\n [NameTransformSymbol.HYPHEN]: '_',\n [NameTransformSymbol.SLASH]: '__',\n} as const;\n\nexport const EncodedNameTransformMap = {\n [NameTransformMap[NameTransformSymbol.AT]]: NameTransformSymbol.AT,\n [NameTransformMap[NameTransformSymbol.HYPHEN]]: NameTransformSymbol.HYPHEN,\n [NameTransformMap[NameTransformSymbol.SLASH]]: NameTransformSymbol.SLASH,\n};\n\nexport const SEPARATOR = ':';\n\nexport const ManifestFileName = 'mf-manifest.json';\nexport const StatsFileName = 'mf-stats.json';\n\nexport const MFModuleType = {\n NPM: 'npm',\n APP: 'app',\n};\n\nexport const MODULE_DEVTOOL_IDENTIFIER = '__MF_DEVTOOLS_MODULE_INFO__';\nexport const ENCODE_NAME_PREFIX = 'ENCODE_NAME_PREFIX';\nexport const TEMP_DIR = '.federation';\n\nexport const enum TreeShakingStatus {\n /**\n * Not handled by deploy server, needs to infer by the real runtime period.\n */\n UNKNOWN = 1,\n /**\n * It means the shared has been calculated , runtime should take this shared as first choice.\n */\n CALCULATED = 2,\n /**\n * It means the shared has been calculated, and marked as no used\n */\n NO_USE = 0,\n}\n"],"mappings":";;AAAA,MAAa,2BAA2B;AACxC,MAAa,eAAe;AAE5B,MAAa,kBAAkB;AAE/B,MAAa,sBAAsB;CACjC,IAAI;CACJ,QAAQ;CACR,OAAO;CACR;AACD,MAAa,mBAAmB;EAC7B,oBAAoB,KAAK;EACzB,oBAAoB,SAAS;EAC7B,oBAAoB,QAAQ;CAC9B;AAED,MAAa,0BAA0B;EACpC,iBAAiB,oBAAoB,MAAM,oBAAoB;EAC/D,iBAAiB,oBAAoB,UAAU,oBAAoB;EACnE,iBAAiB,oBAAoB,SAAS,oBAAoB;CACpE;AAED,MAAa,YAAY;AAEzB,MAAa,mBAAmB;AAChC,MAAa,gBAAgB;AAE7B,MAAa,eAAe;CAC1B,KAAK;CACL,KAAK;CACN;AAED,MAAa,4BAA4B;AACzC,MAAa,qBAAqB;AAClC,MAAa,WAAW;AAExB,IAAkB,gEAAX;;;;AAIL;;;;AAIA;;;;AAIA"}
|
package/dist/constant.d.ts
CHANGED
|
@@ -27,13 +27,6 @@ declare const MFModuleType: {
|
|
|
27
27
|
declare const MODULE_DEVTOOL_IDENTIFIER = "__MF_DEVTOOLS_MODULE_INFO__";
|
|
28
28
|
declare const ENCODE_NAME_PREFIX = "ENCODE_NAME_PREFIX";
|
|
29
29
|
declare const TEMP_DIR = ".federation";
|
|
30
|
-
declare const MFPrefetchCommon: {
|
|
31
|
-
identifier: string;
|
|
32
|
-
globalKey: string;
|
|
33
|
-
library: string;
|
|
34
|
-
exportsKey: string;
|
|
35
|
-
fileName: string;
|
|
36
|
-
};
|
|
37
30
|
declare const enum TreeShakingStatus {
|
|
38
31
|
/**
|
|
39
32
|
* Not handled by deploy server, needs to infer by the real runtime period.
|
|
@@ -49,5 +42,5 @@ declare const enum TreeShakingStatus {
|
|
|
49
42
|
NO_USE = 0
|
|
50
43
|
}
|
|
51
44
|
//#endregion
|
|
52
|
-
export { BROWSER_LOG_KEY, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, MANIFEST_EXT, MFModuleType,
|
|
45
|
+
export { BROWSER_LOG_KEY, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, MANIFEST_EXT, MFModuleType, MODULE_DEVTOOL_IDENTIFIER, ManifestFileName, NameTransformMap, NameTransformSymbol, SEPARATOR, StatsFileName, TEMP_DIR, TreeShakingStatus };
|
|
53
46
|
//# sourceMappingURL=constant.d.ts.map
|
package/dist/constant.js
CHANGED
|
@@ -27,13 +27,6 @@ const MFModuleType = {
|
|
|
27
27
|
const MODULE_DEVTOOL_IDENTIFIER = "__MF_DEVTOOLS_MODULE_INFO__";
|
|
28
28
|
const ENCODE_NAME_PREFIX = "ENCODE_NAME_PREFIX";
|
|
29
29
|
const TEMP_DIR = ".federation";
|
|
30
|
-
const MFPrefetchCommon = {
|
|
31
|
-
identifier: "MFDataPrefetch",
|
|
32
|
-
globalKey: "__PREFETCH__",
|
|
33
|
-
library: "mf-data-prefetch",
|
|
34
|
-
exportsKey: "__PREFETCH_EXPORTS__",
|
|
35
|
-
fileName: "bootstrap.js"
|
|
36
|
-
};
|
|
37
30
|
let TreeShakingStatus = /* @__PURE__ */ function(TreeShakingStatus) {
|
|
38
31
|
/**
|
|
39
32
|
* Not handled by deploy server, needs to infer by the real runtime period.
|
|
@@ -51,5 +44,5 @@ let TreeShakingStatus = /* @__PURE__ */ function(TreeShakingStatus) {
|
|
|
51
44
|
}({});
|
|
52
45
|
|
|
53
46
|
//#endregion
|
|
54
|
-
export { BROWSER_LOG_KEY, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, MANIFEST_EXT, MFModuleType,
|
|
47
|
+
export { BROWSER_LOG_KEY, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, MANIFEST_EXT, MFModuleType, MODULE_DEVTOOL_IDENTIFIER, ManifestFileName, NameTransformMap, NameTransformSymbol, SEPARATOR, StatsFileName, TEMP_DIR, TreeShakingStatus };
|
|
55
48
|
//# sourceMappingURL=constant.js.map
|
package/dist/constant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","names":[],"sources":["../src/constant.ts"],"sourcesContent":["export const FederationModuleManifest = 'federation-manifest.json';\nexport const MANIFEST_EXT = '.json';\n\nexport const BROWSER_LOG_KEY = 'FEDERATION_DEBUG';\n\nexport const NameTransformSymbol = {\n AT: '@',\n HYPHEN: '-',\n SLASH: '/',\n} as const;\nexport const NameTransformMap = {\n [NameTransformSymbol.AT]: 'scope_',\n [NameTransformSymbol.HYPHEN]: '_',\n [NameTransformSymbol.SLASH]: '__',\n} as const;\n\nexport const EncodedNameTransformMap = {\n [NameTransformMap[NameTransformSymbol.AT]]: NameTransformSymbol.AT,\n [NameTransformMap[NameTransformSymbol.HYPHEN]]: NameTransformSymbol.HYPHEN,\n [NameTransformMap[NameTransformSymbol.SLASH]]: NameTransformSymbol.SLASH,\n};\n\nexport const SEPARATOR = ':';\n\nexport const ManifestFileName = 'mf-manifest.json';\nexport const StatsFileName = 'mf-stats.json';\n\nexport const MFModuleType = {\n NPM: 'npm',\n APP: 'app',\n};\n\nexport const MODULE_DEVTOOL_IDENTIFIER = '__MF_DEVTOOLS_MODULE_INFO__';\nexport const ENCODE_NAME_PREFIX = 'ENCODE_NAME_PREFIX';\nexport const TEMP_DIR = '.federation';\n\nexport const
|
|
1
|
+
{"version":3,"file":"constant.js","names":[],"sources":["../src/constant.ts"],"sourcesContent":["export const FederationModuleManifest = 'federation-manifest.json';\nexport const MANIFEST_EXT = '.json';\n\nexport const BROWSER_LOG_KEY = 'FEDERATION_DEBUG';\n\nexport const NameTransformSymbol = {\n AT: '@',\n HYPHEN: '-',\n SLASH: '/',\n} as const;\nexport const NameTransformMap = {\n [NameTransformSymbol.AT]: 'scope_',\n [NameTransformSymbol.HYPHEN]: '_',\n [NameTransformSymbol.SLASH]: '__',\n} as const;\n\nexport const EncodedNameTransformMap = {\n [NameTransformMap[NameTransformSymbol.AT]]: NameTransformSymbol.AT,\n [NameTransformMap[NameTransformSymbol.HYPHEN]]: NameTransformSymbol.HYPHEN,\n [NameTransformMap[NameTransformSymbol.SLASH]]: NameTransformSymbol.SLASH,\n};\n\nexport const SEPARATOR = ':';\n\nexport const ManifestFileName = 'mf-manifest.json';\nexport const StatsFileName = 'mf-stats.json';\n\nexport const MFModuleType = {\n NPM: 'npm',\n APP: 'app',\n};\n\nexport const MODULE_DEVTOOL_IDENTIFIER = '__MF_DEVTOOLS_MODULE_INFO__';\nexport const ENCODE_NAME_PREFIX = 'ENCODE_NAME_PREFIX';\nexport const TEMP_DIR = '.federation';\n\nexport const enum TreeShakingStatus {\n /**\n * Not handled by deploy server, needs to infer by the real runtime period.\n */\n UNKNOWN = 1,\n /**\n * It means the shared has been calculated , runtime should take this shared as first choice.\n */\n CALCULATED = 2,\n /**\n * It means the shared has been calculated, and marked as no used\n */\n NO_USE = 0,\n}\n"],"mappings":";AAAA,MAAa,2BAA2B;AACxC,MAAa,eAAe;AAE5B,MAAa,kBAAkB;AAE/B,MAAa,sBAAsB;CACjC,IAAI;CACJ,QAAQ;CACR,OAAO;CACR;AACD,MAAa,mBAAmB;EAC7B,oBAAoB,KAAK;EACzB,oBAAoB,SAAS;EAC7B,oBAAoB,QAAQ;CAC9B;AAED,MAAa,0BAA0B;EACpC,iBAAiB,oBAAoB,MAAM,oBAAoB;EAC/D,iBAAiB,oBAAoB,UAAU,oBAAoB;EACnE,iBAAiB,oBAAoB,SAAS,oBAAoB;CACpE;AAED,MAAa,YAAY;AAEzB,MAAa,mBAAmB;AAChC,MAAa,gBAAgB;AAE7B,MAAa,eAAe;CAC1B,KAAK;CACL,KAAK;CACN;AAED,MAAa,4BAA4B;AACzC,MAAa,qBAAqB;AAClC,MAAa,WAAW;AAExB,IAAkB,gEAAX;;;;AAIL;;;;AAIA;;;;AAIA"}
|
|
@@ -71,21 +71,6 @@ function generateSnapshotFromManifest(manifest, options = {}) {
|
|
|
71
71
|
assets: expose.assets
|
|
72
72
|
}))
|
|
73
73
|
};
|
|
74
|
-
if (manifest.metaData?.prefetchInterface) {
|
|
75
|
-
const prefetchInterface = manifest.metaData.prefetchInterface;
|
|
76
|
-
basicRemoteSnapshot = {
|
|
77
|
-
...basicRemoteSnapshot,
|
|
78
|
-
prefetchInterface
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
if (manifest.metaData?.prefetchEntry) {
|
|
82
|
-
const { path, name, type } = manifest.metaData.prefetchEntry;
|
|
83
|
-
basicRemoteSnapshot = {
|
|
84
|
-
...basicRemoteSnapshot,
|
|
85
|
-
prefetchEntry: simpleJoinRemoteEntry(path, name),
|
|
86
|
-
prefetchEntryType: type
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
74
|
if ("publicPath" in manifest.metaData) {
|
|
90
75
|
remoteSnapshot = {
|
|
91
76
|
...basicRemoteSnapshot,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSnapshotFromManifest.cjs","names":["MANIFEST_EXT","StatsFileName","ManifestFileName"],"sources":["../src/generateSnapshotFromManifest.ts"],"sourcesContent":["import {\n Manifest,\n ProviderModuleInfo,\n ModuleInfo,\n BasicProviderModuleInfo,\n ConsumerModuleInfo,\n ManifestProvider,\n moduleFederationPlugin,\n} from './types';\nimport { MANIFEST_EXT, ManifestFileName, StatsFileName } from './constant';\n\ninterface IOptions {\n remotes?: Record<string, string>;\n overrides?: Record<string, string>;\n version?: string;\n}\n\nexport const simpleJoinRemoteEntry = (rPath: string, rName: string): string => {\n if (!rPath) {\n return rName;\n }\n const transformPath = (str: string) => {\n if (str === '.') {\n return '';\n }\n if (str.startsWith('./')) {\n return str.replace('./', '');\n }\n if (str.startsWith('/')) {\n const strWithoutSlash = str.slice(1);\n if (strWithoutSlash.endsWith('/')) {\n return strWithoutSlash.slice(0, -1);\n }\n return strWithoutSlash;\n }\n return str;\n };\n\n const transformedPath = transformPath(rPath);\n\n if (!transformedPath) {\n return rName;\n }\n\n if (transformedPath.endsWith('/')) {\n return `${transformedPath}${rName}`;\n }\n\n return `${transformedPath}/${rName}`;\n};\n\nexport function inferAutoPublicPath(url: string): string {\n return url\n .replace(/#.*$/, '')\n .replace(/\\?.*$/, '')\n .replace(/\\/[^\\/]+$/, '/');\n}\n\n// Priority: overrides > remotes\n// eslint-disable-next-line max-lines-per-function\nexport function generateSnapshotFromManifest(\n manifest: Manifest,\n options: IOptions = {},\n): ProviderModuleInfo {\n const { remotes = {}, overrides = {}, version } = options;\n let remoteSnapshot: ProviderModuleInfo;\n\n const getPublicPath = (): string => {\n if ('publicPath' in manifest.metaData) {\n if (\n (manifest.metaData.publicPath === 'auto' ||\n manifest.metaData.publicPath === '') &&\n version\n ) {\n // use same implementation as publicPath auto runtime module implements\n return inferAutoPublicPath(version);\n }\n return manifest.metaData.publicPath;\n } else {\n return manifest.metaData.getPublicPath;\n }\n };\n\n const overridesKeys = Object.keys(overrides);\n\n let remotesInfo: ConsumerModuleInfo['remotesInfo'] = {};\n\n // If remotes are not provided, only the remotes in the manifest will be read\n if (!Object.keys(remotes).length) {\n remotesInfo =\n manifest.remotes?.reduce(\n (res, next) => {\n let matchedVersion: string;\n const name = next.federationContainerName;\n // overrides have higher priority\n if (overridesKeys.includes(name)) {\n matchedVersion = overrides[name];\n } else {\n if ('version' in next) {\n matchedVersion = next.version;\n } else {\n matchedVersion = next.entry;\n }\n }\n res[name] = {\n matchedVersion,\n };\n return res;\n },\n {} as ConsumerModuleInfo['remotesInfo'],\n ) || {};\n }\n\n // If remotes (deploy scenario) are specified, they need to be traversed again\n Object.keys(remotes).forEach(\n (key) =>\n (remotesInfo[key] = {\n // overrides will override dependencies\n matchedVersion: overridesKeys.includes(key)\n ? overrides[key]\n : remotes[key],\n }),\n );\n\n const {\n remoteEntry: {\n path: remoteEntryPath,\n name: remoteEntryName,\n type: remoteEntryType,\n },\n types: remoteTypes = { path: '', name: '', zip: '', api: '' },\n buildInfo: { buildVersion },\n globalName,\n ssrRemoteEntry,\n } = manifest.metaData;\n const { exposes } = manifest;\n\n let basicRemoteSnapshot: BasicProviderModuleInfo = {\n version: version ? version : '',\n buildVersion,\n globalName,\n remoteEntry: simpleJoinRemoteEntry(remoteEntryPath, remoteEntryName),\n remoteEntryType,\n remoteTypes: simpleJoinRemoteEntry(remoteTypes.path, remoteTypes.name),\n remoteTypesZip: remoteTypes.zip || '',\n remoteTypesAPI: remoteTypes.api || '',\n remotesInfo,\n shared: manifest?.shared.map((item) => ({\n assets: item.assets,\n sharedName: item.name,\n version: item.version,\n // @ts-ignore\n usedExports: item.referenceExports || [],\n })),\n modules: exposes?.map((expose) => ({\n moduleName: expose.name,\n modulePath: expose.path,\n assets: expose.assets,\n })),\n };\n\n if (manifest.metaData?.prefetchInterface) {\n const prefetchInterface = manifest.metaData.prefetchInterface;\n\n basicRemoteSnapshot = {\n ...basicRemoteSnapshot,\n prefetchInterface,\n };\n }\n\n if (manifest.metaData?.prefetchEntry) {\n const { path, name, type } = manifest.metaData.prefetchEntry;\n\n basicRemoteSnapshot = {\n ...basicRemoteSnapshot,\n prefetchEntry: simpleJoinRemoteEntry(path, name),\n prefetchEntryType: type,\n };\n }\n\n if ('publicPath' in manifest.metaData) {\n remoteSnapshot = {\n ...basicRemoteSnapshot,\n publicPath: getPublicPath(),\n };\n if (typeof manifest.metaData.ssrPublicPath === 'string') {\n remoteSnapshot.ssrPublicPath = manifest.metaData.ssrPublicPath;\n }\n } else {\n remoteSnapshot = {\n ...basicRemoteSnapshot,\n getPublicPath: getPublicPath(),\n };\n }\n\n if (ssrRemoteEntry) {\n const fullSSRRemoteEntry = simpleJoinRemoteEntry(\n ssrRemoteEntry.path,\n ssrRemoteEntry.name,\n );\n remoteSnapshot.ssrRemoteEntry = fullSSRRemoteEntry;\n remoteSnapshot.ssrRemoteEntryType =\n ssrRemoteEntry.type || 'commonjs-module';\n }\n\n return remoteSnapshot;\n}\n\nexport function isManifestProvider(\n moduleInfo: ModuleInfo | ManifestProvider,\n): moduleInfo is ManifestProvider {\n if (\n 'remoteEntry' in moduleInfo &&\n moduleInfo.remoteEntry.includes(MANIFEST_EXT)\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nexport function getManifestFileName(\n manifestOptions?: moduleFederationPlugin.ModuleFederationPluginOptions['manifest'],\n): {\n statsFileName: string;\n manifestFileName: string;\n} {\n if (!manifestOptions) {\n return {\n statsFileName: StatsFileName,\n manifestFileName: ManifestFileName,\n };\n }\n\n let filePath =\n typeof manifestOptions === 'boolean' ? '' : manifestOptions.filePath || '';\n let fileName =\n typeof manifestOptions === 'boolean' ? '' : manifestOptions.fileName || '';\n\n const JSON_EXT = '.json';\n const addExt = (name: string): string => {\n if (name.endsWith(JSON_EXT)) {\n return name;\n }\n return `${name}${JSON_EXT}`;\n };\n const insertSuffix = (name: string, suffix: string): string => {\n return name.replace(JSON_EXT, `${suffix}${JSON_EXT}`);\n };\n const manifestFileName = fileName ? addExt(fileName) : ManifestFileName;\n const statsFileName = fileName\n ? insertSuffix(manifestFileName, '-stats')\n : StatsFileName;\n\n return {\n statsFileName: simpleJoinRemoteEntry(filePath, statsFileName),\n manifestFileName: simpleJoinRemoteEntry(filePath, manifestFileName),\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generateSnapshotFromManifest.cjs","names":["MANIFEST_EXT","StatsFileName","ManifestFileName"],"sources":["../src/generateSnapshotFromManifest.ts"],"sourcesContent":["import {\n Manifest,\n ProviderModuleInfo,\n ModuleInfo,\n BasicProviderModuleInfo,\n ConsumerModuleInfo,\n ManifestProvider,\n moduleFederationPlugin,\n} from './types';\nimport { MANIFEST_EXT, ManifestFileName, StatsFileName } from './constant';\n\ninterface IOptions {\n remotes?: Record<string, string>;\n overrides?: Record<string, string>;\n version?: string;\n}\n\nexport const simpleJoinRemoteEntry = (rPath: string, rName: string): string => {\n if (!rPath) {\n return rName;\n }\n const transformPath = (str: string) => {\n if (str === '.') {\n return '';\n }\n if (str.startsWith('./')) {\n return str.replace('./', '');\n }\n if (str.startsWith('/')) {\n const strWithoutSlash = str.slice(1);\n if (strWithoutSlash.endsWith('/')) {\n return strWithoutSlash.slice(0, -1);\n }\n return strWithoutSlash;\n }\n return str;\n };\n\n const transformedPath = transformPath(rPath);\n\n if (!transformedPath) {\n return rName;\n }\n\n if (transformedPath.endsWith('/')) {\n return `${transformedPath}${rName}`;\n }\n\n return `${transformedPath}/${rName}`;\n};\n\nexport function inferAutoPublicPath(url: string): string {\n return url\n .replace(/#.*$/, '')\n .replace(/\\?.*$/, '')\n .replace(/\\/[^\\/]+$/, '/');\n}\n\n// Priority: overrides > remotes\n// eslint-disable-next-line max-lines-per-function\nexport function generateSnapshotFromManifest(\n manifest: Manifest,\n options: IOptions = {},\n): ProviderModuleInfo {\n const { remotes = {}, overrides = {}, version } = options;\n let remoteSnapshot: ProviderModuleInfo;\n\n const getPublicPath = (): string => {\n if ('publicPath' in manifest.metaData) {\n if (\n (manifest.metaData.publicPath === 'auto' ||\n manifest.metaData.publicPath === '') &&\n version\n ) {\n // use same implementation as publicPath auto runtime module implements\n return inferAutoPublicPath(version);\n }\n return manifest.metaData.publicPath;\n } else {\n return manifest.metaData.getPublicPath;\n }\n };\n\n const overridesKeys = Object.keys(overrides);\n\n let remotesInfo: ConsumerModuleInfo['remotesInfo'] = {};\n\n // If remotes are not provided, only the remotes in the manifest will be read\n if (!Object.keys(remotes).length) {\n remotesInfo =\n manifest.remotes?.reduce(\n (res, next) => {\n let matchedVersion: string;\n const name = next.federationContainerName;\n // overrides have higher priority\n if (overridesKeys.includes(name)) {\n matchedVersion = overrides[name];\n } else {\n if ('version' in next) {\n matchedVersion = next.version;\n } else {\n matchedVersion = next.entry;\n }\n }\n res[name] = {\n matchedVersion,\n };\n return res;\n },\n {} as ConsumerModuleInfo['remotesInfo'],\n ) || {};\n }\n\n // If remotes (deploy scenario) are specified, they need to be traversed again\n Object.keys(remotes).forEach(\n (key) =>\n (remotesInfo[key] = {\n // overrides will override dependencies\n matchedVersion: overridesKeys.includes(key)\n ? overrides[key]\n : remotes[key],\n }),\n );\n\n const {\n remoteEntry: {\n path: remoteEntryPath,\n name: remoteEntryName,\n type: remoteEntryType,\n },\n types: remoteTypes = { path: '', name: '', zip: '', api: '' },\n buildInfo: { buildVersion },\n globalName,\n ssrRemoteEntry,\n } = manifest.metaData;\n const { exposes } = manifest;\n\n let basicRemoteSnapshot: BasicProviderModuleInfo = {\n version: version ? version : '',\n buildVersion,\n globalName,\n remoteEntry: simpleJoinRemoteEntry(remoteEntryPath, remoteEntryName),\n remoteEntryType,\n remoteTypes: simpleJoinRemoteEntry(remoteTypes.path, remoteTypes.name),\n remoteTypesZip: remoteTypes.zip || '',\n remoteTypesAPI: remoteTypes.api || '',\n remotesInfo,\n shared: manifest?.shared.map((item) => ({\n assets: item.assets,\n sharedName: item.name,\n version: item.version,\n // @ts-ignore\n usedExports: item.referenceExports || [],\n })),\n modules: exposes?.map((expose) => ({\n moduleName: expose.name,\n modulePath: expose.path,\n assets: expose.assets,\n })),\n };\n\n if ('publicPath' in manifest.metaData) {\n remoteSnapshot = {\n ...basicRemoteSnapshot,\n publicPath: getPublicPath(),\n };\n if (typeof manifest.metaData.ssrPublicPath === 'string') {\n remoteSnapshot.ssrPublicPath = manifest.metaData.ssrPublicPath;\n }\n } else {\n remoteSnapshot = {\n ...basicRemoteSnapshot,\n getPublicPath: getPublicPath(),\n };\n }\n\n if (ssrRemoteEntry) {\n const fullSSRRemoteEntry = simpleJoinRemoteEntry(\n ssrRemoteEntry.path,\n ssrRemoteEntry.name,\n );\n remoteSnapshot.ssrRemoteEntry = fullSSRRemoteEntry;\n remoteSnapshot.ssrRemoteEntryType =\n ssrRemoteEntry.type || 'commonjs-module';\n }\n\n return remoteSnapshot;\n}\n\nexport function isManifestProvider(\n moduleInfo: ModuleInfo | ManifestProvider,\n): moduleInfo is ManifestProvider {\n if (\n 'remoteEntry' in moduleInfo &&\n moduleInfo.remoteEntry.includes(MANIFEST_EXT)\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nexport function getManifestFileName(\n manifestOptions?: moduleFederationPlugin.ModuleFederationPluginOptions['manifest'],\n): {\n statsFileName: string;\n manifestFileName: string;\n} {\n if (!manifestOptions) {\n return {\n statsFileName: StatsFileName,\n manifestFileName: ManifestFileName,\n };\n }\n\n let filePath =\n typeof manifestOptions === 'boolean' ? '' : manifestOptions.filePath || '';\n let fileName =\n typeof manifestOptions === 'boolean' ? '' : manifestOptions.fileName || '';\n\n const JSON_EXT = '.json';\n const addExt = (name: string): string => {\n if (name.endsWith(JSON_EXT)) {\n return name;\n }\n return `${name}${JSON_EXT}`;\n };\n const insertSuffix = (name: string, suffix: string): string => {\n return name.replace(JSON_EXT, `${suffix}${JSON_EXT}`);\n };\n const manifestFileName = fileName ? addExt(fileName) : ManifestFileName;\n const statsFileName = fileName\n ? insertSuffix(manifestFileName, '-stats')\n : StatsFileName;\n\n return {\n statsFileName: simpleJoinRemoteEntry(filePath, statsFileName),\n manifestFileName: simpleJoinRemoteEntry(filePath, manifestFileName),\n };\n}\n"],"mappings":"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"}
|
|
@@ -71,21 +71,6 @@ function generateSnapshotFromManifest(manifest, options = {}) {
|
|
|
71
71
|
assets: expose.assets
|
|
72
72
|
}))
|
|
73
73
|
};
|
|
74
|
-
if (manifest.metaData?.prefetchInterface) {
|
|
75
|
-
const prefetchInterface = manifest.metaData.prefetchInterface;
|
|
76
|
-
basicRemoteSnapshot = {
|
|
77
|
-
...basicRemoteSnapshot,
|
|
78
|
-
prefetchInterface
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
if (manifest.metaData?.prefetchEntry) {
|
|
82
|
-
const { path, name, type } = manifest.metaData.prefetchEntry;
|
|
83
|
-
basicRemoteSnapshot = {
|
|
84
|
-
...basicRemoteSnapshot,
|
|
85
|
-
prefetchEntry: simpleJoinRemoteEntry(path, name),
|
|
86
|
-
prefetchEntryType: type
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
74
|
if ("publicPath" in manifest.metaData) {
|
|
90
75
|
remoteSnapshot = {
|
|
91
76
|
...basicRemoteSnapshot,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSnapshotFromManifest.js","names":[],"sources":["../src/generateSnapshotFromManifest.ts"],"sourcesContent":["import {\n Manifest,\n ProviderModuleInfo,\n ModuleInfo,\n BasicProviderModuleInfo,\n ConsumerModuleInfo,\n ManifestProvider,\n moduleFederationPlugin,\n} from './types';\nimport { MANIFEST_EXT, ManifestFileName, StatsFileName } from './constant';\n\ninterface IOptions {\n remotes?: Record<string, string>;\n overrides?: Record<string, string>;\n version?: string;\n}\n\nexport const simpleJoinRemoteEntry = (rPath: string, rName: string): string => {\n if (!rPath) {\n return rName;\n }\n const transformPath = (str: string) => {\n if (str === '.') {\n return '';\n }\n if (str.startsWith('./')) {\n return str.replace('./', '');\n }\n if (str.startsWith('/')) {\n const strWithoutSlash = str.slice(1);\n if (strWithoutSlash.endsWith('/')) {\n return strWithoutSlash.slice(0, -1);\n }\n return strWithoutSlash;\n }\n return str;\n };\n\n const transformedPath = transformPath(rPath);\n\n if (!transformedPath) {\n return rName;\n }\n\n if (transformedPath.endsWith('/')) {\n return `${transformedPath}${rName}`;\n }\n\n return `${transformedPath}/${rName}`;\n};\n\nexport function inferAutoPublicPath(url: string): string {\n return url\n .replace(/#.*$/, '')\n .replace(/\\?.*$/, '')\n .replace(/\\/[^\\/]+$/, '/');\n}\n\n// Priority: overrides > remotes\n// eslint-disable-next-line max-lines-per-function\nexport function generateSnapshotFromManifest(\n manifest: Manifest,\n options: IOptions = {},\n): ProviderModuleInfo {\n const { remotes = {}, overrides = {}, version } = options;\n let remoteSnapshot: ProviderModuleInfo;\n\n const getPublicPath = (): string => {\n if ('publicPath' in manifest.metaData) {\n if (\n (manifest.metaData.publicPath === 'auto' ||\n manifest.metaData.publicPath === '') &&\n version\n ) {\n // use same implementation as publicPath auto runtime module implements\n return inferAutoPublicPath(version);\n }\n return manifest.metaData.publicPath;\n } else {\n return manifest.metaData.getPublicPath;\n }\n };\n\n const overridesKeys = Object.keys(overrides);\n\n let remotesInfo: ConsumerModuleInfo['remotesInfo'] = {};\n\n // If remotes are not provided, only the remotes in the manifest will be read\n if (!Object.keys(remotes).length) {\n remotesInfo =\n manifest.remotes?.reduce(\n (res, next) => {\n let matchedVersion: string;\n const name = next.federationContainerName;\n // overrides have higher priority\n if (overridesKeys.includes(name)) {\n matchedVersion = overrides[name];\n } else {\n if ('version' in next) {\n matchedVersion = next.version;\n } else {\n matchedVersion = next.entry;\n }\n }\n res[name] = {\n matchedVersion,\n };\n return res;\n },\n {} as ConsumerModuleInfo['remotesInfo'],\n ) || {};\n }\n\n // If remotes (deploy scenario) are specified, they need to be traversed again\n Object.keys(remotes).forEach(\n (key) =>\n (remotesInfo[key] = {\n // overrides will override dependencies\n matchedVersion: overridesKeys.includes(key)\n ? overrides[key]\n : remotes[key],\n }),\n );\n\n const {\n remoteEntry: {\n path: remoteEntryPath,\n name: remoteEntryName,\n type: remoteEntryType,\n },\n types: remoteTypes = { path: '', name: '', zip: '', api: '' },\n buildInfo: { buildVersion },\n globalName,\n ssrRemoteEntry,\n } = manifest.metaData;\n const { exposes } = manifest;\n\n let basicRemoteSnapshot: BasicProviderModuleInfo = {\n version: version ? version : '',\n buildVersion,\n globalName,\n remoteEntry: simpleJoinRemoteEntry(remoteEntryPath, remoteEntryName),\n remoteEntryType,\n remoteTypes: simpleJoinRemoteEntry(remoteTypes.path, remoteTypes.name),\n remoteTypesZip: remoteTypes.zip || '',\n remoteTypesAPI: remoteTypes.api || '',\n remotesInfo,\n shared: manifest?.shared.map((item) => ({\n assets: item.assets,\n sharedName: item.name,\n version: item.version,\n // @ts-ignore\n usedExports: item.referenceExports || [],\n })),\n modules: exposes?.map((expose) => ({\n moduleName: expose.name,\n modulePath: expose.path,\n assets: expose.assets,\n })),\n };\n\n if (manifest.metaData?.prefetchInterface) {\n const prefetchInterface = manifest.metaData.prefetchInterface;\n\n basicRemoteSnapshot = {\n ...basicRemoteSnapshot,\n prefetchInterface,\n };\n }\n\n if (manifest.metaData?.prefetchEntry) {\n const { path, name, type } = manifest.metaData.prefetchEntry;\n\n basicRemoteSnapshot = {\n ...basicRemoteSnapshot,\n prefetchEntry: simpleJoinRemoteEntry(path, name),\n prefetchEntryType: type,\n };\n }\n\n if ('publicPath' in manifest.metaData) {\n remoteSnapshot = {\n ...basicRemoteSnapshot,\n publicPath: getPublicPath(),\n };\n if (typeof manifest.metaData.ssrPublicPath === 'string') {\n remoteSnapshot.ssrPublicPath = manifest.metaData.ssrPublicPath;\n }\n } else {\n remoteSnapshot = {\n ...basicRemoteSnapshot,\n getPublicPath: getPublicPath(),\n };\n }\n\n if (ssrRemoteEntry) {\n const fullSSRRemoteEntry = simpleJoinRemoteEntry(\n ssrRemoteEntry.path,\n ssrRemoteEntry.name,\n );\n remoteSnapshot.ssrRemoteEntry = fullSSRRemoteEntry;\n remoteSnapshot.ssrRemoteEntryType =\n ssrRemoteEntry.type || 'commonjs-module';\n }\n\n return remoteSnapshot;\n}\n\nexport function isManifestProvider(\n moduleInfo: ModuleInfo | ManifestProvider,\n): moduleInfo is ManifestProvider {\n if (\n 'remoteEntry' in moduleInfo &&\n moduleInfo.remoteEntry.includes(MANIFEST_EXT)\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nexport function getManifestFileName(\n manifestOptions?: moduleFederationPlugin.ModuleFederationPluginOptions['manifest'],\n): {\n statsFileName: string;\n manifestFileName: string;\n} {\n if (!manifestOptions) {\n return {\n statsFileName: StatsFileName,\n manifestFileName: ManifestFileName,\n };\n }\n\n let filePath =\n typeof manifestOptions === 'boolean' ? '' : manifestOptions.filePath || '';\n let fileName =\n typeof manifestOptions === 'boolean' ? '' : manifestOptions.fileName || '';\n\n const JSON_EXT = '.json';\n const addExt = (name: string): string => {\n if (name.endsWith(JSON_EXT)) {\n return name;\n }\n return `${name}${JSON_EXT}`;\n };\n const insertSuffix = (name: string, suffix: string): string => {\n return name.replace(JSON_EXT, `${suffix}${JSON_EXT}`);\n };\n const manifestFileName = fileName ? addExt(fileName) : ManifestFileName;\n const statsFileName = fileName\n ? insertSuffix(manifestFileName, '-stats')\n : StatsFileName;\n\n return {\n statsFileName: simpleJoinRemoteEntry(filePath, statsFileName),\n manifestFileName: simpleJoinRemoteEntry(filePath, manifestFileName),\n };\n}\n"],"mappings":";;;AAiBA,MAAa,yBAAyB,OAAe,UAA0B;AAC7E,KAAI,CAAC,MACH,QAAO;CAET,MAAM,iBAAiB,QAAgB;AACrC,MAAI,QAAQ,IACV,QAAO;AAET,MAAI,IAAI,WAAW,KAAK,CACtB,QAAO,IAAI,QAAQ,MAAM,GAAG;AAE9B,MAAI,IAAI,WAAW,IAAI,EAAE;GACvB,MAAM,kBAAkB,IAAI,MAAM,EAAE;AACpC,OAAI,gBAAgB,SAAS,IAAI,CAC/B,QAAO,gBAAgB,MAAM,GAAG,GAAG;AAErC,UAAO;;AAET,SAAO;;CAGT,MAAM,kBAAkB,cAAc,MAAM;AAE5C,KAAI,CAAC,gBACH,QAAO;AAGT,KAAI,gBAAgB,SAAS,IAAI,CAC/B,QAAO,GAAG,kBAAkB;AAG9B,QAAO,GAAG,gBAAgB,GAAG;;AAG/B,SAAgB,oBAAoB,KAAqB;AACvD,QAAO,IACJ,QAAQ,QAAQ,GAAG,CACnB,QAAQ,SAAS,GAAG,CACpB,QAAQ,aAAa,IAAI;;AAK9B,SAAgB,6BACd,UACA,UAAoB,EAAE,EACF;CACpB,MAAM,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,YAAY;CAClD,IAAI;CAEJ,MAAM,sBAA8B;AAClC,MAAI,gBAAgB,SAAS,UAAU;AACrC,QACG,SAAS,SAAS,eAAe,UAChC,SAAS,SAAS,eAAe,OACnC,QAGA,QAAO,oBAAoB,QAAQ;AAErC,UAAO,SAAS,SAAS;QAEzB,QAAO,SAAS,SAAS;;CAI7B,MAAM,gBAAgB,OAAO,KAAK,UAAU;CAE5C,IAAI,cAAiD,EAAE;AAGvD,KAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,OACxB,eACE,SAAS,SAAS,QACf,KAAK,SAAS;EACb,IAAI;EACJ,MAAM,OAAO,KAAK;AAElB,MAAI,cAAc,SAAS,KAAK,CAC9B,kBAAiB,UAAU;WAEvB,aAAa,KACf,kBAAiB,KAAK;MAEtB,kBAAiB,KAAK;AAG1B,MAAI,QAAQ,EACV,gBACD;AACD,SAAO;IAET,EAAE,CACH,IAAI,EAAE;AAIX,QAAO,KAAK,QAAQ,CAAC,SAClB,QACE,YAAY,OAAO,EAElB,gBAAgB,cAAc,SAAS,IAAI,GACvC,UAAU,OACV,QAAQ,MACb,CACJ;CAED,MAAM,EACJ,aAAa,EACX,MAAM,iBACN,MAAM,iBACN,MAAM,mBAER,OAAO,cAAc;EAAE,MAAM;EAAI,MAAM;EAAI,KAAK;EAAI,KAAK;EAAI,EAC7D,WAAW,EAAE,gBACb,YACA,mBACE,SAAS;CACb,MAAM,EAAE,YAAY;CAEpB,IAAI,sBAA+C;EACjD,SAAS,UAAU,UAAU;EAC7B;EACA;EACA,aAAa,sBAAsB,iBAAiB,gBAAgB;EACpE;EACA,aAAa,sBAAsB,YAAY,MAAM,YAAY,KAAK;EACtE,gBAAgB,YAAY,OAAO;EACnC,gBAAgB,YAAY,OAAO;EACnC;EACA,QAAQ,UAAU,OAAO,KAAK,UAAU;GACtC,QAAQ,KAAK;GACb,YAAY,KAAK;GACjB,SAAS,KAAK;GAEd,aAAa,KAAK,oBAAoB,EAAE;GACzC,EAAE;EACH,SAAS,SAAS,KAAK,YAAY;GACjC,YAAY,OAAO;GACnB,YAAY,OAAO;GACnB,QAAQ,OAAO;GAChB,EAAE;EACJ;AAED,KAAI,SAAS,UAAU,mBAAmB;EACxC,MAAM,oBAAoB,SAAS,SAAS;AAE5C,wBAAsB;GACpB,GAAG;GACH;GACD;;AAGH,KAAI,SAAS,UAAU,eAAe;EACpC,MAAM,EAAE,MAAM,MAAM,SAAS,SAAS,SAAS;AAE/C,wBAAsB;GACpB,GAAG;GACH,eAAe,sBAAsB,MAAM,KAAK;GAChD,mBAAmB;GACpB;;AAGH,KAAI,gBAAgB,SAAS,UAAU;AACrC,mBAAiB;GACf,GAAG;GACH,YAAY,eAAe;GAC5B;AACD,MAAI,OAAO,SAAS,SAAS,kBAAkB,SAC7C,gBAAe,gBAAgB,SAAS,SAAS;OAGnD,kBAAiB;EACf,GAAG;EACH,eAAe,eAAe;EAC/B;AAGH,KAAI,gBAAgB;EAClB,MAAM,qBAAqB,sBACzB,eAAe,MACf,eAAe,KAChB;AACD,iBAAe,iBAAiB;AAChC,iBAAe,qBACb,eAAe,QAAQ;;AAG3B,QAAO;;AAGT,SAAgB,mBACd,YACgC;AAChC,KACE,iBAAiB,cACjB,WAAW,YAAY,SAAS,aAAa,CAE7C,QAAO;KAEP,QAAO;;AAIX,SAAgB,oBACd,iBAIA;AACA,KAAI,CAAC,gBACH,QAAO;EACL,eAAe;EACf,kBAAkB;EACnB;CAGH,IAAI,WACF,OAAO,oBAAoB,YAAY,KAAK,gBAAgB,YAAY;CAC1E,IAAI,WACF,OAAO,oBAAoB,YAAY,KAAK,gBAAgB,YAAY;CAE1E,MAAM,WAAW;CACjB,MAAM,UAAU,SAAyB;AACvC,MAAI,KAAK,SAAS,SAAS,CACzB,QAAO;AAET,SAAO,GAAG,OAAO;;CAEnB,MAAM,gBAAgB,MAAc,WAA2B;AAC7D,SAAO,KAAK,QAAQ,UAAU,GAAG,SAAS,WAAW;;CAEvD,MAAM,mBAAmB,WAAW,OAAO,SAAS,GAAG;AAKvD,QAAO;EACL,eAAe,sBAAsB,UALjB,WAClB,aAAa,kBAAkB,SAAS,GACxC,cAG2D;EAC7D,kBAAkB,sBAAsB,UAAU,iBAAiB;EACpE"}
|
|
1
|
+
{"version":3,"file":"generateSnapshotFromManifest.js","names":[],"sources":["../src/generateSnapshotFromManifest.ts"],"sourcesContent":["import {\n Manifest,\n ProviderModuleInfo,\n ModuleInfo,\n BasicProviderModuleInfo,\n ConsumerModuleInfo,\n ManifestProvider,\n moduleFederationPlugin,\n} from './types';\nimport { MANIFEST_EXT, ManifestFileName, StatsFileName } from './constant';\n\ninterface IOptions {\n remotes?: Record<string, string>;\n overrides?: Record<string, string>;\n version?: string;\n}\n\nexport const simpleJoinRemoteEntry = (rPath: string, rName: string): string => {\n if (!rPath) {\n return rName;\n }\n const transformPath = (str: string) => {\n if (str === '.') {\n return '';\n }\n if (str.startsWith('./')) {\n return str.replace('./', '');\n }\n if (str.startsWith('/')) {\n const strWithoutSlash = str.slice(1);\n if (strWithoutSlash.endsWith('/')) {\n return strWithoutSlash.slice(0, -1);\n }\n return strWithoutSlash;\n }\n return str;\n };\n\n const transformedPath = transformPath(rPath);\n\n if (!transformedPath) {\n return rName;\n }\n\n if (transformedPath.endsWith('/')) {\n return `${transformedPath}${rName}`;\n }\n\n return `${transformedPath}/${rName}`;\n};\n\nexport function inferAutoPublicPath(url: string): string {\n return url\n .replace(/#.*$/, '')\n .replace(/\\?.*$/, '')\n .replace(/\\/[^\\/]+$/, '/');\n}\n\n// Priority: overrides > remotes\n// eslint-disable-next-line max-lines-per-function\nexport function generateSnapshotFromManifest(\n manifest: Manifest,\n options: IOptions = {},\n): ProviderModuleInfo {\n const { remotes = {}, overrides = {}, version } = options;\n let remoteSnapshot: ProviderModuleInfo;\n\n const getPublicPath = (): string => {\n if ('publicPath' in manifest.metaData) {\n if (\n (manifest.metaData.publicPath === 'auto' ||\n manifest.metaData.publicPath === '') &&\n version\n ) {\n // use same implementation as publicPath auto runtime module implements\n return inferAutoPublicPath(version);\n }\n return manifest.metaData.publicPath;\n } else {\n return manifest.metaData.getPublicPath;\n }\n };\n\n const overridesKeys = Object.keys(overrides);\n\n let remotesInfo: ConsumerModuleInfo['remotesInfo'] = {};\n\n // If remotes are not provided, only the remotes in the manifest will be read\n if (!Object.keys(remotes).length) {\n remotesInfo =\n manifest.remotes?.reduce(\n (res, next) => {\n let matchedVersion: string;\n const name = next.federationContainerName;\n // overrides have higher priority\n if (overridesKeys.includes(name)) {\n matchedVersion = overrides[name];\n } else {\n if ('version' in next) {\n matchedVersion = next.version;\n } else {\n matchedVersion = next.entry;\n }\n }\n res[name] = {\n matchedVersion,\n };\n return res;\n },\n {} as ConsumerModuleInfo['remotesInfo'],\n ) || {};\n }\n\n // If remotes (deploy scenario) are specified, they need to be traversed again\n Object.keys(remotes).forEach(\n (key) =>\n (remotesInfo[key] = {\n // overrides will override dependencies\n matchedVersion: overridesKeys.includes(key)\n ? overrides[key]\n : remotes[key],\n }),\n );\n\n const {\n remoteEntry: {\n path: remoteEntryPath,\n name: remoteEntryName,\n type: remoteEntryType,\n },\n types: remoteTypes = { path: '', name: '', zip: '', api: '' },\n buildInfo: { buildVersion },\n globalName,\n ssrRemoteEntry,\n } = manifest.metaData;\n const { exposes } = manifest;\n\n let basicRemoteSnapshot: BasicProviderModuleInfo = {\n version: version ? version : '',\n buildVersion,\n globalName,\n remoteEntry: simpleJoinRemoteEntry(remoteEntryPath, remoteEntryName),\n remoteEntryType,\n remoteTypes: simpleJoinRemoteEntry(remoteTypes.path, remoteTypes.name),\n remoteTypesZip: remoteTypes.zip || '',\n remoteTypesAPI: remoteTypes.api || '',\n remotesInfo,\n shared: manifest?.shared.map((item) => ({\n assets: item.assets,\n sharedName: item.name,\n version: item.version,\n // @ts-ignore\n usedExports: item.referenceExports || [],\n })),\n modules: exposes?.map((expose) => ({\n moduleName: expose.name,\n modulePath: expose.path,\n assets: expose.assets,\n })),\n };\n\n if ('publicPath' in manifest.metaData) {\n remoteSnapshot = {\n ...basicRemoteSnapshot,\n publicPath: getPublicPath(),\n };\n if (typeof manifest.metaData.ssrPublicPath === 'string') {\n remoteSnapshot.ssrPublicPath = manifest.metaData.ssrPublicPath;\n }\n } else {\n remoteSnapshot = {\n ...basicRemoteSnapshot,\n getPublicPath: getPublicPath(),\n };\n }\n\n if (ssrRemoteEntry) {\n const fullSSRRemoteEntry = simpleJoinRemoteEntry(\n ssrRemoteEntry.path,\n ssrRemoteEntry.name,\n );\n remoteSnapshot.ssrRemoteEntry = fullSSRRemoteEntry;\n remoteSnapshot.ssrRemoteEntryType =\n ssrRemoteEntry.type || 'commonjs-module';\n }\n\n return remoteSnapshot;\n}\n\nexport function isManifestProvider(\n moduleInfo: ModuleInfo | ManifestProvider,\n): moduleInfo is ManifestProvider {\n if (\n 'remoteEntry' in moduleInfo &&\n moduleInfo.remoteEntry.includes(MANIFEST_EXT)\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nexport function getManifestFileName(\n manifestOptions?: moduleFederationPlugin.ModuleFederationPluginOptions['manifest'],\n): {\n statsFileName: string;\n manifestFileName: string;\n} {\n if (!manifestOptions) {\n return {\n statsFileName: StatsFileName,\n manifestFileName: ManifestFileName,\n };\n }\n\n let filePath =\n typeof manifestOptions === 'boolean' ? '' : manifestOptions.filePath || '';\n let fileName =\n typeof manifestOptions === 'boolean' ? '' : manifestOptions.fileName || '';\n\n const JSON_EXT = '.json';\n const addExt = (name: string): string => {\n if (name.endsWith(JSON_EXT)) {\n return name;\n }\n return `${name}${JSON_EXT}`;\n };\n const insertSuffix = (name: string, suffix: string): string => {\n return name.replace(JSON_EXT, `${suffix}${JSON_EXT}`);\n };\n const manifestFileName = fileName ? addExt(fileName) : ManifestFileName;\n const statsFileName = fileName\n ? insertSuffix(manifestFileName, '-stats')\n : StatsFileName;\n\n return {\n statsFileName: simpleJoinRemoteEntry(filePath, statsFileName),\n manifestFileName: simpleJoinRemoteEntry(filePath, manifestFileName),\n };\n}\n"],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -21,7 +21,6 @@ exports.EncodedNameTransformMap = require_constant.EncodedNameTransformMap;
|
|
|
21
21
|
exports.FederationModuleManifest = require_constant.FederationModuleManifest;
|
|
22
22
|
exports.MANIFEST_EXT = require_constant.MANIFEST_EXT;
|
|
23
23
|
exports.MFModuleType = require_constant.MFModuleType;
|
|
24
|
-
exports.MFPrefetchCommon = require_constant.MFPrefetchCommon;
|
|
25
24
|
exports.MODULE_DEVTOOL_IDENTIFIER = require_constant.MODULE_DEVTOOL_IDENTIFIER;
|
|
26
25
|
exports.ManifestFileName = require_constant.ManifestFileName;
|
|
27
26
|
exports.NameTransformMap = require_constant.NameTransformMap;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BROWSER_LOG_KEY, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, MANIFEST_EXT, MFModuleType,
|
|
1
|
+
import { BROWSER_LOG_KEY, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, MANIFEST_EXT, MFModuleType, MODULE_DEVTOOL_IDENTIFIER, ManifestFileName, NameTransformMap, NameTransformSymbol, SEPARATOR, StatsFileName, TEMP_DIR, TreeShakingStatus } from "./constant.js";
|
|
2
2
|
import { Module, RemoteEntryInfo, RemoteWithEntry, RemoteWithVersion } from "./types/common.js";
|
|
3
3
|
import { BasicStatsMetaData, ManifestModuleInfos, MetaDataTypes, RemoteEntryType, ResourceInfo, Stats, StatsAssets, StatsBuildInfo, StatsExpose, StatsMetaData, StatsMetaDataWithGetPublicPath, StatsMetaDataWithPublicPath, StatsModuleInfo, StatsRemote, StatsRemoteVal, StatsRemoteWithEntry, StatsRemoteWithVersion, StatsShared } from "./types/stats.js";
|
|
4
4
|
import { Manifest, ManifestExpose, ManifestRemote, ManifestRemoteCommonInfo, ManifestShared } from "./types/manifest.js";
|
|
@@ -18,4 +18,4 @@ import { createLink, createScript, isStaticResourcesEqual, loadScript, safeWrapp
|
|
|
18
18
|
import { createScriptNode, loadScriptNode } from "./node.js";
|
|
19
19
|
import { normalizeOptions } from "./normalizeOptions.js";
|
|
20
20
|
import { createModuleFederationConfig } from "./createModuleFederationConfig.js";
|
|
21
|
-
export { BROWSER_LOG_KEY, BasicProviderModuleInfo, BasicStatsMetaData, ConsumerModuleInfo, ConsumerModuleInfoWithPublicPath, CreateScriptHook, CreateScriptHookDom, CreateScriptHookNode, CreateScriptHookReturn, CreateScriptHookReturnDom, CreateScriptHookReturnNode, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, FetchHook, GlobalModuleInfo, type InfrastructureLogger, type Logger, MANIFEST_EXT, MFModuleType,
|
|
21
|
+
export { BROWSER_LOG_KEY, BasicProviderModuleInfo, BasicStatsMetaData, ConsumerModuleInfo, ConsumerModuleInfoWithPublicPath, CreateScriptHook, CreateScriptHookDom, CreateScriptHookNode, CreateScriptHookReturn, CreateScriptHookReturnDom, CreateScriptHookReturnNode, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, FetchHook, GlobalModuleInfo, type InfrastructureLogger, type Logger, MANIFEST_EXT, MFModuleType, MODULE_DEVTOOL_IDENTIFIER, Manifest, ManifestExpose, ManifestFileName, ManifestModuleInfos, ManifestProvider, ManifestRemote, ManifestRemoteCommonInfo, ManifestShared, MetaDataTypes, Module, ModuleInfo, NameTransformMap, NameTransformSymbol, ProviderModuleInfo, PureConsumerModuleInfo, PureEntryProvider, RemoteEntryInfo, RemoteEntryType, RemoteWithEntry, RemoteWithVersion, ResourceInfo, SEPARATOR, Stats, StatsAssets, StatsBuildInfo, StatsExpose, StatsFileName, StatsMetaData, StatsMetaDataWithGetPublicPath, StatsMetaDataWithPublicPath, StatsModuleInfo, StatsRemote, StatsRemoteVal, StatsRemoteWithEntry, StatsRemoteWithVersion, StatsShared, TEMP_DIR, TreeShakingStatus, assert, bindLoggerToCompiler, composeKeyWithSeparator, ConsumeSharedPlugin_d_exports as consumeSharedPlugin, ContainerPlugin_d_exports as containerPlugin, ContainerReferencePlugin_d_exports as containerReferencePlugin, createInfrastructureLogger, createLink, createLogger, createModuleFederationConfig, createScript, createScriptNode, decodeName, encodeName, error, generateExposeFilename, generateShareFilename, generateSnapshotFromManifest, getManifestFileName, getProcessEnv, getResourceUrl, inferAutoPublicPath, infrastructureLogger, isBrowserEnv, isBrowserEnvValue, isDebugMode, isManifestProvider, isReactNativeEnv, isRequiredVersion, isStaticResourcesEqual, loadScript, loadScriptNode, logger, ModuleFederationPlugin_d_exports as moduleFederationPlugin, normalizeOptions, parseEntry, ProvideSharedPlugin_d_exports as provideSharedPlugin, safeToString, safeWrapper, SharePlugin_d_exports as sharePlugin, simpleJoinRemoteEntry, warn };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BROWSER_LOG_KEY, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, MANIFEST_EXT, MFModuleType,
|
|
1
|
+
import { BROWSER_LOG_KEY, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, MANIFEST_EXT, MFModuleType, MODULE_DEVTOOL_IDENTIFIER, ManifestFileName, NameTransformMap, NameTransformSymbol, SEPARATOR, StatsFileName, TEMP_DIR, TreeShakingStatus } from "./constant.js";
|
|
2
2
|
import { ContainerPlugin_exports } from "./types/plugins/ContainerPlugin.js";
|
|
3
3
|
import { ContainerReferencePlugin_exports } from "./types/plugins/ContainerReferencePlugin.js";
|
|
4
4
|
import { ModuleFederationPlugin_exports } from "./types/plugins/ModuleFederationPlugin.js";
|
|
@@ -14,4 +14,4 @@ import { createScriptNode, loadScriptNode } from "./node.js";
|
|
|
14
14
|
import { normalizeOptions } from "./normalizeOptions.js";
|
|
15
15
|
import { createModuleFederationConfig } from "./createModuleFederationConfig.js";
|
|
16
16
|
|
|
17
|
-
export { BROWSER_LOG_KEY, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, MANIFEST_EXT, MFModuleType,
|
|
17
|
+
export { BROWSER_LOG_KEY, ENCODE_NAME_PREFIX, EncodedNameTransformMap, FederationModuleManifest, MANIFEST_EXT, MFModuleType, MODULE_DEVTOOL_IDENTIFIER, ManifestFileName, NameTransformMap, NameTransformSymbol, SEPARATOR, StatsFileName, TEMP_DIR, TreeShakingStatus, assert, bindLoggerToCompiler, composeKeyWithSeparator, ConsumeSharedPlugin_exports as consumeSharedPlugin, ContainerPlugin_exports as containerPlugin, ContainerReferencePlugin_exports as containerReferencePlugin, createInfrastructureLogger, createLink, createLogger, createModuleFederationConfig, createScript, createScriptNode, decodeName, encodeName, error, generateExposeFilename, generateShareFilename, generateSnapshotFromManifest, getManifestFileName, getProcessEnv, getResourceUrl, inferAutoPublicPath, infrastructureLogger, isBrowserEnv, isBrowserEnvValue, isDebugMode, isManifestProvider, isReactNativeEnv, isRequiredVersion, isStaticResourcesEqual, loadScript, loadScriptNode, logger, ModuleFederationPlugin_exports as moduleFederationPlugin, normalizeOptions, parseEntry, ProvideSharedPlugin_exports as provideSharedPlugin, safeToString, safeWrapper, SharePlugin_exports as sharePlugin, simpleJoinRemoteEntry, warn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerPlugin.cjs","names":[],"sources":["../../../src/types/plugins/ContainerPlugin.ts"],"sourcesContent":["/*\n * This file was automatically generated.\n * DO NOT MODIFY BY HAND.\n * Run `pnpm generate:schema -w` to update.\n */\n\nimport type {\n Exposes,\n EntryRuntime,\n LibraryOptions,\n} from './ModuleFederationPlugin';\n\nexport interface ContainerPluginOptions {\n exposes: Exposes;\n /**\n * The filename for this container relative path inside the `output.path` directory.\n */\n filename?: string;\n library?: LibraryOptions;\n /**\n * The name for this container.\n */\n name: string;\n runtime?: EntryRuntime;\n /**\n * The name of the share scope which is shared with the host (defaults to 'default').\n */\n shareScope?: string | string[];\n /**\n * Experimental features configuration\n */\n experiments?: {\n /** Enable async startup for the container */\n asyncStartup?: boolean;\n /** After setting true, the external MF runtime will be used and the runtime provided by the consumer will be used. (Please make sure your consumer has provideExternalRuntime: true set, otherwise it will not run properly!) */\n externalRuntime?: boolean;\n /** Enable providing external runtime */\n provideExternalRuntime?: boolean;\n };\n /**\n *
|
|
1
|
+
{"version":3,"file":"ContainerPlugin.cjs","names":[],"sources":["../../../src/types/plugins/ContainerPlugin.ts"],"sourcesContent":["/*\n * This file was automatically generated.\n * DO NOT MODIFY BY HAND.\n * Run `pnpm generate:schema -w` to update.\n */\n\nimport type {\n Exposes,\n EntryRuntime,\n LibraryOptions,\n} from './ModuleFederationPlugin';\n\nexport interface ContainerPluginOptions {\n exposes: Exposes;\n /**\n * The filename for this container relative path inside the `output.path` directory.\n */\n filename?: string;\n library?: LibraryOptions;\n /**\n * The name for this container.\n */\n name: string;\n runtime?: EntryRuntime;\n /**\n * The name of the share scope which is shared with the host (defaults to 'default').\n */\n shareScope?: string | string[];\n /**\n * Experimental features configuration\n */\n experiments?: {\n /** Enable async startup for the container */\n asyncStartup?: boolean;\n /** After setting true, the external MF runtime will be used and the runtime provided by the consumer will be used. (Please make sure your consumer has provideExternalRuntime: true set, otherwise it will not run properly!) */\n externalRuntime?: boolean;\n /** Enable providing external runtime */\n provideExternalRuntime?: boolean;\n };\n /**\n * Array of runtime plugins to be applied\n */\n runtimePlugins?: (string | unknown[])[];\n}\n"],"mappings":""}
|
|
@@ -28,10 +28,6 @@ interface ContainerPluginOptions {
|
|
|
28
28
|
externalRuntime?: boolean; /** Enable providing external runtime */
|
|
29
29
|
provideExternalRuntime?: boolean;
|
|
30
30
|
};
|
|
31
|
-
/**
|
|
32
|
-
* Enable data prefetching for container modules.
|
|
33
|
-
*/
|
|
34
|
-
dataPrefetch?: boolean;
|
|
35
31
|
/**
|
|
36
32
|
* Array of runtime plugins to be applied
|
|
37
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerPlugin.js","names":[],"sources":["../../../src/types/plugins/ContainerPlugin.ts"],"sourcesContent":["/*\n * This file was automatically generated.\n * DO NOT MODIFY BY HAND.\n * Run `pnpm generate:schema -w` to update.\n */\n\nimport type {\n Exposes,\n EntryRuntime,\n LibraryOptions,\n} from './ModuleFederationPlugin';\n\nexport interface ContainerPluginOptions {\n exposes: Exposes;\n /**\n * The filename for this container relative path inside the `output.path` directory.\n */\n filename?: string;\n library?: LibraryOptions;\n /**\n * The name for this container.\n */\n name: string;\n runtime?: EntryRuntime;\n /**\n * The name of the share scope which is shared with the host (defaults to 'default').\n */\n shareScope?: string | string[];\n /**\n * Experimental features configuration\n */\n experiments?: {\n /** Enable async startup for the container */\n asyncStartup?: boolean;\n /** After setting true, the external MF runtime will be used and the runtime provided by the consumer will be used. (Please make sure your consumer has provideExternalRuntime: true set, otherwise it will not run properly!) */\n externalRuntime?: boolean;\n /** Enable providing external runtime */\n provideExternalRuntime?: boolean;\n };\n /**\n *
|
|
1
|
+
{"version":3,"file":"ContainerPlugin.js","names":[],"sources":["../../../src/types/plugins/ContainerPlugin.ts"],"sourcesContent":["/*\n * This file was automatically generated.\n * DO NOT MODIFY BY HAND.\n * Run `pnpm generate:schema -w` to update.\n */\n\nimport type {\n Exposes,\n EntryRuntime,\n LibraryOptions,\n} from './ModuleFederationPlugin';\n\nexport interface ContainerPluginOptions {\n exposes: Exposes;\n /**\n * The filename for this container relative path inside the `output.path` directory.\n */\n filename?: string;\n library?: LibraryOptions;\n /**\n * The name for this container.\n */\n name: string;\n runtime?: EntryRuntime;\n /**\n * The name of the share scope which is shared with the host (defaults to 'default').\n */\n shareScope?: string | string[];\n /**\n * Experimental features configuration\n */\n experiments?: {\n /** Enable async startup for the container */\n asyncStartup?: boolean;\n /** After setting true, the external MF runtime will be used and the runtime provided by the consumer will be used. (Please make sure your consumer has provideExternalRuntime: true set, otherwise it will not run properly!) */\n externalRuntime?: boolean;\n /** Enable providing external runtime */\n provideExternalRuntime?: boolean;\n };\n /**\n * Array of runtime plugins to be applied\n */\n runtimePlugins?: (string | unknown[])[];\n}\n"],"mappings":""}
|
package/dist/types/snapshot.d.ts
CHANGED
|
@@ -40,9 +40,6 @@ interface BasicProviderModuleInfo extends BasicModuleInfo {
|
|
|
40
40
|
modulePath?: string;
|
|
41
41
|
assets: StatsAssets;
|
|
42
42
|
}>;
|
|
43
|
-
prefetchInterface?: boolean;
|
|
44
|
-
prefetchEntry?: string;
|
|
45
|
-
prefetchEntryType?: RemoteEntryType;
|
|
46
43
|
}
|
|
47
44
|
interface BasicProviderModuleInfoWithPublicPath extends BasicProviderModuleInfo {
|
|
48
45
|
publicPath: string;
|
package/dist/types/stats.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A sdk for support module federation",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"webpack": "^5.0.0"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"node-fetch": "^3.3.2"
|
|
69
|
+
"node-fetch": "^2.7.0 || ^3.3.2"
|
|
70
70
|
},
|
|
71
71
|
"peerDependenciesMeta": {
|
|
72
72
|
"node-fetch": {
|