@depup/webpack 5.106.0-depup.0 → 5.109.0-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/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 +141 -9
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +23 -26
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +54 -37
- package/lib/Compilation.js +635 -107
- package/lib/Compiler.js +93 -31
- 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 +498 -127
- 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 +399 -108
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +376 -78
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +575 -149
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +92 -6
- 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 +15 -0
- 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 -60
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +5 -2
- 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 +485 -181
- package/lib/NormalModuleFactory.js +148 -29
- 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 +104 -26
- 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 +29 -3
- 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 +43 -7
- 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 +591 -41
- 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/ModuleFederationPlugin.js +12 -26
- 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 +534 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +156 -77
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +356 -204
- package/lib/css/CssParser.js +3452 -1950
- package/lib/css/syntax.js +4058 -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 +138 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -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 +682 -368
- 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 +32 -2
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +140 -46
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +253 -37
- 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 +59 -3
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +426 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
- 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 +71 -49
- 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 +34 -8
- package/lib/html/HtmlGenerator.js +1470 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1111 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9020 -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 +25 -2
- 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 +579 -183
- package/lib/javascript/JavascriptParser.js +1289 -462
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +4380 -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 +23 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
- 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 +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +585 -116
- 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 +159 -34
- package/lib/optimize/RealContentHashPlugin.js +125 -50
- 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 +54 -6
- 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 +663 -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 +552 -463
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +50 -3
- 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 +94 -12
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
- package/lib/stats/StatsFactory.js +39 -18
- 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 +97 -6
- 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 +1117 -79
- 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 +8608 -1159
- 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,81 @@ class ExportMode {
|
|
|
126
143
|
|
|
127
144
|
/** @typedef {number[]} DependencyIndices */
|
|
128
145
|
|
|
146
|
+
const RETURNS_TRUE = () => true;
|
|
147
|
+
|
|
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
|
+
/** @type {Set<ExportInfo>} */
|
|
195
|
+
const visited = new Set([exportInfo, current]);
|
|
196
|
+
for (;;) {
|
|
197
|
+
const target = current.findTarget(moduleGraph, RETURNS_TRUE);
|
|
198
|
+
if (!target || typeof target !== "object") return false;
|
|
199
|
+
if (
|
|
200
|
+
target.module === parentModule &&
|
|
201
|
+
Array.isArray(target.export) &&
|
|
202
|
+
target.export.length === 1 &&
|
|
203
|
+
target.export[0] === name
|
|
204
|
+
) {
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
if (!Array.isArray(target.export) || target.export.length === 0) {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
const next = moduleGraph
|
|
211
|
+
.getExportsInfo(target.module)
|
|
212
|
+
.getReadOnlyExportInfo(target.export[0]);
|
|
213
|
+
if (visited.has(next)) return false;
|
|
214
|
+
visited.add(next);
|
|
215
|
+
current = next;
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
|
|
129
219
|
/**
|
|
220
|
+
* Determine export assignments.
|
|
130
221
|
* @param {ModuleGraph} moduleGraph module graph
|
|
131
222
|
* @param {HarmonyExportImportedSpecifierDependency[]} dependencies dependencies
|
|
132
223
|
* @param {HarmonyExportImportedSpecifierDependency=} additionalDependency additional dependency
|
|
@@ -146,6 +237,11 @@ const determineExportAssignments = (
|
|
|
146
237
|
dependencies = [...dependencies, additionalDependency];
|
|
147
238
|
}
|
|
148
239
|
|
|
240
|
+
const referenceDep = dependencies[0] || additionalDependency;
|
|
241
|
+
const parentModule = referenceDep
|
|
242
|
+
? moduleGraph.getParentModule(referenceDep)
|
|
243
|
+
: null;
|
|
244
|
+
|
|
149
245
|
for (const dep of dependencies) {
|
|
150
246
|
const i = dependencyIndices.length;
|
|
151
247
|
dependencyIndices[i] = names.size;
|
|
@@ -156,7 +252,11 @@ const determineExportAssignments = (
|
|
|
156
252
|
if (
|
|
157
253
|
exportInfo.provided === true &&
|
|
158
254
|
exportInfo.name !== "default" &&
|
|
159
|
-
!names.has(exportInfo.name)
|
|
255
|
+
!names.has(exportInfo.name) &&
|
|
256
|
+
!(
|
|
257
|
+
parentModule &&
|
|
258
|
+
isStarReexportBackToParent(moduleGraph, exportInfo, parentModule)
|
|
259
|
+
)
|
|
160
260
|
) {
|
|
161
261
|
names.add(exportInfo.name);
|
|
162
262
|
dependencyIndices[i] = names.size;
|
|
@@ -170,6 +270,7 @@ const determineExportAssignments = (
|
|
|
170
270
|
};
|
|
171
271
|
|
|
172
272
|
/**
|
|
273
|
+
* Finds dependency for name.
|
|
173
274
|
* @param {object} options options
|
|
174
275
|
* @param {ExportInfoName[]} options.names names
|
|
175
276
|
* @param {DependencyIndices} options.dependencyIndices dependency indices
|
|
@@ -199,6 +300,7 @@ const findDependencyForName = (
|
|
|
199
300
|
};
|
|
200
301
|
|
|
201
302
|
/**
|
|
303
|
+
* Returns the export mode.
|
|
202
304
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
203
305
|
* @param {HarmonyExportImportedSpecifierDependency} dep the dependency
|
|
204
306
|
* @param {string} runtimeKey the runtime key
|
|
@@ -373,6 +475,7 @@ const getMode = (moduleGraph, dep, runtimeKey) => {
|
|
|
373
475
|
|
|
374
476
|
class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
375
477
|
/**
|
|
478
|
+
* Creates an instance of HarmonyExportImportedSpecifierDependency.
|
|
376
479
|
* @param {string} request the request string
|
|
377
480
|
* @param {number} sourceOrder the order in the original source file
|
|
378
481
|
* @param {Ids} ids the requested export name of the imported module
|
|
@@ -398,15 +501,21 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
398
501
|
) {
|
|
399
502
|
super(request, sourceOrder, phase, attributes);
|
|
400
503
|
|
|
504
|
+
/** @type {Ids} */
|
|
401
505
|
this.ids = ids;
|
|
506
|
+
/** @type {string | null} */
|
|
402
507
|
this.name = name;
|
|
508
|
+
/** @type {Set<string>} */
|
|
403
509
|
this.activeExports = activeExports;
|
|
404
510
|
this.otherStarExports = otherStarExports;
|
|
511
|
+
/** @type {ExportPresenceMode} */
|
|
405
512
|
this.exportPresenceMode = exportPresenceMode;
|
|
513
|
+
/** @type {HarmonyStarExportsList | null} */
|
|
406
514
|
this.allStarExports = allStarExports;
|
|
407
515
|
}
|
|
408
516
|
|
|
409
517
|
/**
|
|
518
|
+
* Could affect referencing module.
|
|
410
519
|
* @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
520
|
*/
|
|
412
521
|
couldAffectReferencingModule() {
|
|
@@ -415,6 +524,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
415
524
|
|
|
416
525
|
// TODO webpack 6 remove
|
|
417
526
|
/**
|
|
527
|
+
* Returns id.
|
|
418
528
|
* @deprecated
|
|
419
529
|
*/
|
|
420
530
|
get id() {
|
|
@@ -423,6 +533,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
423
533
|
|
|
424
534
|
// TODO webpack 6 remove
|
|
425
535
|
/**
|
|
536
|
+
* Returns id.
|
|
426
537
|
* @deprecated
|
|
427
538
|
*/
|
|
428
539
|
getId() {
|
|
@@ -431,6 +542,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
431
542
|
|
|
432
543
|
// TODO webpack 6 remove
|
|
433
544
|
/**
|
|
545
|
+
* Updates id.
|
|
434
546
|
* @deprecated
|
|
435
547
|
*/
|
|
436
548
|
setId() {
|
|
@@ -442,6 +554,33 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
442
554
|
}
|
|
443
555
|
|
|
444
556
|
/**
|
|
557
|
+
* Returns the export name this dependency requests from its target module (lazy barrel optimization).
|
|
558
|
+
* @returns {string | true | null} export name, true for all exports, null for none
|
|
559
|
+
*/
|
|
560
|
+
getForwardId() {
|
|
561
|
+
return this.ids.length > 0 ? this.ids[0] : true;
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Returns how this dependency may be deferred when its parent module is side-effect-free (lazy barrel optimization).
|
|
566
|
+
* @returns {LazyUntil | null} lazy classification, null when it must be processed eagerly
|
|
567
|
+
*/
|
|
568
|
+
getLazyUntil() {
|
|
569
|
+
return this.name !== null
|
|
570
|
+
? Dependency.LAZY_UNTIL_ID
|
|
571
|
+
: Dependency.LAZY_UNTIL_FALLBACK;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
/**
|
|
575
|
+
* Returns the export name for a `LAZY_UNTIL_LOCAL`/`LAZY_UNTIL_ID` classification (lazy barrel optimization).
|
|
576
|
+
* @returns {string | null} export name, null when not applicable
|
|
577
|
+
*/
|
|
578
|
+
getLazyName() {
|
|
579
|
+
return this.name;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Returns the imported id.
|
|
445
584
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
446
585
|
* @returns {Ids} the imported id
|
|
447
586
|
*/
|
|
@@ -450,6 +589,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
450
589
|
}
|
|
451
590
|
|
|
452
591
|
/**
|
|
592
|
+
* Updates ids using the provided module graph.
|
|
453
593
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
454
594
|
* @param {Ids} ids the imported ids
|
|
455
595
|
* @returns {void}
|
|
@@ -459,6 +599,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
459
599
|
}
|
|
460
600
|
|
|
461
601
|
/**
|
|
602
|
+
* Returns the export mode.
|
|
462
603
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
463
604
|
* @param {RuntimeSpec} runtime the runtime
|
|
464
605
|
* @returns {ExportMode} the export mode
|
|
@@ -472,6 +613,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
472
613
|
}
|
|
473
614
|
|
|
474
615
|
/**
|
|
616
|
+
* Gets star reexports.
|
|
475
617
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
476
618
|
* @param {RuntimeSpec} runtime the runtime
|
|
477
619
|
* @param {ExportsInfo} exportsInfo exports info about the current module (optional)
|
|
@@ -521,6 +663,10 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
521
663
|
/** @type {Hidden | undefined} */
|
|
522
664
|
const hidden = hiddenExports !== undefined ? new Set() : undefined;
|
|
523
665
|
|
|
666
|
+
const parentModule = /** @type {Module} */ (
|
|
667
|
+
moduleGraph.getParentModule(this)
|
|
668
|
+
);
|
|
669
|
+
|
|
524
670
|
if (noExtraImports) {
|
|
525
671
|
for (const exportInfo of exportsInfo.orderedExports) {
|
|
526
672
|
const name = exportInfo.name;
|
|
@@ -530,10 +676,22 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
530
676
|
importedExportsInfo.getReadOnlyExportInfo(name);
|
|
531
677
|
if (importedExportInfo.provided === false) continue;
|
|
532
678
|
if (hiddenExports !== undefined && hiddenExports.has(name)) {
|
|
679
|
+
// Earlier star deps already provided this name non-cyclically
|
|
680
|
+
// (`determineExportAssignments` filters cyclic candidates), so
|
|
681
|
+
// the cycle check below would be wasted work.
|
|
533
682
|
/** @type {Hidden} */
|
|
534
683
|
(hidden).add(name);
|
|
535
684
|
continue;
|
|
536
685
|
}
|
|
686
|
+
if (
|
|
687
|
+
isStarReexportBackToParent(
|
|
688
|
+
moduleGraph,
|
|
689
|
+
importedExportInfo,
|
|
690
|
+
parentModule
|
|
691
|
+
)
|
|
692
|
+
) {
|
|
693
|
+
continue;
|
|
694
|
+
}
|
|
537
695
|
exports.add(name);
|
|
538
696
|
if (importedExportInfo.provided === true) continue;
|
|
539
697
|
checked.add(name);
|
|
@@ -550,6 +708,15 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
550
708
|
(hidden).add(name);
|
|
551
709
|
continue;
|
|
552
710
|
}
|
|
711
|
+
if (
|
|
712
|
+
isStarReexportBackToParent(
|
|
713
|
+
moduleGraph,
|
|
714
|
+
importedExportInfo,
|
|
715
|
+
parentModule
|
|
716
|
+
)
|
|
717
|
+
) {
|
|
718
|
+
continue;
|
|
719
|
+
}
|
|
553
720
|
exports.add(name);
|
|
554
721
|
if (importedExportInfo.provided === true) continue;
|
|
555
722
|
checked.add(name);
|
|
@@ -560,17 +727,36 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
560
727
|
}
|
|
561
728
|
|
|
562
729
|
/**
|
|
730
|
+
* Returns function to determine if the connection is active.
|
|
563
731
|
* @param {ModuleGraph} moduleGraph module graph
|
|
564
732
|
* @returns {null | false | GetConditionFn} function to determine if the connection is active
|
|
565
733
|
*/
|
|
566
734
|
getCondition(moduleGraph) {
|
|
567
735
|
return (connection, runtime) => {
|
|
568
736
|
const mode = this.getMode(moduleGraph, runtime);
|
|
569
|
-
|
|
737
|
+
const active = mode.type !== "unused" && mode.type !== "empty-star";
|
|
738
|
+
if (!active) return active;
|
|
739
|
+
|
|
740
|
+
const module = connection.module;
|
|
741
|
+
if (!isInlineEnabled(module)) return true;
|
|
742
|
+
if (mode.type !== "normal-reexport") return true;
|
|
743
|
+
const exportsInfo = moduleGraph.getExportsInfo(module);
|
|
744
|
+
if (exportsInfo.otherExportsInfo.getUsed(runtime) !== UsageState.Unused) {
|
|
745
|
+
return true;
|
|
746
|
+
}
|
|
747
|
+
for (const item of /** @type {NormalReexportItem[]} */ (mode.items)) {
|
|
748
|
+
// Hidden/checked items can't be statically inlined away
|
|
749
|
+
if (item.hidden || item.checked) return true;
|
|
750
|
+
if (!isExportInlined(moduleGraph, module, item.ids, runtime)) {
|
|
751
|
+
return true;
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
return false;
|
|
570
755
|
};
|
|
571
756
|
}
|
|
572
757
|
|
|
573
758
|
/**
|
|
759
|
+
* Gets module evaluation side effects state.
|
|
574
760
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
575
761
|
* @returns {ConnectionState} how this dependency connects the module to referencing modules
|
|
576
762
|
*/
|
|
@@ -652,6 +838,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
652
838
|
}
|
|
653
839
|
|
|
654
840
|
/**
|
|
841
|
+
* Discover active exports from other star exports.
|
|
655
842
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
656
843
|
* @returns {{ names: ExportInfoName[], namesSlice: number, dependencyIndices: DependencyIndices, dependencyIndex: number } | undefined} exported names and their origin dependency
|
|
657
844
|
*/
|
|
@@ -830,6 +1017,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
830
1017
|
}
|
|
831
1018
|
|
|
832
1019
|
/**
|
|
1020
|
+
* Get effective export presence level.
|
|
833
1021
|
* @param {ModuleGraph} moduleGraph module graph
|
|
834
1022
|
* @returns {ExportPresenceMode} effective mode
|
|
835
1023
|
*/
|
|
@@ -844,7 +1032,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
844
1032
|
}
|
|
845
1033
|
|
|
846
1034
|
/**
|
|
847
|
-
* Returns warnings
|
|
1035
|
+
* Returns warnings.
|
|
848
1036
|
* @param {ModuleGraph} moduleGraph module graph
|
|
849
1037
|
* @returns {WebpackError[] | null | undefined} warnings
|
|
850
1038
|
*/
|
|
@@ -857,7 +1045,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
857
1045
|
}
|
|
858
1046
|
|
|
859
1047
|
/**
|
|
860
|
-
* Returns errors
|
|
1048
|
+
* Returns errors.
|
|
861
1049
|
* @param {ModuleGraph} moduleGraph module graph
|
|
862
1050
|
* @returns {WebpackError[] | null | undefined} errors
|
|
863
1051
|
*/
|
|
@@ -870,6 +1058,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
870
1058
|
}
|
|
871
1059
|
|
|
872
1060
|
/**
|
|
1061
|
+
* Returns errors.
|
|
873
1062
|
* @param {ModuleGraph} moduleGraph module graph
|
|
874
1063
|
* @returns {WebpackError[] | undefined} errors
|
|
875
1064
|
*/
|
|
@@ -956,37 +1145,41 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
956
1145
|
}
|
|
957
1146
|
|
|
958
1147
|
/**
|
|
1148
|
+
* Serializes this instance into the provided serializer context.
|
|
959
1149
|
* @param {ObjectSerializerContext} context context
|
|
960
1150
|
*/
|
|
961
1151
|
serialize(context) {
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
write(this.allStarExports);
|
|
1152
|
+
context.setCircularReference(this);
|
|
1153
|
+
context
|
|
1154
|
+
.write(this.ids)
|
|
1155
|
+
.write(this.name)
|
|
1156
|
+
.write(this.activeExports)
|
|
1157
|
+
.write(this.otherStarExports)
|
|
1158
|
+
.write(this.exportPresenceMode)
|
|
1159
|
+
.write(this.allStarExports);
|
|
971
1160
|
|
|
972
1161
|
super.serialize(context);
|
|
973
1162
|
}
|
|
974
1163
|
|
|
975
1164
|
/**
|
|
1165
|
+
* Restores this instance from the provided deserializer context.
|
|
976
1166
|
* @param {ObjectDeserializerContext} context context
|
|
977
1167
|
*/
|
|
978
1168
|
deserialize(context) {
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
this.
|
|
983
|
-
|
|
984
|
-
this.activeExports = read();
|
|
985
|
-
|
|
986
|
-
this.
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
1169
|
+
context.setCircularReference(this);
|
|
1170
|
+
this.ids = context.read();
|
|
1171
|
+
const c1 = context.rest;
|
|
1172
|
+
this.name = c1.read();
|
|
1173
|
+
const c2 = c1.rest;
|
|
1174
|
+
this.activeExports = c2.read();
|
|
1175
|
+
const c3 = c2.rest;
|
|
1176
|
+
this.otherStarExports = c3.read();
|
|
1177
|
+
const c4 = c3.rest;
|
|
1178
|
+
this.exportPresenceMode = c4.read();
|
|
1179
|
+
const c5 = c4.rest;
|
|
1180
|
+
this.allStarExports = c5.read();
|
|
1181
|
+
|
|
1182
|
+
super.deserialize(c5.rest);
|
|
990
1183
|
}
|
|
991
1184
|
}
|
|
992
1185
|
|
|
@@ -999,6 +1192,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
999
1192
|
HarmonyImportDependency.Template
|
|
1000
1193
|
) {
|
|
1001
1194
|
/**
|
|
1195
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
1002
1196
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
1003
1197
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
1004
1198
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -1042,6 +1236,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1042
1236
|
}
|
|
1043
1237
|
|
|
1044
1238
|
/**
|
|
1239
|
+
* Add export fragments.
|
|
1045
1240
|
* @param {InitFragment<GenerateContext>[]} initFragments target array for init fragments
|
|
1046
1241
|
* @param {HarmonyExportImportedSpecifierDependency} dep dependency
|
|
1047
1242
|
* @param {ExportMode} mode the export mode
|
|
@@ -1085,7 +1280,9 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1085
1280
|
importVar,
|
|
1086
1281
|
importedModule.getExportsType(
|
|
1087
1282
|
moduleGraph,
|
|
1088
|
-
module.buildMeta &&
|
|
1283
|
+
module.buildMeta &&
|
|
1284
|
+
/** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
|
|
1285
|
+
.strictHarmonyModule
|
|
1089
1286
|
),
|
|
1090
1287
|
runtimeRequirements
|
|
1091
1288
|
)
|
|
@@ -1233,7 +1430,8 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1233
1430
|
moduleGraph
|
|
1234
1431
|
.getExportsInfo(importedModule)
|
|
1235
1432
|
.getUsedName(ids, runtime),
|
|
1236
|
-
runtimeRequirements
|
|
1433
|
+
runtimeRequirements,
|
|
1434
|
+
ids
|
|
1237
1435
|
)
|
|
1238
1436
|
);
|
|
1239
1437
|
}
|
|
@@ -1293,12 +1491,14 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1293
1491
|
}
|
|
1294
1492
|
|
|
1295
1493
|
/**
|
|
1494
|
+
* Gets reexport fragment.
|
|
1296
1495
|
* @param {Module} module the current module
|
|
1297
1496
|
* @param {string} comment comment
|
|
1298
1497
|
* @param {UsedName} key key
|
|
1299
1498
|
* @param {string} name name
|
|
1300
1499
|
* @param {UsedName | null} valueKey value key
|
|
1301
1500
|
* @param {RuntimeRequirements} runtimeRequirements runtime requirements
|
|
1501
|
+
* @param {string[]=} ids original ids on the imported side (for inline-rendering comment)
|
|
1302
1502
|
* @returns {HarmonyExportInitFragment} harmony export init fragment
|
|
1303
1503
|
*/
|
|
1304
1504
|
getReexportFragment(
|
|
@@ -1307,9 +1507,10 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1307
1507
|
key,
|
|
1308
1508
|
name,
|
|
1309
1509
|
valueKey,
|
|
1310
|
-
runtimeRequirements
|
|
1510
|
+
runtimeRequirements,
|
|
1511
|
+
ids
|
|
1311
1512
|
) {
|
|
1312
|
-
const returnValue = this.getReturnValue(name, valueKey);
|
|
1513
|
+
const returnValue = this.getReturnValue(name, valueKey, ids);
|
|
1313
1514
|
|
|
1314
1515
|
runtimeRequirements.add(RuntimeGlobals.exports);
|
|
1315
1516
|
runtimeRequirements.add(RuntimeGlobals.definePropertyGetters);
|
|
@@ -1322,6 +1523,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1322
1523
|
}
|
|
1323
1524
|
|
|
1324
1525
|
/**
|
|
1526
|
+
* Gets reexport fake namespace object fragments.
|
|
1325
1527
|
* @param {Module} module module
|
|
1326
1528
|
* @param {UsedName} key key
|
|
1327
1529
|
* @param {string} name name
|
|
@@ -1361,6 +1563,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1361
1563
|
}
|
|
1362
1564
|
|
|
1363
1565
|
/**
|
|
1566
|
+
* Gets reexport deferred namespace object fragments.
|
|
1364
1567
|
* @param {Module} module module
|
|
1365
1568
|
* @param {ChunkGraph} chunkGraph chunkGraph
|
|
1366
1569
|
* @param {UsedName} key key
|
|
@@ -1402,6 +1605,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1402
1605
|
}
|
|
1403
1606
|
|
|
1404
1607
|
/**
|
|
1608
|
+
* Gets conditional reexport statement.
|
|
1405
1609
|
* @param {Module} module module
|
|
1406
1610
|
* @param {string} key key
|
|
1407
1611
|
* @param {string} name name
|
|
@@ -1437,11 +1641,13 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1437
1641
|
}
|
|
1438
1642
|
|
|
1439
1643
|
/**
|
|
1644
|
+
* Returns value.
|
|
1440
1645
|
* @param {string} name name
|
|
1441
|
-
* @param {null | false | string | string[]} valueKey value key
|
|
1646
|
+
* @param {null | false | string | string[] | import("../optimize/InlineExports").InlinedUsedName} valueKey value key
|
|
1647
|
+
* @param {string[]=} ids original imported ids (for inline-rendering comment)
|
|
1442
1648
|
* @returns {string | undefined} value
|
|
1443
1649
|
*/
|
|
1444
|
-
getReturnValue(name, valueKey) {
|
|
1650
|
+
getReturnValue(name, valueKey, ids) {
|
|
1445
1651
|
if (valueKey === null) {
|
|
1446
1652
|
return `${name}_default.a`;
|
|
1447
1653
|
}
|
|
@@ -1454,7 +1660,14 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1454
1660
|
return "/* unused export */ undefined";
|
|
1455
1661
|
}
|
|
1456
1662
|
|
|
1457
|
-
|
|
1663
|
+
if (valueKey instanceof InlinedUsedName) {
|
|
1664
|
+
// Re-export forwards the source export's inlined literal as its own runtime value
|
|
1665
|
+
return valueKey.render(
|
|
1666
|
+
Template.toNormalComment(`inlined export ${propertyAccess(ids || [])}`)
|
|
1667
|
+
);
|
|
1668
|
+
}
|
|
1669
|
+
|
|
1670
|
+
return `${name}${propertyAccess(Array.isArray(valueKey) ? valueKey : [valueKey])}`;
|
|
1458
1671
|
}
|
|
1459
1672
|
};
|
|
1460
1673
|
|
|
@@ -1465,6 +1678,7 @@ class HarmonyStarExportsList {
|
|
|
1465
1678
|
}
|
|
1466
1679
|
|
|
1467
1680
|
/**
|
|
1681
|
+
* Processes the provided dep.
|
|
1468
1682
|
* @param {HarmonyExportImportedSpecifierDependency} dep dependency
|
|
1469
1683
|
* @returns {void}
|
|
1470
1684
|
*/
|
|
@@ -1477,7 +1691,8 @@ class HarmonyStarExportsList {
|
|
|
1477
1691
|
}
|
|
1478
1692
|
|
|
1479
1693
|
/**
|
|
1480
|
-
*
|
|
1694
|
+
* Serializes this instance into the provided serializer context.
|
|
1695
|
+
* @param {StarListSerializerContext} context context
|
|
1481
1696
|
*/
|
|
1482
1697
|
serialize({ write, setCircularReference }) {
|
|
1483
1698
|
setCircularReference(this);
|
|
@@ -1485,7 +1700,8 @@ class HarmonyStarExportsList {
|
|
|
1485
1700
|
}
|
|
1486
1701
|
|
|
1487
1702
|
/**
|
|
1488
|
-
*
|
|
1703
|
+
* Restores this instance from the provided deserializer context.
|
|
1704
|
+
* @param {StarListDeserializerContext} context context
|
|
1489
1705
|
*/
|
|
1490
1706
|
deserialize({ read, setCircularReference }) {
|
|
1491
1707
|
setCircularReference(this);
|