@module-federation/sdk 2.0.1 → 2.2.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 (125) hide show
  1. package/README.md +9 -3
  2. package/dist/_virtual/_rolldown/runtime.cjs +19 -0
  3. package/dist/_virtual/_rolldown/runtime.js +18 -0
  4. package/dist/constant.cjs +70 -0
  5. package/dist/constant.cjs.map +1 -0
  6. package/dist/constant.d.ts +53 -0
  7. package/dist/constant.js +55 -0
  8. package/dist/constant.js.map +1 -0
  9. package/dist/createModuleFederationConfig.cjs +9 -0
  10. package/dist/createModuleFederationConfig.cjs.map +1 -0
  11. package/dist/createModuleFederationConfig.d.ts +6 -0
  12. package/dist/createModuleFederationConfig.js +8 -0
  13. package/dist/createModuleFederationConfig.js.map +1 -0
  14. package/dist/dom.cjs +180 -0
  15. package/dist/dom.cjs.map +1 -0
  16. package/dist/dom.d.ts +33 -0
  17. package/dist/dom.js +176 -0
  18. package/dist/dom.js.map +1 -0
  19. package/dist/env.cjs +34 -0
  20. package/dist/env.cjs.map +1 -0
  21. package/dist/env.d.ts +12 -0
  22. package/dist/env.js +30 -0
  23. package/dist/env.js.map +1 -0
  24. package/dist/generateSnapshotFromManifest.cjs +138 -0
  25. package/dist/generateSnapshotFromManifest.cjs.map +1 -0
  26. package/dist/generateSnapshotFromManifest.d.ts +20 -0
  27. package/dist/generateSnapshotFromManifest.js +134 -0
  28. package/dist/generateSnapshotFromManifest.js.map +1 -0
  29. package/dist/index.cjs +104 -0
  30. package/dist/index.d.ts +21 -1
  31. package/dist/index.js +17 -0
  32. package/dist/logger.cjs +129 -0
  33. package/dist/logger.cjs.map +1 -0
  34. package/dist/logger.d.ts +34 -0
  35. package/dist/logger.js +125 -0
  36. package/dist/logger.js.map +1 -0
  37. package/dist/node.cjs +122 -0
  38. package/dist/node.cjs.map +1 -0
  39. package/dist/node.d.ts +15 -0
  40. package/dist/node.js +120 -0
  41. package/dist/node.js.map +1 -0
  42. package/dist/normalize-webpack-path.cjs +28 -0
  43. package/dist/normalize-webpack-path.cjs.map +1 -0
  44. package/dist/normalize-webpack-path.d.ts +10 -1
  45. package/dist/normalize-webpack-path.js +26 -0
  46. package/dist/normalize-webpack-path.js.map +1 -0
  47. package/dist/normalizeOptions.cjs +19 -0
  48. package/dist/normalizeOptions.cjs.map +1 -0
  49. package/dist/normalizeOptions.d.ts +5 -0
  50. package/dist/normalizeOptions.js +18 -0
  51. package/dist/normalizeOptions.js.map +1 -0
  52. package/dist/types/common.d.ts +14 -0
  53. package/dist/types/hooks.d.ts +16 -0
  54. package/dist/types/index.d.ts +11 -0
  55. package/dist/types/manifest.d.ts +34 -0
  56. package/dist/types/plugins/ConsumeSharedPlugin.cjs +13 -0
  57. package/dist/types/plugins/ConsumeSharedPlugin.cjs.map +1 -0
  58. package/dist/types/plugins/ConsumeSharedPlugin.d.ts +109 -0
  59. package/dist/types/plugins/ConsumeSharedPlugin.js +8 -0
  60. package/dist/types/plugins/ConsumeSharedPlugin.js.map +1 -0
  61. package/dist/types/plugins/ContainerPlugin.cjs +13 -0
  62. package/dist/types/plugins/ContainerPlugin.cjs.map +1 -0
  63. package/dist/types/plugins/ContainerPlugin.d.ts +42 -0
  64. package/dist/types/plugins/ContainerPlugin.js +8 -0
  65. package/dist/types/plugins/ContainerPlugin.js.map +1 -0
  66. package/dist/types/plugins/ContainerReferencePlugin.cjs +13 -0
  67. package/dist/types/plugins/ContainerReferencePlugin.cjs.map +1 -0
  68. package/dist/types/plugins/ContainerReferencePlugin.d.ts +24 -0
  69. package/dist/types/plugins/ContainerReferencePlugin.js +8 -0
  70. package/dist/types/plugins/ContainerReferencePlugin.js.map +1 -0
  71. package/dist/types/plugins/ModuleFederationPlugin.cjs +13 -0
  72. package/dist/types/plugins/ModuleFederationPlugin.cjs.map +1 -0
  73. package/dist/types/plugins/ModuleFederationPlugin.d.ts +455 -0
  74. package/dist/types/plugins/ModuleFederationPlugin.js +8 -0
  75. package/dist/types/plugins/ModuleFederationPlugin.js.map +1 -0
  76. package/dist/types/plugins/ProvideSharedPlugin.cjs +13 -0
  77. package/dist/types/plugins/ProvideSharedPlugin.cjs.map +1 -0
  78. package/dist/types/plugins/ProvideSharedPlugin.d.ts +97 -0
  79. package/dist/types/plugins/ProvideSharedPlugin.js +8 -0
  80. package/dist/types/plugins/ProvideSharedPlugin.js.map +1 -0
  81. package/dist/types/plugins/SharePlugin.cjs +13 -0
  82. package/dist/types/plugins/SharePlugin.cjs.map +1 -0
  83. package/dist/types/plugins/SharePlugin.d.ts +26 -0
  84. package/dist/types/plugins/SharePlugin.js +8 -0
  85. package/dist/types/plugins/SharePlugin.js.map +1 -0
  86. package/dist/types/plugins/index.d.ts +6 -0
  87. package/dist/types/snapshot.d.ts +81 -0
  88. package/dist/types/stats.d.ts +101 -0
  89. package/dist/utils.cjs +127 -0
  90. package/dist/utils.cjs.map +1 -0
  91. package/dist/{src/utils.d.ts → utils.d.ts} +7 -3
  92. package/dist/utils.js +116 -0
  93. package/dist/utils.js.map +1 -0
  94. package/package.json +14 -7
  95. package/dist/index.cjs.cjs +0 -1032
  96. package/dist/index.cjs.cjs.map +0 -1
  97. package/dist/index.cjs.d.ts +0 -1
  98. package/dist/index.esm.js +0 -978
  99. package/dist/index.esm.js.map +0 -1
  100. package/dist/normalize-webpack-path.cjs.cjs +0 -42
  101. package/dist/normalize-webpack-path.cjs.cjs.map +0 -1
  102. package/dist/normalize-webpack-path.cjs.d.ts +0 -1
  103. package/dist/normalize-webpack-path.esm.js +0 -39
  104. package/dist/normalize-webpack-path.esm.js.map +0 -1
  105. package/dist/src/constant.d.ts +0 -49
  106. package/dist/src/createModuleFederationConfig.d.ts +0 -2
  107. package/dist/src/dom.d.ts +0 -29
  108. package/dist/src/env.d.ts +0 -8
  109. package/dist/src/generateSnapshotFromManifest.d.ts +0 -15
  110. package/dist/src/index.d.ts +0 -11
  111. package/dist/src/logger.d.ts +0 -32
  112. package/dist/src/node.d.ts +0 -11
  113. package/dist/src/normalize-webpack-path.d.ts +0 -5
  114. package/dist/src/normalizeOptions.d.ts +0 -1
  115. package/dist/src/types/common.d.ts +0 -10
  116. package/dist/src/types/hooks.d.ts +0 -12
  117. package/dist/src/types/index.d.ts +0 -6
  118. package/dist/src/types/manifest.d.ts +0 -29
  119. package/dist/src/types/plugins/ContainerPlugin.d.ts +0 -32
  120. package/dist/src/types/plugins/ContainerReferencePlugin.d.ts +0 -15
  121. package/dist/src/types/plugins/ModuleFederationPlugin.d.ts +0 -425
  122. package/dist/src/types/plugins/SharePlugin.d.ts +0 -21
  123. package/dist/src/types/plugins/index.d.ts +0 -4
  124. package/dist/src/types/snapshot.d.ts +0 -77
  125. package/dist/src/types/stats.d.ts +0 -97
@@ -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.2.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
  },
@@ -60,5 +60,12 @@
60
60
  "./dist/normalize-webpack-path.d.ts"
61
61
  ]
62
62
  }
63
+ },
64
+ "scripts": {
65
+ "build": "tsdown --config tsdown.config.ts",
66
+ "lint": "ESLINT_USE_FLAT_CONFIG=false pnpm exec eslint --ignore-pattern node_modules \"**/*.ts\" \"package.json\"",
67
+ "test": "pnpm exec jest --config jest.config.cjs --passWithNoTests",
68
+ "test:ci": "pnpm exec jest --config jest.config.cjs --passWithNoTests --ci --coverage",
69
+ "pre-release": "pnpm run test && pnpm run build"
63
70
  }
64
71
  }