webpack 5.59.0 → 5.94.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/README.md +48 -38
- package/bin/webpack.js +34 -10
- package/hot/dev-server.js +19 -5
- package/hot/lazy-compilation-node.js +13 -1
- package/hot/lazy-compilation-web.js +9 -0
- package/hot/log-apply-result.js +5 -0
- package/hot/log.js +23 -4
- package/hot/only-dev-server.js +3 -2
- package/hot/poll.js +5 -2
- package/hot/signal.js +6 -2
- package/lib/APIPlugin.js +226 -122
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AsyncDependenciesBlock.js +13 -5
- package/lib/AutomaticPrefetchPlugin.js +2 -1
- package/lib/BannerPlugin.js +33 -12
- package/lib/Cache.js +16 -12
- package/lib/CacheFacade.js +13 -16
- package/lib/CaseSensitiveModulesWarning.js +8 -8
- package/lib/Chunk.js +60 -33
- package/lib/ChunkGraph.js +207 -72
- package/lib/ChunkGroup.js +40 -20
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +117 -32
- package/lib/CodeGenerationResults.js +8 -7
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/CompatibilityPlugin.js +85 -46
- package/lib/Compilation.js +712 -392
- package/lib/Compiler.js +393 -172
- package/lib/ConcatenationScope.js +10 -13
- package/lib/ConditionalInitFragment.js +22 -14
- package/lib/ConstPlugin.js +104 -64
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +283 -108
- package/lib/ContextModuleFactory.js +151 -63
- package/lib/ContextReplacementPlugin.js +25 -10
- package/lib/CssModule.js +166 -0
- package/lib/DefinePlugin.js +254 -148
- package/lib/DelegatedModule.js +29 -6
- package/lib/DelegatedModuleFactoryPlugin.js +42 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +17 -2
- package/lib/Dependency.js +58 -29
- package/lib/DependencyTemplate.js +24 -3
- package/lib/DependencyTemplates.js +2 -2
- package/lib/DllEntryPlugin.js +18 -1
- package/lib/DllModule.js +21 -4
- package/lib/DllModuleFactory.js +2 -1
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +50 -19
- package/lib/EntryOptionPlugin.js +6 -1
- package/lib/EntryPlugin.js +7 -4
- package/lib/Entrypoint.js +2 -2
- package/lib/EnvironmentNotSupportAsyncWarning.js +52 -0
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +65 -26
- package/lib/EvalDevToolModulePlugin.js +37 -13
- package/lib/EvalSourceMapDevToolPlugin.js +50 -20
- package/lib/ExportsInfo.js +234 -133
- package/lib/ExportsInfoApiPlugin.js +31 -15
- package/lib/ExternalModule.js +391 -129
- package/lib/ExternalModuleFactoryPlugin.js +65 -17
- package/lib/FileSystemInfo.js +1038 -523
- package/lib/FlagAllModulesAsUsedPlugin.js +27 -27
- package/lib/FlagDependencyExportsPlugin.js +352 -349
- package/lib/FlagDependencyUsagePlugin.js +10 -10
- package/lib/FlagEntryExportAsUsedPlugin.js +26 -23
- package/lib/Generator.js +16 -8
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +11 -13
- package/lib/HotModuleReplacementPlugin.js +221 -128
- package/lib/IgnoreErrorModuleFactory.js +4 -4
- package/lib/IgnorePlugin.js +5 -4
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +39 -15
- package/lib/JavascriptMetaInfoPlugin.js +27 -15
- package/lib/LibManifestPlugin.js +45 -16
- package/lib/LoaderOptionsPlugin.js +13 -3
- package/lib/MainTemplate.js +74 -21
- package/lib/Module.js +155 -34
- package/lib/ModuleBuildError.js +13 -11
- package/lib/ModuleDependencyError.js +6 -4
- package/lib/ModuleDependencyWarning.js +6 -4
- package/lib/ModuleError.js +10 -5
- package/lib/ModuleFactory.js +4 -4
- package/lib/ModuleFilenameHelpers.js +164 -54
- package/lib/ModuleGraph.js +93 -53
- package/lib/ModuleGraphConnection.js +27 -13
- package/lib/ModuleHashingError.js +29 -0
- package/lib/ModuleInfoHeaderPlugin.js +92 -33
- package/lib/ModuleNotFoundError.js +5 -2
- package/lib/ModuleParseError.js +17 -9
- package/lib/ModuleProfile.js +1 -0
- package/lib/ModuleRestoreError.js +3 -1
- package/lib/ModuleStoreError.js +3 -2
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +168 -0
- package/lib/ModuleWarning.js +10 -5
- package/lib/MultiCompiler.js +115 -38
- package/lib/MultiStats.js +75 -33
- package/lib/MultiWatching.js +6 -2
- package/lib/NodeStuffPlugin.js +136 -37
- package/lib/NormalModule.js +437 -194
- package/lib/NormalModuleFactory.js +313 -116
- package/lib/NormalModuleReplacementPlugin.js +10 -4
- package/lib/NullFactory.js +1 -1
- package/lib/OptimizationStages.js +3 -3
- package/lib/Parser.js +1 -1
- package/lib/PlatformPlugin.js +39 -0
- package/lib/PrefetchPlugin.js +4 -0
- package/lib/ProgressPlugin.js +83 -28
- package/lib/ProvidePlugin.js +37 -19
- package/lib/RawModule.js +18 -5
- package/lib/RecordIdsPlugin.js +8 -8
- package/lib/RequireJsStuffPlugin.js +22 -15
- package/lib/ResolverFactory.js +8 -4
- package/lib/RuntimeGlobals.js +99 -65
- package/lib/RuntimeModule.js +17 -15
- package/lib/RuntimePlugin.js +116 -13
- package/lib/RuntimeTemplate.js +304 -102
- package/lib/SelfModuleFactory.js +12 -0
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -0
- package/lib/SourceMapDevToolPlugin.js +89 -42
- package/lib/Stats.js +12 -7
- package/lib/Template.js +30 -33
- package/lib/TemplatedPathPlugin.js +102 -34
- package/lib/UseStrictPlugin.js +37 -12
- package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
- package/lib/WarnDeprecatedOptionPlugin.js +6 -0
- package/lib/WatchIgnorePlugin.js +46 -13
- package/lib/Watching.js +139 -76
- package/lib/WebpackError.js +14 -5
- package/lib/WebpackIsIncludedPlugin.js +22 -13
- package/lib/WebpackOptionsApply.js +162 -56
- package/lib/WebpackOptionsDefaulter.js +10 -3
- package/lib/asset/AssetGenerator.js +351 -99
- package/lib/asset/AssetModulesPlugin.js +57 -33
- package/lib/asset/AssetParser.js +15 -6
- package/lib/asset/AssetSourceGenerator.js +30 -10
- package/lib/asset/AssetSourceParser.js +8 -2
- package/lib/asset/RawDataUrlModule.js +162 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +16 -13
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +376 -420
- package/lib/cache/AddManagedPathsPlugin.js +6 -1
- package/lib/cache/IdleFileCachePlugin.js +26 -13
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +13 -7
- package/lib/cache/PackFileCacheStrategy.js +172 -94
- package/lib/cache/ResolverCachePlugin.js +115 -43
- package/lib/cache/getLazyHashedEtag.js +2 -2
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +195 -110
- package/lib/config/browserslistTargetHandler.js +106 -41
- package/lib/config/defaults.js +572 -154
- package/lib/config/normalization.js +361 -322
- package/lib/config/target.js +105 -66
- package/lib/container/ContainerEntryDependency.js +2 -1
- package/lib/container/ContainerEntryModule.js +27 -11
- package/lib/container/ContainerEntryModuleFactory.js +1 -1
- package/lib/container/ContainerExposedDependency.js +9 -0
- package/lib/container/ContainerPlugin.js +18 -12
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackDependency.js +13 -0
- package/lib/container/FallbackItemDependency.js +3 -0
- package/lib/container/FallbackModule.js +19 -8
- package/lib/container/FallbackModuleFactory.js +1 -1
- package/lib/container/ModuleFederationPlugin.js +2 -0
- package/lib/container/RemoteModule.js +17 -4
- package/lib/container/RemoteRuntimeModule.js +31 -17
- package/lib/container/RemoteToExternalDependency.js +3 -0
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +203 -0
- package/lib/css/CssGenerator.js +151 -0
- package/lib/css/CssLoadingRuntimeModule.js +592 -0
- package/lib/css/CssModulesPlugin.js +888 -0
- package/lib/css/CssParser.js +1049 -0
- package/lib/css/walkCssTokens.js +775 -0
- package/lib/debug/ProfilingPlugin.js +102 -54
- package/lib/dependencies/AMDDefineDependency.js +54 -10
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +204 -61
- package/lib/dependencies/AMDPlugin.js +44 -24
- package/lib/dependencies/AMDRequireArrayDependency.js +34 -10
- package/lib/dependencies/AMDRequireContextDependency.js +15 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +6 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +185 -54
- package/lib/dependencies/AMDRequireDependency.js +21 -6
- package/lib/dependencies/AMDRequireItemDependency.js +6 -0
- package/lib/dependencies/AMDRuntimeModules.js +4 -4
- package/lib/dependencies/CachedConstDependency.js +22 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +16 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +77 -47
- package/lib/dependencies/CommonJsExportsDependency.js +28 -5
- package/lib/dependencies/CommonJsExportsParserPlugin.js +111 -39
- package/lib/dependencies/CommonJsFullRequireDependency.js +42 -8
- package/lib/dependencies/CommonJsImportsParserPlugin.js +530 -130
- package/lib/dependencies/CommonJsPlugin.js +51 -26
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -2
- package/lib/dependencies/CommonJsRequireDependency.js +9 -1
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +22 -8
- package/lib/dependencies/ConstDependency.js +12 -3
- package/lib/dependencies/ContextDependency.js +32 -5
- package/lib/dependencies/ContextDependencyHelpers.js +92 -62
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -1
- package/lib/dependencies/ContextElementDependency.js +41 -4
- package/lib/dependencies/CreateScriptUrlDependency.js +22 -1
- package/lib/dependencies/CriticalDependencyWarning.js +4 -1
- package/lib/dependencies/CssExportDependency.js +156 -0
- package/lib/dependencies/CssImportDependency.js +125 -0
- package/lib/dependencies/CssLocalIdentifierDependency.js +245 -0
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +111 -0
- package/lib/dependencies/CssUrlDependency.js +164 -0
- package/lib/dependencies/DelegatedSourceDependency.js +3 -0
- package/lib/dependencies/DllEntryDependency.js +14 -0
- package/lib/dependencies/DynamicExports.js +15 -11
- package/lib/dependencies/ExportsInfoDependency.js +26 -5
- package/lib/dependencies/ExternalModuleDependency.js +109 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +133 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +11 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +9 -4
- package/lib/dependencies/HarmonyCompatibilityDependency.js +6 -5
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +29 -3
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +152 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +96 -51
- package/lib/dependencies/HarmonyExportExpressionDependency.js +21 -4
- package/lib/dependencies/HarmonyExportHeaderDependency.js +13 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +216 -108
- package/lib/dependencies/HarmonyExportInitFragment.js +21 -9
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +12 -0
- package/lib/dependencies/HarmonyExports.js +13 -7
- package/lib/dependencies/HarmonyImportDependency.js +65 -19
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +268 -74
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +11 -5
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +180 -36
- package/lib/dependencies/HarmonyModulesPlugin.js +33 -5
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -3
- package/lib/dependencies/ImportContextDependency.js +15 -2
- package/lib/dependencies/ImportDependency.js +50 -12
- package/lib/dependencies/ImportEagerDependency.js +11 -6
- package/lib/dependencies/ImportMetaContextDependency.js +42 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +301 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +72 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +6 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +6 -0
- package/lib/dependencies/ImportMetaPlugin.js +128 -59
- package/lib/dependencies/ImportParserPlugin.js +153 -83
- package/lib/dependencies/ImportPlugin.js +21 -7
- package/lib/dependencies/ImportWeakDependency.js +11 -6
- package/lib/dependencies/JsonExportsDependency.js +38 -30
- package/lib/dependencies/LoaderDependency.js +14 -0
- package/lib/dependencies/LoaderImportDependency.js +14 -0
- package/lib/dependencies/LoaderPlugin.js +54 -40
- package/lib/dependencies/LocalModule.js +17 -1
- package/lib/dependencies/LocalModuleDependency.js +15 -0
- package/lib/dependencies/LocalModulesHelpers.js +22 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +9 -1
- package/lib/dependencies/ModuleDependency.js +24 -7
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ModuleHotAcceptDependency.js +6 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +6 -0
- package/lib/dependencies/PrefetchDependency.js +3 -0
- package/lib/dependencies/ProvidedDependency.js +43 -8
- package/lib/dependencies/PureExpressionDependency.js +73 -39
- package/lib/dependencies/RequireContextDependency.js +6 -16
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +14 -6
- package/lib/dependencies/RequireContextPlugin.js +20 -7
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +7 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +29 -12
- package/lib/dependencies/RequireEnsureDependency.js +16 -2
- package/lib/dependencies/RequireEnsureItemDependency.js +3 -0
- package/lib/dependencies/RequireEnsurePlugin.js +27 -7
- package/lib/dependencies/RequireHeaderDependency.js +14 -1
- package/lib/dependencies/RequireIncludeDependency.js +6 -1
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +29 -5
- package/lib/dependencies/RequireIncludePlugin.js +25 -5
- package/lib/dependencies/RequireResolveContextDependency.js +19 -2
- package/lib/dependencies/RequireResolveDependency.js +8 -1
- package/lib/dependencies/RequireResolveHeaderDependency.js +18 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +9 -1
- package/lib/dependencies/StaticExportsDependency.js +8 -0
- package/lib/dependencies/SystemPlugin.js +49 -22
- package/lib/dependencies/SystemRuntimeModule.js +1 -1
- package/lib/dependencies/URLDependency.js +20 -13
- package/lib/dependencies/URLPlugin.js +115 -27
- package/lib/dependencies/UnsupportedDependency.js +13 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +14 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +9 -1
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -1
- package/lib/dependencies/WorkerDependency.js +47 -3
- package/lib/dependencies/WorkerPlugin.js +143 -59
- package/lib/dependencies/getFunctionExpression.js +9 -0
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +3 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +92 -55
- package/lib/esm/ModuleChunkLoadingPlugin.js +12 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +141 -25
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +37 -25
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +2 -1
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +13 -15
- package/lib/hmr/LazyCompilationPlugin.js +94 -41
- package/lib/hmr/lazyCompilationBackend.js +107 -44
- package/lib/ids/ChunkModuleIdRangePlugin.js +12 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +13 -6
- package/lib/ids/DeterministicModuleIdsPlugin.js +59 -35
- package/lib/ids/HashedModuleIdsPlugin.js +24 -16
- package/lib/ids/IdHelpers.js +59 -49
- package/lib/ids/NamedChunkIdsPlugin.js +13 -1
- package/lib/ids/NamedModuleIdsPlugin.js +20 -12
- package/lib/ids/NaturalModuleIdsPlugin.js +10 -13
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +14 -11
- package/lib/ids/SyncModuleIdsPlugin.js +146 -0
- package/lib/index.js +44 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +9 -7
- package/lib/javascript/BasicEvaluatedExpression.js +133 -19
- package/lib/javascript/ChunkHelpers.js +33 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +18 -15
- package/lib/javascript/EnableChunkLoadingPlugin.js +11 -6
- package/lib/javascript/JavascriptGenerator.js +37 -6
- package/lib/javascript/JavascriptModulesPlugin.js +523 -295
- package/lib/javascript/JavascriptParser.js +1591 -574
- package/lib/javascript/JavascriptParserHelpers.js +58 -37
- package/lib/javascript/StartupHelpers.js +69 -47
- package/lib/json/JsonData.js +33 -0
- package/lib/json/JsonGenerator.js +29 -21
- package/lib/json/JsonModulesPlugin.js +13 -7
- package/lib/json/JsonParser.js +30 -16
- package/lib/library/AbstractLibraryPlugin.js +6 -2
- package/lib/library/AmdLibraryPlugin.js +34 -18
- package/lib/library/AssignLibraryPlugin.js +68 -32
- package/lib/library/EnableLibraryPlugin.js +39 -14
- package/lib/library/ExportPropertyLibraryPlugin.js +14 -5
- package/lib/library/JsonpLibraryPlugin.js +4 -3
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +12 -7
- package/lib/library/SystemLibraryPlugin.js +6 -4
- package/lib/library/UmdLibraryPlugin.js +119 -100
- package/lib/logging/Logger.js +59 -6
- package/lib/logging/createConsoleLogger.js +25 -40
- package/lib/logging/runtime.js +8 -9
- package/lib/logging/truncateArgs.js +9 -8
- package/lib/node/CommonJsChunkLoadingPlugin.js +18 -2
- package/lib/node/NodeEnvironmentPlugin.js +14 -8
- package/lib/node/NodeTargetPlugin.js +7 -0
- package/lib/node/NodeTemplatePlugin.js +10 -2
- package/lib/node/NodeWatchFileSystem.js +100 -50
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +51 -26
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -2
- package/lib/node/ReadFileCompileWasmPlugin.js +21 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +49 -26
- package/lib/node/nodeConsole.js +48 -31
- package/lib/optimize/AggressiveMergingPlugin.js +10 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +26 -21
- package/lib/optimize/ConcatenatedModule.js +353 -212
- package/lib/optimize/EnsureChunkConditionsPlugin.js +4 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +14 -8
- package/lib/optimize/InnerGraph.js +30 -25
- package/lib/optimize/InnerGraphPlugin.js +105 -64
- package/lib/optimize/LimitChunkCountPlugin.js +32 -9
- package/lib/optimize/MangleExportsPlugin.js +7 -2
- package/lib/optimize/MinMaxSizeWarning.js +6 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +150 -83
- package/lib/optimize/RealContentHashPlugin.js +99 -43
- package/lib/optimize/RemoveParentModulesPlugin.js +131 -48
- package/lib/optimize/RuntimeChunkPlugin.js +15 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +119 -63
- package/lib/optimize/SplitChunksPlugin.js +129 -78
- package/lib/performance/SizeLimitsPlugin.js +22 -8
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +4 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +8 -5
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -3
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +5 -3
- package/lib/rules/BasicEffectRulePlugin.js +7 -1
- package/lib/rules/BasicMatcherRulePlugin.js +8 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +19 -2
- package/lib/rules/RuleSetCompiler.js +53 -32
- package/lib/rules/UseEffectRulePlugin.js +42 -36
- package/lib/runtime/AsyncModuleRuntimeModule.js +56 -69
- package/lib/runtime/AutoPublicPathRuntimeModule.js +25 -9
- package/lib/runtime/BaseUriRuntimeModule.js +35 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -1
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +5 -2
- package/lib/runtime/CompatRuntimeModule.js +7 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +38 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +13 -36
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -3
- package/lib/runtime/EnsureChunkRuntimeModule.js +29 -15
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +56 -43
- package/lib/runtime/GetFullHashRuntimeModule.js +4 -3
- package/lib/runtime/GetMainFilenameRuntimeModule.js +5 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +98 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +5 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +61 -45
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/NonceRuntimeModule.js +24 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -2
- package/lib/runtime/PublicPathRuntimeModule.js +9 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +5 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +6 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +15 -0
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +36 -28
- package/lib/runtime/StartupEntrypointRuntimeModule.js +13 -9
- package/lib/runtime/SystemContextRuntimeModule.js +1 -1
- package/lib/schemes/DataUriPlugin.js +16 -3
- package/lib/schemes/HttpUriPlugin.js +336 -120
- package/lib/serialization/ArraySerializer.js +22 -6
- package/lib/serialization/BinaryMiddleware.js +212 -33
- package/lib/serialization/DateObjectSerializer.js +16 -4
- package/lib/serialization/ErrorObjectSerializer.js +23 -6
- package/lib/serialization/FileMiddleware.js +187 -86
- package/lib/serialization/MapObjectSerializer.js +25 -8
- package/lib/serialization/NullPrototypeObjectSerializer.js +26 -8
- package/lib/serialization/ObjectMiddleware.js +96 -66
- package/lib/serialization/PlainObjectSerializer.js +51 -14
- package/lib/serialization/RegExpObjectSerializer.js +17 -5
- package/lib/serialization/Serializer.js +23 -5
- package/lib/serialization/SerializerMiddleware.js +8 -8
- package/lib/serialization/SetObjectSerializer.js +22 -6
- package/lib/serialization/SingleItemMiddleware.js +2 -2
- package/lib/serialization/types.js +2 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +3 -0
- package/lib/sharing/ConsumeSharedModule.js +40 -17
- package/lib/sharing/ConsumeSharedPlugin.js +139 -102
- package/lib/sharing/ConsumeSharedRuntimeModule.js +144 -130
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedDependency.js +17 -0
- package/lib/sharing/ProvideSharedModule.js +19 -6
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +37 -30
- package/lib/sharing/SharePlugin.js +2 -2
- package/lib/sharing/ShareRuntimeModule.js +20 -10
- package/lib/sharing/resolveMatchedConfigs.js +6 -5
- package/lib/sharing/utils.js +338 -34
- package/lib/stats/DefaultStatsFactoryPlugin.js +660 -396
- package/lib/stats/DefaultStatsPresetPlugin.js +85 -25
- package/lib/stats/DefaultStatsPrinterPlugin.js +525 -145
- package/lib/stats/StatsFactory.js +128 -57
- package/lib/stats/StatsPrinter.js +77 -46
- package/lib/util/ArrayHelpers.js +35 -1
- package/lib/util/ArrayQueue.js +15 -22
- package/lib/util/AsyncQueue.js +37 -16
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +11 -2
- package/lib/util/MapHelpers.js +17 -5
- package/lib/util/ParallelismFactorCalculator.js +11 -1
- package/lib/util/Queue.js +9 -3
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +19 -6
- package/lib/util/StackedCacheMap.js +33 -3
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +46 -0
- package/lib/util/TupleQueue.js +9 -3
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +8 -8
- package/lib/util/WeakTupleMap.js +70 -28
- package/lib/util/binarySearchBounds.js +51 -9
- package/lib/util/chainedImports.js +97 -0
- package/lib/util/cleverMerge.js +51 -36
- package/lib/util/comparators.js +146 -83
- package/lib/util/compileBooleanMatcher.js +35 -7
- package/lib/util/conventions.js +126 -0
- package/lib/util/create-schema-validation.js +9 -2
- package/lib/util/createHash.js +49 -14
- package/lib/util/deprecation.js +48 -15
- package/lib/util/deterministicGrouping.js +71 -39
- package/lib/util/extractUrlAndGlobal.js +3 -0
- package/lib/util/findGraphRoots.js +7 -5
- package/lib/util/fs.js +419 -94
- package/lib/util/hash/BatchedHash.js +10 -4
- package/lib/util/hash/md4.js +20 -0
- package/lib/util/hash/wasm-hash.js +163 -0
- package/lib/util/hash/xxhash64.js +7 -141
- package/lib/util/identifier.js +140 -93
- package/lib/util/internalSerializables.js +22 -0
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +10 -10
- package/lib/util/mergeScope.js +76 -0
- package/lib/util/nonNumericOnlyHash.js +22 -0
- package/lib/util/numberHash.js +84 -34
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/processAsyncTree.js +7 -1
- package/lib/util/propertyAccess.js +7 -55
- package/lib/util/propertyName.js +77 -0
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/runtime.js +188 -133
- package/lib/util/semver.js +64 -56
- package/lib/util/serialization.js +26 -1
- package/lib/util/smartGrouping.js +10 -10
- package/lib/util/source.js +1 -1
- package/lib/validateSchema.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +9 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +70 -30
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +9 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +34 -16
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +32 -12
- package/lib/wasm-async/AsyncWebAssemblyParser.js +17 -4
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +72 -31
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +17 -6
- package/lib/wasm-sync/WebAssemblyGenerator.js +72 -52
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +5 -4
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +53 -43
- package/lib/wasm-sync/WebAssemblyParser.js +23 -9
- package/lib/wasm-sync/WebAssemblyUtils.js +5 -4
- package/lib/web/FetchCompileAsyncWasmPlugin.js +11 -1
- package/lib/web/FetchCompileWasmPlugin.js +59 -42
- package/lib/web/JsonpChunkLoadingPlugin.js +9 -0
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +71 -41
- package/lib/webpack.js +43 -12
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +15 -12
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +55 -40
- package/module.d.ts +233 -0
- package/package.json +85 -139
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +679 -47
- package/schemas/plugins/BannerPlugin.check.js +1 -1
- package/schemas/plugins/BannerPlugin.json +9 -1
- package/schemas/plugins/DllReferencePlugin.check.js +1 -1
- package/schemas/plugins/HashedModuleIdsPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +4 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +12 -1
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoParserOptions.json +3 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssParserOptions.json +3 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.json +4 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +5026 -1756
@@ -5,6 +5,7 @@
|
|
5
5
|
|
6
6
|
"use strict";
|
7
7
|
|
8
|
+
const ConditionalInitFragment = require("../ConditionalInitFragment");
|
8
9
|
const Dependency = require("../Dependency");
|
9
10
|
const { UsageState } = require("../ExportsInfo");
|
10
11
|
const HarmonyLinkingError = require("../HarmonyLinkingError");
|
@@ -15,7 +16,12 @@ const { countIterable } = require("../util/IterableHelpers");
|
|
15
16
|
const { first, combine } = require("../util/SetHelpers");
|
16
17
|
const makeSerializable = require("../util/makeSerializable");
|
17
18
|
const propertyAccess = require("../util/propertyAccess");
|
18
|
-
const {
|
19
|
+
const { propertyName } = require("../util/propertyName");
|
20
|
+
const {
|
21
|
+
getRuntimeKey,
|
22
|
+
keyToRuntime,
|
23
|
+
filterRuntime
|
24
|
+
} = require("../util/runtime");
|
19
25
|
const HarmonyExportInitFragment = require("./HarmonyExportInitFragment");
|
20
26
|
const HarmonyImportDependency = require("./HarmonyImportDependency");
|
21
27
|
const processExportInfo = require("./processExportInfo");
|
@@ -23,23 +29,34 @@ const processExportInfo = require("./processExportInfo");
|
|
23
29
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
24
30
|
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
25
31
|
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
|
32
|
+
/** @typedef {import("../Dependency").GetConditionFn} GetConditionFn */
|
26
33
|
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
|
27
34
|
/** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */
|
28
35
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
29
36
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
30
37
|
/** @typedef {import("../ExportsInfo")} ExportsInfo */
|
31
38
|
/** @typedef {import("../ExportsInfo").ExportInfo} ExportInfo */
|
39
|
+
/** @typedef {import("../ExportsInfo").UsedName} UsedName */
|
40
|
+
/** @typedef {import("../Generator").GenerateContext} GenerateContext */
|
32
41
|
/** @typedef {import("../Module")} Module */
|
42
|
+
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
43
|
+
/** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
|
33
44
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
34
45
|
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
35
46
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
36
47
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
37
48
|
/** @typedef {import("../WebpackError")} WebpackError */
|
49
|
+
/** @typedef {import("../javascript/JavascriptParser").ImportAttributes} ImportAttributes */
|
50
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
51
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
38
52
|
/** @typedef {import("../util/Hash")} Hash */
|
39
53
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
54
|
+
/** @typedef {import("./processExportInfo").ReferencedExports} ReferencedExports */
|
40
55
|
|
41
56
|
/** @typedef {"missing"|"unused"|"empty-star"|"reexport-dynamic-default"|"reexport-named-default"|"reexport-namespace-object"|"reexport-fake-namespace-object"|"reexport-undefined"|"normal-reexport"|"dynamic-reexport"} ExportModeType */
|
42
57
|
|
58
|
+
const { ExportPresenceModes } = HarmonyImportDependency;
|
59
|
+
|
43
60
|
const idsSymbol = Symbol("HarmonyExportImportedSpecifierDependency.ids");
|
44
61
|
|
45
62
|
class NormalReexportItem {
|
@@ -59,6 +76,9 @@ class NormalReexportItem {
|
|
59
76
|
}
|
60
77
|
}
|
61
78
|
|
79
|
+
/** @typedef {Set<string>} ExportModeIgnored */
|
80
|
+
/** @typedef {Set<string>} ExportModeHidden */
|
81
|
+
|
62
82
|
class ExportMode {
|
63
83
|
/**
|
64
84
|
* @param {ExportModeType} type type of the mode
|
@@ -72,17 +92,17 @@ class ExportMode {
|
|
72
92
|
this.items = null;
|
73
93
|
|
74
94
|
// for "reexport-named-default" | "reexport-fake-namespace-object" | "reexport-namespace-object"
|
75
|
-
/** @type {string|null} */
|
95
|
+
/** @type {string | null} */
|
76
96
|
this.name = null;
|
77
97
|
/** @type {ExportInfo | null} */
|
78
98
|
this.partialNamespaceExportInfo = null;
|
79
99
|
|
80
100
|
// for "dynamic-reexport":
|
81
|
-
/** @type {
|
101
|
+
/** @type {ExportModeIgnored | null} */
|
82
102
|
this.ignored = null;
|
83
103
|
|
84
104
|
// for "dynamic-reexport" | "empty-star":
|
85
|
-
/** @type {
|
105
|
+
/** @type {ExportModeHidden | null} */
|
86
106
|
this.hidden = null;
|
87
107
|
|
88
108
|
// for "missing":
|
@@ -170,7 +190,7 @@ const getMode = (moduleGraph, dep, runtimeKey) => {
|
|
170
190
|
|
171
191
|
const name = dep.name;
|
172
192
|
const runtime = keyToRuntime(runtimeKey);
|
173
|
-
const parentModule = moduleGraph.getParentModule(dep);
|
193
|
+
const parentModule = /** @type {Module} */ (moduleGraph.getParentModule(dep));
|
174
194
|
const exportsInfo = moduleGraph.getExportsInfo(parentModule);
|
175
195
|
|
176
196
|
if (
|
@@ -187,7 +207,7 @@ const getMode = (moduleGraph, dep, runtimeKey) => {
|
|
187
207
|
|
188
208
|
const importedExportsType = importedModule.getExportsType(
|
189
209
|
moduleGraph,
|
190
|
-
parentModule.buildMeta.strictHarmonyModule
|
210
|
+
/** @type {BuildMeta} */ (parentModule.buildMeta).strictHarmonyModule
|
191
211
|
);
|
192
212
|
|
193
213
|
const ids = dep.getIds(moduleGraph);
|
@@ -296,7 +316,8 @@ const getMode = (moduleGraph, dep, runtimeKey) => {
|
|
296
316
|
exportName,
|
297
317
|
[exportName],
|
298
318
|
exportsInfo.getReadOnlyExportInfo(exportName),
|
299
|
-
|
319
|
+
/** @type {Set<string>} */
|
320
|
+
(checked).has(exportName),
|
300
321
|
false
|
301
322
|
)
|
302
323
|
);
|
@@ -317,17 +338,23 @@ const getMode = (moduleGraph, dep, runtimeKey) => {
|
|
317
338
|
return mode;
|
318
339
|
};
|
319
340
|
|
341
|
+
/** @typedef {string[]} Ids */
|
342
|
+
/** @typedef {Set<string>} Exports */
|
343
|
+
/** @typedef {Set<string>} Checked */
|
344
|
+
/** @typedef {Set<string>} Hidden */
|
345
|
+
/** @typedef {Set<string>} IgnoredExports */
|
346
|
+
|
320
347
|
class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
321
348
|
/**
|
322
349
|
* @param {string} request the request string
|
323
350
|
* @param {number} sourceOrder the order in the original source file
|
324
|
-
* @param {
|
351
|
+
* @param {Ids} ids the requested export name of the imported module
|
325
352
|
* @param {string | null} name the export name of for this module
|
326
353
|
* @param {Set<string>} activeExports other named exports in the module
|
327
|
-
* @param {ReadonlyArray<HarmonyExportImportedSpecifierDependency> | Iterable<HarmonyExportImportedSpecifierDependency>} otherStarExports other star exports in the module before this import
|
328
|
-
* @param {
|
329
|
-
* @param {HarmonyStarExportsList} allStarExports all star exports in the module
|
330
|
-
* @param {
|
354
|
+
* @param {ReadonlyArray<HarmonyExportImportedSpecifierDependency> | Iterable<HarmonyExportImportedSpecifierDependency> | null} otherStarExports other star exports in the module before this import
|
355
|
+
* @param {number} exportPresenceMode mode of checking export names
|
356
|
+
* @param {HarmonyStarExportsList | null} allStarExports all star exports in the module
|
357
|
+
* @param {ImportAttributes=} attributes import attributes
|
331
358
|
*/
|
332
359
|
constructor(
|
333
360
|
request,
|
@@ -336,17 +363,17 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
336
363
|
name,
|
337
364
|
activeExports,
|
338
365
|
otherStarExports,
|
339
|
-
|
366
|
+
exportPresenceMode,
|
340
367
|
allStarExports,
|
341
|
-
|
368
|
+
attributes
|
342
369
|
) {
|
343
|
-
super(request, sourceOrder,
|
370
|
+
super(request, sourceOrder, attributes);
|
344
371
|
|
345
372
|
this.ids = ids;
|
346
373
|
this.name = name;
|
347
374
|
this.activeExports = activeExports;
|
348
375
|
this.otherStarExports = otherStarExports;
|
349
|
-
this.
|
376
|
+
this.exportPresenceMode = exportPresenceMode;
|
350
377
|
this.allStarExports = allStarExports;
|
351
378
|
}
|
352
379
|
|
@@ -378,7 +405,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
378
405
|
|
379
406
|
/**
|
380
407
|
* @param {ModuleGraph} moduleGraph the module graph
|
381
|
-
* @returns {
|
408
|
+
* @returns {Ids} the imported id
|
382
409
|
*/
|
383
410
|
getIds(moduleGraph) {
|
384
411
|
return moduleGraph.getMeta(this)[idsSymbol] || this.ids;
|
@@ -386,7 +413,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
386
413
|
|
387
414
|
/**
|
388
415
|
* @param {ModuleGraph} moduleGraph the module graph
|
389
|
-
* @param {
|
416
|
+
* @param {Ids} ids the imported ids
|
390
417
|
* @returns {void}
|
391
418
|
*/
|
392
419
|
setIds(moduleGraph, ids) {
|
@@ -411,16 +438,17 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
411
438
|
* @param {RuntimeSpec} runtime the runtime
|
412
439
|
* @param {ExportsInfo} exportsInfo exports info about the current module (optional)
|
413
440
|
* @param {Module} importedModule the imported module (optional)
|
414
|
-
* @returns {{exports?:
|
441
|
+
* @returns {{exports?: Exports, checked?: Checked, ignoredExports: IgnoredExports, hidden?: Hidden}} information
|
415
442
|
*/
|
416
443
|
getStarReexports(
|
417
444
|
moduleGraph,
|
418
445
|
runtime,
|
419
|
-
exportsInfo = moduleGraph.getExportsInfo(
|
420
|
-
|
446
|
+
exportsInfo = moduleGraph.getExportsInfo(
|
447
|
+
/** @type {Module} */ (moduleGraph.getParentModule(this))
|
448
|
+
),
|
449
|
+
importedModule = /** @type {Module} */ (moduleGraph.getModule(this))
|
421
450
|
) {
|
422
451
|
const importedExportsInfo = moduleGraph.getExportsInfo(importedModule);
|
423
|
-
|
424
452
|
const noExtraExports =
|
425
453
|
importedExportsInfo.otherExportsInfo.provided === false;
|
426
454
|
const noExtraImports =
|
@@ -428,7 +456,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
428
456
|
|
429
457
|
const ignoredExports = new Set(["default", ...this.activeExports]);
|
430
458
|
|
431
|
-
let hiddenExports
|
459
|
+
let hiddenExports;
|
432
460
|
const otherStarExports =
|
433
461
|
this._discoverActiveExportsFromOtherStarExports(moduleGraph);
|
434
462
|
if (otherStarExports !== undefined) {
|
@@ -446,11 +474,11 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
446
474
|
};
|
447
475
|
}
|
448
476
|
|
449
|
-
/** @type {
|
477
|
+
/** @type {Exports} */
|
450
478
|
const exports = new Set();
|
451
|
-
/** @type {
|
479
|
+
/** @type {Checked} */
|
452
480
|
const checked = new Set();
|
453
|
-
/** @type {
|
481
|
+
/** @type {Hidden | undefined} */
|
454
482
|
const hidden = hiddenExports !== undefined ? new Set() : undefined;
|
455
483
|
|
456
484
|
if (noExtraImports) {
|
@@ -462,7 +490,8 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
462
490
|
importedExportsInfo.getReadOnlyExportInfo(name);
|
463
491
|
if (importedExportInfo.provided === false) continue;
|
464
492
|
if (hiddenExports !== undefined && hiddenExports.has(name)) {
|
465
|
-
|
493
|
+
/** @type {Set<string>} */
|
494
|
+
(hidden).add(name);
|
466
495
|
continue;
|
467
496
|
}
|
468
497
|
exports.add(name);
|
@@ -477,7 +506,8 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
477
506
|
const exportInfo = exportsInfo.getReadOnlyExportInfo(name);
|
478
507
|
if (exportInfo.getUsed(runtime) === UsageState.Unused) continue;
|
479
508
|
if (hiddenExports !== undefined && hiddenExports.has(name)) {
|
480
|
-
|
509
|
+
/** @type {ExportModeHidden} */
|
510
|
+
(hidden).add(name);
|
481
511
|
continue;
|
482
512
|
}
|
483
513
|
exports.add(name);
|
@@ -491,7 +521,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
491
521
|
|
492
522
|
/**
|
493
523
|
* @param {ModuleGraph} moduleGraph module graph
|
494
|
-
* @returns {null | false |
|
524
|
+
* @returns {null | false | GetConditionFn} function to determine if the connection is active
|
495
525
|
*/
|
496
526
|
getCondition(moduleGraph) {
|
497
527
|
return (connection, runtime) => {
|
@@ -530,7 +560,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
530
560
|
case "reexport-named-default": {
|
531
561
|
if (!mode.partialNamespaceExportInfo)
|
532
562
|
return Dependency.EXPORTS_OBJECT_REFERENCED;
|
533
|
-
/** @type {
|
563
|
+
/** @type {ReferencedExports} */
|
534
564
|
const referencedExports = [];
|
535
565
|
processExportInfo(
|
536
566
|
runtime,
|
@@ -545,7 +575,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
545
575
|
case "reexport-fake-namespace-object": {
|
546
576
|
if (!mode.partialNamespaceExportInfo)
|
547
577
|
return Dependency.EXPORTS_OBJECT_REFERENCED;
|
548
|
-
/** @type {
|
578
|
+
/** @type {ReferencedExports} */
|
549
579
|
const referencedExports = [];
|
550
580
|
processExportInfo(
|
551
581
|
runtime,
|
@@ -561,6 +591,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
561
591
|
return Dependency.EXPORTS_OBJECT_REFERENCED;
|
562
592
|
|
563
593
|
case "normal-reexport": {
|
594
|
+
/** @type {ReferencedExports} */
|
564
595
|
const referencedExports = [];
|
565
596
|
for (const { ids, exportInfo, hidden } of mode.items) {
|
566
597
|
if (hidden) continue;
|
@@ -579,13 +610,13 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
579
610
|
* @returns {{ names: string[], namesSlice: number, dependencyIndices: number[], dependencyIndex: number } | undefined} exported names and their origin dependency
|
580
611
|
*/
|
581
612
|
_discoverActiveExportsFromOtherStarExports(moduleGraph) {
|
582
|
-
if (!this.otherStarExports) return
|
613
|
+
if (!this.otherStarExports) return;
|
583
614
|
|
584
615
|
const i =
|
585
616
|
"length" in this.otherStarExports
|
586
617
|
? this.otherStarExports.length
|
587
618
|
: countIterable(this.otherStarExports);
|
588
|
-
if (i === 0) return
|
619
|
+
if (i === 0) return;
|
589
620
|
|
590
621
|
if (this.allStarExports) {
|
591
622
|
const { names, dependencyIndices } = moduleGraph.cached(
|
@@ -625,16 +656,21 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
625
656
|
|
626
657
|
switch (mode.type) {
|
627
658
|
case "missing":
|
628
|
-
return
|
659
|
+
return;
|
629
660
|
case "dynamic-reexport": {
|
630
|
-
const from =
|
661
|
+
const from =
|
662
|
+
/** @type {ModuleGraphConnection} */
|
663
|
+
(moduleGraph.getConnection(this));
|
631
664
|
return {
|
632
665
|
exports: true,
|
633
666
|
from,
|
634
667
|
canMangle: false,
|
635
668
|
excludeExports: mode.hidden
|
636
|
-
? combine(
|
637
|
-
|
669
|
+
? combine(
|
670
|
+
/** @type {ExportModeIgnored} */ (mode.ignored),
|
671
|
+
mode.hidden
|
672
|
+
)
|
673
|
+
: /** @type {ExportModeIgnored} */ (mode.ignored),
|
638
674
|
hideExports: mode.hidden,
|
639
675
|
dependencies: [from.module]
|
640
676
|
};
|
@@ -643,11 +679,13 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
643
679
|
return {
|
644
680
|
exports: [],
|
645
681
|
hideExports: mode.hidden,
|
646
|
-
dependencies: [moduleGraph.getModule(this)]
|
682
|
+
dependencies: [/** @type {Module} */ (moduleGraph.getModule(this))]
|
647
683
|
};
|
648
684
|
// falls through
|
649
685
|
case "normal-reexport": {
|
650
|
-
const from =
|
686
|
+
const from =
|
687
|
+
/** @type {ModuleGraphConnection} */
|
688
|
+
(moduleGraph.getConnection(this));
|
651
689
|
return {
|
652
690
|
exports: Array.from(mode.items, item => ({
|
653
691
|
name: item.name,
|
@@ -660,32 +698,34 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
660
698
|
};
|
661
699
|
}
|
662
700
|
case "reexport-dynamic-default": {
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
}
|
701
|
+
const from =
|
702
|
+
/** @type {ModuleGraphConnection} */
|
703
|
+
(moduleGraph.getConnection(this));
|
704
|
+
return {
|
705
|
+
exports: [
|
706
|
+
{
|
707
|
+
name: /** @type {string} */ (mode.name),
|
708
|
+
from,
|
709
|
+
export: ["default"]
|
710
|
+
}
|
711
|
+
],
|
712
|
+
priority: 1,
|
713
|
+
dependencies: [from.module]
|
714
|
+
};
|
677
715
|
}
|
678
716
|
case "reexport-undefined":
|
679
717
|
return {
|
680
|
-
exports: [mode.name],
|
681
|
-
dependencies: [moduleGraph.getModule(this)]
|
718
|
+
exports: [/** @type {string} */ (mode.name)],
|
719
|
+
dependencies: [/** @type {Module} */ (moduleGraph.getModule(this))]
|
682
720
|
};
|
683
721
|
case "reexport-fake-namespace-object": {
|
684
|
-
const from =
|
722
|
+
const from =
|
723
|
+
/** @type {ModuleGraphConnection} */
|
724
|
+
(moduleGraph.getConnection(this));
|
685
725
|
return {
|
686
726
|
exports: [
|
687
727
|
{
|
688
|
-
name: mode.name,
|
728
|
+
name: /** @type {string} */ (mode.name),
|
689
729
|
from,
|
690
730
|
export: null,
|
691
731
|
exports: [
|
@@ -703,11 +743,13 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
703
743
|
};
|
704
744
|
}
|
705
745
|
case "reexport-namespace-object": {
|
706
|
-
const from =
|
746
|
+
const from =
|
747
|
+
/** @type {ModuleGraphConnection} */
|
748
|
+
(moduleGraph.getConnection(this));
|
707
749
|
return {
|
708
750
|
exports: [
|
709
751
|
{
|
710
|
-
name: mode.name,
|
752
|
+
name: /** @type {string} */ (mode.name),
|
711
753
|
from,
|
712
754
|
export: null
|
713
755
|
}
|
@@ -717,11 +759,13 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
717
759
|
};
|
718
760
|
}
|
719
761
|
case "reexport-named-default": {
|
720
|
-
const from =
|
762
|
+
const from =
|
763
|
+
/** @type {ModuleGraphConnection} */
|
764
|
+
(moduleGraph.getConnection(this));
|
721
765
|
return {
|
722
766
|
exports: [
|
723
767
|
{
|
724
|
-
name: mode.name,
|
768
|
+
name: /** @type {string} */ (mode.name),
|
725
769
|
from,
|
726
770
|
export: ["default"]
|
727
771
|
}
|
@@ -735,35 +779,42 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
735
779
|
}
|
736
780
|
}
|
737
781
|
|
782
|
+
/**
|
783
|
+
* @param {ModuleGraph} moduleGraph module graph
|
784
|
+
* @returns {number} effective mode
|
785
|
+
*/
|
786
|
+
_getEffectiveExportPresenceLevel(moduleGraph) {
|
787
|
+
if (this.exportPresenceMode !== ExportPresenceModes.AUTO)
|
788
|
+
return this.exportPresenceMode;
|
789
|
+
const module = /** @type {Module} */ (moduleGraph.getParentModule(this));
|
790
|
+
return /** @type {BuildMeta} */ (module.buildMeta).strictHarmonyModule
|
791
|
+
? ExportPresenceModes.ERROR
|
792
|
+
: ExportPresenceModes.WARN;
|
793
|
+
}
|
794
|
+
|
738
795
|
/**
|
739
796
|
* Returns warnings
|
740
797
|
* @param {ModuleGraph} moduleGraph module graph
|
741
|
-
* @returns {WebpackError[]} warnings
|
798
|
+
* @returns {WebpackError[] | null | undefined} warnings
|
742
799
|
*/
|
743
800
|
getWarnings(moduleGraph) {
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
) {
|
748
|
-
return null;
|
801
|
+
const exportsPresence = this._getEffectiveExportPresenceLevel(moduleGraph);
|
802
|
+
if (exportsPresence === ExportPresenceModes.WARN) {
|
803
|
+
return this._getErrors(moduleGraph);
|
749
804
|
}
|
750
|
-
|
751
|
-
return this._getErrors(moduleGraph);
|
805
|
+
return null;
|
752
806
|
}
|
753
807
|
|
754
808
|
/**
|
755
809
|
* Returns errors
|
756
810
|
* @param {ModuleGraph} moduleGraph module graph
|
757
|
-
* @returns {WebpackError[]} errors
|
811
|
+
* @returns {WebpackError[] | null | undefined} errors
|
758
812
|
*/
|
759
813
|
getErrors(moduleGraph) {
|
760
|
-
|
761
|
-
|
762
|
-
moduleGraph.getParentModule(this).buildMeta.strictHarmonyModule
|
763
|
-
) {
|
814
|
+
const exportsPresence = this._getEffectiveExportPresenceLevel(moduleGraph);
|
815
|
+
if (exportsPresence === ExportPresenceModes.ERROR) {
|
764
816
|
return this._getErrors(moduleGraph);
|
765
817
|
}
|
766
|
-
|
767
818
|
return null;
|
768
819
|
}
|
769
820
|
|
@@ -793,6 +844,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
793
844
|
const importedModule = moduleGraph.getModule(this);
|
794
845
|
if (importedModule) {
|
795
846
|
const exportsInfo = moduleGraph.getExportsInfo(importedModule);
|
847
|
+
/** @type {Map<string, string[]>} */
|
796
848
|
const conflicts = new Map();
|
797
849
|
for (const exportInfo of exportsInfo.orderedExports) {
|
798
850
|
if (exportInfo.provided !== true) continue;
|
@@ -809,9 +861,9 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
809
861
|
if (!conflictingDependency) continue;
|
810
862
|
const target = exportInfo.getTerminalBinding(moduleGraph);
|
811
863
|
if (!target) continue;
|
812
|
-
const conflictingModule =
|
813
|
-
|
814
|
-
|
864
|
+
const conflictingModule =
|
865
|
+
/** @type {Module} */
|
866
|
+
(moduleGraph.getModule(conflictingDependency));
|
815
867
|
if (conflictingModule === importedModule) continue;
|
816
868
|
const conflictingExportInfo = moduleGraph.getExportInfo(
|
817
869
|
conflictingModule,
|
@@ -848,6 +900,9 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
848
900
|
return errors;
|
849
901
|
}
|
850
902
|
|
903
|
+
/**
|
904
|
+
* @param {ObjectSerializerContext} context context
|
905
|
+
*/
|
851
906
|
serialize(context) {
|
852
907
|
const { write, setCircularReference } = context;
|
853
908
|
|
@@ -856,12 +911,15 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
856
911
|
write(this.name);
|
857
912
|
write(this.activeExports);
|
858
913
|
write(this.otherStarExports);
|
859
|
-
write(this.
|
914
|
+
write(this.exportPresenceMode);
|
860
915
|
write(this.allStarExports);
|
861
916
|
|
862
917
|
super.serialize(context);
|
863
918
|
}
|
864
919
|
|
920
|
+
/**
|
921
|
+
* @param {ObjectDeserializerContext} context context
|
922
|
+
*/
|
865
923
|
deserialize(context) {
|
866
924
|
const { read, setCircularReference } = context;
|
867
925
|
|
@@ -870,7 +928,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
870
928
|
this.name = read();
|
871
929
|
this.activeExports = read();
|
872
930
|
this.otherStarExports = read();
|
873
|
-
this.
|
931
|
+
this.exportPresenceMode = read();
|
874
932
|
this.allStarExports = read();
|
875
933
|
|
876
934
|
super.deserialize(context);
|
@@ -906,7 +964,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
906
964
|
switch (mode.type) {
|
907
965
|
case "reexport-undefined":
|
908
966
|
concatenationScope.registerRawExport(
|
909
|
-
mode.name,
|
967
|
+
/** @type {NonNullable<ExportMode["name"]>} */ (mode.name),
|
910
968
|
"/* reexport non-default export from non-harmony */ undefined"
|
911
969
|
);
|
912
970
|
}
|
@@ -930,14 +988,14 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
930
988
|
}
|
931
989
|
|
932
990
|
/**
|
933
|
-
* @param {InitFragment[]} initFragments target array for init fragments
|
991
|
+
* @param {InitFragment<GenerateContext>[]} initFragments target array for init fragments
|
934
992
|
* @param {HarmonyExportImportedSpecifierDependency} dep dependency
|
935
993
|
* @param {ExportMode} mode the export mode
|
936
994
|
* @param {Module} module the current module
|
937
995
|
* @param {ModuleGraph} moduleGraph the module graph
|
938
996
|
* @param {RuntimeSpec} runtime the runtime
|
939
997
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
940
|
-
* @param {
|
998
|
+
* @param {RuntimeRequirements} runtimeRequirements runtime requirements
|
941
999
|
* @returns {void}
|
942
1000
|
*/
|
943
1001
|
_addExportFragments(
|
@@ -950,7 +1008,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
950
1008
|
runtimeTemplate,
|
951
1009
|
runtimeRequirements
|
952
1010
|
) {
|
953
|
-
const importedModule = moduleGraph.getModule(dep);
|
1011
|
+
const importedModule = /** @type {Module} */ (moduleGraph.getModule(dep));
|
954
1012
|
const importVar = dep.getImportVar(moduleGraph);
|
955
1013
|
|
956
1014
|
switch (mode.type) {
|
@@ -1042,23 +1100,36 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
1042
1100
|
break;
|
1043
1101
|
|
1044
1102
|
case "normal-reexport":
|
1045
|
-
for (const {
|
1103
|
+
for (const {
|
1104
|
+
name,
|
1105
|
+
ids,
|
1106
|
+
checked,
|
1107
|
+
hidden
|
1108
|
+
} of /** @type {NormalReexportItem[]} */ (mode.items)) {
|
1046
1109
|
if (hidden) continue;
|
1047
1110
|
if (checked) {
|
1111
|
+
const connection = moduleGraph.getConnection(dep);
|
1112
|
+
const key = `harmony reexport (checked) ${importVar} ${name}`;
|
1113
|
+
const runtimeCondition = dep.weak
|
1114
|
+
? false
|
1115
|
+
: connection
|
1116
|
+
? filterRuntime(runtime, r => connection.isTargetActive(r))
|
1117
|
+
: true;
|
1048
1118
|
initFragments.push(
|
1049
|
-
new
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
),
|
1119
|
+
new ConditionalInitFragment(
|
1120
|
+
`/* harmony reexport (checked) */ ${this.getConditionalReexportStatement(
|
1121
|
+
module,
|
1122
|
+
name,
|
1123
|
+
importVar,
|
1124
|
+
ids,
|
1125
|
+
runtimeRequirements
|
1126
|
+
)}`,
|
1058
1127
|
moduleGraph.isAsync(importedModule)
|
1059
1128
|
? InitFragment.STAGE_ASYNC_HARMONY_IMPORTS
|
1060
1129
|
: InitFragment.STAGE_HARMONY_IMPORTS,
|
1061
|
-
dep.sourceOrder
|
1130
|
+
dep.sourceOrder,
|
1131
|
+
key,
|
1132
|
+
runtimeCondition
|
1062
1133
|
)
|
1063
1134
|
);
|
1064
1135
|
} else {
|
@@ -1080,8 +1151,12 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
1080
1151
|
|
1081
1152
|
case "dynamic-reexport": {
|
1082
1153
|
const ignored = mode.hidden
|
1083
|
-
? combine(
|
1084
|
-
|
1154
|
+
? combine(
|
1155
|
+
/** @type {ExportModeIgnored} */
|
1156
|
+
(mode.ignored),
|
1157
|
+
mode.hidden
|
1158
|
+
)
|
1159
|
+
: /** @type {ExportModeIgnored} */ (mode.ignored);
|
1085
1160
|
const modern =
|
1086
1161
|
runtimeTemplate.supportsConst() &&
|
1087
1162
|
runtimeTemplate.supportsArrowFunction();
|
@@ -1094,22 +1169,19 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
1094
1169
|
// Filter out exports which are defined by other exports
|
1095
1170
|
// and filter out default export because it cannot be reexported with *
|
1096
1171
|
if (ignored.size > 1) {
|
1097
|
-
content +=
|
1098
|
-
|
1099
|
-
|
1100
|
-
".indexOf(__WEBPACK_IMPORT_KEY__) < 0) ";
|
1172
|
+
content += `if(${JSON.stringify(
|
1173
|
+
Array.from(ignored)
|
1174
|
+
)}.indexOf(__WEBPACK_IMPORT_KEY__) < 0) `;
|
1101
1175
|
} else if (ignored.size === 1) {
|
1102
1176
|
content += `if(__WEBPACK_IMPORT_KEY__ !== ${JSON.stringify(
|
1103
1177
|
first(ignored)
|
1104
1178
|
)}) `;
|
1105
1179
|
}
|
1106
1180
|
|
1107
|
-
content +=
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
1111
|
-
content += `function(key) { return ${importVar}[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)`;
|
1112
|
-
}
|
1181
|
+
content += "__WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = ";
|
1182
|
+
content += modern
|
1183
|
+
? `() => ${importVar}[__WEBPACK_IMPORT_KEY__]`
|
1184
|
+
: `function(key) { return ${importVar}[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)`;
|
1113
1185
|
|
1114
1186
|
runtimeRequirements.add(RuntimeGlobals.exports);
|
1115
1187
|
runtimeRequirements.add(RuntimeGlobals.definePropertyGetters);
|
@@ -1132,6 +1204,15 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
1132
1204
|
}
|
1133
1205
|
}
|
1134
1206
|
|
1207
|
+
/**
|
1208
|
+
* @param {Module} module the current module
|
1209
|
+
* @param {string} comment comment
|
1210
|
+
* @param {UsedName} key key
|
1211
|
+
* @param {string} name name
|
1212
|
+
* @param {string | string[] | null | false} valueKey value key
|
1213
|
+
* @param {RuntimeRequirements} runtimeRequirements runtime requirements
|
1214
|
+
* @returns {HarmonyExportInitFragment} harmony export init fragment
|
1215
|
+
*/
|
1135
1216
|
getReexportFragment(
|
1136
1217
|
module,
|
1137
1218
|
comment,
|
@@ -1151,6 +1232,14 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
1151
1232
|
return new HarmonyExportInitFragment(module.exportsArgument, map);
|
1152
1233
|
}
|
1153
1234
|
|
1235
|
+
/**
|
1236
|
+
* @param {Module} module module
|
1237
|
+
* @param {string | string[] | false} key key
|
1238
|
+
* @param {string} name name
|
1239
|
+
* @param {number} fakeType fake type
|
1240
|
+
* @param {RuntimeRequirements} runtimeRequirements runtime requirements
|
1241
|
+
* @returns {[InitFragment<GenerateContext>, HarmonyExportInitFragment]} init fragments
|
1242
|
+
*/
|
1154
1243
|
getReexportFakeNamespaceObjectFragments(
|
1155
1244
|
module,
|
1156
1245
|
key,
|
@@ -1181,6 +1270,14 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
1181
1270
|
];
|
1182
1271
|
}
|
1183
1272
|
|
1273
|
+
/**
|
1274
|
+
* @param {Module} module module
|
1275
|
+
* @param {string} key key
|
1276
|
+
* @param {string} name name
|
1277
|
+
* @param {string | string[] | false} valueKey value key
|
1278
|
+
* @param {RuntimeRequirements} runtimeRequirements runtime requirements
|
1279
|
+
* @returns {string} result
|
1280
|
+
*/
|
1184
1281
|
getConditionalReexportStatement(
|
1185
1282
|
module,
|
1186
1283
|
key,
|
@@ -1203,11 +1300,16 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
1203
1300
|
valueKey[0]
|
1204
1301
|
)})) ${
|
1205
1302
|
RuntimeGlobals.definePropertyGetters
|
1206
|
-
}(${exportsName}, { ${
|
1303
|
+
}(${exportsName}, { ${propertyName(
|
1207
1304
|
key
|
1208
1305
|
)}: function() { return ${returnValue}; } });\n`;
|
1209
1306
|
}
|
1210
1307
|
|
1308
|
+
/**
|
1309
|
+
* @param {string} name name
|
1310
|
+
* @param {null | false | string | string[]} valueKey value key
|
1311
|
+
* @returns {string | undefined} value
|
1312
|
+
*/
|
1211
1313
|
getReturnValue(name, valueKey) {
|
1212
1314
|
if (valueKey === null) {
|
1213
1315
|
return `${name}_default.a`;
|
@@ -1243,11 +1345,17 @@ class HarmonyStarExportsList {
|
|
1243
1345
|
return this.dependencies.slice();
|
1244
1346
|
}
|
1245
1347
|
|
1348
|
+
/**
|
1349
|
+
* @param {ObjectSerializerContext} context context
|
1350
|
+
*/
|
1246
1351
|
serialize({ write, setCircularReference }) {
|
1247
1352
|
setCircularReference(this);
|
1248
1353
|
write(this.dependencies);
|
1249
1354
|
}
|
1250
1355
|
|
1356
|
+
/**
|
1357
|
+
* @param {ObjectDeserializerContext} context context
|
1358
|
+
*/
|
1251
1359
|
deserialize({ read, setCircularReference }) {
|
1252
1360
|
setCircularReference(this);
|
1253
1361
|
this.dependencies = read();
|