@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.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 +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- 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 +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
|
@@ -8,10 +8,14 @@
|
|
|
8
8
|
const ConditionalInitFragment = require("../ConditionalInitFragment");
|
|
9
9
|
const Dependency = require("../Dependency");
|
|
10
10
|
const { UsageState } = require("../ExportsInfo");
|
|
11
|
-
const HarmonyLinkingError = require("../HarmonyLinkingError");
|
|
12
11
|
const InitFragment = require("../InitFragment");
|
|
13
12
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
14
13
|
const Template = require("../Template");
|
|
14
|
+
const {
|
|
15
|
+
InlinedUsedName,
|
|
16
|
+
isExportInlined,
|
|
17
|
+
isInlineEnabled
|
|
18
|
+
} = require("../optimize/InlineExports");
|
|
15
19
|
const {
|
|
16
20
|
getMakeDeferredNamespaceModeFromExportsType
|
|
17
21
|
} = require("../runtime/MakeDeferredNamespaceObjectRuntime");
|
|
@@ -26,6 +30,7 @@ const {
|
|
|
26
30
|
} = require("../util/runtime");
|
|
27
31
|
const HarmonyExportInitFragment = require("./HarmonyExportInitFragment");
|
|
28
32
|
const HarmonyImportDependency = require("./HarmonyImportDependency");
|
|
33
|
+
const HarmonyLinkingError = require("./HarmonyLinkingError");
|
|
29
34
|
const { ImportPhaseUtils } = require("./ImportPhase");
|
|
30
35
|
const processExportInfo = require("./processExportInfo");
|
|
31
36
|
|
|
@@ -33,6 +38,7 @@ const processExportInfo = require("./processExportInfo");
|
|
|
33
38
|
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
|
34
39
|
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
|
|
35
40
|
/** @typedef {import("../Dependency").GetConditionFn} GetConditionFn */
|
|
41
|
+
/** @typedef {import("../Dependency").LazyUntil} LazyUntil */
|
|
36
42
|
/** @typedef {import("../Dependency").RawReferencedExports} RawReferencedExports */
|
|
37
43
|
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
|
|
38
44
|
/** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */
|
|
@@ -50,15 +56,19 @@ const processExportInfo = require("./processExportInfo");
|
|
|
50
56
|
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
|
51
57
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
|
52
58
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
|
53
|
-
/** @typedef {import("../WebpackError")} WebpackError */
|
|
59
|
+
/** @typedef {import("../errors/WebpackError")} WebpackError */
|
|
54
60
|
/** @typedef {import("../javascript/JavascriptParser").ImportAttributes} ImportAttributes */
|
|
55
|
-
/** @typedef {
|
|
56
|
-
/** @typedef {import("../serialization/ObjectMiddleware").
|
|
61
|
+
/** @typedef {[Ids, string | null, Set<string>, ReadonlyArray<HarmonyExportImportedSpecifierDependency> | null, ExportPresenceMode, HarmonyStarExportsList | null]} SerializedData */
|
|
62
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<SerializedData>} ObjectDeserializerContext */
|
|
63
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<SerializedData>} ObjectSerializerContext */
|
|
64
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[HarmonyExportImportedSpecifierDependency[]]>} StarListDeserializerContext */
|
|
65
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[HarmonyExportImportedSpecifierDependency[]]>} StarListSerializerContext */
|
|
57
66
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
58
67
|
/** @typedef {import("./HarmonyImportDependency").Ids} Ids */
|
|
59
68
|
/** @typedef {import("./HarmonyImportDependency").ExportPresenceMode} ExportPresenceMode */
|
|
60
69
|
/** @typedef {import("./HarmonyExportInitFragment").ExportMap} ExportMap */
|
|
61
70
|
/** @typedef {import("../dependencies/ImportPhase").ImportPhaseType} ImportPhaseType */
|
|
71
|
+
/** @typedef {import("../javascript/JavascriptModule").JavascriptModuleBuildMeta} JavascriptModuleBuildMeta */
|
|
62
72
|
|
|
63
73
|
/** @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 */
|
|
64
74
|
|
|
@@ -70,6 +80,7 @@ const idsSymbol = /** @type {symbol} */ (
|
|
|
70
80
|
|
|
71
81
|
class NormalReexportItem {
|
|
72
82
|
/**
|
|
83
|
+
* Creates an instance of NormalReexportItem.
|
|
73
84
|
* @param {string} name export name
|
|
74
85
|
* @param {Ids} ids reexported ids from other module
|
|
75
86
|
* @param {ExportInfo} exportInfo export info from other module
|
|
@@ -77,10 +88,15 @@ class NormalReexportItem {
|
|
|
77
88
|
* @param {boolean} hidden true, if it is hidden behind another active export in the same module
|
|
78
89
|
*/
|
|
79
90
|
constructor(name, ids, exportInfo, checked, hidden) {
|
|
91
|
+
/** @type {string} */
|
|
80
92
|
this.name = name;
|
|
93
|
+
/** @type {Ids} */
|
|
81
94
|
this.ids = ids;
|
|
95
|
+
/** @type {ExportInfo} */
|
|
82
96
|
this.exportInfo = exportInfo;
|
|
97
|
+
/** @type {boolean} */
|
|
83
98
|
this.checked = checked;
|
|
99
|
+
/** @type {boolean} */
|
|
84
100
|
this.hidden = hidden;
|
|
85
101
|
}
|
|
86
102
|
}
|
|
@@ -90,6 +106,7 @@ class NormalReexportItem {
|
|
|
90
106
|
|
|
91
107
|
class ExportMode {
|
|
92
108
|
/**
|
|
109
|
+
* Creates an instance of ExportMode.
|
|
93
110
|
* @param {ExportModeType} type type of the mode
|
|
94
111
|
*/
|
|
95
112
|
constructor(type) {
|
|
@@ -126,7 +143,85 @@ class ExportMode {
|
|
|
126
143
|
|
|
127
144
|
/** @typedef {number[]} DependencyIndices */
|
|
128
145
|
|
|
146
|
+
const RETURNS_TRUE = () => true;
|
|
147
|
+
|
|
129
148
|
/**
|
|
149
|
+
* Detect a per-name cycle when collecting `export *` contributions from
|
|
150
|
+
* `exportInfo`'s module into `parentModule`. The TC39 `ResolveExport`
|
|
151
|
+
* algorithm tracks a `resolveSet` of `(module, exportName)` pairs and
|
|
152
|
+
* returns null when an entry is revisited — letting the `StarExportEntries`
|
|
153
|
+
* loop fall through to a non-cyclic source. Webpack's static export graph
|
|
154
|
+
* does not run that resolution algorithm, so we approximate it: if the
|
|
155
|
+
* imported module's same-named export ultimately re-exports from
|
|
156
|
+
* `parentModule` under the same name, the star contribution is cyclic and
|
|
157
|
+
* must be skipped. The non-cyclic alternative (a sibling `export *` that
|
|
158
|
+
* provides a real binding) then wins.
|
|
159
|
+
*
|
|
160
|
+
* We walk the target chain one hop at a time using `findTarget` with a
|
|
161
|
+
* "match anything" filter so we can guard against namespace targets
|
|
162
|
+
* (`export * as ns from`, where `target.export` is undefined) and against
|
|
163
|
+
* unrelated cycles in the graph that would otherwise loop forever inside
|
|
164
|
+
* `_findTarget`.
|
|
165
|
+
* @param {ModuleGraph} moduleGraph the module graph
|
|
166
|
+
* @param {ExportInfo} exportInfo export info on the imported module
|
|
167
|
+
* @param {Module} parentModule the module that contains the star reexport
|
|
168
|
+
* @returns {boolean} true when this export reexports back to the parent module under the same name
|
|
169
|
+
*/
|
|
170
|
+
const isStarReexportBackToParent = (moduleGraph, exportInfo, parentModule) => {
|
|
171
|
+
// Fast path: probe the first hop directly. The overwhelmingly common case
|
|
172
|
+
// in real builds is a terminal local binding (no `_target`) — `findTarget`
|
|
173
|
+
// returns `undefined` and we exit without allocating a `visited` set.
|
|
174
|
+
const firstTarget = exportInfo.findTarget(moduleGraph, RETURNS_TRUE);
|
|
175
|
+
if (!firstTarget || typeof firstTarget !== "object") return false;
|
|
176
|
+
const name = exportInfo.name;
|
|
177
|
+
if (
|
|
178
|
+
firstTarget.module === parentModule &&
|
|
179
|
+
Array.isArray(firstTarget.export) &&
|
|
180
|
+
firstTarget.export.length === 1 &&
|
|
181
|
+
firstTarget.export[0] === name
|
|
182
|
+
) {
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
if (!Array.isArray(firstTarget.export) || firstTarget.export.length === 0) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
// Multi-hop chain — allocate visited tracking now. The set protects against
|
|
189
|
+
// unrelated cycles in the graph that would otherwise spin inside
|
|
190
|
+
// `_findTarget` (its `alreadyVisited` is only seeded for the entry node).
|
|
191
|
+
let current = moduleGraph
|
|
192
|
+
.getExportsInfo(firstTarget.module)
|
|
193
|
+
.getReadOnlyExportInfo(firstTarget.export[0]);
|
|
194
|
+
// Allocated lazily: a single-extra-hop chain that terminates (the common
|
|
195
|
+
// `barrel -> leaf local binding` case) returns before `next` is ever
|
|
196
|
+
// computed, so the visited set is pure waste there.
|
|
197
|
+
/** @type {Set<ExportInfo> | undefined} */
|
|
198
|
+
let visited;
|
|
199
|
+
for (;;) {
|
|
200
|
+
const target = current.findTarget(moduleGraph, RETURNS_TRUE);
|
|
201
|
+
if (!target || typeof target !== "object") return false;
|
|
202
|
+
if (
|
|
203
|
+
target.module === parentModule &&
|
|
204
|
+
Array.isArray(target.export) &&
|
|
205
|
+
target.export.length === 1 &&
|
|
206
|
+
target.export[0] === name
|
|
207
|
+
) {
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
if (!Array.isArray(target.export) || target.export.length === 0) {
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
const next = moduleGraph
|
|
214
|
+
.getExportsInfo(target.module)
|
|
215
|
+
.getReadOnlyExportInfo(target.export[0]);
|
|
216
|
+
if (visited === undefined) visited = new Set([exportInfo, current]);
|
|
217
|
+
if (visited.has(next)) return false;
|
|
218
|
+
visited.add(next);
|
|
219
|
+
current = next;
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Determine export assignments.
|
|
130
225
|
* @param {ModuleGraph} moduleGraph module graph
|
|
131
226
|
* @param {HarmonyExportImportedSpecifierDependency[]} dependencies dependencies
|
|
132
227
|
* @param {HarmonyExportImportedSpecifierDependency=} additionalDependency additional dependency
|
|
@@ -146,6 +241,11 @@ const determineExportAssignments = (
|
|
|
146
241
|
dependencies = [...dependencies, additionalDependency];
|
|
147
242
|
}
|
|
148
243
|
|
|
244
|
+
const referenceDep = dependencies[0] || additionalDependency;
|
|
245
|
+
const parentModule = referenceDep
|
|
246
|
+
? moduleGraph.getParentModule(referenceDep)
|
|
247
|
+
: null;
|
|
248
|
+
|
|
149
249
|
for (const dep of dependencies) {
|
|
150
250
|
const i = dependencyIndices.length;
|
|
151
251
|
dependencyIndices[i] = names.size;
|
|
@@ -156,7 +256,11 @@ const determineExportAssignments = (
|
|
|
156
256
|
if (
|
|
157
257
|
exportInfo.provided === true &&
|
|
158
258
|
exportInfo.name !== "default" &&
|
|
159
|
-
!names.has(exportInfo.name)
|
|
259
|
+
!names.has(exportInfo.name) &&
|
|
260
|
+
!(
|
|
261
|
+
parentModule &&
|
|
262
|
+
isStarReexportBackToParent(moduleGraph, exportInfo, parentModule)
|
|
263
|
+
)
|
|
160
264
|
) {
|
|
161
265
|
names.add(exportInfo.name);
|
|
162
266
|
dependencyIndices[i] = names.size;
|
|
@@ -170,6 +274,7 @@ const determineExportAssignments = (
|
|
|
170
274
|
};
|
|
171
275
|
|
|
172
276
|
/**
|
|
277
|
+
* Finds dependency for name.
|
|
173
278
|
* @param {object} options options
|
|
174
279
|
* @param {ExportInfoName[]} options.names names
|
|
175
280
|
* @param {DependencyIndices} options.dependencyIndices dependency indices
|
|
@@ -199,6 +304,7 @@ const findDependencyForName = (
|
|
|
199
304
|
};
|
|
200
305
|
|
|
201
306
|
/**
|
|
307
|
+
* Returns the export mode.
|
|
202
308
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
203
309
|
* @param {HarmonyExportImportedSpecifierDependency} dep the dependency
|
|
204
310
|
* @param {string} runtimeKey the runtime key
|
|
@@ -373,6 +479,7 @@ const getMode = (moduleGraph, dep, runtimeKey) => {
|
|
|
373
479
|
|
|
374
480
|
class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
375
481
|
/**
|
|
482
|
+
* Creates an instance of HarmonyExportImportedSpecifierDependency.
|
|
376
483
|
* @param {string} request the request string
|
|
377
484
|
* @param {number} sourceOrder the order in the original source file
|
|
378
485
|
* @param {Ids} ids the requested export name of the imported module
|
|
@@ -398,15 +505,21 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
398
505
|
) {
|
|
399
506
|
super(request, sourceOrder, phase, attributes);
|
|
400
507
|
|
|
508
|
+
/** @type {Ids} */
|
|
401
509
|
this.ids = ids;
|
|
510
|
+
/** @type {string | null} */
|
|
402
511
|
this.name = name;
|
|
512
|
+
/** @type {Set<string>} */
|
|
403
513
|
this.activeExports = activeExports;
|
|
404
514
|
this.otherStarExports = otherStarExports;
|
|
515
|
+
/** @type {ExportPresenceMode} */
|
|
405
516
|
this.exportPresenceMode = exportPresenceMode;
|
|
517
|
+
/** @type {HarmonyStarExportsList | null} */
|
|
406
518
|
this.allStarExports = allStarExports;
|
|
407
519
|
}
|
|
408
520
|
|
|
409
521
|
/**
|
|
522
|
+
* Could affect referencing module.
|
|
410
523
|
* @returns {boolean | TRANSITIVE} true, when changes to the referenced module could affect the referencing module; TRANSITIVE, when changes to the referenced module could affect referencing modules of the referencing module
|
|
411
524
|
*/
|
|
412
525
|
couldAffectReferencingModule() {
|
|
@@ -415,6 +528,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
415
528
|
|
|
416
529
|
// TODO webpack 6 remove
|
|
417
530
|
/**
|
|
531
|
+
* Returns id.
|
|
418
532
|
* @deprecated
|
|
419
533
|
*/
|
|
420
534
|
get id() {
|
|
@@ -423,6 +537,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
423
537
|
|
|
424
538
|
// TODO webpack 6 remove
|
|
425
539
|
/**
|
|
540
|
+
* Returns id.
|
|
426
541
|
* @deprecated
|
|
427
542
|
*/
|
|
428
543
|
getId() {
|
|
@@ -431,6 +546,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
431
546
|
|
|
432
547
|
// TODO webpack 6 remove
|
|
433
548
|
/**
|
|
549
|
+
* Updates id.
|
|
434
550
|
* @deprecated
|
|
435
551
|
*/
|
|
436
552
|
setId() {
|
|
@@ -442,6 +558,33 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
442
558
|
}
|
|
443
559
|
|
|
444
560
|
/**
|
|
561
|
+
* Returns the export name this dependency requests from its target module (lazy barrel optimization).
|
|
562
|
+
* @returns {string | true | null} export name, true for all exports, null for none
|
|
563
|
+
*/
|
|
564
|
+
getForwardId() {
|
|
565
|
+
return this.ids.length > 0 ? this.ids[0] : true;
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
/**
|
|
569
|
+
* Returns how this dependency may be deferred when its parent module is side-effect-free (lazy barrel optimization).
|
|
570
|
+
* @returns {LazyUntil | null} lazy classification, null when it must be processed eagerly
|
|
571
|
+
*/
|
|
572
|
+
getLazyUntil() {
|
|
573
|
+
return this.name !== null
|
|
574
|
+
? Dependency.LAZY_UNTIL_ID
|
|
575
|
+
: Dependency.LAZY_UNTIL_FALLBACK;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
/**
|
|
579
|
+
* Returns the export name for a `LAZY_UNTIL_LOCAL`/`LAZY_UNTIL_ID` classification (lazy barrel optimization).
|
|
580
|
+
* @returns {string | null} export name, null when not applicable
|
|
581
|
+
*/
|
|
582
|
+
getLazyName() {
|
|
583
|
+
return this.name;
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
/**
|
|
587
|
+
* Returns the imported id.
|
|
445
588
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
446
589
|
* @returns {Ids} the imported id
|
|
447
590
|
*/
|
|
@@ -450,6 +593,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
450
593
|
}
|
|
451
594
|
|
|
452
595
|
/**
|
|
596
|
+
* Updates ids using the provided module graph.
|
|
453
597
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
454
598
|
* @param {Ids} ids the imported ids
|
|
455
599
|
* @returns {void}
|
|
@@ -459,6 +603,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
459
603
|
}
|
|
460
604
|
|
|
461
605
|
/**
|
|
606
|
+
* Returns the export mode.
|
|
462
607
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
463
608
|
* @param {RuntimeSpec} runtime the runtime
|
|
464
609
|
* @returns {ExportMode} the export mode
|
|
@@ -472,6 +617,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
472
617
|
}
|
|
473
618
|
|
|
474
619
|
/**
|
|
620
|
+
* Gets star reexports.
|
|
475
621
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
476
622
|
* @param {RuntimeSpec} runtime the runtime
|
|
477
623
|
* @param {ExportsInfo} exportsInfo exports info about the current module (optional)
|
|
@@ -493,7 +639,8 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
493
639
|
exportsInfo.otherExportsInfo.getUsed(runtime) === UsageState.Unused;
|
|
494
640
|
|
|
495
641
|
/** @type {IgnoredExports} */
|
|
496
|
-
const ignoredExports = new Set(
|
|
642
|
+
const ignoredExports = new Set(this.activeExports);
|
|
643
|
+
ignoredExports.add("default");
|
|
497
644
|
|
|
498
645
|
/** @type {Hidden | undefined} */
|
|
499
646
|
let hiddenExports;
|
|
@@ -521,6 +668,10 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
521
668
|
/** @type {Hidden | undefined} */
|
|
522
669
|
const hidden = hiddenExports !== undefined ? new Set() : undefined;
|
|
523
670
|
|
|
671
|
+
const parentModule = /** @type {Module} */ (
|
|
672
|
+
moduleGraph.getParentModule(this)
|
|
673
|
+
);
|
|
674
|
+
|
|
524
675
|
if (noExtraImports) {
|
|
525
676
|
for (const exportInfo of exportsInfo.orderedExports) {
|
|
526
677
|
const name = exportInfo.name;
|
|
@@ -530,10 +681,22 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
530
681
|
importedExportsInfo.getReadOnlyExportInfo(name);
|
|
531
682
|
if (importedExportInfo.provided === false) continue;
|
|
532
683
|
if (hiddenExports !== undefined && hiddenExports.has(name)) {
|
|
684
|
+
// Earlier star deps already provided this name non-cyclically
|
|
685
|
+
// (`determineExportAssignments` filters cyclic candidates), so
|
|
686
|
+
// the cycle check below would be wasted work.
|
|
533
687
|
/** @type {Hidden} */
|
|
534
688
|
(hidden).add(name);
|
|
535
689
|
continue;
|
|
536
690
|
}
|
|
691
|
+
if (
|
|
692
|
+
isStarReexportBackToParent(
|
|
693
|
+
moduleGraph,
|
|
694
|
+
importedExportInfo,
|
|
695
|
+
parentModule
|
|
696
|
+
)
|
|
697
|
+
) {
|
|
698
|
+
continue;
|
|
699
|
+
}
|
|
537
700
|
exports.add(name);
|
|
538
701
|
if (importedExportInfo.provided === true) continue;
|
|
539
702
|
checked.add(name);
|
|
@@ -550,6 +713,15 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
550
713
|
(hidden).add(name);
|
|
551
714
|
continue;
|
|
552
715
|
}
|
|
716
|
+
if (
|
|
717
|
+
isStarReexportBackToParent(
|
|
718
|
+
moduleGraph,
|
|
719
|
+
importedExportInfo,
|
|
720
|
+
parentModule
|
|
721
|
+
)
|
|
722
|
+
) {
|
|
723
|
+
continue;
|
|
724
|
+
}
|
|
553
725
|
exports.add(name);
|
|
554
726
|
if (importedExportInfo.provided === true) continue;
|
|
555
727
|
checked.add(name);
|
|
@@ -560,17 +732,36 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
560
732
|
}
|
|
561
733
|
|
|
562
734
|
/**
|
|
735
|
+
* Returns function to determine if the connection is active.
|
|
563
736
|
* @param {ModuleGraph} moduleGraph module graph
|
|
564
737
|
* @returns {null | false | GetConditionFn} function to determine if the connection is active
|
|
565
738
|
*/
|
|
566
739
|
getCondition(moduleGraph) {
|
|
567
740
|
return (connection, runtime) => {
|
|
568
741
|
const mode = this.getMode(moduleGraph, runtime);
|
|
569
|
-
|
|
742
|
+
const active = mode.type !== "unused" && mode.type !== "empty-star";
|
|
743
|
+
if (!active) return active;
|
|
744
|
+
|
|
745
|
+
const module = connection.module;
|
|
746
|
+
if (!isInlineEnabled(module)) return true;
|
|
747
|
+
if (mode.type !== "normal-reexport") return true;
|
|
748
|
+
const exportsInfo = moduleGraph.getExportsInfo(module);
|
|
749
|
+
if (exportsInfo.otherExportsInfo.getUsed(runtime) !== UsageState.Unused) {
|
|
750
|
+
return true;
|
|
751
|
+
}
|
|
752
|
+
for (const item of /** @type {NormalReexportItem[]} */ (mode.items)) {
|
|
753
|
+
// Hidden/checked items can't be statically inlined away
|
|
754
|
+
if (item.hidden || item.checked) return true;
|
|
755
|
+
if (!isExportInlined(moduleGraph, module, item.ids, runtime)) {
|
|
756
|
+
return true;
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
return false;
|
|
570
760
|
};
|
|
571
761
|
}
|
|
572
762
|
|
|
573
763
|
/**
|
|
764
|
+
* Gets module evaluation side effects state.
|
|
574
765
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
575
766
|
* @returns {ConnectionState} how this dependency connects the module to referencing modules
|
|
576
767
|
*/
|
|
@@ -652,6 +843,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
652
843
|
}
|
|
653
844
|
|
|
654
845
|
/**
|
|
846
|
+
* Discover active exports from other star exports.
|
|
655
847
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
656
848
|
* @returns {{ names: ExportInfoName[], namesSlice: number, dependencyIndices: DependencyIndices, dependencyIndex: number } | undefined} exported names and their origin dependency
|
|
657
849
|
*/
|
|
@@ -830,6 +1022,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
830
1022
|
}
|
|
831
1023
|
|
|
832
1024
|
/**
|
|
1025
|
+
* Get effective export presence level.
|
|
833
1026
|
* @param {ModuleGraph} moduleGraph module graph
|
|
834
1027
|
* @returns {ExportPresenceMode} effective mode
|
|
835
1028
|
*/
|
|
@@ -844,7 +1037,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
844
1037
|
}
|
|
845
1038
|
|
|
846
1039
|
/**
|
|
847
|
-
* Returns warnings
|
|
1040
|
+
* Returns warnings.
|
|
848
1041
|
* @param {ModuleGraph} moduleGraph module graph
|
|
849
1042
|
* @returns {WebpackError[] | null | undefined} warnings
|
|
850
1043
|
*/
|
|
@@ -857,7 +1050,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
857
1050
|
}
|
|
858
1051
|
|
|
859
1052
|
/**
|
|
860
|
-
* Returns errors
|
|
1053
|
+
* Returns errors.
|
|
861
1054
|
* @param {ModuleGraph} moduleGraph module graph
|
|
862
1055
|
* @returns {WebpackError[] | null | undefined} errors
|
|
863
1056
|
*/
|
|
@@ -870,6 +1063,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
870
1063
|
}
|
|
871
1064
|
|
|
872
1065
|
/**
|
|
1066
|
+
* Returns errors.
|
|
873
1067
|
* @param {ModuleGraph} moduleGraph module graph
|
|
874
1068
|
* @returns {WebpackError[] | undefined} errors
|
|
875
1069
|
*/
|
|
@@ -956,37 +1150,41 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
956
1150
|
}
|
|
957
1151
|
|
|
958
1152
|
/**
|
|
1153
|
+
* Serializes this instance into the provided serializer context.
|
|
959
1154
|
* @param {ObjectSerializerContext} context context
|
|
960
1155
|
*/
|
|
961
1156
|
serialize(context) {
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
write(this.allStarExports);
|
|
1157
|
+
context.setCircularReference(this);
|
|
1158
|
+
context
|
|
1159
|
+
.write(this.ids)
|
|
1160
|
+
.write(this.name)
|
|
1161
|
+
.write(this.activeExports)
|
|
1162
|
+
.write(this.otherStarExports)
|
|
1163
|
+
.write(this.exportPresenceMode)
|
|
1164
|
+
.write(this.allStarExports);
|
|
971
1165
|
|
|
972
1166
|
super.serialize(context);
|
|
973
1167
|
}
|
|
974
1168
|
|
|
975
1169
|
/**
|
|
1170
|
+
* Restores this instance from the provided deserializer context.
|
|
976
1171
|
* @param {ObjectDeserializerContext} context context
|
|
977
1172
|
*/
|
|
978
1173
|
deserialize(context) {
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
this.
|
|
983
|
-
|
|
984
|
-
this.activeExports = read();
|
|
985
|
-
|
|
986
|
-
this.
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
1174
|
+
context.setCircularReference(this);
|
|
1175
|
+
this.ids = context.read();
|
|
1176
|
+
const c1 = context.rest;
|
|
1177
|
+
this.name = c1.read();
|
|
1178
|
+
const c2 = c1.rest;
|
|
1179
|
+
this.activeExports = c2.read();
|
|
1180
|
+
const c3 = c2.rest;
|
|
1181
|
+
this.otherStarExports = c3.read();
|
|
1182
|
+
const c4 = c3.rest;
|
|
1183
|
+
this.exportPresenceMode = c4.read();
|
|
1184
|
+
const c5 = c4.rest;
|
|
1185
|
+
this.allStarExports = c5.read();
|
|
1186
|
+
|
|
1187
|
+
super.deserialize(c5.rest);
|
|
990
1188
|
}
|
|
991
1189
|
}
|
|
992
1190
|
|
|
@@ -999,6 +1197,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
999
1197
|
HarmonyImportDependency.Template
|
|
1000
1198
|
) {
|
|
1001
1199
|
/**
|
|
1200
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
1002
1201
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
1003
1202
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
1004
1203
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -1042,6 +1241,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1042
1241
|
}
|
|
1043
1242
|
|
|
1044
1243
|
/**
|
|
1244
|
+
* Add export fragments.
|
|
1045
1245
|
* @param {InitFragment<GenerateContext>[]} initFragments target array for init fragments
|
|
1046
1246
|
* @param {HarmonyExportImportedSpecifierDependency} dep dependency
|
|
1047
1247
|
* @param {ExportMode} mode the export mode
|
|
@@ -1085,7 +1285,9 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1085
1285
|
importVar,
|
|
1086
1286
|
importedModule.getExportsType(
|
|
1087
1287
|
moduleGraph,
|
|
1088
|
-
module.buildMeta &&
|
|
1288
|
+
module.buildMeta &&
|
|
1289
|
+
/** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
|
|
1290
|
+
.strictHarmonyModule
|
|
1089
1291
|
),
|
|
1090
1292
|
runtimeRequirements
|
|
1091
1293
|
)
|
|
@@ -1190,7 +1392,12 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1190
1392
|
);
|
|
1191
1393
|
break;
|
|
1192
1394
|
|
|
1193
|
-
case "normal-reexport":
|
|
1395
|
+
case "normal-reexport": {
|
|
1396
|
+
// loop-invariants hoisted out of the per-item loop below (a barrel
|
|
1397
|
+
// re-exporting N names otherwise repeats these lookups N times)
|
|
1398
|
+
const connection = moduleGraph.getConnection(dep);
|
|
1399
|
+
const selfExportsInfo = moduleGraph.getExportsInfo(module);
|
|
1400
|
+
const importedExportsInfo = moduleGraph.getExportsInfo(importedModule);
|
|
1194
1401
|
for (const {
|
|
1195
1402
|
name,
|
|
1196
1403
|
ids,
|
|
@@ -1199,7 +1406,6 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1199
1406
|
} of /** @type {NormalReexportItem[]} */ (mode.items)) {
|
|
1200
1407
|
if (hidden) continue;
|
|
1201
1408
|
if (checked) {
|
|
1202
|
-
const connection = moduleGraph.getConnection(dep);
|
|
1203
1409
|
const key = `harmony reexport (checked) ${importVar} ${name}`;
|
|
1204
1410
|
const runtimeCondition = dep.weak
|
|
1205
1411
|
? false
|
|
@@ -1228,17 +1434,17 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1228
1434
|
this.getReexportFragment(
|
|
1229
1435
|
module,
|
|
1230
1436
|
"reexport safe",
|
|
1231
|
-
|
|
1437
|
+
selfExportsInfo.getUsedName(name, runtime),
|
|
1232
1438
|
importVar,
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
runtimeRequirements
|
|
1439
|
+
importedExportsInfo.getUsedName(ids, runtime),
|
|
1440
|
+
runtimeRequirements,
|
|
1441
|
+
ids
|
|
1237
1442
|
)
|
|
1238
1443
|
);
|
|
1239
1444
|
}
|
|
1240
1445
|
}
|
|
1241
1446
|
break;
|
|
1447
|
+
}
|
|
1242
1448
|
|
|
1243
1449
|
case "dynamic-reexport": {
|
|
1244
1450
|
const ignored = mode.hidden
|
|
@@ -1293,12 +1499,14 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1293
1499
|
}
|
|
1294
1500
|
|
|
1295
1501
|
/**
|
|
1502
|
+
* Gets reexport fragment.
|
|
1296
1503
|
* @param {Module} module the current module
|
|
1297
1504
|
* @param {string} comment comment
|
|
1298
1505
|
* @param {UsedName} key key
|
|
1299
1506
|
* @param {string} name name
|
|
1300
1507
|
* @param {UsedName | null} valueKey value key
|
|
1301
1508
|
* @param {RuntimeRequirements} runtimeRequirements runtime requirements
|
|
1509
|
+
* @param {string[]=} ids original ids on the imported side (for inline-rendering comment)
|
|
1302
1510
|
* @returns {HarmonyExportInitFragment} harmony export init fragment
|
|
1303
1511
|
*/
|
|
1304
1512
|
getReexportFragment(
|
|
@@ -1307,9 +1515,10 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1307
1515
|
key,
|
|
1308
1516
|
name,
|
|
1309
1517
|
valueKey,
|
|
1310
|
-
runtimeRequirements
|
|
1518
|
+
runtimeRequirements,
|
|
1519
|
+
ids
|
|
1311
1520
|
) {
|
|
1312
|
-
const returnValue = this.getReturnValue(name, valueKey);
|
|
1521
|
+
const returnValue = this.getReturnValue(name, valueKey, ids);
|
|
1313
1522
|
|
|
1314
1523
|
runtimeRequirements.add(RuntimeGlobals.exports);
|
|
1315
1524
|
runtimeRequirements.add(RuntimeGlobals.definePropertyGetters);
|
|
@@ -1322,6 +1531,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1322
1531
|
}
|
|
1323
1532
|
|
|
1324
1533
|
/**
|
|
1534
|
+
* Gets reexport fake namespace object fragments.
|
|
1325
1535
|
* @param {Module} module module
|
|
1326
1536
|
* @param {UsedName} key key
|
|
1327
1537
|
* @param {string} name name
|
|
@@ -1361,6 +1571,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1361
1571
|
}
|
|
1362
1572
|
|
|
1363
1573
|
/**
|
|
1574
|
+
* Gets reexport deferred namespace object fragments.
|
|
1364
1575
|
* @param {Module} module module
|
|
1365
1576
|
* @param {ChunkGraph} chunkGraph chunkGraph
|
|
1366
1577
|
* @param {UsedName} key key
|
|
@@ -1402,6 +1613,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1402
1613
|
}
|
|
1403
1614
|
|
|
1404
1615
|
/**
|
|
1616
|
+
* Gets conditional reexport statement.
|
|
1405
1617
|
* @param {Module} module module
|
|
1406
1618
|
* @param {string} key key
|
|
1407
1619
|
* @param {string} name name
|
|
@@ -1437,11 +1649,13 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1437
1649
|
}
|
|
1438
1650
|
|
|
1439
1651
|
/**
|
|
1652
|
+
* Returns value.
|
|
1440
1653
|
* @param {string} name name
|
|
1441
|
-
* @param {null | false | string | string[]} valueKey value key
|
|
1654
|
+
* @param {null | false | string | string[] | import("../optimize/InlineExports").InlinedUsedName} valueKey value key
|
|
1655
|
+
* @param {string[]=} ids original imported ids (for inline-rendering comment)
|
|
1442
1656
|
* @returns {string | undefined} value
|
|
1443
1657
|
*/
|
|
1444
|
-
getReturnValue(name, valueKey) {
|
|
1658
|
+
getReturnValue(name, valueKey, ids) {
|
|
1445
1659
|
if (valueKey === null) {
|
|
1446
1660
|
return `${name}_default.a`;
|
|
1447
1661
|
}
|
|
@@ -1454,7 +1668,14 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1454
1668
|
return "/* unused export */ undefined";
|
|
1455
1669
|
}
|
|
1456
1670
|
|
|
1457
|
-
|
|
1671
|
+
if (valueKey instanceof InlinedUsedName) {
|
|
1672
|
+
// Re-export forwards the source export's inlined literal as its own runtime value
|
|
1673
|
+
return valueKey.render(
|
|
1674
|
+
Template.toNormalComment(`inlined export ${propertyAccess(ids || [])}`)
|
|
1675
|
+
);
|
|
1676
|
+
}
|
|
1677
|
+
|
|
1678
|
+
return `${name}${propertyAccess(Array.isArray(valueKey) ? valueKey : [valueKey])}`;
|
|
1458
1679
|
}
|
|
1459
1680
|
};
|
|
1460
1681
|
|
|
@@ -1465,6 +1686,7 @@ class HarmonyStarExportsList {
|
|
|
1465
1686
|
}
|
|
1466
1687
|
|
|
1467
1688
|
/**
|
|
1689
|
+
* Processes the provided dep.
|
|
1468
1690
|
* @param {HarmonyExportImportedSpecifierDependency} dep dependency
|
|
1469
1691
|
* @returns {void}
|
|
1470
1692
|
*/
|
|
@@ -1477,7 +1699,8 @@ class HarmonyStarExportsList {
|
|
|
1477
1699
|
}
|
|
1478
1700
|
|
|
1479
1701
|
/**
|
|
1480
|
-
*
|
|
1702
|
+
* Serializes this instance into the provided serializer context.
|
|
1703
|
+
* @param {StarListSerializerContext} context context
|
|
1481
1704
|
*/
|
|
1482
1705
|
serialize({ write, setCircularReference }) {
|
|
1483
1706
|
setCircularReference(this);
|
|
@@ -1485,7 +1708,8 @@ class HarmonyStarExportsList {
|
|
|
1485
1708
|
}
|
|
1486
1709
|
|
|
1487
1710
|
/**
|
|
1488
|
-
*
|
|
1711
|
+
* Restores this instance from the provided deserializer context.
|
|
1712
|
+
* @param {StarListDeserializerContext} context context
|
|
1489
1713
|
*/
|
|
1490
1714
|
deserialize({ read, setCircularReference }) {
|
|
1491
1715
|
setCircularReference(this);
|