@module-federation/enhanced 2.1.0 → 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.
- package/dist/CHANGELOG.md +2357 -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 +20 -13
- 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":"ProvideSharedPlugin.js","sourceRoot":"","sources":["../../../../src/lib/sharing/ProvideSharedPlugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProvideSharedPlugin.js","names":["createSchemaValidation","parseOptions","FederationRuntimePlugin","createLookupKeyForSharing","testRequestFilters","extractPathAfterNodeModules","ProvideSharedDependency","ProvideForSharedDependency","ProvideSharedModuleFactory","getRequiredVersionFromDescriptionFile"],"sources":["../../../../src/lib/sharing/ProvideSharedPlugin.ts"],"sourcesContent":["/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra and Zackary Jackson @ScriptedAlchemy\n*/\n\n'use strict';\nimport {\n getWebpackPath,\n normalizeWebpackPath,\n} from '@module-federation/sdk/normalize-webpack-path';\nimport type {\n Compiler,\n Compilation,\n WebpackError as WebpackErrorType,\n} from 'webpack';\nimport { parseOptions } from '../container/options';\nimport ProvideForSharedDependency from './ProvideForSharedDependency';\nimport ProvideSharedDependency from './ProvideSharedDependency';\nimport ProvideSharedModuleFactory from './ProvideSharedModuleFactory';\nimport type { provideSharedPlugin } from '@module-federation/sdk';\ntype ProvideSharedPluginOptions =\n provideSharedPlugin.ProvideSharedPluginOptions;\ntype ProvidesConfig = provideSharedPlugin.ProvidesConfig;\nimport FederationRuntimePlugin from '../container/runtime/FederationRuntimePlugin';\nimport { createSchemaValidation } from '../../utils';\nimport path from 'path';\nconst { satisfy, parseRange } = require(\n normalizeWebpackPath('webpack/lib/util/semver'),\n) as typeof import('webpack/lib/util/semver');\nimport {\n addSingletonFilterWarning,\n testRequestFilters,\n createLookupKeyForSharing,\n extractPathAfterNodeModules,\n getRequiredVersionFromDescriptionFile,\n} from './utils';\nconst WebpackError = require(\n normalizeWebpackPath('webpack/lib/WebpackError'),\n) as typeof import('webpack/lib/WebpackError');\n\nexport type ResolvedProvideMap = Map<\n string,\n {\n config: ProvidesConfig;\n version: string | undefined | false;\n resource?: string;\n layer?: string;\n }\n>;\n\nconst validate = createSchemaValidation(\n //eslint-disable-next-line\n require('../../schemas/sharing/ProvideSharedPlugin.check.js').validate,\n () => require('../../schemas/sharing/ProvideSharedPlugin').default,\n {\n name: 'Provide Shared Plugin',\n baseDataPath: 'options',\n },\n);\n\n/**\n * @typedef {Object} ProvideOptions\n * @property {string} shareKey\n * @property {string | string[]} shareScope\n * @property {string | undefined | false} version\n * @property {boolean} eager\n * @property {string} [request] The actual request to use for importing the module\n * @property {{ version?: string; request?: string | RegExp; fallbackVersion?: string }} [exclude] Options for excluding certain versions or requests\n * @property {{ version?: string; request?: string | RegExp; fallbackVersion?: string }} [include] Options for including only certain versions or requests\n */\n\n/** @typedef {Map<string, { config: ProvideOptions, version: string | undefined | false }>} ResolvedProvideMap */\n\nclass ProvideSharedPlugin {\n private _provides: [string, ProvidesConfig][];\n\n /**\n * @param {ProvideSharedPluginOptions} options options\n */\n constructor(options: ProvideSharedPluginOptions) {\n validate(options);\n\n this._provides = parseOptions(\n options.provides,\n (item): ProvidesConfig => {\n if (Array.isArray(item))\n throw new Error('Unexpected array of provides');\n const result: ProvidesConfig = {\n shareKey: item,\n version: undefined,\n shareScope: options.shareScope || 'default',\n eager: false,\n requiredVersion: false,\n strictVersion: false,\n singleton: false,\n layer: undefined,\n request: item,\n exclude: undefined,\n include: undefined,\n allowNodeModulesSuffixMatch: false,\n treeShakingMode: undefined,\n };\n return result;\n },\n (item, key): ProvidesConfig => {\n const request = item.request || key;\n return {\n shareScope: item.shareScope || options.shareScope || 'default',\n shareKey: item.shareKey || request,\n version: item.version,\n eager: !!item.eager,\n requiredVersion: item.requiredVersion,\n strictVersion: item.strictVersion,\n singleton: !!item.singleton,\n layer: item.layer,\n request,\n exclude: item.exclude,\n include: item.include,\n allowNodeModulesSuffixMatch: !!item.allowNodeModulesSuffixMatch,\n treeShakingMode: item.treeShakingMode,\n };\n },\n );\n this._provides.sort(([a], [b]) => {\n if (a < b) return -1;\n if (b < a) return 1;\n return 0;\n });\n }\n\n /**\n * Apply the plugin\n * @param {Compiler} compiler the compiler instance\n * @returns {void}\n */\n apply(compiler: Compiler): void {\n new FederationRuntimePlugin().apply(compiler);\n process.env['FEDERATION_WEBPACK_PATH'] =\n process.env['FEDERATION_WEBPACK_PATH'] || getWebpackPath(compiler);\n\n const compilationData: WeakMap<Compilation, ResolvedProvideMap> =\n new WeakMap();\n\n compiler.hooks.compilation.tap(\n 'ProvideSharedPlugin',\n (compilation: Compilation, { normalModuleFactory }) => {\n const resolvedProvideMap: ResolvedProvideMap = new Map();\n const matchProvides: Map<string, ProvidesConfig> = new Map();\n const prefixMatchProvides: Map<string, ProvidesConfig> = new Map();\n\n for (const [request, config] of this._provides) {\n const actualRequest = config.request || request;\n const lookupKey = createLookupKeyForSharing(\n actualRequest,\n config.layer,\n );\n if (/^(\\/|[A-Za-z]:\\\\|\\\\\\\\|\\.\\.?(\\/|$))/.test(actualRequest)) {\n // relative request - apply filtering if include/exclude are defined\n if (this.shouldProvideSharedModule(config)) {\n resolvedProvideMap.set(lookupKey, {\n config,\n version: config.version,\n resource: actualRequest,\n });\n }\n } else if (/^(\\/|[A-Za-z]:\\\\|\\\\\\\\)/.test(actualRequest)) {\n // absolute path - apply filtering if include/exclude are defined\n if (this.shouldProvideSharedModule(config)) {\n resolvedProvideMap.set(lookupKey, {\n config,\n version: config.version,\n resource: actualRequest,\n });\n }\n } else if (actualRequest.endsWith('/')) {\n prefixMatchProvides.set(lookupKey, config);\n } else {\n matchProvides.set(lookupKey, config);\n }\n }\n\n compilationData.set(compilation, resolvedProvideMap);\n normalModuleFactory.hooks.module.tap(\n 'ProvideSharedPlugin',\n (module, { resource, resourceResolveData }, resolveData) => {\n const moduleLayer = module.layer;\n const lookupKeyForResource = createLookupKeyForSharing(\n resource || '',\n moduleLayer || undefined,\n );\n\n if (resource && resolvedProvideMap.has(lookupKeyForResource)) {\n return module;\n }\n\n const { request: originalRequestString } = resolveData;\n\n // --- Stage 1a: Direct match with originalRequestString ---\n const originalRequestLookupKey = createLookupKeyForSharing(\n originalRequestString,\n moduleLayer || undefined,\n );\n const configFromOriginalDirect = matchProvides.get(\n originalRequestLookupKey,\n );\n\n if (\n configFromOriginalDirect !== undefined &&\n resource &&\n !resolvedProvideMap.has(lookupKeyForResource)\n ) {\n // Apply request filters if defined (from PR5's cleaner approach)\n if (\n testRequestFilters(\n originalRequestString,\n configFromOriginalDirect.include?.request,\n configFromOriginalDirect.exclude?.request,\n )\n ) {\n this.provideSharedModule(\n compilation,\n resolvedProvideMap,\n originalRequestString,\n configFromOriginalDirect,\n resource,\n resourceResolveData,\n );\n resolveData.cacheable = false;\n }\n }\n\n // --- Stage 1b: Prefix match with originalRequestString ---\n if (resource && !resolvedProvideMap.has(lookupKeyForResource)) {\n for (const [\n prefixLookupKey,\n originalPrefixConfig,\n ] of prefixMatchProvides) {\n const configuredPrefix =\n originalPrefixConfig.request || prefixLookupKey.split('?')[0];\n\n // Refined layer matching logic\n if (originalPrefixConfig.layer) {\n if (!moduleLayer) {\n continue; // Option is layered, request is not: skip\n }\n if (moduleLayer !== originalPrefixConfig.layer) {\n continue; // Both are layered but do not match: skip\n }\n }\n // If moduleLayer exists but config.layer does not, allow (non-layered option matches layered request)\n\n if (originalRequestString.startsWith(configuredPrefix)) {\n if (resolvedProvideMap.has(lookupKeyForResource)) continue;\n\n const remainder = originalRequestString.slice(\n configuredPrefix.length,\n );\n\n if (\n !testRequestFilters(\n remainder,\n originalPrefixConfig.include?.request,\n originalPrefixConfig.exclude?.request,\n )\n ) {\n continue;\n }\n\n const finalShareKey = originalPrefixConfig.shareKey\n ? originalPrefixConfig.shareKey + remainder\n : configuredPrefix + remainder;\n\n // Validate singleton usage when using include.request\n if (\n originalPrefixConfig.include?.request &&\n originalPrefixConfig.singleton\n ) {\n addSingletonFilterWarning(\n compilation,\n finalShareKey,\n 'include',\n 'request',\n originalPrefixConfig.include.request,\n originalRequestString,\n resource,\n );\n }\n\n // Validate singleton usage when using exclude.request\n if (\n originalPrefixConfig.exclude?.request &&\n originalPrefixConfig.singleton\n ) {\n addSingletonFilterWarning(\n compilation,\n finalShareKey,\n 'exclude',\n 'request',\n originalPrefixConfig.exclude.request,\n originalRequestString,\n resource,\n );\n }\n const configForSpecificModule: ProvidesConfig = {\n ...originalPrefixConfig,\n shareKey: finalShareKey,\n request: originalRequestString,\n _originalPrefix: configuredPrefix, // Store the original prefix for filtering\n include: originalPrefixConfig.include\n ? { ...originalPrefixConfig.include }\n : undefined,\n exclude: originalPrefixConfig.exclude\n ? { ...originalPrefixConfig.exclude }\n : undefined,\n };\n\n this.provideSharedModule(\n compilation,\n resolvedProvideMap,\n originalRequestString,\n configForSpecificModule,\n resource,\n resourceResolveData,\n );\n resolveData.cacheable = false;\n break;\n }\n }\n }\n\n // --- Stage 2: Match using reconstructed node_modules path ---\n if (resource && !resolvedProvideMap.has(lookupKeyForResource)) {\n const modulePathAfterNodeModules =\n extractPathAfterNodeModules(resource);\n\n if (modulePathAfterNodeModules) {\n // 2a. Direct match with reconstructed path\n const reconstructedLookupKey = createLookupKeyForSharing(\n modulePathAfterNodeModules,\n moduleLayer || undefined,\n );\n const configFromReconstructedDirect = matchProvides.get(\n reconstructedLookupKey,\n );\n\n if (\n configFromReconstructedDirect !== undefined &&\n configFromReconstructedDirect.allowNodeModulesSuffixMatch &&\n !resolvedProvideMap.has(lookupKeyForResource)\n ) {\n this.provideSharedModule(\n compilation,\n resolvedProvideMap,\n modulePathAfterNodeModules,\n configFromReconstructedDirect,\n resource,\n resourceResolveData,\n );\n resolveData.cacheable = false;\n }\n\n // 2b. Prefix match with reconstructed path\n if (resource && !resolvedProvideMap.has(lookupKeyForResource)) {\n for (const [\n prefixLookupKey,\n originalPrefixConfig,\n ] of prefixMatchProvides) {\n if (!originalPrefixConfig.allowNodeModulesSuffixMatch) {\n continue;\n }\n const configuredPrefix =\n originalPrefixConfig.request ||\n prefixLookupKey.split('?')[0];\n\n // Refined layer matching logic for reconstructed path\n if (originalPrefixConfig.layer) {\n if (!moduleLayer) {\n continue; // Option is layered, request is not: skip\n }\n if (moduleLayer !== originalPrefixConfig.layer) {\n continue; // Both are layered but do not match: skip\n }\n }\n // If moduleLayer exists but config.layer does not, allow (non-layered option matches layered request)\n\n if (\n modulePathAfterNodeModules.startsWith(configuredPrefix)\n ) {\n if (resolvedProvideMap.has(lookupKeyForResource))\n continue;\n\n const remainder = modulePathAfterNodeModules.slice(\n configuredPrefix.length,\n );\n if (\n !testRequestFilters(\n remainder,\n originalPrefixConfig.include?.request,\n originalPrefixConfig.exclude?.request,\n )\n ) {\n continue;\n }\n\n const finalShareKey = originalPrefixConfig.shareKey\n ? originalPrefixConfig.shareKey + remainder\n : configuredPrefix + remainder;\n\n // Validate singleton usage when using include.request\n if (\n originalPrefixConfig.include?.request &&\n originalPrefixConfig.singleton\n ) {\n addSingletonFilterWarning(\n compilation,\n finalShareKey,\n 'include',\n 'request',\n originalPrefixConfig.include.request,\n modulePathAfterNodeModules,\n resource,\n );\n }\n\n // Validate singleton usage when using exclude.request\n if (\n originalPrefixConfig.exclude?.request &&\n originalPrefixConfig.singleton\n ) {\n addSingletonFilterWarning(\n compilation,\n finalShareKey,\n 'exclude',\n 'request',\n originalPrefixConfig.exclude.request,\n modulePathAfterNodeModules,\n resource,\n );\n }\n const configForSpecificModule: ProvidesConfig = {\n ...originalPrefixConfig,\n shareKey: finalShareKey,\n request: modulePathAfterNodeModules,\n _originalPrefix: configuredPrefix, // Store the original prefix for filtering\n include: originalPrefixConfig.include\n ? {\n ...originalPrefixConfig.include,\n }\n : undefined,\n exclude: originalPrefixConfig.exclude\n ? {\n ...originalPrefixConfig.exclude,\n }\n : undefined,\n };\n\n this.provideSharedModule(\n compilation,\n resolvedProvideMap,\n modulePathAfterNodeModules,\n configForSpecificModule,\n resource,\n resourceResolveData,\n );\n resolveData.cacheable = false;\n break;\n }\n }\n }\n }\n }\n\n return module;\n },\n );\n },\n );\n compiler.hooks.finishMake.tapPromise(\n 'ProvideSharedPlugin',\n async (compilation: Compilation) => {\n const resolvedProvideMap = compilationData.get(compilation);\n if (!resolvedProvideMap) return;\n\n // Filter out modules that don't pass include/exclude conditions\n const filteredEntries = Array.from(resolvedProvideMap).filter(\n ([resourceKey, { config, version, resource }]) => {\n // Apply the same filtering logic as in provideSharedModule\n const actualResource = resource || resourceKey;\n\n // Check include conditions\n if (config.include) {\n let versionIncludeFailed = false;\n if (typeof config.include.version === 'string') {\n if (typeof version === 'string' && version) {\n if (!satisfy(parseRange(config.include.version), version)) {\n versionIncludeFailed = true;\n }\n } else {\n versionIncludeFailed = true;\n }\n }\n\n let requestIncludeFailed = false;\n if (config.include.request) {\n const includeRequestValue = config.include.request;\n // For prefix matches, we need to check the remainder after the prefix\n let testString = actualResource;\n\n // If this is a prefix match (indicated by _originalPrefix being present)\n // then we should test against the remainder\n if (\n config._originalPrefix &&\n actualResource.startsWith(config._originalPrefix)\n ) {\n const remainder = actualResource.slice(\n config._originalPrefix.length,\n );\n testString = remainder;\n }\n\n const requestActuallyMatches =\n includeRequestValue instanceof RegExp\n ? includeRequestValue.test(testString)\n : testString === includeRequestValue;\n if (!requestActuallyMatches) {\n requestIncludeFailed = true;\n }\n }\n\n // Skip if any specified include condition failed\n const shouldSkipVersion =\n typeof config.include.version === 'string' &&\n versionIncludeFailed;\n const shouldSkipRequest =\n config.include.request && requestIncludeFailed;\n\n if (shouldSkipVersion || shouldSkipRequest) {\n return false;\n }\n }\n\n // Check exclude conditions\n if (config.exclude) {\n let versionExcludeMatches = false;\n if (\n typeof config.exclude.version === 'string' &&\n typeof version === 'string' &&\n version\n ) {\n if (satisfy(parseRange(config.exclude.version), version)) {\n versionExcludeMatches = true;\n }\n }\n\n let requestExcludeMatches = false;\n if (config.exclude.request) {\n const excludeRequestValue = config.exclude.request;\n // For prefix matches, we need to check the remainder after the prefix\n let testString = actualResource;\n\n // If this is a prefix match (indicated by _originalPrefix being present)\n // then we should test against the remainder\n if (\n config._originalPrefix &&\n actualResource.startsWith(config._originalPrefix)\n ) {\n const remainder = actualResource.slice(\n config._originalPrefix.length,\n );\n testString = remainder;\n }\n\n const requestActuallyMatchesExclude =\n excludeRequestValue instanceof RegExp\n ? excludeRequestValue.test(testString)\n : testString === excludeRequestValue;\n if (requestActuallyMatchesExclude) {\n requestExcludeMatches = true;\n }\n }\n\n // Skip if any specified exclude condition matched\n if (versionExcludeMatches || requestExcludeMatches) {\n return false;\n }\n }\n\n return true;\n },\n );\n\n await Promise.all(\n filteredEntries.map(\n ([resourceKey, { config, version, resource }]) => {\n return new Promise<void>((resolve, reject) => {\n compilation.addInclude(\n compiler.context,\n new ProvideSharedDependency(\n config.shareScope!,\n config.shareKey!,\n version || false,\n resource || resourceKey,\n config.eager!,\n config.requiredVersion!,\n config.strictVersion!,\n config.singleton!,\n config.layer,\n config.treeShakingMode,\n ),\n {\n name: undefined,\n },\n (err?: WebpackErrorType | null | undefined) => {\n if (err) {\n return reject(err);\n }\n resolve();\n },\n );\n });\n },\n ),\n );\n },\n );\n\n compiler.hooks.compilation.tap(\n 'ProvideSharedPlugin',\n (compilation: Compilation, { normalModuleFactory }) => {\n compilation.dependencyFactories.set(\n ProvideForSharedDependency,\n normalModuleFactory,\n );\n\n compilation.dependencyFactories.set(\n ProvideSharedDependency,\n new ProvideSharedModuleFactory(),\n );\n },\n );\n }\n\n private provideSharedModule(\n compilation: Compilation,\n resolvedProvideMap: ResolvedProvideMap,\n key: string,\n config: ProvidesConfig,\n resource: string,\n resourceResolveData: any,\n ): void {\n let version = config.version;\n if (version === undefined) {\n let details = '';\n if (!resourceResolveData) {\n details = `No resolve data provided from resolver.`;\n } else {\n const descriptionFileData = resourceResolveData.descriptionFileData;\n if (!descriptionFileData) {\n details =\n 'No description file (usually package.json) found. Add description file with name and version, or manually specify version in shared config.';\n } else if (!descriptionFileData.version) {\n // Try to get version from parent package.json dependencies (PR7 enhanced feature)\n if (resourceResolveData.descriptionFilePath) {\n try {\n // fs is now imported at the top of the file\n const path = require('path');\n const fs = require('fs');\n const parentPkgPath = path.resolve(\n path.dirname(resourceResolveData.descriptionFilePath),\n '..',\n 'package.json',\n );\n if (fs.existsSync(parentPkgPath)) {\n const parentPkg = JSON.parse(\n fs.readFileSync(parentPkgPath, 'utf8'),\n );\n const parentVersion = getRequiredVersionFromDescriptionFile(\n parentPkg,\n key,\n );\n if (parentVersion) {\n version = parentVersion;\n details = `Using version from parent package.json dependencies: ${version}`;\n } else {\n details = `No version in description file (usually package.json). Add version to description file ${resourceResolveData.descriptionFilePath}, or manually specify version in shared config.`;\n }\n } else {\n details = `No version in description file (usually package.json). Add version to description file ${resourceResolveData.descriptionFilePath}, or manually specify version in shared config.`;\n }\n } catch (e) {\n details = `No version in description file (usually package.json). Add version to description file ${resourceResolveData.descriptionFilePath}, or manually specify version in shared config.`;\n }\n } else {\n details = `No version in description file (usually package.json). Add version to description file ${resourceResolveData.descriptionFilePath}, or manually specify version in shared config.`;\n }\n } else {\n version = descriptionFileData.version;\n }\n }\n if (!version) {\n const error = new WebpackError(\n `No version specified and unable to automatically determine one. ${details}`,\n );\n error.file = `shared module ${key} -> ${resource}`;\n compilation.warnings.push(error);\n }\n }\n\n // Check include/exclude conditions\n if (config.include) {\n let versionIncludeFailed = false;\n if (typeof config.include.version === 'string') {\n if (typeof version === 'string' && version) {\n if (!satisfy(parseRange(config.include.version), version)) {\n versionIncludeFailed = true;\n }\n } else {\n versionIncludeFailed = true;\n }\n }\n\n let requestIncludeFailed = false;\n if (config.include.request) {\n const includeRequestValue = config.include.request;\n const requestActuallyMatches =\n includeRequestValue instanceof RegExp\n ? includeRequestValue.test(resource)\n : resource === includeRequestValue;\n if (!requestActuallyMatches) {\n requestIncludeFailed = true;\n }\n }\n\n // Skip if any specified include condition failed\n const shouldSkipVersion =\n typeof config.include.version === 'string' && versionIncludeFailed;\n const shouldSkipRequest = config.include.request && requestIncludeFailed;\n\n if (shouldSkipVersion || shouldSkipRequest) {\n // Generate warning for better debugging (combining both approaches)\n if (shouldSkipVersion) {\n const error = new WebpackError(\n `Provided module \"${key}\" version \"${version}\" does not satisfy include filter \"${config.include.version}\"`,\n );\n error.file = `shared module ${key} -> ${resource}`;\n compilation.warnings.push(error);\n }\n return;\n }\n\n // Validate singleton usage when using include.version\n if (config.include.version && config.singleton) {\n addSingletonFilterWarning(\n compilation,\n config.shareKey || key,\n 'include',\n 'version',\n config.include.version,\n key, // moduleRequest\n resource, // moduleResource\n );\n }\n }\n\n if (config.exclude) {\n let versionExcludeMatches = false;\n if (\n typeof config.exclude.version === 'string' &&\n typeof version === 'string' &&\n version\n ) {\n if (satisfy(parseRange(config.exclude.version), version)) {\n versionExcludeMatches = true;\n }\n }\n\n let requestExcludeMatches = false;\n if (config.exclude.request) {\n const excludeRequestValue = config.exclude.request;\n const requestActuallyMatchesExclude =\n excludeRequestValue instanceof RegExp\n ? excludeRequestValue.test(resource)\n : resource === excludeRequestValue;\n if (requestActuallyMatchesExclude) {\n requestExcludeMatches = true;\n }\n }\n\n // Skip if any specified exclude condition matched\n if (versionExcludeMatches || requestExcludeMatches) {\n // Generate warning for better debugging (combining both approaches)\n if (versionExcludeMatches) {\n const error = new WebpackError(\n `Provided module \"${key}\" version \"${version}\" matches exclude filter \"${config.exclude.version}\"`,\n );\n error.file = `shared module ${key} -> ${resource}`;\n compilation.warnings.push(error);\n }\n return;\n }\n\n // Validate singleton usage when using exclude.version\n if (config.exclude.version && config.singleton) {\n addSingletonFilterWarning(\n compilation,\n config.shareKey || key,\n 'exclude',\n 'version',\n config.exclude.version,\n key, // moduleRequest\n resource, // moduleResource\n );\n }\n }\n\n const lookupKey = createLookupKeyForSharing(resource, config.layer);\n resolvedProvideMap.set(lookupKey, {\n config,\n version,\n resource,\n layer: config.layer,\n });\n }\n\n private shouldProvideSharedModule(config: ProvidesConfig): boolean {\n // For static (relative/absolute path) modules, we can only check version filters\n // if the version is explicitly provided in the config\n if (!config.version) {\n // If no version is provided and there are version filters,\n // we'll defer to runtime filtering\n return true;\n }\n\n const version = config.version;\n if (typeof version !== 'string') {\n return true;\n }\n\n // Check include version filter\n if (config.include?.version) {\n const includeVersion = config.include.version;\n if (typeof includeVersion === 'string') {\n if (!satisfy(parseRange(includeVersion), version)) {\n return false; // Skip providing this module\n }\n }\n }\n\n // Check exclude version filter\n if (config.exclude?.version) {\n const excludeVersion = config.exclude.version;\n if (typeof excludeVersion === 'string') {\n if (satisfy(parseRange(excludeVersion), version)) {\n return false; // Skip providing this module\n }\n }\n }\n\n return true; // All filters pass\n }\n}\nexport default ProvideSharedPlugin;\n"],"mappings":"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"}
|
|
@@ -1,53 +1,57 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
1
|
+
import { moduleFederationPlugin, sharePlugin } from "@module-federation/sdk";
|
|
2
|
+
import { Compiler } from "webpack";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/sharing/SharePlugin.d.ts
|
|
5
|
+
type SharedConfig = moduleFederationPlugin.SharedConfig;
|
|
6
|
+
type NormalizedSharedOptions = [string, SharedConfig][];
|
|
7
|
+
declare function normalizeSharedOptions(shared: moduleFederationPlugin.Shared): NormalizedSharedOptions;
|
|
8
|
+
declare function createConsumeShareOptions(normalizedSharedOptions: NormalizedSharedOptions): {
|
|
9
|
+
[x: string]: {
|
|
10
|
+
import: string | false | undefined;
|
|
11
|
+
shareKey: string;
|
|
12
|
+
shareScope: string | string[] | undefined;
|
|
13
|
+
requiredVersion: string | false | undefined;
|
|
14
|
+
strictVersion: boolean | undefined;
|
|
15
|
+
singleton: boolean | undefined;
|
|
16
|
+
packageName: string | undefined;
|
|
17
|
+
eager: boolean | undefined;
|
|
18
|
+
issuerLayer: string | undefined;
|
|
19
|
+
layer: string | undefined;
|
|
20
|
+
request: string;
|
|
21
|
+
exclude: moduleFederationPlugin.IncludeExcludeOptions | undefined;
|
|
22
|
+
include: moduleFederationPlugin.IncludeExcludeOptions | undefined;
|
|
23
|
+
allowNodeModulesSuffixMatch: boolean | undefined;
|
|
24
|
+
treeShakingMode: any;
|
|
25
|
+
};
|
|
24
26
|
}[];
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
27
|
+
declare function createProvideShareOptions(normalizedSharedOptions: NormalizedSharedOptions): {
|
|
28
|
+
[x: string]: {
|
|
29
|
+
shareKey: string;
|
|
30
|
+
shareScope: string | string[] | undefined;
|
|
31
|
+
version: string | false | undefined;
|
|
32
|
+
eager: boolean | undefined;
|
|
33
|
+
requiredVersion: string | false | undefined;
|
|
34
|
+
strictVersion: boolean | undefined;
|
|
35
|
+
singleton: boolean | undefined;
|
|
36
|
+
layer: string | undefined;
|
|
37
|
+
request: string;
|
|
38
|
+
exclude: moduleFederationPlugin.IncludeExcludeOptions | undefined;
|
|
39
|
+
include: moduleFederationPlugin.IncludeExcludeOptions | undefined;
|
|
40
|
+
allowNodeModulesSuffixMatch: boolean | undefined;
|
|
41
|
+
treeShakingMode: any;
|
|
42
|
+
};
|
|
41
43
|
}[];
|
|
42
44
|
declare class SharePlugin {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
private _shareScope;
|
|
46
|
+
private _consumes;
|
|
47
|
+
private _provides;
|
|
48
|
+
constructor(options: sharePlugin.SharePluginOptions);
|
|
49
|
+
/**
|
|
50
|
+
* Applies the plugin to the webpack compiler instance
|
|
51
|
+
* @param compiler - The webpack compiler instance
|
|
52
|
+
*/
|
|
53
|
+
apply(compiler: Compiler): void;
|
|
52
54
|
}
|
|
53
|
-
|
|
55
|
+
//#endregion
|
|
56
|
+
export { NormalizedSharedOptions, createConsumeShareOptions, createProvideShareOptions, SharePlugin as default, normalizeSharedOptions };
|
|
57
|
+
//# sourceMappingURL=SharePlugin.d.ts.map
|
|
@@ -1,110 +1,96 @@
|
|
|
1
|
-
/*
|
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
-
Author Tobias Koppers @sokra and Zackary Jackson @ScriptedAlchemy
|
|
4
|
-
*/
|
|
5
1
|
'use strict';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const validate = (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
name: 'Share Plugin',
|
|
23
|
-
baseDataPath: 'options',
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.js');
|
|
5
|
+
const require_lib_container_options = require('../container/options.js');
|
|
6
|
+
const require_utils = require('../../utils.js');
|
|
7
|
+
const require_lib_sharing_ConsumeSharedPlugin = require('./ConsumeSharedPlugin.js');
|
|
8
|
+
const require_lib_sharing_ProvideSharedPlugin = require('./ProvideSharedPlugin.js');
|
|
9
|
+
const require_schemas_sharing_SharePlugin_check = require('../../schemas/sharing/SharePlugin.check.js');
|
|
10
|
+
const require_schemas_sharing_SharePlugin = require('../../schemas/sharing/SharePlugin.js');
|
|
11
|
+
let _module_federation_sdk = require("@module-federation/sdk");
|
|
12
|
+
let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
|
|
13
|
+
|
|
14
|
+
//#region src/lib/sharing/SharePlugin.ts
|
|
15
|
+
const validate = require_utils.createSchemaValidation((require_schemas_sharing_SharePlugin_check.init_SharePlugin_check(), require_runtime.__toCommonJS(require_schemas_sharing_SharePlugin_check.SharePlugin_check_exports)).validate, () => (require_schemas_sharing_SharePlugin.init_SharePlugin(), require_runtime.__toCommonJS(require_schemas_sharing_SharePlugin.SharePlugin_exports)).default, {
|
|
16
|
+
name: "Share Plugin",
|
|
17
|
+
baseDataPath: "options"
|
|
24
18
|
});
|
|
25
19
|
function normalizeSharedOptions(shared) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
: {
|
|
34
|
-
import: key,
|
|
35
|
-
requiredVersion: item,
|
|
36
|
-
};
|
|
37
|
-
return config;
|
|
38
|
-
}, (item) => item);
|
|
20
|
+
return require_lib_container_options.parseOptions(shared, (item, key) => {
|
|
21
|
+
if (typeof item !== "string") throw new Error(`Unexpected array in shared configuration for key "${key}"`);
|
|
22
|
+
return item === key || !(0, _module_federation_sdk.isRequiredVersion)(item) ? { import: item } : {
|
|
23
|
+
import: key,
|
|
24
|
+
requiredVersion: item
|
|
25
|
+
};
|
|
26
|
+
}, (item) => item);
|
|
39
27
|
}
|
|
40
28
|
function createConsumeShareOptions(normalizedSharedOptions) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
},
|
|
59
|
-
}));
|
|
29
|
+
return normalizedSharedOptions.map(([key, options]) => ({ [key]: {
|
|
30
|
+
import: options.import,
|
|
31
|
+
shareKey: options.shareKey || key,
|
|
32
|
+
shareScope: options.shareScope,
|
|
33
|
+
requiredVersion: options.requiredVersion,
|
|
34
|
+
strictVersion: options.strictVersion,
|
|
35
|
+
singleton: options.singleton,
|
|
36
|
+
packageName: options.packageName,
|
|
37
|
+
eager: options.eager,
|
|
38
|
+
issuerLayer: options.issuerLayer,
|
|
39
|
+
layer: options.layer,
|
|
40
|
+
request: options.request || key,
|
|
41
|
+
exclude: options.exclude,
|
|
42
|
+
include: options.include,
|
|
43
|
+
allowNodeModulesSuffixMatch: options.allowNodeModulesSuffixMatch,
|
|
44
|
+
treeShakingMode: options.treeShaking?.mode
|
|
45
|
+
} }));
|
|
60
46
|
}
|
|
61
47
|
function createProvideShareOptions(normalizedSharedOptions) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
allowNodeModulesSuffixMatch: options.allowNodeModulesSuffixMatch,
|
|
78
|
-
treeShakingMode: options.treeShaking?.mode,
|
|
79
|
-
},
|
|
80
|
-
}));
|
|
81
|
-
}
|
|
82
|
-
class SharePlugin {
|
|
83
|
-
constructor(options) {
|
|
84
|
-
validate(options);
|
|
85
|
-
const sharedOptions = normalizeSharedOptions(options.shared);
|
|
86
|
-
const consumes = createConsumeShareOptions(sharedOptions);
|
|
87
|
-
const provides = createProvideShareOptions(sharedOptions);
|
|
88
|
-
this._shareScope = options.shareScope || 'default';
|
|
89
|
-
this._consumes = consumes;
|
|
90
|
-
this._provides = provides;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Applies the plugin to the webpack compiler instance
|
|
94
|
-
* @param compiler - The webpack compiler instance
|
|
95
|
-
*/
|
|
96
|
-
apply(compiler) {
|
|
97
|
-
process.env['FEDERATION_WEBPACK_PATH'] =
|
|
98
|
-
process.env['FEDERATION_WEBPACK_PATH'] || (0, normalize_webpack_path_1.getWebpackPath)(compiler);
|
|
99
|
-
new ConsumeSharedPlugin_1.default({
|
|
100
|
-
shareScope: this._shareScope,
|
|
101
|
-
consumes: this._consumes,
|
|
102
|
-
}).apply(compiler);
|
|
103
|
-
new ProvideSharedPlugin_1.default({
|
|
104
|
-
shareScope: this._shareScope,
|
|
105
|
-
provides: this._provides,
|
|
106
|
-
}).apply(compiler);
|
|
107
|
-
}
|
|
48
|
+
return normalizedSharedOptions.filter(([, options]) => options.import !== false).map(([key, options]) => ({ [options.import || key]: {
|
|
49
|
+
shareKey: options.shareKey || key,
|
|
50
|
+
shareScope: options.shareScope,
|
|
51
|
+
version: options.version,
|
|
52
|
+
eager: options.eager,
|
|
53
|
+
requiredVersion: options.requiredVersion,
|
|
54
|
+
strictVersion: options.strictVersion,
|
|
55
|
+
singleton: options.singleton,
|
|
56
|
+
layer: options.layer,
|
|
57
|
+
request: options.request || options.import || key,
|
|
58
|
+
exclude: options.exclude,
|
|
59
|
+
include: options.include,
|
|
60
|
+
allowNodeModulesSuffixMatch: options.allowNodeModulesSuffixMatch,
|
|
61
|
+
treeShakingMode: options.treeShaking?.mode
|
|
62
|
+
} }));
|
|
108
63
|
}
|
|
64
|
+
var SharePlugin = class {
|
|
65
|
+
constructor(options) {
|
|
66
|
+
validate(options);
|
|
67
|
+
const sharedOptions = normalizeSharedOptions(options.shared);
|
|
68
|
+
const consumes = createConsumeShareOptions(sharedOptions);
|
|
69
|
+
const provides = createProvideShareOptions(sharedOptions);
|
|
70
|
+
this._shareScope = options.shareScope || "default";
|
|
71
|
+
this._consumes = consumes;
|
|
72
|
+
this._provides = provides;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Applies the plugin to the webpack compiler instance
|
|
76
|
+
* @param compiler - The webpack compiler instance
|
|
77
|
+
*/
|
|
78
|
+
apply(compiler) {
|
|
79
|
+
process.env["FEDERATION_WEBPACK_PATH"] = process.env["FEDERATION_WEBPACK_PATH"] || (0, _module_federation_sdk_normalize_webpack_path.getWebpackPath)(compiler);
|
|
80
|
+
new require_lib_sharing_ConsumeSharedPlugin.default({
|
|
81
|
+
shareScope: this._shareScope,
|
|
82
|
+
consumes: this._consumes
|
|
83
|
+
}).apply(compiler);
|
|
84
|
+
new require_lib_sharing_ProvideSharedPlugin.default({
|
|
85
|
+
shareScope: this._shareScope,
|
|
86
|
+
provides: this._provides
|
|
87
|
+
}).apply(compiler);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
//#endregion
|
|
92
|
+
exports.createConsumeShareOptions = createConsumeShareOptions;
|
|
93
|
+
exports.createProvideShareOptions = createProvideShareOptions;
|
|
109
94
|
exports.default = SharePlugin;
|
|
95
|
+
exports.normalizeSharedOptions = normalizeSharedOptions;
|
|
110
96
|
//# sourceMappingURL=SharePlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharePlugin.js","
|
|
1
|
+
{"version":3,"file":"SharePlugin.js","names":["createSchemaValidation","parseOptions","ConsumeSharedPlugin","ProvideSharedPlugin"],"sources":["../../../../src/lib/sharing/SharePlugin.ts"],"sourcesContent":["/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra and Zackary Jackson @ScriptedAlchemy\n*/\n\n'use strict';\nimport type { Compiler } from 'webpack';\nimport { isRequiredVersion } from '@module-federation/sdk';\nimport type {\n sharePlugin,\n moduleFederationPlugin,\n consumeSharedPlugin,\n provideSharedPlugin,\n} from '@module-federation/sdk';\ntype SharedConfig = moduleFederationPlugin.SharedConfig;\ntype ConsumesConfig = consumeSharedPlugin.ConsumesConfig;\ntype ProvidesConfig = provideSharedPlugin.ProvidesConfig;\nimport { parseOptions } from '../container/options';\nimport ConsumeSharedPlugin from './ConsumeSharedPlugin';\nimport ProvideSharedPlugin from './ProvideSharedPlugin';\nimport { getWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport { createSchemaValidation } from '../../utils';\n\nconst validate = createSchemaValidation(\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require('../../schemas/sharing/SharePlugin.check.js').validate,\n () => require('../../schemas/sharing/SharePlugin').default,\n {\n name: 'Share Plugin',\n baseDataPath: 'options',\n },\n);\n\nexport type NormalizedSharedOptions = [string, SharedConfig][];\n\nexport function normalizeSharedOptions(\n shared: moduleFederationPlugin.Shared,\n): NormalizedSharedOptions {\n return parseOptions(\n shared,\n (item, key) => {\n if (typeof item !== 'string')\n throw new Error(\n `Unexpected array in shared configuration for key \"${key}\"`,\n );\n const config: SharedConfig =\n item === key || !isRequiredVersion(item)\n ? {\n import: item,\n }\n : {\n import: key,\n requiredVersion: item,\n };\n return config;\n },\n (item) => item,\n );\n}\n\nexport function createConsumeShareOptions(\n normalizedSharedOptions: NormalizedSharedOptions,\n) {\n return normalizedSharedOptions.map(([key, options]) => ({\n [key]: {\n import: options.import,\n shareKey: options.shareKey || key,\n shareScope: options.shareScope,\n requiredVersion: options.requiredVersion,\n strictVersion: options.strictVersion,\n singleton: options.singleton,\n packageName: options.packageName,\n eager: options.eager,\n issuerLayer: options.issuerLayer,\n layer: options.layer,\n request: options.request || key,\n exclude: options.exclude,\n include: options.include,\n allowNodeModulesSuffixMatch: options.allowNodeModulesSuffixMatch,\n treeShakingMode: options.treeShaking?.mode,\n },\n }));\n}\n\nexport function createProvideShareOptions(\n normalizedSharedOptions: NormalizedSharedOptions,\n) {\n return normalizedSharedOptions\n .filter(([, options]) => options.import !== false)\n .map(([key, options]) => ({\n [options.import || key]: {\n shareKey: options.shareKey || key,\n shareScope: options.shareScope,\n version: options.version,\n eager: options.eager,\n requiredVersion: options.requiredVersion,\n strictVersion: options.strictVersion,\n singleton: options.singleton,\n layer: options.layer,\n request: options.request || options.import || key,\n exclude: options.exclude,\n include: options.include,\n allowNodeModulesSuffixMatch: options.allowNodeModulesSuffixMatch,\n treeShakingMode: options.treeShaking?.mode,\n },\n }));\n}\n\nclass SharePlugin {\n private _shareScope: string | string[];\n private _consumes: Record<string, ConsumesConfig>[];\n private _provides: Record<string, ProvidesConfig>[];\n\n constructor(options: sharePlugin.SharePluginOptions) {\n validate(options);\n\n const sharedOptions: [string, SharedConfig][] = normalizeSharedOptions(\n options.shared,\n );\n const consumes: Record<string, ConsumesConfig>[] =\n createConsumeShareOptions(sharedOptions);\n const provides: Record<string, ProvidesConfig>[] =\n createProvideShareOptions(sharedOptions);\n\n this._shareScope = options.shareScope || 'default';\n this._consumes = consumes;\n this._provides = provides;\n }\n\n /**\n * Applies the plugin to the webpack compiler instance\n * @param compiler - The webpack compiler instance\n */\n apply(compiler: Compiler): void {\n process.env['FEDERATION_WEBPACK_PATH'] =\n process.env['FEDERATION_WEBPACK_PATH'] || getWebpackPath(compiler);\n new ConsumeSharedPlugin({\n shareScope: this._shareScope,\n consumes: this._consumes,\n }).apply(compiler);\n\n new ProvideSharedPlugin({\n shareScope: this._shareScope,\n provides: this._provides,\n }).apply(compiler);\n }\n}\n\nexport default SharePlugin;\n"],"mappings":";;;;;;;;;;;;;;AAuBA,MAAM,WAAWA,6MAEuC,gKACH,SACnD;CACE,MAAM;CACN,cAAc;CACf,CACF;AAID,SAAgB,uBACd,QACyB;AACzB,QAAOC,2CACL,SACC,MAAM,QAAQ;AACb,MAAI,OAAO,SAAS,SAClB,OAAM,IAAI,MACR,qDAAqD,IAAI,GAC1D;AAUH,SARE,SAAS,OAAO,+CAAmB,KAAK,GACpC,EACE,QAAQ,MACT,GACD;GACE,QAAQ;GACR,iBAAiB;GAClB;KAGR,SAAS,KACX;;AAGH,SAAgB,0BACd,yBACA;AACA,QAAO,wBAAwB,KAAK,CAAC,KAAK,cAAc,GACrD,MAAM;EACL,QAAQ,QAAQ;EAChB,UAAU,QAAQ,YAAY;EAC9B,YAAY,QAAQ;EACpB,iBAAiB,QAAQ;EACzB,eAAe,QAAQ;EACvB,WAAW,QAAQ;EACnB,aAAa,QAAQ;EACrB,OAAO,QAAQ;EACf,aAAa,QAAQ;EACrB,OAAO,QAAQ;EACf,SAAS,QAAQ,WAAW;EAC5B,SAAS,QAAQ;EACjB,SAAS,QAAQ;EACjB,6BAA6B,QAAQ;EACrC,iBAAiB,QAAQ,aAAa;EACvC,EACF,EAAE;;AAGL,SAAgB,0BACd,yBACA;AACA,QAAO,wBACJ,QAAQ,GAAG,aAAa,QAAQ,WAAW,MAAM,CACjD,KAAK,CAAC,KAAK,cAAc,GACvB,QAAQ,UAAU,MAAM;EACvB,UAAU,QAAQ,YAAY;EAC9B,YAAY,QAAQ;EACpB,SAAS,QAAQ;EACjB,OAAO,QAAQ;EACf,iBAAiB,QAAQ;EACzB,eAAe,QAAQ;EACvB,WAAW,QAAQ;EACnB,OAAO,QAAQ;EACf,SAAS,QAAQ,WAAW,QAAQ,UAAU;EAC9C,SAAS,QAAQ;EACjB,SAAS,QAAQ;EACjB,6BAA6B,QAAQ;EACrC,iBAAiB,QAAQ,aAAa;EACvC,EACF,EAAE;;AAGP,IAAM,cAAN,MAAkB;CAKhB,YAAY,SAAyC;AACnD,WAAS,QAAQ;EAEjB,MAAM,gBAA0C,uBAC9C,QAAQ,OACT;EACD,MAAM,WACJ,0BAA0B,cAAc;EAC1C,MAAM,WACJ,0BAA0B,cAAc;AAE1C,OAAK,cAAc,QAAQ,cAAc;AACzC,OAAK,YAAY;AACjB,OAAK,YAAY;;;;;;CAOnB,MAAM,UAA0B;AAC9B,UAAQ,IAAI,6BACV,QAAQ,IAAI,gGAA6C,SAAS;AACpE,MAAIC,gDAAoB;GACtB,YAAY,KAAK;GACjB,UAAU,KAAK;GAChB,CAAC,CAAC,MAAM,SAAS;AAElB,MAAIC,gDAAoB;GACtB,YAAY,KAAK;GACjB,UAAU,KAAK;GAChB,CAAC,CAAC,MAAM,SAAS"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import * as webpack$1 from "webpack";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/sharing/ShareRuntimeModule.d.ts
|
|
4
|
+
declare const RuntimeModule: typeof webpack$1.RuntimeModule;
|
|
2
5
|
declare class ShareRuntimeModule extends RuntimeModule {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
constructor();
|
|
7
|
+
/**
|
|
8
|
+
* @returns {string | null} runtime code
|
|
9
|
+
*/
|
|
10
|
+
generate(): string | null;
|
|
8
11
|
}
|
|
9
|
-
|
|
12
|
+
//#endregion
|
|
13
|
+
export { ShareRuntimeModule as default };
|
|
14
|
+
//# sourceMappingURL=ShareRuntimeModule.d.ts.map
|