@module-federation/enhanced 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CHANGELOG.md +2375 -0
- package/dist/README.md +213 -0
- package/dist/rstestmigrate.md +140 -0
- package/dist/src/_virtual/_rolldown/runtime.js +47 -0
- package/dist/src/index.d.ts +22 -19
- package/dist/src/index.js +47 -43
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/Constants.d.ts +25 -29
- package/dist/src/lib/Constants.js +136 -116
- package/dist/src/lib/Constants.js.map +1 -1
- package/dist/src/lib/container/AsyncBoundaryPlugin.d.ts +20 -16
- package/dist/src/lib/container/AsyncBoundaryPlugin.js +137 -200
- package/dist/src/lib/container/AsyncBoundaryPlugin.js.map +1 -1
- package/dist/src/lib/container/ContainerEntryDependency.d.ts +28 -23
- package/dist/src/lib/container/ContainerEntryDependency.js +39 -39
- package/dist/src/lib/container/ContainerEntryDependency.js.map +1 -1
- package/dist/src/lib/container/ContainerEntryModule.d.ts +93 -84
- package/dist/src/lib/container/ContainerEntryModule.js +219 -234
- package/dist/src/lib/container/ContainerEntryModule.js.map +1 -1
- package/dist/src/lib/container/ContainerEntryModuleFactory.d.ts +15 -10
- package/dist/src/lib/container/ContainerEntryModuleFactory.js +21 -25
- package/dist/src/lib/container/ContainerEntryModuleFactory.js.map +1 -1
- package/dist/src/lib/container/ContainerExposedDependency.d.ts +29 -24
- package/dist/src/lib/container/ContainerExposedDependency.js +47 -47
- package/dist/src/lib/container/ContainerExposedDependency.js.map +1 -1
- package/dist/src/lib/container/ContainerPlugin.d.ts +12 -8
- package/dist/src/lib/container/ContainerPlugin.js +147 -211
- package/dist/src/lib/container/ContainerPlugin.js.map +1 -1
- package/dist/src/lib/container/ContainerReferencePlugin.d.ts +16 -12
- package/dist/src/lib/container/ContainerReferencePlugin.js +74 -102
- package/dist/src/lib/container/ContainerReferencePlugin.js.map +1 -1
- package/dist/src/lib/container/FallbackDependency.d.ts +24 -19
- package/dist/src/lib/container/FallbackDependency.js +46 -44
- package/dist/src/lib/container/FallbackDependency.js.map +1 -1
- package/dist/src/lib/container/FallbackItemDependency.d.ts +13 -8
- package/dist/src/lib/container/FallbackItemDependency.js +24 -24
- package/dist/src/lib/container/FallbackItemDependency.js.map +1 -1
- package/dist/src/lib/container/FallbackModule.d.ts +82 -71
- package/dist/src/lib/container/FallbackModule.js +133 -145
- package/dist/src/lib/container/FallbackModule.js.map +1 -1
- package/dist/src/lib/container/FallbackModuleFactory.d.ts +15 -10
- package/dist/src/lib/container/FallbackModuleFactory.js +20 -24
- package/dist/src/lib/container/FallbackModuleFactory.js.map +1 -1
- package/dist/src/lib/container/HoistContainerReferencesPlugin.d.ts +11 -7
- package/dist/src/lib/container/HoistContainerReferencesPlugin.js +125 -188
- package/dist/src/lib/container/HoistContainerReferencesPlugin.js.map +1 -1
- package/dist/src/lib/container/ModuleFederationPlugin.d.ts +20 -16
- package/dist/src/lib/container/ModuleFederationPlugin.js +143 -181
- package/dist/src/lib/container/ModuleFederationPlugin.js.map +1 -1
- package/dist/src/lib/container/RemoteModule.d.ts +79 -74
- package/dist/src/lib/container/RemoteModule.js +143 -153
- package/dist/src/lib/container/RemoteModule.js.map +1 -1
- package/dist/src/lib/container/RemoteRuntimeModule.d.ts +12 -7
- package/dist/src/lib/container/RemoteRuntimeModule.js +86 -132
- package/dist/src/lib/container/RemoteRuntimeModule.js.map +1 -1
- package/dist/src/lib/container/RemoteToExternalDependency.d.ts +13 -8
- package/dist/src/lib/container/RemoteToExternalDependency.js +25 -23
- package/dist/src/lib/container/RemoteToExternalDependency.js.map +1 -1
- package/dist/src/lib/container/constant.d.ts +3 -0
- package/dist/src/lib/container/constant.js +11 -14
- package/dist/src/lib/container/constant.js.map +1 -1
- package/dist/src/lib/container/options.d.ts +7 -3
- package/dist/src/lib/container/options.js +51 -69
- package/dist/src/lib/container/options.js.map +1 -1
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.d.ts +14 -9
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js +56 -64
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js.map +1 -1
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.d.ts +23 -19
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js +71 -101
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js.map +1 -1
- package/dist/src/lib/container/runtime/FederationModulesPlugin.d.ts +20 -16
- package/dist/src/lib/container/runtime/FederationModulesPlugin.js +55 -47
- package/dist/src/lib/container/runtime/FederationModulesPlugin.js.map +1 -1
- package/dist/src/lib/container/runtime/FederationRuntimeDependency.d.ts +9 -4
- package/dist/src/lib/container/runtime/FederationRuntimeDependency.js +16 -12
- package/dist/src/lib/container/runtime/FederationRuntimeDependency.js.map +1 -1
- package/dist/src/lib/container/runtime/FederationRuntimeModule.d.ts +16 -11
- package/dist/src/lib/container/runtime/FederationRuntimeModule.js +39 -46
- package/dist/src/lib/container/runtime/FederationRuntimeModule.js.map +1 -1
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.d.ts +31 -20
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.js +265 -358
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.js.map +1 -1
- package/dist/src/lib/container/runtime/getFederationGlobal.d.ts +9 -4
- package/dist/src/lib/container/runtime/getFederationGlobal.js +43 -41
- package/dist/src/lib/container/runtime/getFederationGlobal.js.map +1 -1
- package/dist/src/lib/container/runtime/utils.d.ts +24 -13
- package/dist/src/lib/container/runtime/utils.js +83 -101
- package/dist/src/lib/container/runtime/utils.js.map +1 -1
- package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.d.ts +15 -10
- package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.js +27 -25
- package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.js.map +1 -1
- package/dist/src/lib/sharing/ConsumeSharedModule.d.ts +77 -68
- package/dist/src/lib/sharing/ConsumeSharedModule.js +186 -214
- package/dist/src/lib/sharing/ConsumeSharedModule.js.map +1 -1
- package/dist/src/lib/sharing/ConsumeSharedPlugin.d.ts +13 -9
- package/dist/src/lib/sharing/ConsumeSharedPlugin.js +308 -475
- package/dist/src/lib/sharing/ConsumeSharedPlugin.js.map +1 -1
- package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.d.ts +16 -11
- package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js +107 -137
- package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js.map +1 -1
- package/dist/src/lib/sharing/ProvideForSharedDependency.d.ts +14 -9
- package/dist/src/lib/sharing/ProvideForSharedDependency.js +25 -25
- package/dist/src/lib/sharing/ProvideForSharedDependency.js.map +1 -1
- package/dist/src/lib/sharing/ProvideSharedDependency.d.ts +44 -39
- package/dist/src/lib/sharing/ProvideSharedDependency.js +72 -76
- package/dist/src/lib/sharing/ProvideSharedDependency.js.map +1 -1
- package/dist/src/lib/sharing/ProvideSharedModule.d.ts +91 -82
- package/dist/src/lib/sharing/ProvideSharedModule.js +177 -184
- package/dist/src/lib/sharing/ProvideSharedModule.js.map +1 -1
- package/dist/src/lib/sharing/ProvideSharedModuleFactory.d.ts +14 -9
- package/dist/src/lib/sharing/ProvideSharedModuleFactory.js +19 -25
- package/dist/src/lib/sharing/ProvideSharedModuleFactory.js.map +1 -1
- package/dist/src/lib/sharing/ProvideSharedPlugin.d.ts +27 -21
- package/dist/src/lib/sharing/ProvideSharedPlugin.js +341 -550
- package/dist/src/lib/sharing/ProvideSharedPlugin.js.map +1 -1
- package/dist/src/lib/sharing/SharePlugin.d.ts +53 -49
- package/dist/src/lib/sharing/SharePlugin.js +86 -100
- package/dist/src/lib/sharing/SharePlugin.js.map +1 -1
- package/dist/src/lib/sharing/ShareRuntimeModule.d.ts +12 -7
- package/dist/src/lib/sharing/ShareRuntimeModule.js +81 -103
- package/dist/src/lib/sharing/ShareRuntimeModule.js.map +1 -1
- package/dist/src/lib/sharing/resolveMatchedConfigs.d.ts +11 -7
- package/dist/src/lib/sharing/resolveMatchedConfigs.js +58 -71
- package/dist/src/lib/sharing/resolveMatchedConfigs.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/CollectSharedEntryPlugin.d.ts +18 -14
- package/dist/src/lib/sharing/tree-shaking/CollectSharedEntryPlugin.js +74 -128
- package/dist/src/lib/sharing/tree-shaking/CollectSharedEntryPlugin.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedPlugin.d.ts +39 -34
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedPlugin.js +234 -328
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedPlugin.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.d.ts +16 -11
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.js +30 -28
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.d.ts +28 -24
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.js +91 -95
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.d.ts +29 -24
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.js +47 -43
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryDependency.d.ts +20 -15
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryDependency.js +33 -29
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryDependency.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.d.ts +85 -77
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.js +141 -153
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.d.ts +15 -10
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.js +20 -24
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.d.ts +21 -16
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.js +157 -231
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.d.ts +14 -9
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.js +26 -27
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.d.ts +18 -13
- package/dist/src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.js +41 -49
- package/dist/src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.js.map +1 -1
- package/dist/src/lib/sharing/utils.d.ts +27 -24
- package/dist/src/lib/sharing/utils.js +224 -367
- package/dist/src/lib/sharing/utils.js.map +1 -1
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.d.ts +11 -7
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js +56 -75
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js.map +1 -1
- package/dist/src/lib/startup/StartupHelpers.d.ts +11 -6
- package/dist/src/lib/startup/StartupHelpers.js +128 -178
- package/dist/src/lib/startup/StartupHelpers.js.map +1 -1
- package/dist/src/prefetch.d.ts +3 -2
- package/dist/src/prefetch.js +17 -8
- package/dist/src/rspack.d.ts +3 -2
- package/dist/src/rspack.js +35 -11
- package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.d.ts +8 -4
- package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js +19 -16
- package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js.map +1 -1
- package/dist/src/runtime.d.ts +1 -1
- package/dist/src/runtime.js +11 -18
- package/dist/src/schemas/container/ContainerPlugin.check.d.ts +13 -5
- package/dist/src/schemas/container/ContainerPlugin.check.js +958 -1218
- package/dist/src/schemas/container/ContainerPlugin.check.js.map +1 -1
- package/dist/src/schemas/container/ContainerPlugin.d.ts +271 -268
- package/dist/src/schemas/container/ContainerPlugin.js +273 -361
- package/dist/src/schemas/container/ContainerPlugin.js.map +1 -1
- package/dist/src/schemas/container/ContainerReferencePlugin.check.d.ts +13 -5
- package/dist/src/schemas/container/ContainerReferencePlugin.check.js +335 -443
- package/dist/src/schemas/container/ContainerReferencePlugin.check.js.map +1 -1
- package/dist/src/schemas/container/ContainerReferencePlugin.d.ts +102 -99
- package/dist/src/schemas/container/ContainerReferencePlugin.js +122 -162
- package/dist/src/schemas/container/ContainerReferencePlugin.js.map +1 -1
- package/dist/src/schemas/container/ExternalsType.check.d.ts +13 -5
- package/dist/src/schemas/container/ExternalsType.check.js +36 -62
- package/dist/src/schemas/container/ExternalsType.check.js.map +1 -1
- package/dist/src/schemas/container/ExternalsType.d.ts +5 -2
- package/dist/src/schemas/container/ExternalsType.js +8 -11
- package/dist/src/schemas/container/ExternalsType.js.map +1 -1
- package/dist/src/schemas/container/ModuleFederationPlugin.check.js +3001 -4812
- package/dist/src/schemas/container/ModuleFederationPlugin.check.js.map +1 -1
- package/dist/src/schemas/container/ModuleFederationPlugin.d.ts +819 -814
- package/dist/src/schemas/container/ModuleFederationPlugin.js +780 -1053
- package/dist/src/schemas/container/ModuleFederationPlugin.js.map +1 -1
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.check.d.ts +13 -5
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.check.js +568 -768
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.check.js.map +1 -1
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.d.ts +197 -194
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.js +212 -238
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.js.map +1 -1
- package/dist/src/schemas/sharing/ProvideSharedPlugin.check.d.ts +13 -5
- package/dist/src/schemas/sharing/ProvideSharedPlugin.check.js +598 -804
- package/dist/src/schemas/sharing/ProvideSharedPlugin.check.js.map +1 -1
- package/dist/src/schemas/sharing/ProvideSharedPlugin.d.ts +184 -181
- package/dist/src/schemas/sharing/ProvideSharedPlugin.js +196 -229
- package/dist/src/schemas/sharing/ProvideSharedPlugin.js.map +1 -1
- package/dist/src/schemas/sharing/ProviderSharedPlugin.check.d.ts +12 -4
- package/dist/src/schemas/sharing/ProviderSharedPlugin.check.js +285 -482
- package/dist/src/schemas/sharing/ProviderSharedPlugin.check.js.map +1 -1
- package/dist/src/schemas/sharing/ProviderSharedPlugin.d.ts +103 -100
- package/dist/src/schemas/sharing/ProviderSharedPlugin.js +104 -126
- package/dist/src/schemas/sharing/ProviderSharedPlugin.js.map +1 -1
- package/dist/src/schemas/sharing/SharePlugin.check.d.ts +13 -5
- package/dist/src/schemas/sharing/SharePlugin.check.js +749 -965
- package/dist/src/schemas/sharing/SharePlugin.check.js.map +1 -1
- package/dist/src/schemas/sharing/SharePlugin.d.ts +245 -242
- package/dist/src/schemas/sharing/SharePlugin.js +256 -293
- package/dist/src/schemas/sharing/SharePlugin.js.map +1 -1
- package/dist/src/utils.d.ts +3 -0
- package/dist/src/utils.js +35 -26
- package/dist/src/utils.js.map +1 -1
- package/dist/src/webpack.d.ts +2 -2
- package/dist/src/webpack.js +6 -40
- package/dist/src/wrapper/AsyncBoundaryPlugin.d.ts +9 -4
- package/dist/src/wrapper/AsyncBoundaryPlugin.js +12 -11
- package/dist/src/wrapper/AsyncBoundaryPlugin.js.map +1 -1
- package/dist/src/wrapper/BaseWrapperPlugin.d.ts +18 -13
- package/dist/src/wrapper/BaseWrapperPlugin.js +39 -39
- package/dist/src/wrapper/BaseWrapperPlugin.js.map +1 -1
- package/dist/src/wrapper/ConsumeSharedPlugin.d.ts +10 -4
- package/dist/src/wrapper/ConsumeSharedPlugin.js +12 -11
- package/dist/src/wrapper/ConsumeSharedPlugin.js.map +1 -1
- package/dist/src/wrapper/ContainerPlugin.d.ts +9 -4
- package/dist/src/wrapper/ContainerPlugin.js +12 -11
- package/dist/src/wrapper/ContainerPlugin.js.map +1 -1
- package/dist/src/wrapper/ContainerReferencePlugin.d.ts +9 -4
- package/dist/src/wrapper/ContainerReferencePlugin.js +12 -11
- package/dist/src/wrapper/ContainerReferencePlugin.js.map +1 -1
- package/dist/src/wrapper/FederationModulesPlugin.d.ts +18 -10
- package/dist/src/wrapper/FederationModulesPlugin.js +19 -19
- package/dist/src/wrapper/FederationModulesPlugin.js.map +1 -1
- package/dist/src/wrapper/FederationRuntimePlugin.d.ts +11 -6
- package/dist/src/wrapper/FederationRuntimePlugin.js +18 -17
- package/dist/src/wrapper/FederationRuntimePlugin.js.map +1 -1
- package/dist/src/wrapper/HoistContainerReferencesPlugin.d.ts +8 -3
- package/dist/src/wrapper/HoistContainerReferencesPlugin.js +12 -11
- package/dist/src/wrapper/HoistContainerReferencesPlugin.js.map +1 -1
- package/dist/src/wrapper/ModuleFederationPlugin.d.ts +12 -7
- package/dist/src/wrapper/ModuleFederationPlugin.js +73 -99
- package/dist/src/wrapper/ModuleFederationPlugin.js.map +1 -1
- package/dist/src/wrapper/ProvideSharedPlugin.d.ts +10 -4
- package/dist/src/wrapper/ProvideSharedPlugin.js +12 -11
- package/dist/src/wrapper/ProvideSharedPlugin.js.map +1 -1
- package/dist/src/wrapper/SharePlugin.d.ts +10 -4
- package/dist/src/wrapper/SharePlugin.js +12 -11
- package/dist/src/wrapper/SharePlugin.js.map +1 -1
- package/dist/src/wrapper/TreeShakingSharedPlugin.d.ts +9 -4
- package/dist/src/wrapper/TreeShakingSharedPlugin.js +12 -11
- package/dist/src/wrapper/TreeShakingSharedPlugin.js.map +1 -1
- package/package.json +23 -14
- package/dist/package.json +0 -110
- package/dist/src/declarations/plugins/container/AsyncDependenciesBlock.d.ts +0 -57
- package/dist/src/declarations/plugins/container/ModuleFactory.d.ts +0 -33
- package/dist/src/declarations/plugins/container/ObjectDeserializerContext.d.ts +0 -4
- package/dist/src/declarations/plugins/container/StaticExportsDependency.d.ts +0 -28
- package/dist/src/declarations/plugins/container/Template.d.ts +0 -198
- package/dist/src/declarations/plugins/container/WebpackError.d.ts +0 -33
- package/dist/src/declarations/plugins/sharing/ConsumeSharedModule.d.ts +0 -86
- package/dist/src/declarations/plugins/sharing/ConsumeSharedPlugin.d.ts +0 -100
- package/dist/src/declarations/plugins/sharing/ProvideSharedPlugin.d.ts +0 -102
- package/dist/src/declarations/plugins/sharing/SharePlugin.d.ts +0 -116
- package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.d.ts +0 -20
- package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.js +0 -222
- package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.js.map +0 -1
- package/dist/src/prefetch.js.map +0 -1
- package/dist/src/rspack.js.map +0 -1
- package/dist/src/runtime.js.map +0 -1
- package/dist/src/types/runtime.d.ts +0 -10
- package/dist/src/types/runtime.js +0 -3
- package/dist/src/types/runtime.js.map +0 -1
- package/dist/src/webpack.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteRuntimeModule.js","
|
|
1
|
+
{"version":3,"file":"RemoteRuntimeModule.js","names":["getFederationGlobalScope"],"sources":["../../../../src/lib/container/RemoteRuntimeModule.ts"],"sourcesContent":["/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy\n*/\nimport { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport type { Compilation } from 'webpack';\nimport RemoteModule from './RemoteModule';\nimport { getFederationGlobalScope } from './runtime/utils';\nimport type ExternalModule from 'webpack/lib/ExternalModule';\nimport type FallbackModule from './FallbackModule';\nimport type {\n ModuleIdToRemoteDataMapping,\n RemotesOptions,\n} from '@module-federation/webpack-bundler-runtime';\n\nconst extractUrlAndGlobal = require(\n normalizeWebpackPath('webpack/lib/util/extractUrlAndGlobal'),\n) as typeof import('webpack/lib/util/extractUrlAndGlobal');\n\nconst { Template, RuntimeModule, RuntimeGlobals } = require(\n normalizeWebpackPath('webpack'),\n) as typeof import('webpack');\n\nclass RemoteRuntimeModule extends RuntimeModule {\n constructor() {\n super('remotes loading');\n }\n\n /**\n * @returns {string | null} runtime code\n */\n override generate(): string | null {\n const { compilation, chunkGraph } = this;\n const { runtimeTemplate, moduleGraph } = compilation as Compilation;\n const chunkToRemotesMapping: Record<string, any> = {};\n const idToExternalAndNameMapping: Record<string | number, any> = {};\n const idToRemoteMap: RemotesOptions['idToRemoteMap'] = {};\n const moduleIdToRemoteDataMapping: ModuleIdToRemoteDataMapping = {};\n\n // let chunkReferences: Set<Chunk> = new Set();\n\n // if (this.chunk && chunkGraph) {\n // const requirements = chunkGraph.getTreeRuntimeRequirements(this.chunk);\n // if (requirements.has('federation-entry-startup')) {\n // chunkReferences = this.chunk.getAllReferencedChunks();\n // } else {\n // // remote entry doesnt need federation startup, can have async chunk map only\n // chunkReferences = this.chunk.getAllAsyncChunks();\n // }\n // }\n\n const allChunks = [\n ...Array.from(this.chunk?.getAllReferencedChunks() || []),\n ];\n\n for (const chunk of allChunks) {\n if (chunk.id === null || chunk.id === undefined) {\n continue;\n }\n const modules = chunkGraph?.getChunkModulesIterableBySourceType(\n chunk,\n 'remote',\n );\n if (!modules) {\n continue;\n }\n // @ts-ignore\n const remotes = (chunkToRemotesMapping[chunk.id] = []);\n for (const m of modules) {\n const module: RemoteModule = m as unknown as RemoteModule;\n const name = module.internalRequest;\n // @ts-ignore\n const id = chunkGraph ? chunkGraph.getModuleId(module) : undefined;\n const { shareScope } = module;\n const dep = module.dependencies[0];\n // @ts-ignore\n const externalModule = moduleGraph.getModule(dep) as\n | ExternalModule\n | FallbackModule;\n const externalModuleId =\n chunkGraph && externalModule\n ? // @ts-ignore\n chunkGraph.getModuleId(externalModule)\n : undefined;\n if (id !== undefined && id !== null) {\n //@ts-ignore\n remotes.push(id);\n\n const normalizedExternalModuleId =\n externalModuleId === null || externalModuleId === undefined\n ? undefined\n : externalModuleId;\n idToExternalAndNameMapping[id] = [\n shareScope,\n name,\n normalizedExternalModuleId,\n ];\n const remoteModules: ExternalModule[] = [];\n // FallbackModule has requests\n if ('requests' in externalModule && externalModule.requests) {\n externalModule.dependencies.forEach((dependency) => {\n const remoteModule = moduleGraph.getModule(dependency);\n if (remoteModule) {\n // @ts-ignore\n remoteModules.push(remoteModule as ExternalModule);\n }\n });\n } else {\n remoteModules.push(externalModule as ExternalModule);\n }\n\n idToRemoteMap[id] = [];\n remoteModules.forEach((remoteModule) => {\n let remoteName = '';\n try {\n const [_url, name] = extractUrlAndGlobal(\n remoteModule.request as string,\n );\n remoteName = name;\n } catch (err) {\n //noop\n }\n const externalModuleId =\n chunkGraph &&\n remoteModule &&\n // @ts-ignore\n chunkGraph.getModuleId(remoteModule);\n\n idToRemoteMap[id].push({\n externalType: remoteModule.externalType,\n name: remoteModule.externalType === 'script' ? remoteName : '',\n });\n if (externalModuleId !== null && externalModuleId !== undefined) {\n moduleIdToRemoteDataMapping[id] = {\n shareScope: shareScope,\n name,\n externalModuleId: externalModuleId as string | number,\n // Preserve the extracted remote name so lazy updates can\n // rebuild idToRemoteMap via updateRemoteOptions.\n remoteName: remoteName,\n };\n }\n });\n }\n }\n }\n const federationGlobal = getFederationGlobalScope(\n RuntimeGlobals || ({} as typeof RuntimeGlobals),\n );\n\n return Template.asString([\n `var chunkMapping = ${JSON.stringify(\n chunkToRemotesMapping,\n null,\n '\\t',\n )};`,\n `var idToExternalAndNameMapping = ${JSON.stringify(\n idToExternalAndNameMapping,\n null,\n '\\t',\n )};`,\n `var idToRemoteMap = ${JSON.stringify(idToRemoteMap, null, '\\t')};`,\n `${federationGlobal}.bundlerRuntimeOptions.remotes.chunkMapping = chunkMapping;`,\n `${federationGlobal}.bundlerRuntimeOptions.remotes.idToExternalAndNameMapping = idToExternalAndNameMapping;`,\n `${federationGlobal}.bundlerRuntimeOptions.remotes.idToRemoteMap = idToRemoteMap;`,\n `${RuntimeGlobals.require}.remotesLoadingData.moduleIdToRemoteDataMapping = ${JSON.stringify(\n moduleIdToRemoteDataMapping,\n null,\n '\\t',\n )};`,\n `${\n RuntimeGlobals.ensureChunkHandlers\n }.remotes = ${runtimeTemplate.basicFunction('chunkId, promises', [\n `${federationGlobal}.bundlerRuntime.remotes({idToRemoteMap,chunkMapping, idToExternalAndNameMapping, chunkId, promises, webpackRequire:${RuntimeGlobals.require}});`,\n ])}`,\n ]);\n }\n}\n\nexport default RemoteRuntimeModule;\n"],"mappings":";;;;;;AAeA,MAAM,sBAAsB,gFACL,uCAAuC,CAC7D;AAED,MAAM,EAAE,UAAU,eAAe,mBAAmB,gFAC7B,UAAU,CAChC;AAED,IAAM,sBAAN,cAAkC,cAAc;CAC9C,cAAc;AACZ,QAAM,kBAAkB;;;;;CAM1B,AAAS,WAA0B;EACjC,MAAM,EAAE,aAAa,eAAe;EACpC,MAAM,EAAE,iBAAiB,gBAAgB;EACzC,MAAM,wBAA6C,EAAE;EACrD,MAAM,6BAA2D,EAAE;EACnE,MAAM,gBAAiD,EAAE;EACzD,MAAM,8BAA2D,EAAE;EAcnE,MAAM,YAAY,CAChB,GAAG,MAAM,KAAK,KAAK,OAAO,wBAAwB,IAAI,EAAE,CAAC,CAC1D;AAED,OAAK,MAAM,SAAS,WAAW;AAC7B,OAAI,MAAM,OAAO,QAAQ,MAAM,OAAO,OACpC;GAEF,MAAM,UAAU,YAAY,oCAC1B,OACA,SACD;AACD,OAAI,CAAC,QACH;GAGF,MAAM,UAAW,sBAAsB,MAAM,MAAM,EAAE;AACrD,QAAK,MAAM,KAAK,SAAS;IACvB,MAAM,SAAuB;IAC7B,MAAM,OAAO,OAAO;IAEpB,MAAM,KAAK,aAAa,WAAW,YAAY,OAAO,GAAG;IACzD,MAAM,EAAE,eAAe;IACvB,MAAM,MAAM,OAAO,aAAa;IAEhC,MAAM,iBAAiB,YAAY,UAAU,IAAI;IAGjD,MAAM,mBACJ,cAAc,iBAEV,WAAW,YAAY,eAAe,GACtC;AACN,QAAI,OAAO,UAAa,OAAO,MAAM;AAEnC,aAAQ,KAAK,GAAG;AAMhB,gCAA2B,MAAM;MAC/B;MACA;MALA,qBAAqB,QAAQ,qBAAqB,SAC9C,SACA;MAKL;KACD,MAAM,gBAAkC,EAAE;AAE1C,SAAI,cAAc,kBAAkB,eAAe,SACjD,gBAAe,aAAa,SAAS,eAAe;MAClD,MAAM,eAAe,YAAY,UAAU,WAAW;AACtD,UAAI,aAEF,eAAc,KAAK,aAA+B;OAEpD;SAEF,eAAc,KAAK,eAAiC;AAGtD,mBAAc,MAAM,EAAE;AACtB,mBAAc,SAAS,iBAAiB;MACtC,IAAI,aAAa;AACjB,UAAI;OACF,MAAM,CAAC,MAAM,QAAQ,oBACnB,aAAa,QACd;AACD,oBAAa;eACN,KAAK;MAGd,MAAM,mBACJ,cACA,gBAEA,WAAW,YAAY,aAAa;AAEtC,oBAAc,IAAI,KAAK;OACrB,cAAc,aAAa;OAC3B,MAAM,aAAa,iBAAiB,WAAW,aAAa;OAC7D,CAAC;AACF,UAAI,qBAAqB,QAAQ,qBAAqB,OACpD,6BAA4B,MAAM;OACpB;OACZ;OACkB;OAGN;OACb;OAEH;;;;EAIR,MAAM,mBAAmBA,6DACvB,kBAAmB,EAAE,CACtB;AAED,SAAO,SAAS,SAAS;GACvB,sBAAsB,KAAK,UACzB,uBACA,MACA,IACD,CAAC;GACF,oCAAoC,KAAK,UACvC,4BACA,MACA,IACD,CAAC;GACF,uBAAuB,KAAK,UAAU,eAAe,MAAM,IAAK,CAAC;GACjE,GAAG,iBAAiB;GACpB,GAAG,iBAAiB;GACpB,GAAG,iBAAiB;GACpB,GAAG,eAAe,QAAQ,oDAAoD,KAAK,UACjF,6BACA,MACA,IACD,CAAC;GACF,GACE,eAAe,oBAChB,aAAa,gBAAgB,cAAc,qBAAqB,CAC/D,GAAG,iBAAiB,qHAAqH,eAAe,QAAQ,KACjK,CAAC;GACH,CAAC"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import * as webpack$1 from "webpack";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/container/RemoteToExternalDependency.d.ts
|
|
4
|
+
declare const dependencies: typeof webpack$1.dependencies;
|
|
2
5
|
declare class RemoteToExternalDependency extends dependencies.ModuleDependency {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
/**
|
|
7
|
+
* @param {string} request request
|
|
8
|
+
*/
|
|
9
|
+
constructor(request: string);
|
|
10
|
+
get type(): string;
|
|
11
|
+
get category(): string;
|
|
9
12
|
}
|
|
10
|
-
|
|
13
|
+
//#endregion
|
|
14
|
+
export { RemoteToExternalDependency as default };
|
|
15
|
+
//# sourceMappingURL=RemoteToExternalDependency.d.ts.map
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
/*
|
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
-
Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy
|
|
4
|
-
*/
|
|
5
1
|
'use strict';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.js');
|
|
5
|
+
let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
|
|
6
|
+
|
|
7
|
+
//#region src/lib/container/RemoteToExternalDependency.ts
|
|
8
|
+
const makeSerializable = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/util/makeSerializable"));
|
|
9
|
+
const { dependencies } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
|
|
10
|
+
var RemoteToExternalDependency = class extends dependencies.ModuleDependency {
|
|
11
|
+
/**
|
|
12
|
+
* @param {string} request request
|
|
13
|
+
*/
|
|
14
|
+
constructor(request) {
|
|
15
|
+
super(request);
|
|
16
|
+
}
|
|
17
|
+
get type() {
|
|
18
|
+
return "remote to external";
|
|
19
|
+
}
|
|
20
|
+
get category() {
|
|
21
|
+
return "esm";
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
makeSerializable(RemoteToExternalDependency, "enhanced/lib/container/RemoteToExternalDependency");
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
25
27
|
exports.default = RemoteToExternalDependency;
|
|
26
28
|
//# sourceMappingURL=RemoteToExternalDependency.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteToExternalDependency.js","
|
|
1
|
+
{"version":3,"file":"RemoteToExternalDependency.js","names":[],"sources":["../../../../src/lib/container/RemoteToExternalDependency.ts"],"sourcesContent":["/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy\n*/\n\n'use strict';\nimport { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\n\nconst makeSerializable = require(\n normalizeWebpackPath('webpack/lib/util/makeSerializable'),\n) as typeof import('webpack/lib/util/makeSerializable');\nconst { dependencies } = require(\n normalizeWebpackPath('webpack'),\n) as typeof import('webpack');\n\nclass RemoteToExternalDependency extends dependencies.ModuleDependency {\n /**\n * @param {string} request request\n */\n constructor(request: string) {\n super(request);\n }\n override get type() {\n return 'remote to external';\n }\n\n override get category() {\n return 'esm';\n }\n}\n\nmakeSerializable(\n RemoteToExternalDependency,\n 'enhanced/lib/container/RemoteToExternalDependency',\n);\n\nexport default RemoteToExternalDependency;\n"],"mappings":";;;;;;;AAQA,MAAM,mBAAmB,gFACF,oCAAoC,CAC1D;AACD,MAAM,EAAE,iBAAiB,gFACF,UAAU,CAChC;AAED,IAAM,6BAAN,cAAyC,aAAa,iBAAiB;;;;CAIrE,YAAY,SAAiB;AAC3B,QAAM,QAAQ;;CAEhB,IAAa,OAAO;AAClB,SAAO;;CAGT,IAAa,WAAW;AACtB,SAAO;;;AAIX,iBACE,4BACA,oDACD"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const sdk_1 = require("@module-federation/sdk");
|
|
13
|
-
const FEDERATION_SUPPORTED_TYPES = ['script'];
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.js');
|
|
3
|
+
let _module_federation_sdk = require("@module-federation/sdk");
|
|
4
|
+
let path = require("path");
|
|
5
|
+
path = require_runtime.__toESM(path);
|
|
6
|
+
|
|
7
|
+
//#region src/lib/container/constant.ts
|
|
8
|
+
const FEDERATION_SUPPORTED_TYPES = ["script"];
|
|
9
|
+
const TEMP_DIR = path.default.join(`${process.cwd()}/node_modules`, _module_federation_sdk.TEMP_DIR);
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
14
12
|
exports.FEDERATION_SUPPORTED_TYPES = FEDERATION_SUPPORTED_TYPES;
|
|
15
|
-
const TEMP_DIR = path_1.default.join(`${process.cwd()}/node_modules`, sdk_1.TEMP_DIR);
|
|
16
13
|
exports.TEMP_DIR = TEMP_DIR;
|
|
17
14
|
//# sourceMappingURL=constant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","
|
|
1
|
+
{"version":3,"file":"constant.js","names":["BasicTempDir"],"sources":["../../../../src/lib/container/constant.ts"],"sourcesContent":["/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Zackary Jackson @ScriptedAlchemy\n*/\nimport path from 'path';\nimport { TEMP_DIR as BasicTempDir } from '@module-federation/sdk';\n\nconst FEDERATION_SUPPORTED_TYPES = ['script'];\nconst TEMP_DIR = path.join(`${process.cwd()}/node_modules`, BasicTempDir);\n\nexport { FEDERATION_SUPPORTED_TYPES, TEMP_DIR };\n"],"mappings":";;;;;;;AAOA,MAAM,6BAA6B,CAAC,SAAS;AAC7C,MAAM,WAAW,aAAK,KAAK,GAAG,QAAQ,KAAK,CAAC,gBAAgBA,gCAAa"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/lib/container/options.d.ts
|
|
2
|
+
type ContainerOptionsFormat<T> = (string | Record<string, string | string[] | T>)[] | Record<string, string | string[] | T>;
|
|
2
3
|
/**
|
|
3
4
|
* @template T
|
|
4
5
|
* @template R
|
|
@@ -7,11 +8,14 @@ export type ContainerOptionsFormat<T> = (string | Record<string, string | string
|
|
|
7
8
|
* @param {function(T, string) : R} normalizeOptions normalize a complex item
|
|
8
9
|
* @returns {[string, R][]} parsed options
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
|
+
declare function parseOptions<T, R>(options: ContainerOptionsFormat<T>, normalizeSimple: (item: string | string[], name: string) => R, normalizeOptions: (item: T, name: string) => R): [string, R][];
|
|
11
12
|
/**
|
|
12
13
|
* @template T
|
|
13
14
|
* @param {string} scope scope name
|
|
14
15
|
* @param {ContainerOptionsFormat<T>} options options passed by the user
|
|
15
16
|
* @returns {Record<string, string | string[] | T>} options to spread or pass
|
|
16
17
|
*/
|
|
17
|
-
|
|
18
|
+
declare function scope<T>(scope: string, options: ContainerOptionsFormat<T>): Record<string, string | string[] | T>;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { ContainerOptionsFormat, parseOptions, scope };
|
|
21
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -1,80 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.js');
|
|
3
|
+
|
|
4
|
+
//#region src/lib/container/options.ts
|
|
5
5
|
/** @template T @typedef {(string | Record<string, string | string[] | T>)[] | Record<string, string | string[] | T>} ContainerOptionsFormat */
|
|
6
6
|
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
* @template T
|
|
8
|
+
* @template N
|
|
9
|
+
* @param {ContainerOptionsFormat<T>} options options passed by the user
|
|
10
|
+
* @param {function(string | string[], string) : N} normalizeSimple normalize a simple item
|
|
11
|
+
* @param {function(T, string) : N} normalizeOptions normalize a complex item
|
|
12
|
+
* @param {function(string, N): void} fn processing function
|
|
13
|
+
* @returns {void}
|
|
14
|
+
*/
|
|
15
15
|
const process = (options, normalizeSimple, normalizeOptions, fn) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const object = (obj) => {
|
|
30
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
31
|
-
if (typeof value === 'string' || Array.isArray(value)) {
|
|
32
|
-
fn(key, normalizeSimple(value, key));
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
fn(key, normalizeOptions(value, key));
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
if (!options) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
else if (Array.isArray(options)) {
|
|
43
|
-
array(options);
|
|
44
|
-
}
|
|
45
|
-
else if (typeof options === 'object') {
|
|
46
|
-
object(options);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
throw new Error('Unexpected options format');
|
|
50
|
-
}
|
|
16
|
+
const array = (items) => {
|
|
17
|
+
for (const item of items) if (typeof item === "string") fn(item, normalizeSimple(item, item));
|
|
18
|
+
else if (item && typeof item === "object") object(item);
|
|
19
|
+
else throw new Error("Unexpected options format");
|
|
20
|
+
};
|
|
21
|
+
const object = (obj) => {
|
|
22
|
+
for (const [key, value] of Object.entries(obj)) if (typeof value === "string" || Array.isArray(value)) fn(key, normalizeSimple(value, key));
|
|
23
|
+
else fn(key, normalizeOptions(value, key));
|
|
24
|
+
};
|
|
25
|
+
if (!options) return;
|
|
26
|
+
else if (Array.isArray(options)) array(options);
|
|
27
|
+
else if (typeof options === "object") object(options);
|
|
28
|
+
else throw new Error("Unexpected options format");
|
|
51
29
|
};
|
|
52
30
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
31
|
+
* @template T
|
|
32
|
+
* @template R
|
|
33
|
+
* @param {ContainerOptionsFormat<T>} options options passed by the user
|
|
34
|
+
* @param {function(string | string[], string) : R} normalizeSimple normalize a simple item
|
|
35
|
+
* @param {function(T, string) : R} normalizeOptions normalize a complex item
|
|
36
|
+
* @returns {[string, R][]} parsed options
|
|
37
|
+
*/
|
|
60
38
|
function parseOptions(options, normalizeSimple, normalizeOptions) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
39
|
+
const items = [];
|
|
40
|
+
process(options, normalizeSimple, normalizeOptions, (key, value) => {
|
|
41
|
+
items.push([key, value]);
|
|
42
|
+
});
|
|
43
|
+
return items;
|
|
66
44
|
}
|
|
67
45
|
/**
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
46
|
+
* @template T
|
|
47
|
+
* @param {string} scope scope name
|
|
48
|
+
* @param {ContainerOptionsFormat<T>} options options passed by the user
|
|
49
|
+
* @returns {Record<string, string | string[] | T>} options to spread or pass
|
|
50
|
+
*/
|
|
73
51
|
function scope(scope, options) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
52
|
+
const obj = {};
|
|
53
|
+
process(options, (item) => item, (item) => item, (key, value) => {
|
|
54
|
+
obj[key.startsWith("./") ? `${scope}${key.slice(1)}` : `${scope}/${key}`] = value;
|
|
55
|
+
});
|
|
56
|
+
return obj;
|
|
79
57
|
}
|
|
58
|
+
|
|
59
|
+
//#endregion
|
|
60
|
+
exports.parseOptions = parseOptions;
|
|
61
|
+
exports.scope = scope;
|
|
80
62
|
//# sourceMappingURL=options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","
|
|
1
|
+
{"version":3,"file":"options.js","names":[],"sources":["../../../../src/lib/container/options.ts"],"sourcesContent":["/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy\n*/\nexport type ContainerOptionsFormat<T> =\n | (string | Record<string, string | string[] | T>)[]\n | Record<string, string | string[] | T>;\n\n/** @template T @typedef {(string | Record<string, string | string[] | T>)[] | Record<string, string | string[] | T>} ContainerOptionsFormat */\n\n/**\n * @template T\n * @template N\n * @param {ContainerOptionsFormat<T>} options options passed by the user\n * @param {function(string | string[], string) : N} normalizeSimple normalize a simple item\n * @param {function(T, string) : N} normalizeOptions normalize a complex item\n * @param {function(string, N): void} fn processing function\n * @returns {void}\n */\nconst process = <T, N>(\n options: ContainerOptionsFormat<T>,\n normalizeSimple: (item: string | string[], name: string) => N,\n normalizeOptions: (item: T, name: string) => N,\n fn: (name: string, item: N) => void,\n): void => {\n const array = (\n items: (string | Record<string, string | string[] | T>)[],\n ): void => {\n for (const item of items) {\n if (typeof item === 'string') {\n fn(item, normalizeSimple(item, item));\n } else if (item && typeof item === 'object') {\n object(item as Record<string, string | string[] | T>);\n } else {\n throw new Error('Unexpected options format');\n }\n }\n };\n const object = (obj: Record<string, string | string[] | T>): void => {\n for (const [key, value] of Object.entries(obj)) {\n if (typeof value === 'string' || Array.isArray(value)) {\n fn(key, normalizeSimple(value, key));\n } else {\n fn(key, normalizeOptions(value as T, key));\n }\n }\n };\n if (!options) {\n return;\n } else if (Array.isArray(options)) {\n array(options);\n } else if (typeof options === 'object') {\n object(options);\n } else {\n throw new Error('Unexpected options format');\n }\n};\n\n/**\n * @template T\n * @template R\n * @param {ContainerOptionsFormat<T>} options options passed by the user\n * @param {function(string | string[], string) : R} normalizeSimple normalize a simple item\n * @param {function(T, string) : R} normalizeOptions normalize a complex item\n * @returns {[string, R][]} parsed options\n */\nexport function parseOptions<T, R>(\n options: ContainerOptionsFormat<T>,\n normalizeSimple: (item: string | string[], name: string) => R,\n normalizeOptions: (item: T, name: string) => R,\n): [string, R][] {\n const items: [string, R][] = [];\n process(options, normalizeSimple, normalizeOptions, (key, value) => {\n items.push([key, value]);\n });\n return items;\n}\n\n/**\n * @template T\n * @param {string} scope scope name\n * @param {ContainerOptionsFormat<T>} options options passed by the user\n * @returns {Record<string, string | string[] | T>} options to spread or pass\n */\nexport function scope<T>(\n scope: string,\n options: ContainerOptionsFormat<T>,\n): Record<string, string | string[] | T> {\n const obj: Record<string, string | string[] | T> = {};\n process(\n options,\n (item) => item as string | string[] | T,\n (item) => item as string | string[] | T,\n (key, value) => {\n obj[\n key.startsWith('./') ? `${scope}${key.slice(1)}` : `${scope}/${key}`\n ] = value;\n },\n );\n return obj;\n}\n"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAM,WACJ,SACA,iBACA,kBACA,OACS;CACT,MAAM,SACJ,UACS;AACT,OAAK,MAAM,QAAQ,MACjB,KAAI,OAAO,SAAS,SAClB,IAAG,MAAM,gBAAgB,MAAM,KAAK,CAAC;WAC5B,QAAQ,OAAO,SAAS,SACjC,QAAO,KAA8C;MAErD,OAAM,IAAI,MAAM,4BAA4B;;CAIlD,MAAM,UAAU,QAAqD;AACnE,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,CAC5C,KAAI,OAAO,UAAU,YAAY,MAAM,QAAQ,MAAM,CACnD,IAAG,KAAK,gBAAgB,OAAO,IAAI,CAAC;MAEpC,IAAG,KAAK,iBAAiB,OAAY,IAAI,CAAC;;AAIhD,KAAI,CAAC,QACH;UACS,MAAM,QAAQ,QAAQ,CAC/B,OAAM,QAAQ;UACL,OAAO,YAAY,SAC5B,QAAO,QAAQ;KAEf,OAAM,IAAI,MAAM,4BAA4B;;;;;;;;;;AAYhD,SAAgB,aACd,SACA,iBACA,kBACe;CACf,MAAM,QAAuB,EAAE;AAC/B,SAAQ,SAAS,iBAAiB,mBAAmB,KAAK,UAAU;AAClE,QAAM,KAAK,CAAC,KAAK,MAAM,CAAC;GACxB;AACF,QAAO;;;;;;;;AAST,SAAgB,MACd,OACA,SACuC;CACvC,MAAM,MAA6C,EAAE;AACrD,SACE,UACC,SAAS,OACT,SAAS,OACT,KAAK,UAAU;AACd,MACE,IAAI,WAAW,KAAK,GAAG,GAAG,QAAQ,IAAI,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,SAC7D;GAEP;AACD,QAAO"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import ContainerEntryDependency from
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import ContainerEntryDependency from "../ContainerEntryDependency.js";
|
|
2
|
+
import FederationRuntimeDependency from "./FederationRuntimeDependency.js";
|
|
3
|
+
import * as webpack$1 from "webpack";
|
|
4
|
+
|
|
5
|
+
//#region src/lib/container/runtime/EmbedFederationRuntimeModule.d.ts
|
|
6
|
+
declare const RuntimeModule: typeof webpack$1.RuntimeModule;
|
|
4
7
|
declare class EmbedFederationRuntimeModule extends RuntimeModule {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
private containerEntrySet;
|
|
9
|
+
_cachedGeneratedCode: string | undefined;
|
|
10
|
+
constructor(containerEntrySet: Set<ContainerEntryDependency | FederationRuntimeDependency>);
|
|
11
|
+
identifier(): string;
|
|
12
|
+
generate(): string | null;
|
|
10
13
|
}
|
|
11
|
-
|
|
14
|
+
//#endregion
|
|
15
|
+
export { EmbedFederationRuntimeModule as default };
|
|
16
|
+
//# sourceMappingURL=EmbedFederationRuntimeModule.d.ts.map
|
|
@@ -1,66 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
` console.warn('[Module Federation] prevStartup is not a function, skipping startup execution');`,
|
|
58
|
-
`}`,
|
|
59
|
-
])};`,
|
|
60
|
-
]);
|
|
61
|
-
this._cachedGeneratedCode = result;
|
|
62
|
-
return result;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
|
|
3
|
+
let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
|
|
4
|
+
|
|
5
|
+
//#region src/lib/container/runtime/EmbedFederationRuntimeModule.ts
|
|
6
|
+
const { RuntimeModule, Template, RuntimeGlobals } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
|
|
7
|
+
var EmbedFederationRuntimeModule = class extends RuntimeModule {
|
|
8
|
+
constructor(containerEntrySet) {
|
|
9
|
+
super("embed federation", RuntimeModule.STAGE_ATTACH);
|
|
10
|
+
this.containerEntrySet = containerEntrySet;
|
|
11
|
+
this._cachedGeneratedCode = void 0;
|
|
12
|
+
}
|
|
13
|
+
identifier() {
|
|
14
|
+
return "webpack/runtime/embed/federation";
|
|
15
|
+
}
|
|
16
|
+
generate() {
|
|
17
|
+
if (this._cachedGeneratedCode !== void 0) return this._cachedGeneratedCode;
|
|
18
|
+
const { compilation, chunk, chunkGraph } = this;
|
|
19
|
+
if (!chunk || !chunkGraph || !compilation) return null;
|
|
20
|
+
let found;
|
|
21
|
+
if (chunk.name) for (const dep of this.containerEntrySet) {
|
|
22
|
+
const mod = compilation.moduleGraph.getModule(dep);
|
|
23
|
+
if (mod && compilation.chunkGraph.isModuleInChunk(mod, chunk)) {
|
|
24
|
+
found = mod;
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (!found) return null;
|
|
29
|
+
const initRuntimeModuleGetter = compilation.runtimeTemplate.moduleRaw({
|
|
30
|
+
module: found,
|
|
31
|
+
chunkGraph,
|
|
32
|
+
request: found.request,
|
|
33
|
+
weak: false,
|
|
34
|
+
runtimeRequirements: /* @__PURE__ */ new Set()
|
|
35
|
+
});
|
|
36
|
+
const result = Template.asString([
|
|
37
|
+
`var prevStartup = ${RuntimeGlobals.startup};`,
|
|
38
|
+
`var hasRun = false;`,
|
|
39
|
+
`${RuntimeGlobals.startup} = ${compilation.runtimeTemplate.basicFunction("", [
|
|
40
|
+
`if (!hasRun) {`,
|
|
41
|
+
` hasRun = true;`,
|
|
42
|
+
` ${initRuntimeModuleGetter};`,
|
|
43
|
+
`}`,
|
|
44
|
+
`if (typeof prevStartup === 'function') {`,
|
|
45
|
+
` return prevStartup();`,
|
|
46
|
+
`} else {`,
|
|
47
|
+
` console.warn('[Module Federation] prevStartup is not a function, skipping startup execution');`,
|
|
48
|
+
`}`
|
|
49
|
+
])};`
|
|
50
|
+
]);
|
|
51
|
+
this._cachedGeneratedCode = result;
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
65
57
|
exports.default = EmbedFederationRuntimeModule;
|
|
66
58
|
//# sourceMappingURL=EmbedFederationRuntimeModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbedFederationRuntimeModule.js","
|
|
1
|
+
{"version":3,"file":"EmbedFederationRuntimeModule.js","names":[],"sources":["../../../../../src/lib/container/runtime/EmbedFederationRuntimeModule.ts"],"sourcesContent":["/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Zackary Jackson @ScriptedAlchemy\n*/\nimport { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport ContainerEntryDependency from '../ContainerEntryDependency';\n\nimport type { NormalModule as NormalModuleType } from 'webpack';\nimport type FederationRuntimeDependency from './FederationRuntimeDependency';\n\nconst { RuntimeModule, Template, RuntimeGlobals } = require(\n normalizeWebpackPath('webpack'),\n) as typeof import('webpack');\n\nclass EmbedFederationRuntimeModule extends RuntimeModule {\n private containerEntrySet: Set<\n ContainerEntryDependency | FederationRuntimeDependency\n >;\n public override _cachedGeneratedCode: string | undefined;\n\n constructor(\n containerEntrySet: Set<\n ContainerEntryDependency | FederationRuntimeDependency\n >,\n ) {\n super('embed federation', RuntimeModule.STAGE_ATTACH);\n this.containerEntrySet = containerEntrySet;\n this._cachedGeneratedCode = undefined;\n }\n\n override identifier() {\n return 'webpack/runtime/embed/federation';\n }\n\n override generate(): string | null {\n if (this._cachedGeneratedCode !== undefined) {\n return this._cachedGeneratedCode;\n }\n const { compilation, chunk, chunkGraph } = this;\n if (!chunk || !chunkGraph || !compilation) {\n return null;\n }\n let found;\n if (chunk.name) {\n for (const dep of this.containerEntrySet) {\n const mod = compilation.moduleGraph.getModule(dep);\n if (mod && compilation.chunkGraph.isModuleInChunk(mod, chunk)) {\n found = mod as NormalModuleType;\n break;\n }\n }\n }\n if (!found) {\n return null;\n }\n const initRuntimeModuleGetter = compilation.runtimeTemplate.moduleRaw({\n module: found,\n chunkGraph,\n request: found.request,\n weak: false,\n runtimeRequirements: new Set(),\n });\n\n const result = Template.asString([\n `var prevStartup = ${RuntimeGlobals.startup};`,\n `var hasRun = false;`,\n `${RuntimeGlobals.startup} = ${compilation.runtimeTemplate.basicFunction(\n '',\n [\n `if (!hasRun) {`,\n ` hasRun = true;`,\n ` ${initRuntimeModuleGetter};`,\n `}`,\n `if (typeof prevStartup === 'function') {`,\n ` return prevStartup();`,\n `} else {`,\n ` console.warn('[Module Federation] prevStartup is not a function, skipping startup execution');`,\n `}`,\n ],\n )};`,\n ]);\n this._cachedGeneratedCode = result;\n return result;\n }\n}\nexport default EmbedFederationRuntimeModule;\n"],"mappings":";;;;;AAUA,MAAM,EAAE,eAAe,UAAU,mBAAmB,gFAC7B,UAAU,CAChC;AAED,IAAM,+BAAN,cAA2C,cAAc;CAMvD,YACE,mBAGA;AACA,QAAM,oBAAoB,cAAc,aAAa;AACrD,OAAK,oBAAoB;AACzB,OAAK,uBAAuB;;CAG9B,AAAS,aAAa;AACpB,SAAO;;CAGT,AAAS,WAA0B;AACjC,MAAI,KAAK,yBAAyB,OAChC,QAAO,KAAK;EAEd,MAAM,EAAE,aAAa,OAAO,eAAe;AAC3C,MAAI,CAAC,SAAS,CAAC,cAAc,CAAC,YAC5B,QAAO;EAET,IAAI;AACJ,MAAI,MAAM,KACR,MAAK,MAAM,OAAO,KAAK,mBAAmB;GACxC,MAAM,MAAM,YAAY,YAAY,UAAU,IAAI;AAClD,OAAI,OAAO,YAAY,WAAW,gBAAgB,KAAK,MAAM,EAAE;AAC7D,YAAQ;AACR;;;AAIN,MAAI,CAAC,MACH,QAAO;EAET,MAAM,0BAA0B,YAAY,gBAAgB,UAAU;GACpE,QAAQ;GACR;GACA,SAAS,MAAM;GACf,MAAM;GACN,qCAAqB,IAAI,KAAK;GAC/B,CAAC;EAEF,MAAM,SAAS,SAAS,SAAS;GAC/B,qBAAqB,eAAe,QAAQ;GAC5C;GACA,GAAG,eAAe,QAAQ,KAAK,YAAY,gBAAgB,cACzD,IACA;IACE;IACA;IACA,KAAK,wBAAwB;IAC7B;IACA;IACA;IACA;IACA;IACA;IACD,CACF,CAAC;GACH,CAAC;AACF,OAAK,uBAAuB;AAC5B,SAAO"}
|
|
@@ -1,27 +1,31 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Compiler } from "webpack";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/container/runtime/EmbedFederationRuntimePlugin.d.ts
|
|
2
4
|
interface EmbedFederationRuntimePluginOptions {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Whether to enable runtime module embedding for all chunks.
|
|
7
|
+
* If false, only chunks that explicitly require it will be embedded.
|
|
8
|
+
*/
|
|
9
|
+
enableForAllChunks?: boolean;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* Plugin that embeds Module Federation runtime code into chunks.
|
|
11
13
|
* It ensures proper initialization of federated modules and manages runtime requirements.
|
|
12
14
|
*/
|
|
13
15
|
declare class EmbedFederationRuntimePlugin {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
private readonly options;
|
|
17
|
+
private readonly processedChunks;
|
|
18
|
+
constructor(options?: EmbedFederationRuntimePluginOptions);
|
|
19
|
+
/**
|
|
20
|
+
* Determines if runtime embedding should be enabled for a given chunk.
|
|
21
|
+
*/
|
|
22
|
+
private isEnabledForChunk;
|
|
23
|
+
/**
|
|
24
|
+
* Checks if a hook has already been tapped by this plugin.
|
|
25
|
+
*/
|
|
26
|
+
private isHookAlreadyTapped;
|
|
27
|
+
apply(compiler: Compiler): void;
|
|
26
28
|
}
|
|
27
|
-
|
|
29
|
+
//#endregion
|
|
30
|
+
export { EmbedFederationRuntimePlugin as default };
|
|
31
|
+
//# sourceMappingURL=EmbedFederationRuntimePlugin.d.ts.map
|