@module-federation/sdk 2.0.1 → 2.1.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.
Files changed (113) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +19 -0
  2. package/dist/_virtual/_rolldown/runtime.js +18 -0
  3. package/dist/constant.cjs +70 -0
  4. package/dist/constant.cjs.map +1 -0
  5. package/dist/constant.d.ts +53 -0
  6. package/dist/constant.js +55 -0
  7. package/dist/constant.js.map +1 -0
  8. package/dist/createModuleFederationConfig.cjs +9 -0
  9. package/dist/createModuleFederationConfig.cjs.map +1 -0
  10. package/dist/createModuleFederationConfig.d.ts +8 -0
  11. package/dist/createModuleFederationConfig.js +8 -0
  12. package/dist/createModuleFederationConfig.js.map +1 -0
  13. package/dist/dom.cjs +166 -0
  14. package/dist/dom.cjs.map +1 -0
  15. package/dist/dom.d.ts +35 -0
  16. package/dist/dom.js +162 -0
  17. package/dist/dom.js.map +1 -0
  18. package/dist/env.cjs +32 -0
  19. package/dist/env.cjs.map +1 -0
  20. package/dist/{src/env.d.ts → env.d.ts} +5 -2
  21. package/dist/env.js +29 -0
  22. package/dist/env.js.map +1 -0
  23. package/dist/generateSnapshotFromManifest.cjs +138 -0
  24. package/dist/generateSnapshotFromManifest.cjs.map +1 -0
  25. package/dist/generateSnapshotFromManifest.d.ts +22 -0
  26. package/dist/generateSnapshotFromManifest.js +134 -0
  27. package/dist/generateSnapshotFromManifest.js.map +1 -0
  28. package/dist/index.cjs +89 -0
  29. package/dist/index.d.ts +20 -1
  30. package/dist/index.js +15 -0
  31. package/dist/logger.cjs +129 -0
  32. package/dist/logger.cjs.map +1 -0
  33. package/dist/logger.d.ts +34 -0
  34. package/dist/logger.js +125 -0
  35. package/dist/logger.js.map +1 -0
  36. package/dist/node.cjs +122 -0
  37. package/dist/node.cjs.map +1 -0
  38. package/dist/node.d.ts +17 -0
  39. package/dist/node.js +120 -0
  40. package/dist/node.js.map +1 -0
  41. package/dist/normalize-webpack-path.cjs +28 -0
  42. package/dist/normalize-webpack-path.cjs.map +1 -0
  43. package/dist/normalize-webpack-path.d.ts +10 -1
  44. package/dist/normalize-webpack-path.js +26 -0
  45. package/dist/normalize-webpack-path.js.map +1 -0
  46. package/dist/normalizeOptions.cjs +19 -0
  47. package/dist/normalizeOptions.cjs.map +1 -0
  48. package/dist/normalizeOptions.d.ts +5 -0
  49. package/dist/normalizeOptions.js +18 -0
  50. package/dist/normalizeOptions.js.map +1 -0
  51. package/dist/types/common.d.ts +14 -0
  52. package/dist/types/hooks.d.ts +16 -0
  53. package/dist/types/index.d.ts +10 -0
  54. package/dist/types/manifest.d.ts +34 -0
  55. package/dist/types/plugins/ContainerPlugin.cjs +13 -0
  56. package/dist/types/plugins/ContainerPlugin.cjs.map +1 -0
  57. package/dist/types/plugins/ContainerPlugin.d.ts +40 -0
  58. package/dist/types/plugins/ContainerPlugin.js +8 -0
  59. package/dist/types/plugins/ContainerPlugin.js.map +1 -0
  60. package/dist/types/plugins/ContainerReferencePlugin.cjs +13 -0
  61. package/dist/types/plugins/ContainerReferencePlugin.cjs.map +1 -0
  62. package/dist/types/plugins/ContainerReferencePlugin.d.ts +23 -0
  63. package/dist/types/plugins/ContainerReferencePlugin.js +8 -0
  64. package/dist/types/plugins/ContainerReferencePlugin.js.map +1 -0
  65. package/dist/types/plugins/ModuleFederationPlugin.cjs +13 -0
  66. package/dist/types/plugins/ModuleFederationPlugin.cjs.map +1 -0
  67. package/dist/types/plugins/ModuleFederationPlugin.d.ts +432 -0
  68. package/dist/types/plugins/ModuleFederationPlugin.js +8 -0
  69. package/dist/types/plugins/ModuleFederationPlugin.js.map +1 -0
  70. package/dist/types/plugins/SharePlugin.cjs +13 -0
  71. package/dist/types/plugins/SharePlugin.cjs.map +1 -0
  72. package/dist/types/plugins/SharePlugin.d.ts +29 -0
  73. package/dist/types/plugins/SharePlugin.js +8 -0
  74. package/dist/types/plugins/SharePlugin.js.map +1 -0
  75. package/dist/types/plugins/index.d.ts +4 -0
  76. package/dist/types/snapshot.d.ts +81 -0
  77. package/dist/types/stats.d.ts +101 -0
  78. package/dist/utils.cjs +127 -0
  79. package/dist/utils.cjs.map +1 -0
  80. package/dist/{src/utils.d.ts → utils.d.ts} +9 -3
  81. package/dist/utils.js +116 -0
  82. package/dist/utils.js.map +1 -0
  83. package/package.json +7 -7
  84. package/dist/index.cjs.cjs +0 -1032
  85. package/dist/index.cjs.cjs.map +0 -1
  86. package/dist/index.cjs.d.ts +0 -1
  87. package/dist/index.esm.js +0 -978
  88. package/dist/index.esm.js.map +0 -1
  89. package/dist/normalize-webpack-path.cjs.cjs +0 -42
  90. package/dist/normalize-webpack-path.cjs.cjs.map +0 -1
  91. package/dist/normalize-webpack-path.cjs.d.ts +0 -1
  92. package/dist/normalize-webpack-path.esm.js +0 -39
  93. package/dist/normalize-webpack-path.esm.js.map +0 -1
  94. package/dist/src/constant.d.ts +0 -49
  95. package/dist/src/createModuleFederationConfig.d.ts +0 -2
  96. package/dist/src/dom.d.ts +0 -29
  97. package/dist/src/generateSnapshotFromManifest.d.ts +0 -15
  98. package/dist/src/index.d.ts +0 -11
  99. package/dist/src/logger.d.ts +0 -32
  100. package/dist/src/node.d.ts +0 -11
  101. package/dist/src/normalize-webpack-path.d.ts +0 -5
  102. package/dist/src/normalizeOptions.d.ts +0 -1
  103. package/dist/src/types/common.d.ts +0 -10
  104. package/dist/src/types/hooks.d.ts +0 -12
  105. package/dist/src/types/index.d.ts +0 -6
  106. package/dist/src/types/manifest.d.ts +0 -29
  107. package/dist/src/types/plugins/ContainerPlugin.d.ts +0 -32
  108. package/dist/src/types/plugins/ContainerReferencePlugin.d.ts +0 -15
  109. package/dist/src/types/plugins/ModuleFederationPlugin.d.ts +0 -425
  110. package/dist/src/types/plugins/SharePlugin.d.ts +0 -21
  111. package/dist/src/types/plugins/index.d.ts +0 -4
  112. package/dist/src/types/snapshot.d.ts +0 -77
  113. package/dist/src/types/stats.d.ts +0 -97
@@ -0,0 +1,101 @@
1
+ import { RemoteWithEntry, RemoteWithVersion } from "./common.js";
2
+
3
+ //#region src/types/stats.d.ts
4
+ type RemoteEntryType = 'var' | 'module' | 'assign' | 'assign-properties' | 'this' | 'window' | 'self' | 'global' | 'commonjs' | 'commonjs2' | 'commonjs-module' | 'commonjs-static' | 'amd' | 'amd-require' | 'umd' | 'umd2' | 'jsonp' | 'system' | string;
5
+ interface ResourceInfo {
6
+ path: string;
7
+ name: string;
8
+ type: RemoteEntryType;
9
+ }
10
+ interface StatsBuildInfo {
11
+ buildVersion: string;
12
+ buildName: string;
13
+ target?: string[];
14
+ plugins?: string[];
15
+ excludePlugins?: string[];
16
+ }
17
+ interface MetaDataTypes {
18
+ path: string;
19
+ name: string;
20
+ api: string;
21
+ zip: string;
22
+ }
23
+ interface BasicStatsMetaData {
24
+ name: string;
25
+ globalName: string;
26
+ buildInfo: StatsBuildInfo;
27
+ remoteEntry: ResourceInfo;
28
+ ssrRemoteEntry?: ResourceInfo;
29
+ prefetchInterface?: boolean;
30
+ prefetchEntry?: ResourceInfo;
31
+ types?: MetaDataTypes;
32
+ type: string;
33
+ pluginVersion?: string;
34
+ }
35
+ type StatsMetaDataWithGetPublicPath<T = BasicStatsMetaData> = T & {
36
+ getPublicPath: string;
37
+ };
38
+ type StatsMetaDataWithPublicPath<T = BasicStatsMetaData> = T & {
39
+ publicPath: string;
40
+ ssrPublicPath?: string;
41
+ };
42
+ type StatsMetaData<T = BasicStatsMetaData> = StatsMetaDataWithGetPublicPath<T> | StatsMetaDataWithPublicPath<T>;
43
+ interface StatsAssets {
44
+ js: StatsAssetsInfo;
45
+ css: StatsAssetsInfo;
46
+ }
47
+ interface StatsAssetsInfo {
48
+ sync: string[];
49
+ async: string[];
50
+ }
51
+ interface StatsShared {
52
+ id: string;
53
+ name: string;
54
+ version: string;
55
+ singleton: boolean;
56
+ requiredVersion: string;
57
+ hash: string;
58
+ assets: StatsAssets;
59
+ deps: string[];
60
+ usedIn: string[];
61
+ usedExports: string[];
62
+ fallback: string;
63
+ fallbackName: string;
64
+ fallbackType: RemoteEntryType;
65
+ }
66
+ interface StatsRemoteVal {
67
+ moduleName: string;
68
+ federationContainerName: string;
69
+ consumingFederationContainerName: string;
70
+ alias: string;
71
+ usedIn: string[];
72
+ }
73
+ type StatsRemoteWithEntry<T = StatsRemoteVal> = T & Omit<RemoteWithEntry, 'name'>;
74
+ type StatsRemoteWithVersion<T = StatsRemoteVal> = T & Omit<RemoteWithVersion, 'name'>;
75
+ type StatsRemote<T = StatsRemoteVal> = StatsRemoteWithEntry<T> | StatsRemoteWithVersion<T>;
76
+ interface StatsModuleInfo {
77
+ name: string;
78
+ file: string[];
79
+ }
80
+ interface ManifestModuleInfos {
81
+ [exposeModuleName: string]: StatsModuleInfo;
82
+ }
83
+ interface StatsExpose {
84
+ id: string;
85
+ name: string;
86
+ path?: string;
87
+ file: string;
88
+ requires: string[];
89
+ assets: StatsAssets;
90
+ }
91
+ interface Stats<T = BasicStatsMetaData, K = StatsRemoteVal> {
92
+ id: string;
93
+ name: string;
94
+ metaData: StatsMetaData<T>;
95
+ shared: StatsShared[];
96
+ remotes: StatsRemote<K>[];
97
+ exposes: StatsExpose[];
98
+ }
99
+ //#endregion
100
+ export { BasicStatsMetaData, ManifestModuleInfos, MetaDataTypes, RemoteEntryType, ResourceInfo, Stats, StatsAssets, StatsBuildInfo, StatsExpose, StatsMetaData, StatsMetaDataWithGetPublicPath, StatsMetaDataWithPublicPath, StatsModuleInfo, StatsRemote, StatsRemoteVal, StatsRemoteWithEntry, StatsRemoteWithVersion, StatsShared };
101
+ //# sourceMappingURL=stats.d.ts.map
package/dist/utils.cjs ADDED
@@ -0,0 +1,127 @@
1
+ const require_constant = require('./constant.cjs');
2
+ const require_env = require('./env.cjs');
3
+
4
+ //#region src/utils.ts
5
+ const LOG_CATEGORY = "[ Federation Runtime ]";
6
+ const parseEntry = (str, devVerOrUrl, separator = require_constant.SEPARATOR) => {
7
+ const strSplit = str.split(separator);
8
+ const devVersionOrUrl = require_env.getProcessEnv()["NODE_ENV"] === "development" && devVerOrUrl;
9
+ const defaultVersion = "*";
10
+ const isEntry = (s) => s.startsWith("http") || s.includes(require_constant.MANIFEST_EXT);
11
+ if (strSplit.length >= 2) {
12
+ let [name, ...versionOrEntryArr] = strSplit;
13
+ if (str.startsWith(separator)) {
14
+ name = strSplit.slice(0, 2).join(separator);
15
+ versionOrEntryArr = [devVersionOrUrl || strSplit.slice(2).join(separator)];
16
+ }
17
+ let versionOrEntry = devVersionOrUrl || versionOrEntryArr.join(separator);
18
+ if (isEntry(versionOrEntry)) return {
19
+ name,
20
+ entry: versionOrEntry
21
+ };
22
+ else return {
23
+ name,
24
+ version: versionOrEntry || defaultVersion
25
+ };
26
+ } else if (strSplit.length === 1) {
27
+ const [name] = strSplit;
28
+ if (devVersionOrUrl && isEntry(devVersionOrUrl)) return {
29
+ name,
30
+ entry: devVersionOrUrl
31
+ };
32
+ return {
33
+ name,
34
+ version: devVersionOrUrl || defaultVersion
35
+ };
36
+ } else throw `Invalid entry value: ${str}`;
37
+ };
38
+ const composeKeyWithSeparator = function(...args) {
39
+ if (!args.length) return "";
40
+ return args.reduce((sum, cur) => {
41
+ if (!cur) return sum;
42
+ if (!sum) return cur;
43
+ return `${sum}${require_constant.SEPARATOR}${cur}`;
44
+ }, "");
45
+ };
46
+ const encodeName = function(name, prefix = "", withExt = false) {
47
+ try {
48
+ const ext = withExt ? ".js" : "";
49
+ return `${prefix}${name.replace(new RegExp(`${require_constant.NameTransformSymbol.AT}`, "g"), require_constant.NameTransformMap[require_constant.NameTransformSymbol.AT]).replace(new RegExp(`${require_constant.NameTransformSymbol.HYPHEN}`, "g"), require_constant.NameTransformMap[require_constant.NameTransformSymbol.HYPHEN]).replace(new RegExp(`${require_constant.NameTransformSymbol.SLASH}`, "g"), require_constant.NameTransformMap[require_constant.NameTransformSymbol.SLASH])}${ext}`;
50
+ } catch (err) {
51
+ throw err;
52
+ }
53
+ };
54
+ const decodeName = function(name, prefix, withExt) {
55
+ try {
56
+ let decodedName = name;
57
+ if (prefix) {
58
+ if (!decodedName.startsWith(prefix)) return decodedName;
59
+ decodedName = decodedName.replace(new RegExp(prefix, "g"), "");
60
+ }
61
+ decodedName = decodedName.replace(new RegExp(`${require_constant.NameTransformMap[require_constant.NameTransformSymbol.AT]}`, "g"), require_constant.EncodedNameTransformMap[require_constant.NameTransformMap[require_constant.NameTransformSymbol.AT]]).replace(new RegExp(`${require_constant.NameTransformMap[require_constant.NameTransformSymbol.SLASH]}`, "g"), require_constant.EncodedNameTransformMap[require_constant.NameTransformMap[require_constant.NameTransformSymbol.SLASH]]).replace(new RegExp(`${require_constant.NameTransformMap[require_constant.NameTransformSymbol.HYPHEN]}`, "g"), require_constant.EncodedNameTransformMap[require_constant.NameTransformMap[require_constant.NameTransformSymbol.HYPHEN]]);
62
+ if (withExt) decodedName = decodedName.replace(".js", "");
63
+ return decodedName;
64
+ } catch (err) {
65
+ throw err;
66
+ }
67
+ };
68
+ const generateExposeFilename = (exposeName, withExt) => {
69
+ if (!exposeName) return "";
70
+ let expose = exposeName;
71
+ if (expose === ".") expose = "default_export";
72
+ if (expose.startsWith("./")) expose = expose.replace("./", "");
73
+ return encodeName(expose, "__federation_expose_", withExt);
74
+ };
75
+ const generateShareFilename = (pkgName, withExt) => {
76
+ if (!pkgName) return "";
77
+ return encodeName(pkgName, "__federation_shared_", withExt);
78
+ };
79
+ const getResourceUrl = (module, sourceUrl) => {
80
+ if ("getPublicPath" in module) {
81
+ let publicPath;
82
+ if (!module.getPublicPath.startsWith("function")) publicPath = new Function(module.getPublicPath)();
83
+ else publicPath = new Function("return " + module.getPublicPath)()();
84
+ return `${publicPath}${sourceUrl}`;
85
+ } else if ("publicPath" in module) {
86
+ if (!require_env.isBrowserEnv() && !require_env.isReactNativeEnv() && "ssrPublicPath" in module && typeof module.ssrPublicPath === "string") return `${module.ssrPublicPath}${sourceUrl}`;
87
+ return `${module.publicPath}${sourceUrl}`;
88
+ } else {
89
+ console.warn("Cannot get resource URL. If in debug mode, please ignore.", module, sourceUrl);
90
+ return "";
91
+ }
92
+ };
93
+ const assert = (condition, msg) => {
94
+ if (!condition) error(msg);
95
+ };
96
+ const error = (msg) => {
97
+ throw new Error(`${LOG_CATEGORY}: ${msg}`);
98
+ };
99
+ const warn = (msg) => {
100
+ console.warn(`${LOG_CATEGORY}: ${msg}`);
101
+ };
102
+ function safeToString(info) {
103
+ try {
104
+ return JSON.stringify(info, null, 2);
105
+ } catch (e) {
106
+ return "";
107
+ }
108
+ }
109
+ const VERSION_PATTERN_REGEXP = /^([\d^=v<>~]|[*xX]$)/;
110
+ function isRequiredVersion(str) {
111
+ return VERSION_PATTERN_REGEXP.test(str);
112
+ }
113
+
114
+ //#endregion
115
+ exports.assert = assert;
116
+ exports.composeKeyWithSeparator = composeKeyWithSeparator;
117
+ exports.decodeName = decodeName;
118
+ exports.encodeName = encodeName;
119
+ exports.error = error;
120
+ exports.generateExposeFilename = generateExposeFilename;
121
+ exports.generateShareFilename = generateShareFilename;
122
+ exports.getResourceUrl = getResourceUrl;
123
+ exports.isRequiredVersion = isRequiredVersion;
124
+ exports.parseEntry = parseEntry;
125
+ exports.safeToString = safeToString;
126
+ exports.warn = warn;
127
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","names":["SEPARATOR","getProcessEnv","MANIFEST_EXT","NameTransformSymbol","NameTransformMap","EncodedNameTransformMap","isBrowserEnv","isReactNativeEnv"],"sources":["../src/utils.ts"],"sourcesContent":["import { RemoteEntryInfo, ModuleInfo } from './types';\nimport {\n NameTransformMap,\n NameTransformSymbol,\n EncodedNameTransformMap,\n SEPARATOR,\n MANIFEST_EXT,\n} from './constant';\nimport { getProcessEnv, isBrowserEnv, isReactNativeEnv } from './env';\n\nconst LOG_CATEGORY = '[ Federation Runtime ]';\n\n// entry: name:version version : 1.0.0 | ^1.2.3\n// entry: name:entry entry: https://localhost:9000/federation-manifest.json\nconst parseEntry = (\n str: string,\n devVerOrUrl?: string,\n separator = SEPARATOR,\n): RemoteEntryInfo => {\n const strSplit = str.split(separator);\n const devVersionOrUrl =\n getProcessEnv()['NODE_ENV'] === 'development' && devVerOrUrl;\n const defaultVersion = '*';\n const isEntry = (s: string) =>\n s.startsWith('http') || s.includes(MANIFEST_EXT);\n\n // Check if the string starts with a type\n if (strSplit.length >= 2) {\n let [name, ...versionOrEntryArr] = strSplit;\n // @name@manifest-url.json\n if (str.startsWith(separator)) {\n name = strSplit.slice(0, 2).join(separator);\n versionOrEntryArr = [\n devVersionOrUrl || strSplit.slice(2).join(separator),\n ];\n }\n\n let versionOrEntry = devVersionOrUrl || versionOrEntryArr.join(separator);\n\n if (isEntry(versionOrEntry)) {\n return {\n name,\n entry: versionOrEntry,\n };\n } else {\n // Apply version rule\n // devVersionOrUrl => inputVersion => defaultVersion\n return {\n name,\n version: versionOrEntry || defaultVersion,\n };\n }\n } else if (strSplit.length === 1) {\n const [name] = strSplit;\n if (devVersionOrUrl && isEntry(devVersionOrUrl)) {\n return {\n name,\n entry: devVersionOrUrl,\n };\n }\n return {\n name,\n version: devVersionOrUrl || defaultVersion,\n };\n } else {\n throw `Invalid entry value: ${str}`;\n }\n};\n\ndeclare global {\n // eslint-disable-next-line no-var\n var FEDERATION_DEBUG: string | undefined;\n}\n\nconst composeKeyWithSeparator = function (\n ...args: (string | undefined)[]\n): string {\n if (!args.length) {\n return '';\n }\n\n return args.reduce((sum, cur) => {\n if (!cur) {\n return sum;\n }\n if (!sum) {\n return cur;\n }\n\n return `${sum}${SEPARATOR}${cur}`;\n }, '') as string;\n};\n\nconst encodeName = function (\n name: string,\n prefix = '',\n withExt = false,\n): string {\n try {\n const ext = withExt ? '.js' : '';\n return `${prefix}${name\n .replace(\n new RegExp(`${NameTransformSymbol.AT}`, 'g'),\n NameTransformMap[NameTransformSymbol.AT],\n )\n .replace(\n new RegExp(`${NameTransformSymbol.HYPHEN}`, 'g'),\n NameTransformMap[NameTransformSymbol.HYPHEN],\n )\n .replace(\n new RegExp(`${NameTransformSymbol.SLASH}`, 'g'),\n NameTransformMap[NameTransformSymbol.SLASH],\n )}${ext}`;\n } catch (err) {\n throw err;\n }\n};\n\nconst decodeName = function (\n name: string,\n prefix?: string,\n withExt?: boolean,\n): string {\n try {\n let decodedName = name;\n if (prefix) {\n if (!decodedName.startsWith(prefix)) {\n return decodedName;\n }\n decodedName = decodedName.replace(new RegExp(prefix, 'g'), '');\n }\n decodedName = decodedName\n .replace(\n new RegExp(`${NameTransformMap[NameTransformSymbol.AT]}`, 'g'),\n EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.AT]],\n )\n .replace(\n new RegExp(`${NameTransformMap[NameTransformSymbol.SLASH]}`, 'g'),\n EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.SLASH]],\n )\n .replace(\n new RegExp(`${NameTransformMap[NameTransformSymbol.HYPHEN]}`, 'g'),\n EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.HYPHEN]],\n );\n if (withExt) {\n decodedName = decodedName.replace('.js', '');\n }\n return decodedName;\n } catch (err) {\n throw err;\n }\n};\n\nconst generateExposeFilename = (\n exposeName: string,\n withExt: boolean,\n): string => {\n if (!exposeName) {\n return '';\n }\n\n let expose = exposeName;\n if (expose === '.') {\n expose = 'default_export';\n }\n if (expose.startsWith('./')) {\n expose = expose.replace('./', '');\n }\n\n return encodeName(expose, '__federation_expose_', withExt);\n};\n\nconst generateShareFilename = (pkgName: string, withExt: boolean): string => {\n if (!pkgName) {\n return '';\n }\n return encodeName(pkgName, '__federation_shared_', withExt);\n};\n\nconst getResourceUrl = (module: ModuleInfo, sourceUrl: string): string => {\n if ('getPublicPath' in module) {\n let publicPath;\n\n if (!module.getPublicPath.startsWith('function')) {\n publicPath = new Function(module.getPublicPath)();\n } else {\n publicPath = new Function('return ' + module.getPublicPath)()();\n }\n\n return `${publicPath}${sourceUrl}`;\n } else if ('publicPath' in module) {\n if (\n !isBrowserEnv() &&\n !isReactNativeEnv() &&\n 'ssrPublicPath' in module &&\n typeof module.ssrPublicPath === 'string'\n ) {\n return `${module.ssrPublicPath}${sourceUrl}`;\n }\n return `${module.publicPath}${sourceUrl}`;\n } else {\n console.warn(\n 'Cannot get resource URL. If in debug mode, please ignore.',\n module,\n sourceUrl,\n );\n return '';\n }\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst assert = (condition: any, msg: string): asserts condition => {\n if (!condition) {\n error(msg);\n }\n};\n\nconst error = (msg: string | Error | unknown): never => {\n throw new Error(`${LOG_CATEGORY}: ${msg}`);\n};\n\nconst warn = (msg: Parameters<typeof console.warn>[0]): void => {\n console.warn(`${LOG_CATEGORY}: ${msg}`);\n};\n\nfunction safeToString(info: any): string {\n try {\n return JSON.stringify(info, null, 2);\n } catch (e) {\n return '';\n }\n}\n\n// RegExp for version string\nconst VERSION_PATTERN_REGEXP: RegExp = /^([\\d^=v<>~]|[*xX]$)/;\n\nfunction isRequiredVersion(str: string): boolean {\n return VERSION_PATTERN_REGEXP.test(str);\n}\n\nexport {\n parseEntry,\n decodeName,\n encodeName,\n composeKeyWithSeparator,\n generateExposeFilename,\n generateShareFilename,\n getResourceUrl,\n assert,\n error,\n warn,\n safeToString,\n isRequiredVersion,\n};\n"],"mappings":"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"}
@@ -1,7 +1,11 @@
1
- import { RemoteEntryInfo, ModuleInfo } from './types';
1
+ import { RemoteEntryInfo } from "./types/common.js";
2
+ import { ModuleInfo } from "./types/snapshot.js";
3
+ import "./types/index.js";
4
+
5
+ //#region src/utils.d.ts
2
6
  declare const parseEntry: (str: string, devVerOrUrl?: string, separator?: string) => RemoteEntryInfo;
3
7
  declare global {
4
- var FEDERATION_DEBUG: string | undefined;
8
+ var FEDERATION_DEBUG: string | undefined;
5
9
  }
6
10
  declare const composeKeyWithSeparator: (...args: (string | undefined)[]) => string;
7
11
  declare const encodeName: (name: string, prefix?: string, withExt?: boolean) => string;
@@ -14,4 +18,6 @@ declare const error: (msg: string | Error | unknown) => never;
14
18
  declare const warn: (msg: Parameters<typeof console.warn>[0]) => void;
15
19
  declare function safeToString(info: any): string;
16
20
  declare function isRequiredVersion(str: string): boolean;
17
- export { parseEntry, decodeName, encodeName, composeKeyWithSeparator, generateExposeFilename, generateShareFilename, getResourceUrl, assert, error, warn, safeToString, isRequiredVersion, };
21
+ //#endregion
22
+ export { assert, composeKeyWithSeparator, decodeName, encodeName, error, generateExposeFilename, generateShareFilename, getResourceUrl, isRequiredVersion, parseEntry, safeToString, warn };
23
+ //# sourceMappingURL=utils.d.ts.map
package/dist/utils.js ADDED
@@ -0,0 +1,116 @@
1
+ import { EncodedNameTransformMap, MANIFEST_EXT, NameTransformMap, NameTransformSymbol, SEPARATOR } from "./constant.js";
2
+ import { getProcessEnv, isBrowserEnv, isReactNativeEnv } from "./env.js";
3
+
4
+ //#region src/utils.ts
5
+ const LOG_CATEGORY = "[ Federation Runtime ]";
6
+ const parseEntry = (str, devVerOrUrl, separator = SEPARATOR) => {
7
+ const strSplit = str.split(separator);
8
+ const devVersionOrUrl = getProcessEnv()["NODE_ENV"] === "development" && devVerOrUrl;
9
+ const defaultVersion = "*";
10
+ const isEntry = (s) => s.startsWith("http") || s.includes(MANIFEST_EXT);
11
+ if (strSplit.length >= 2) {
12
+ let [name, ...versionOrEntryArr] = strSplit;
13
+ if (str.startsWith(separator)) {
14
+ name = strSplit.slice(0, 2).join(separator);
15
+ versionOrEntryArr = [devVersionOrUrl || strSplit.slice(2).join(separator)];
16
+ }
17
+ let versionOrEntry = devVersionOrUrl || versionOrEntryArr.join(separator);
18
+ if (isEntry(versionOrEntry)) return {
19
+ name,
20
+ entry: versionOrEntry
21
+ };
22
+ else return {
23
+ name,
24
+ version: versionOrEntry || defaultVersion
25
+ };
26
+ } else if (strSplit.length === 1) {
27
+ const [name] = strSplit;
28
+ if (devVersionOrUrl && isEntry(devVersionOrUrl)) return {
29
+ name,
30
+ entry: devVersionOrUrl
31
+ };
32
+ return {
33
+ name,
34
+ version: devVersionOrUrl || defaultVersion
35
+ };
36
+ } else throw `Invalid entry value: ${str}`;
37
+ };
38
+ const composeKeyWithSeparator = function(...args) {
39
+ if (!args.length) return "";
40
+ return args.reduce((sum, cur) => {
41
+ if (!cur) return sum;
42
+ if (!sum) return cur;
43
+ return `${sum}${SEPARATOR}${cur}`;
44
+ }, "");
45
+ };
46
+ const encodeName = function(name, prefix = "", withExt = false) {
47
+ try {
48
+ const ext = withExt ? ".js" : "";
49
+ return `${prefix}${name.replace(new RegExp(`${NameTransformSymbol.AT}`, "g"), NameTransformMap[NameTransformSymbol.AT]).replace(new RegExp(`${NameTransformSymbol.HYPHEN}`, "g"), NameTransformMap[NameTransformSymbol.HYPHEN]).replace(new RegExp(`${NameTransformSymbol.SLASH}`, "g"), NameTransformMap[NameTransformSymbol.SLASH])}${ext}`;
50
+ } catch (err) {
51
+ throw err;
52
+ }
53
+ };
54
+ const decodeName = function(name, prefix, withExt) {
55
+ try {
56
+ let decodedName = name;
57
+ if (prefix) {
58
+ if (!decodedName.startsWith(prefix)) return decodedName;
59
+ decodedName = decodedName.replace(new RegExp(prefix, "g"), "");
60
+ }
61
+ decodedName = decodedName.replace(new RegExp(`${NameTransformMap[NameTransformSymbol.AT]}`, "g"), EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.AT]]).replace(new RegExp(`${NameTransformMap[NameTransformSymbol.SLASH]}`, "g"), EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.SLASH]]).replace(new RegExp(`${NameTransformMap[NameTransformSymbol.HYPHEN]}`, "g"), EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.HYPHEN]]);
62
+ if (withExt) decodedName = decodedName.replace(".js", "");
63
+ return decodedName;
64
+ } catch (err) {
65
+ throw err;
66
+ }
67
+ };
68
+ const generateExposeFilename = (exposeName, withExt) => {
69
+ if (!exposeName) return "";
70
+ let expose = exposeName;
71
+ if (expose === ".") expose = "default_export";
72
+ if (expose.startsWith("./")) expose = expose.replace("./", "");
73
+ return encodeName(expose, "__federation_expose_", withExt);
74
+ };
75
+ const generateShareFilename = (pkgName, withExt) => {
76
+ if (!pkgName) return "";
77
+ return encodeName(pkgName, "__federation_shared_", withExt);
78
+ };
79
+ const getResourceUrl = (module, sourceUrl) => {
80
+ if ("getPublicPath" in module) {
81
+ let publicPath;
82
+ if (!module.getPublicPath.startsWith("function")) publicPath = new Function(module.getPublicPath)();
83
+ else publicPath = new Function("return " + module.getPublicPath)()();
84
+ return `${publicPath}${sourceUrl}`;
85
+ } else if ("publicPath" in module) {
86
+ if (!isBrowserEnv() && !isReactNativeEnv() && "ssrPublicPath" in module && typeof module.ssrPublicPath === "string") return `${module.ssrPublicPath}${sourceUrl}`;
87
+ return `${module.publicPath}${sourceUrl}`;
88
+ } else {
89
+ console.warn("Cannot get resource URL. If in debug mode, please ignore.", module, sourceUrl);
90
+ return "";
91
+ }
92
+ };
93
+ const assert = (condition, msg) => {
94
+ if (!condition) error(msg);
95
+ };
96
+ const error = (msg) => {
97
+ throw new Error(`${LOG_CATEGORY}: ${msg}`);
98
+ };
99
+ const warn = (msg) => {
100
+ console.warn(`${LOG_CATEGORY}: ${msg}`);
101
+ };
102
+ function safeToString(info) {
103
+ try {
104
+ return JSON.stringify(info, null, 2);
105
+ } catch (e) {
106
+ return "";
107
+ }
108
+ }
109
+ const VERSION_PATTERN_REGEXP = /^([\d^=v<>~]|[*xX]$)/;
110
+ function isRequiredVersion(str) {
111
+ return VERSION_PATTERN_REGEXP.test(str);
112
+ }
113
+
114
+ //#endregion
115
+ export { assert, composeKeyWithSeparator, decodeName, encodeName, error, generateExposeFilename, generateShareFilename, getResourceUrl, isRequiredVersion, parseEntry, safeToString, warn };
116
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import { RemoteEntryInfo, ModuleInfo } from './types';\nimport {\n NameTransformMap,\n NameTransformSymbol,\n EncodedNameTransformMap,\n SEPARATOR,\n MANIFEST_EXT,\n} from './constant';\nimport { getProcessEnv, isBrowserEnv, isReactNativeEnv } from './env';\n\nconst LOG_CATEGORY = '[ Federation Runtime ]';\n\n// entry: name:version version : 1.0.0 | ^1.2.3\n// entry: name:entry entry: https://localhost:9000/federation-manifest.json\nconst parseEntry = (\n str: string,\n devVerOrUrl?: string,\n separator = SEPARATOR,\n): RemoteEntryInfo => {\n const strSplit = str.split(separator);\n const devVersionOrUrl =\n getProcessEnv()['NODE_ENV'] === 'development' && devVerOrUrl;\n const defaultVersion = '*';\n const isEntry = (s: string) =>\n s.startsWith('http') || s.includes(MANIFEST_EXT);\n\n // Check if the string starts with a type\n if (strSplit.length >= 2) {\n let [name, ...versionOrEntryArr] = strSplit;\n // @name@manifest-url.json\n if (str.startsWith(separator)) {\n name = strSplit.slice(0, 2).join(separator);\n versionOrEntryArr = [\n devVersionOrUrl || strSplit.slice(2).join(separator),\n ];\n }\n\n let versionOrEntry = devVersionOrUrl || versionOrEntryArr.join(separator);\n\n if (isEntry(versionOrEntry)) {\n return {\n name,\n entry: versionOrEntry,\n };\n } else {\n // Apply version rule\n // devVersionOrUrl => inputVersion => defaultVersion\n return {\n name,\n version: versionOrEntry || defaultVersion,\n };\n }\n } else if (strSplit.length === 1) {\n const [name] = strSplit;\n if (devVersionOrUrl && isEntry(devVersionOrUrl)) {\n return {\n name,\n entry: devVersionOrUrl,\n };\n }\n return {\n name,\n version: devVersionOrUrl || defaultVersion,\n };\n } else {\n throw `Invalid entry value: ${str}`;\n }\n};\n\ndeclare global {\n // eslint-disable-next-line no-var\n var FEDERATION_DEBUG: string | undefined;\n}\n\nconst composeKeyWithSeparator = function (\n ...args: (string | undefined)[]\n): string {\n if (!args.length) {\n return '';\n }\n\n return args.reduce((sum, cur) => {\n if (!cur) {\n return sum;\n }\n if (!sum) {\n return cur;\n }\n\n return `${sum}${SEPARATOR}${cur}`;\n }, '') as string;\n};\n\nconst encodeName = function (\n name: string,\n prefix = '',\n withExt = false,\n): string {\n try {\n const ext = withExt ? '.js' : '';\n return `${prefix}${name\n .replace(\n new RegExp(`${NameTransformSymbol.AT}`, 'g'),\n NameTransformMap[NameTransformSymbol.AT],\n )\n .replace(\n new RegExp(`${NameTransformSymbol.HYPHEN}`, 'g'),\n NameTransformMap[NameTransformSymbol.HYPHEN],\n )\n .replace(\n new RegExp(`${NameTransformSymbol.SLASH}`, 'g'),\n NameTransformMap[NameTransformSymbol.SLASH],\n )}${ext}`;\n } catch (err) {\n throw err;\n }\n};\n\nconst decodeName = function (\n name: string,\n prefix?: string,\n withExt?: boolean,\n): string {\n try {\n let decodedName = name;\n if (prefix) {\n if (!decodedName.startsWith(prefix)) {\n return decodedName;\n }\n decodedName = decodedName.replace(new RegExp(prefix, 'g'), '');\n }\n decodedName = decodedName\n .replace(\n new RegExp(`${NameTransformMap[NameTransformSymbol.AT]}`, 'g'),\n EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.AT]],\n )\n .replace(\n new RegExp(`${NameTransformMap[NameTransformSymbol.SLASH]}`, 'g'),\n EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.SLASH]],\n )\n .replace(\n new RegExp(`${NameTransformMap[NameTransformSymbol.HYPHEN]}`, 'g'),\n EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.HYPHEN]],\n );\n if (withExt) {\n decodedName = decodedName.replace('.js', '');\n }\n return decodedName;\n } catch (err) {\n throw err;\n }\n};\n\nconst generateExposeFilename = (\n exposeName: string,\n withExt: boolean,\n): string => {\n if (!exposeName) {\n return '';\n }\n\n let expose = exposeName;\n if (expose === '.') {\n expose = 'default_export';\n }\n if (expose.startsWith('./')) {\n expose = expose.replace('./', '');\n }\n\n return encodeName(expose, '__federation_expose_', withExt);\n};\n\nconst generateShareFilename = (pkgName: string, withExt: boolean): string => {\n if (!pkgName) {\n return '';\n }\n return encodeName(pkgName, '__federation_shared_', withExt);\n};\n\nconst getResourceUrl = (module: ModuleInfo, sourceUrl: string): string => {\n if ('getPublicPath' in module) {\n let publicPath;\n\n if (!module.getPublicPath.startsWith('function')) {\n publicPath = new Function(module.getPublicPath)();\n } else {\n publicPath = new Function('return ' + module.getPublicPath)()();\n }\n\n return `${publicPath}${sourceUrl}`;\n } else if ('publicPath' in module) {\n if (\n !isBrowserEnv() &&\n !isReactNativeEnv() &&\n 'ssrPublicPath' in module &&\n typeof module.ssrPublicPath === 'string'\n ) {\n return `${module.ssrPublicPath}${sourceUrl}`;\n }\n return `${module.publicPath}${sourceUrl}`;\n } else {\n console.warn(\n 'Cannot get resource URL. If in debug mode, please ignore.',\n module,\n sourceUrl,\n );\n return '';\n }\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst assert = (condition: any, msg: string): asserts condition => {\n if (!condition) {\n error(msg);\n }\n};\n\nconst error = (msg: string | Error | unknown): never => {\n throw new Error(`${LOG_CATEGORY}: ${msg}`);\n};\n\nconst warn = (msg: Parameters<typeof console.warn>[0]): void => {\n console.warn(`${LOG_CATEGORY}: ${msg}`);\n};\n\nfunction safeToString(info: any): string {\n try {\n return JSON.stringify(info, null, 2);\n } catch (e) {\n return '';\n }\n}\n\n// RegExp for version string\nconst VERSION_PATTERN_REGEXP: RegExp = /^([\\d^=v<>~]|[*xX]$)/;\n\nfunction isRequiredVersion(str: string): boolean {\n return VERSION_PATTERN_REGEXP.test(str);\n}\n\nexport {\n parseEntry,\n decodeName,\n encodeName,\n composeKeyWithSeparator,\n generateExposeFilename,\n generateShareFilename,\n getResourceUrl,\n assert,\n error,\n warn,\n safeToString,\n isRequiredVersion,\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/sdk",
3
- "version": "2.0.1",
3
+ "version": "2.1.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "A sdk for support module federation",
@@ -23,8 +23,8 @@
23
23
  },
24
24
  "author": "zhanghang <hanric.zhang@gmail.com>",
25
25
  "sideEffects": false,
26
- "main": "./dist/index.cjs.cjs",
27
- "module": "./dist/index.esm.js",
26
+ "main": "./dist/index.cjs",
27
+ "module": "./dist/index.js",
28
28
  "types": "./dist/index.d.ts",
29
29
  "browser": {
30
30
  "url": false
@@ -33,21 +33,21 @@
33
33
  ".": {
34
34
  "import": {
35
35
  "types": "./dist/index.d.ts",
36
- "default": "./dist/index.esm.js"
36
+ "default": "./dist/index.js"
37
37
  },
38
38
  "require": {
39
39
  "types": "./dist/index.d.ts",
40
- "default": "./dist/index.cjs.cjs"
40
+ "default": "./dist/index.cjs"
41
41
  }
42
42
  },
43
43
  "./normalize-webpack-path": {
44
44
  "import": {
45
45
  "types": "./dist/normalize-webpack-path.d.ts",
46
- "default": "./dist/normalize-webpack-path.esm.js"
46
+ "default": "./dist/normalize-webpack-path.js"
47
47
  },
48
48
  "require": {
49
49
  "types": "./dist/normalize-webpack-path.d.ts",
50
- "default": "./dist/normalize-webpack-path.cjs.cjs"
50
+ "default": "./dist/normalize-webpack-path.cjs"
51
51
  }
52
52
  }
53
53
  },