@depup/webpack 5.109.2-depup.0 → 5.110.3-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 +5 -5
- package/changes.json +7 -7
- package/lib/APIPlugin.js +123 -17
- package/lib/AsyncDependenciesBlock.js +10 -7
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +10 -6
- package/lib/CacheFacade.js +6 -6
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +46 -35
- package/lib/ChunkGroup.js +7 -7
- package/lib/ChunkTemplate.js +35 -44
- package/lib/CircularModulesPlugin.js +205 -28
- package/lib/CleanPlugin.js +4 -7
- package/lib/CodeGenerationResults.js +11 -8
- package/lib/CompatibilityPlugin.js +7 -7
- package/lib/Compilation.js +688 -409
- package/lib/Compiler.js +53 -38
- package/lib/ConcatenationScope.js +107 -8
- package/lib/ConditionalInitFragment.js +3 -3
- package/lib/ConstPlugin.js +13 -11
- package/lib/ContextExclusionPlugin.js +1 -1
- package/lib/ContextModule.js +146 -54
- package/lib/ContextModuleFactory.js +46 -14
- package/lib/ContextReplacementPlugin.js +12 -14
- package/lib/DefinePlugin.js +121 -37
- package/lib/DependenciesBlock.js +9 -6
- package/lib/Dependency.js +36 -16
- package/lib/DependencyTemplate.js +11 -12
- package/lib/DependencyTemplates.js +3 -3
- package/lib/DotenvPlugin.js +91 -26
- package/lib/DynamicEntryPlugin.js +8 -4
- package/lib/EntryOptionPlugin.js +8 -4
- package/lib/EntryPlugin.js +2 -2
- package/lib/Entrypoint.js +6 -2
- package/lib/EnvironmentPlugin.js +2 -2
- package/lib/EvalDevToolModulePlugin.js +8 -4
- package/lib/EvalSourceMapDevToolPlugin.js +15 -8
- package/lib/ExportsInfo.js +111 -14
- package/lib/ExportsInfoApiPlugin.js +2 -4
- package/lib/ExternalModule.js +232 -77
- package/lib/ExternalModuleFactoryPlugin.js +97 -38
- package/lib/ExternalsPlugin.js +10 -6
- package/lib/FileSystemInfo.js +44 -70
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
- package/lib/FlagDependencyExportsPlugin.js +76 -19
- package/lib/FlagDependencyUsagePlugin.js +40 -49
- package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
- package/lib/Generator.js +36 -15
- package/lib/HotModuleReplacementPlugin.js +16 -44
- package/lib/IgnorePlugin.js +8 -4
- package/lib/IgnoreWarningsPlugin.js +2 -2
- package/lib/InitFragment.js +8 -4
- package/lib/JavascriptMetaInfoPlugin.js +35 -4
- package/lib/LazyBarrel.js +3 -4
- package/lib/LibraryTemplatePlugin.js +10 -6
- package/lib/LoaderOptionsPlugin.js +7 -3
- package/lib/LoaderTargetPlugin.js +1 -1
- package/lib/MainTemplate.js +49 -42
- package/lib/ManifestPlugin.js +12 -11
- package/lib/Module.js +62 -33
- package/lib/ModuleFactory.js +3 -3
- package/lib/ModuleFilenameHelpers.js +9 -4
- package/lib/ModuleGraph.js +195 -21
- package/lib/ModuleGraphConnection.js +6 -13
- package/lib/ModuleInfoHeaderPlugin.js +8 -10
- package/lib/ModuleTemplate.js +62 -63
- package/lib/MultiCompiler.js +130 -64
- package/lib/MultiStats.js +40 -9
- package/lib/MultiWatching.js +3 -3
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +29 -19
- package/lib/NormalModule.js +152 -103
- package/lib/NormalModuleFactory.js +555 -110
- package/lib/NormalModuleReplacementPlugin.js +5 -8
- package/lib/NullFactory.js +6 -2
- package/lib/OptionsApply.js +7 -3
- package/lib/Parser.js +7 -3
- package/lib/PlatformPlugin.js +2 -2
- package/lib/PrefetchPlugin.js +1 -1
- package/lib/ProgressPlugin.js +16 -13
- package/lib/ProvidePlugin.js +3 -5
- package/lib/RawModule.js +25 -17
- package/lib/RecordIdsPlugin.js +3 -3
- package/lib/RequestShortener.js +1 -1
- package/lib/ResolverFactory.js +2 -2
- package/lib/RuntimeGlobals.js +22 -10
- package/lib/RuntimeModule.js +29 -19
- package/lib/RuntimePlugin.js +335 -169
- package/lib/RuntimeTemplate.js +2761 -316
- package/lib/SelfModuleFactory.js +7 -3
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
- package/lib/SourceMapDevToolPlugin.js +30 -20
- package/lib/Stats.js +3 -4
- package/lib/Template.js +32 -22
- package/lib/TemplatedPathPlugin.js +96 -14
- package/lib/UseStrictPlugin.js +4 -6
- package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +1 -1
- package/lib/WatchIgnorePlugin.js +8 -6
- package/lib/Watching.js +8 -8
- package/lib/WebpackIsIncludedPlugin.js +2 -4
- package/lib/WebpackOptionsApply.js +308 -18
- package/lib/WebpackOptionsDefaulter.js +6 -2
- package/lib/asset/AssetBytesGenerator.js +12 -10
- package/lib/asset/AssetBytesParser.js +2 -4
- package/lib/asset/AssetGenerator.js +188 -95
- package/lib/asset/AssetModule.js +7 -3
- package/lib/asset/AssetModulesPlugin.js +110 -38
- package/lib/asset/AssetParser.js +9 -7
- package/lib/asset/AssetSourceGenerator.js +60 -13
- package/lib/asset/AssetSourceParser.js +2 -4
- package/lib/asset/RawDataUrlModule.js +24 -16
- package/lib/asset/WebManifestGenerator.js +8 -10
- package/lib/asset/WebManifestParser.js +24 -10
- package/lib/async-modules/AsyncModuleHelpers.js +12 -6
- package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
- package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
- package/lib/async-modules/isGeneratorLowered.js +4 -4
- package/lib/buildChunkGraph.js +36 -27
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
- package/lib/cache/AddManagedPathsPlugin.js +1 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +18 -10
- package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
- package/lib/cache/PackFileCacheStrategy.js +30 -23
- package/lib/cache/ResolverCachePlugin.js +38 -18
- package/lib/cache/getLazyHashedEtag.js +1 -2
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/cli.js +1 -3
- package/lib/config/browserslistTargetHandler.js +41 -5
- package/lib/config/defaults.js +270 -78
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +46 -16
- package/lib/config/target.js +46 -3
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +24 -15
- package/lib/container/ContainerEntryModuleFactory.js +7 -3
- package/lib/container/ContainerPlugin.js +9 -10
- package/lib/container/ContainerReferencePlugin.js +6 -2
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackModule.js +24 -17
- package/lib/container/FallbackModuleFactory.js +7 -3
- package/lib/container/HoistContainerReferencesPlugin.js +6 -11
- package/lib/container/ModuleFederationPlugin.js +7 -24
- package/lib/container/RemoteModule.js +27 -19
- package/lib/container/RemoteRuntimeModule.js +10 -8
- package/lib/container/moduleFederationHooks.js +32 -0
- package/lib/css/CssGenerator.js +171 -43
- package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
- package/lib/css/CssLoadingRuntimeModule.js +84 -32
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +172 -100
- package/lib/css/CssParser.js +1113 -568
- package/lib/css/CssServerStylesRuntimeModule.js +54 -0
- package/lib/css/cssMinify.js +168 -0
- package/lib/css/data.js +5334 -0
- package/lib/css/syntax.js +9647 -232
- package/lib/debug/ProfilingPlugin.js +14 -9
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/AMDDefineDependency.js +112 -87
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
- package/lib/dependencies/AMDPlugin.js +9 -7
- package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
- package/lib/dependencies/AMDRequireContextDependency.js +2 -2
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
- package/lib/dependencies/AMDRequireDependency.js +8 -7
- package/lib/dependencies/AMDRequireItemDependency.js +1 -1
- package/lib/dependencies/AMDRuntimeModules.js +21 -1
- package/lib/dependencies/BuildTimeConstDependency.js +102 -0
- package/lib/dependencies/CachedConstDependency.js +11 -8
- package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
- package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
- package/lib/dependencies/CommonJsExportsDependency.js +53 -49
- package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
- package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
- package/lib/dependencies/CommonJsPlugin.js +35 -6
- package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
- package/lib/dependencies/CommonJsRequireDependency.js +170 -27
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
- package/lib/dependencies/ConstDependency.js +8 -9
- package/lib/dependencies/ContextDependency.js +12 -8
- package/lib/dependencies/ContextDependencyHelpers.js +14 -9
- package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +24 -11
- package/lib/dependencies/ContextElementDependency.js +31 -12
- package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
- package/lib/dependencies/CssIcssExportDependency.js +56 -28
- package/lib/dependencies/CssIcssImportDependency.js +17 -13
- package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
- package/lib/dependencies/CssImportDependency.js +18 -9
- package/lib/dependencies/CssUrlDependency.js +17 -13
- package/lib/dependencies/DllEntryDependency.js +1 -1
- package/lib/dependencies/DynamicExports.js +2 -2
- package/lib/dependencies/ExportBindingInitFragment.js +36 -9
- package/lib/dependencies/ExportsInfoDependency.js +7 -8
- package/lib/dependencies/ExternalModuleDependency.js +9 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
- package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +23 -14
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +80 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +286 -80
- package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
- package/lib/dependencies/HarmonyExports.js +7 -4
- package/lib/dependencies/HarmonyImportDependency.js +121 -60
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +124 -38
- package/lib/dependencies/HarmonyImportGuard.js +20 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +152 -9
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
- package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
- package/lib/dependencies/HtmlEntryDependency.js +49 -31
- package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
- package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
- package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
- package/lib/dependencies/HtmlSourceDependency.js +22 -14
- package/lib/dependencies/ImportContextDependency.js +45 -5
- package/lib/dependencies/ImportDependency.js +33 -50
- package/lib/dependencies/ImportEagerDependency.js +6 -9
- package/lib/dependencies/ImportMetaContextDependency.js +2 -2
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
- package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
- package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
- package/lib/dependencies/ImportMetaPlugin.js +154 -71
- package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
- package/lib/dependencies/ImportParserPlugin.js +73 -49
- package/lib/dependencies/ImportPhase.js +12 -5
- package/lib/dependencies/ImportPlugin.js +7 -3
- package/lib/dependencies/ImportWeakDependency.js +6 -9
- package/lib/dependencies/JsonExportsDependency.js +11 -7
- package/lib/dependencies/LoaderDependency.js +2 -2
- package/lib/dependencies/LoaderImportDependency.js +2 -2
- package/lib/dependencies/LoaderPlugin.js +11 -7
- package/lib/dependencies/LocalModuleDependency.js +5 -5
- package/lib/dependencies/LocalModulesHelpers.js +1 -1
- package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
- package/lib/dependencies/ModuleDependency.js +9 -6
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
- package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
- package/lib/dependencies/NullDependency.js +3 -3
- package/lib/dependencies/ProvidedDependency.js +14 -10
- package/lib/dependencies/PureExpressionDependency.js +9 -10
- package/lib/dependencies/RequireContextDependency.js +2 -2
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
- package/lib/dependencies/RequireContextPlugin.js +8 -4
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
- package/lib/dependencies/RequireEnsureDependency.js +8 -7
- package/lib/dependencies/RequireEnsurePlugin.js +7 -3
- package/lib/dependencies/RequireHeaderDependency.js +50 -12
- package/lib/dependencies/RequireIncludeDependency.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
- package/lib/dependencies/RequireIncludePlugin.js +7 -3
- package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
- package/lib/dependencies/RequireResolveContextDependency.js +2 -2
- package/lib/dependencies/RequireResolveDependency.js +4 -4
- package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
- package/lib/dependencies/StaticExportsDependency.js +2 -2
- package/lib/dependencies/SystemPlugin.js +10 -6
- package/lib/dependencies/SystemRuntimeModule.js +10 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
- package/lib/dependencies/URLContextDependency.js +2 -2
- package/lib/dependencies/URLDependency.js +110 -64
- package/lib/dependencies/URLPlugin.js +7 -3
- package/lib/dependencies/UnsupportedDependency.js +4 -4
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
- package/lib/dependencies/WorkerAndWorkletPlugin.js +47 -28
- package/lib/dependencies/WorkerDependency.js +22 -22
- package/lib/dependencies/WorkletDependency.js +18 -21
- package/lib/dependencies/getFunctionExpression.js +8 -4
- package/lib/dependencies/importOptionsCheck.js +47 -0
- package/lib/dependencies/processExportInfo.js +5 -5
- package/lib/dll/DelegatedModule.js +34 -22
- package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
- package/lib/dll/DelegatedPlugin.js +2 -2
- package/lib/dll/DllEntryPlugin.js +2 -2
- package/lib/dll/DllModule.js +22 -15
- package/lib/dll/DllModuleFactory.js +7 -3
- package/lib/dll/DllPlugin.js +7 -5
- package/lib/dll/DllReferencePlugin.js +10 -7
- package/lib/dll/LibManifestPlugin.js +5 -5
- package/lib/electron/ElectronTargetPlugin.js +53 -49
- package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BroadContextsWarning.js +43 -0
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/errors/CacheEffectivenessWarning.js +55 -0
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CircularDependenciesWarning.js +38 -0
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
- package/lib/errors/DotenvFileError.js +29 -0
- package/lib/errors/DuplicateModulesWarning.js +45 -0
- package/lib/errors/DynamicExportsWarning.js +30 -0
- package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
- package/lib/errors/EntrypointOverlapWarning.js +45 -0
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/errors/EvalUsageWarning.js +28 -0
- package/lib/errors/HookWebpackError.js +5 -5
- package/lib/errors/HotspotsWarning.js +57 -0
- package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
- package/lib/errors/ImportedBindingAssignmentError.js +30 -0
- package/lib/errors/InlinedAssetsWarning.js +36 -0
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/LargeModulesWarning.js +45 -0
- package/lib/errors/LegacyJavascriptWarning.js +48 -0
- package/lib/errors/MissingSideEffectsWarning.js +36 -0
- package/lib/errors/MixedExportsWarning.js +41 -0
- package/lib/errors/ModuleDependencyError.js +13 -16
- package/lib/errors/ModuleDependencyWarning.js +5 -15
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +2 -2
- package/lib/errors/ModuleParseError.js +1 -2
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/NodeStuffInWebError.js +1 -1
- package/lib/errors/OsDependentRuleWarning.js +31 -0
- package/lib/errors/PureAnnotationsWarning.js +36 -0
- package/lib/errors/RedundantDynamicImportWarning.js +31 -0
- package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
- package/lib/errors/SplitChunksCappedWarning.js +41 -0
- package/lib/errors/TinyChunksWarning.js +40 -0
- package/lib/errors/TopLevelThisWarning.js +34 -0
- package/lib/errors/UnsplitVendorsWarning.js +42 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/errors/UnusedAliasesWarning.js +29 -0
- package/lib/errors/UnusedDefinesWarning.js +29 -0
- package/lib/errors/UnusedExternalsWarning.js +29 -0
- package/lib/errors/UnusedReexportsWarning.js +42 -0
- package/lib/errors/UnusedRuleWarning.js +29 -0
- package/lib/errors/WebpackError.js +9 -5
- package/lib/errors/deriveStackFromNestedError.js +90 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +86 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +161 -62
- package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/LazyCompilationPlugin.js +45 -24
- package/lib/hmr/lazyCompilationBackend.js +9 -6
- package/lib/hmr/parserHooks.js +56 -0
- package/lib/html/HtmlGenerator.js +277 -77
- package/lib/html/HtmlModule.js +7 -3
- package/lib/html/HtmlModulesPlugin.js +366 -200
- package/lib/html/HtmlParser.js +31 -86
- package/lib/html/data.js +1928 -0
- package/lib/html/htmlMinify.js +288 -0
- package/lib/html/syntax.js +6034 -1384
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
- package/lib/ids/HashedModuleIdsPlugin.js +6 -2
- package/lib/ids/IdHelpers.js +7 -8
- package/lib/ids/NamedChunkIdsPlugin.js +1 -1
- package/lib/ids/NamedModuleIdsPlugin.js +1 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
- package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
- package/lib/ids/SyncModuleIdsPlugin.js +4 -4
- package/lib/index.js +10 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
- package/lib/javascript/BasicEvaluatedExpression.js +18 -14
- package/lib/javascript/ChunkFormatHelpers.js +6 -6
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
- package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
- package/lib/javascript/JavascriptGenerator.js +65 -165
- package/lib/javascript/JavascriptModule.js +9 -3
- package/lib/javascript/JavascriptModulesPlugin.js +103 -123
- package/lib/javascript/JavascriptParser.js +242 -99
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/ScopeAnalyzer.js +1094 -0
- package/lib/javascript/StartupHelpers.js +55 -9
- package/lib/javascript/syntax.js +2678 -232
- package/lib/json/JsonData.js +8 -4
- package/lib/json/JsonGenerator.js +38 -16
- package/lib/json/JsonModule.js +7 -3
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -6
- package/lib/library/AbstractLibraryPlugin.js +20 -14
- package/lib/library/AmdLibraryPlugin.js +11 -7
- package/lib/library/AssignLibraryPlugin.js +19 -13
- package/lib/library/EnableLibraryPlugin.js +2 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
- package/lib/library/JsonpLibraryPlugin.js +11 -7
- package/lib/library/ModuleLibraryPlugin.js +256 -64
- package/lib/library/SystemLibraryPlugin.js +12 -8
- package/lib/library/UmdLibraryPlugin.js +62 -25
- package/lib/loaders/LoaderRunner.js +47 -6
- package/lib/loaders/loadLoader.js +8 -4
- package/lib/logging/createConsoleLogger.js +7 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
- package/lib/node/NodeEnvironmentPlugin.js +17 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -3
- package/lib/node/NodeTemplatePlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +70 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +65 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
- package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/nodeConsole.js +7 -3
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
- package/lib/optimize/ConcatenatedModule.js +1030 -476
- package/lib/optimize/ConstExportsPlugin.js +16 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +130 -5
- package/lib/optimize/InnerGraph.js +28 -12
- package/lib/optimize/InnerGraphPlugin.js +23 -18
- package/lib/optimize/LimitChunkCountPlugin.js +7 -3
- package/lib/optimize/MangleExportsPlugin.js +7 -8
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
- package/lib/optimize/MinChunkSizePlugin.js +7 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
- package/lib/optimize/RealContentHashPlugin.js +121 -41
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/RuntimeChunkPlugin.js +2 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
- package/lib/optimize/SplitChunksPlugin.js +86 -24
- package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
- package/lib/performance/BroadContextsPlugin.js +142 -0
- package/lib/performance/CacheEffectivenessPlugin.js +125 -0
- package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
- package/lib/performance/DuplicateModulesPlugin.js +93 -0
- package/lib/performance/DuplicatePackagesPlugin.js +119 -0
- package/lib/performance/DuplicatePackagesWarning.js +84 -0
- package/lib/performance/DynamicExportsPlugin.js +120 -0
- package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
- package/lib/performance/EntrypointOverlapPlugin.js +122 -0
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
- package/lib/performance/EvalUsagePlugin.js +115 -0
- package/lib/performance/HotspotsPlugin.js +296 -0
- package/lib/performance/InlinedAssetsPlugin.js +99 -0
- package/lib/performance/LargeModulesPlugin.js +126 -0
- package/lib/performance/LegacyJavascriptPlugin.js +139 -0
- package/lib/performance/MissingSideEffectsPlugin.js +138 -0
- package/lib/performance/MixedExportsPlugin.js +136 -0
- package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
- package/lib/performance/PureAnnotationsPlugin.js +219 -0
- package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
- package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
- package/lib/performance/SizeLimitsPlugin.js +139 -7
- package/lib/performance/SplitChunksCappedPlugin.js +99 -0
- package/lib/performance/TinyChunksPlugin.js +128 -0
- package/lib/performance/TopLevelThisPlugin.js +208 -0
- package/lib/performance/UnsplitVendorsPlugin.js +112 -0
- package/lib/performance/UnusedAliasesPlugin.js +253 -0
- package/lib/performance/UnusedDefinesPlugin.js +87 -0
- package/lib/performance/UnusedExternalsPlugin.js +110 -0
- package/lib/performance/UnusedReexportsPlugin.js +159 -0
- package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
- package/lib/performance/getModuleSize.js +22 -0
- package/lib/performance/getSourceModules.js +22 -0
- package/lib/performance/hasOnlyUnusedExports.js +40 -0
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +295 -79
- package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
- package/lib/prefetch/parseResourceHintOptions.js +31 -4
- package/lib/rules/BasicEffectRulePlugin.js +2 -2
- package/lib/rules/BasicMatcherRulePlugin.js +8 -4
- package/lib/rules/GlobMatcherRulePlugin.js +68 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
- package/lib/rules/RuleSetCompiler.js +146 -12
- package/lib/rules/UseEffectRulePlugin.js +18 -11
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +6 -2
- package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
- package/lib/runtime/BaseUriRuntimeModule.js +33 -7
- package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
- package/lib/runtime/CompatRuntimeModule.js +5 -3
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
- package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
- package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
- package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
- package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
- package/lib/runtime/GlobalRuntimeModule.js +18 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +34 -7
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
- package/lib/runtime/NonceRuntimeModule.js +10 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
- package/lib/runtime/PublicPathRuntimeModule.js +12 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
- package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
- package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
- package/lib/runtime/SystemContextRuntimeModule.js +10 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
- package/lib/runtime/WorkerRuntimeModule.js +11 -1
- package/lib/runtime/baseUri.js +63 -0
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +46 -20
- package/lib/schemes/VirtualUrlPlugin.js +13 -7
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +4 -4
- package/lib/serialization/ErrorObjectSerializer.js +1 -1
- package/lib/serialization/FileMiddleware.js +22 -9
- package/lib/serialization/ObjectMiddleware.js +139 -114
- package/lib/serialization/PlainObjectSerializer.js +19 -16
- package/lib/sharing/ConsumeSharedModule.js +30 -21
- package/lib/sharing/ConsumeSharedPlugin.js +18 -10
- package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
- package/lib/sharing/ProvideSharedModule.js +25 -16
- package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
- package/lib/sharing/ProvideSharedPlugin.js +8 -4
- package/lib/sharing/SharePlugin.js +17 -5
- package/lib/sharing/ShareRuntimeModule.js +4 -4
- package/lib/sharing/resolveMatchedConfigs.js +9 -6
- package/lib/sharing/utils.js +1 -3
- package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
- package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
- package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
- package/lib/stats/StatsFactory.js +25 -26
- package/lib/stats/StatsPrinter.js +16 -12
- package/lib/typescript/TypeScriptPlugin.js +20 -24
- package/lib/url/URLParserPlugin.js +26 -13
- package/lib/util/ArrayQueue.js +3 -3
- package/lib/util/AsyncQueue.js +4 -3
- package/lib/util/Hash.js +5 -1
- package/lib/util/LazySet.js +35 -22
- package/lib/util/LocConverter.js +36 -13
- package/lib/util/SourceProcessor.js +1066 -24
- package/lib/util/StringXor.js +1 -1
- package/lib/util/URLAbsoluteSpecifier.js +3 -1
- package/lib/util/chainedImports.js +9 -5
- package/lib/util/cleverMerge.js +1 -1
- package/lib/util/comparators.js +45 -14
- package/lib/util/concatenate.js +203 -77
- package/lib/util/conventions.js +10 -2
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- package/lib/util/createMappings.js +25 -3
- package/lib/util/dataURL.js +225 -1
- package/lib/util/extractSourceMap.js +4 -3
- package/lib/util/findCaseMismatch.js +139 -0
- package/lib/util/formatLocation.js +1 -2
- package/lib/util/fs.js +22 -5
- package/lib/util/globUtils.js +298 -24
- package/lib/util/hash/BatchedHash.js +5 -1
- package/lib/util/hash/BulkUpdateHash.js +5 -1
- package/lib/util/hash/DebugHash.js +5 -1
- package/lib/util/hash/hash-digest.js +6 -2
- package/lib/util/identifier.js +4 -0
- package/lib/util/implicitTypeLoaderFallback.js +1 -1
- package/lib/util/internalSerializables.js +8 -0
- package/lib/util/lazyModule.js +56 -0
- package/lib/util/makeSerializable.js +7 -3
- package/lib/util/matchAlias.js +25 -0
- package/lib/util/mimeTypes.js +11 -5
- package/lib/util/nonNumericOnlyHash.js +4 -3
- package/lib/util/parseJson.js +5 -3
- package/lib/util/preloadModuleType.js +32 -0
- package/lib/util/registerExternalSerializer.js +7 -5
- package/lib/util/removeBOM.js +82 -1
- package/lib/util/runtime.js +2 -2
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +28 -28
- package/lib/util/source.js +2 -2
- package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
- package/lib/wasm/wasmModuleFilename.js +54 -0
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +43 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +45 -21
- package/lib/wasm-async/AsyncWasmModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
- package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +29 -8
- package/lib/wasm-sync/SyncWasmModule.js +2 -2
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
- package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
- package/lib/wasm-sync/WebAssemblyParser.js +4 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/FetchCompileAsyncWasmPlugin.js +105 -19
- package/lib/web/FetchCompileWasmPlugin.js +48 -16
- package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
- package/lib/web/JsonpTemplatePlugin.js +2 -2
- package/lib/webpack.js +22 -11
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +1 -0
- package/package.json +32 -25
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +667 -34
- package/schemas/plugins/HtmlParserOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/types.d.ts +3223 -465
- package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
package/lib/MainTemplate.js
CHANGED
|
@@ -8,39 +8,44 @@
|
|
|
8
8
|
const util = require("util");
|
|
9
9
|
const { SyncWaterfallHook } = require("tapable");
|
|
10
10
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
11
|
+
const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
|
|
11
12
|
const memoize = require("./util/memoize");
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
/** @
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/** @
|
|
25
|
-
/** @
|
|
26
|
-
/**
|
|
27
|
-
|
|
14
|
+
const getLoadScriptRuntimeModule = memoize(() =>
|
|
15
|
+
require("./runtime/LoadScriptRuntimeModule")
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
const getJsonpTemplatePlugin = memoize(() =>
|
|
19
|
+
require("./web/JsonpTemplatePlugin")
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
/** @import { Tap } from "tapable" */
|
|
23
|
+
/** @import { Source } from "webpack-sources" */
|
|
24
|
+
/** @import { Output as OutputOptions } from "../declarations/WebpackOptions" */
|
|
25
|
+
/** @import ModuleTemplate from "./ModuleTemplate" */
|
|
26
|
+
/** @import Chunk from "./Chunk" */
|
|
27
|
+
/**
|
|
28
|
+
* @import Compilation, {
|
|
29
|
+
* AssetInfo,
|
|
30
|
+
* InterpolatedPathAndAssetInfo,
|
|
31
|
+
* PathData
|
|
32
|
+
* } from "./Compilation"
|
|
33
|
+
*/
|
|
34
|
+
/** @import Hash from "./util/Hash" */
|
|
35
|
+
/** @import DependencyTemplates from "./DependencyTemplates" */
|
|
36
|
+
/**
|
|
37
|
+
* @import {
|
|
38
|
+
* RenderBootstrapContext
|
|
39
|
+
* } from "./javascript/JavascriptModulesPlugin"
|
|
40
|
+
*/
|
|
41
|
+
/** @import { RenderManifestOptions, RenderManifestEntry } from "./Template" */
|
|
42
|
+
/** @import { TemplatePath } from "./TemplatedPathPlugin" */
|
|
28
43
|
/**
|
|
29
44
|
* Defines the if set type used by this module.
|
|
30
45
|
* @template T
|
|
31
46
|
* @typedef {import("tapable").IfSet<T>} IfSet
|
|
32
47
|
*/
|
|
33
48
|
|
|
34
|
-
const getJavascriptModulesPlugin = memoize(() =>
|
|
35
|
-
require("./javascript/JavascriptModulesPlugin")
|
|
36
|
-
);
|
|
37
|
-
const getJsonpTemplatePlugin = memoize(() =>
|
|
38
|
-
require("./web/JsonpTemplatePlugin")
|
|
39
|
-
);
|
|
40
|
-
const getLoadScriptRuntimeModule = memoize(() =>
|
|
41
|
-
require("./runtime/LoadScriptRuntimeModule")
|
|
42
|
-
);
|
|
43
|
-
|
|
44
49
|
// TODO webpack 6 remove this class
|
|
45
50
|
class MainTemplate {
|
|
46
51
|
/**
|
|
@@ -96,9 +101,9 @@ class MainTemplate {
|
|
|
96
101
|
* @param {(value: string, renderBootstrapContext: RenderBootstrapContext) => string} fn fn
|
|
97
102
|
*/
|
|
98
103
|
(options, fn) => {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
104
|
+
JavascriptModulesPlugin.getCompilationHooks(
|
|
105
|
+
compilation
|
|
106
|
+
).renderRequire.tap(options, fn);
|
|
102
107
|
},
|
|
103
108
|
"MainTemplate.hooks.require is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderRequire instead)",
|
|
104
109
|
"DEP_WEBPACK_MAIN_TEMPLATE_REQUIRE"
|
|
@@ -134,9 +139,9 @@ class MainTemplate {
|
|
|
134
139
|
* @param {(source: Source, chunk: Chunk, hash: string | undefined, moduleTemplate: ModuleTemplate, dependencyTemplates: DependencyTemplates) => Source} fn fn
|
|
135
140
|
*/
|
|
136
141
|
(options, fn) => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
142
|
+
JavascriptModulesPlugin.getCompilationHooks(compilation).render.tap(
|
|
143
|
+
options,
|
|
144
|
+
(source, renderContext) => {
|
|
140
145
|
if (
|
|
141
146
|
renderContext.chunkGraph.getNumberOfEntryModules(
|
|
142
147
|
renderContext.chunk
|
|
@@ -152,7 +157,8 @@ class MainTemplate {
|
|
|
152
157
|
compilation.moduleTemplates.javascript,
|
|
153
158
|
compilation.dependencyTemplates
|
|
154
159
|
);
|
|
155
|
-
}
|
|
160
|
+
}
|
|
161
|
+
);
|
|
156
162
|
},
|
|
157
163
|
"MainTemplate.hooks.render is deprecated (use JavascriptModulesPlugin.getCompilationHooks().render instead)",
|
|
158
164
|
"DEP_WEBPACK_MAIN_TEMPLATE_RENDER"
|
|
@@ -167,9 +173,9 @@ class MainTemplate {
|
|
|
167
173
|
* @param {(source: Source, chunk: Chunk, hash: string | undefined) => Source} fn fn
|
|
168
174
|
*/
|
|
169
175
|
(options, fn) => {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
176
|
+
JavascriptModulesPlugin.getCompilationHooks(compilation).render.tap(
|
|
177
|
+
options,
|
|
178
|
+
(source, renderContext) => {
|
|
173
179
|
if (
|
|
174
180
|
renderContext.chunkGraph.getNumberOfEntryModules(
|
|
175
181
|
renderContext.chunk
|
|
@@ -179,7 +185,8 @@ class MainTemplate {
|
|
|
179
185
|
return source;
|
|
180
186
|
}
|
|
181
187
|
return fn(source, renderContext.chunk, compilation.hash);
|
|
182
|
-
}
|
|
188
|
+
}
|
|
189
|
+
);
|
|
183
190
|
},
|
|
184
191
|
"MainTemplate.hooks.renderWithEntry is deprecated (use JavascriptModulesPlugin.getCompilationHooks().render instead)",
|
|
185
192
|
"DEP_WEBPACK_MAIN_TEMPLATE_RENDER_WITH_ENTRY"
|
|
@@ -235,12 +242,12 @@ class MainTemplate {
|
|
|
235
242
|
* @param {(hash: Hash, chunk: Chunk) => void} fn fn
|
|
236
243
|
*/
|
|
237
244
|
(options, fn) => {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
245
|
+
JavascriptModulesPlugin.getCompilationHooks(
|
|
246
|
+
compilation
|
|
247
|
+
).chunkHash.tap(options, (chunk, hash) => {
|
|
248
|
+
if (!chunk.hasRuntime()) return;
|
|
249
|
+
return fn(hash, chunk);
|
|
250
|
+
});
|
|
244
251
|
},
|
|
245
252
|
"MainTemplate.hooks.hashForChunk is deprecated (use JavascriptModulesPlugin.getCompilationHooks().chunkHash instead)",
|
|
246
253
|
"DEP_WEBPACK_MAIN_TEMPLATE_HASH_FOR_CHUNK"
|
package/lib/ManifestPlugin.js
CHANGED
|
@@ -9,17 +9,18 @@ const { RawSource } = require("webpack-sources");
|
|
|
9
9
|
const Compilation = require("./Compilation");
|
|
10
10
|
const HotUpdateChunk = require("./HotUpdateChunk");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
/** @import Compiler from "./Compiler" */
|
|
13
|
+
/** @import Chunk, { ChunkName, ChunkId } from "./Chunk" */
|
|
14
|
+
/** @import { AssetInfo } from "./Compilation" */
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @import {
|
|
18
|
+
* ManifestPluginOptions,
|
|
19
|
+
* ManifestObject,
|
|
20
|
+
* ManifestEntrypoint,
|
|
21
|
+
* ManifestItem
|
|
22
|
+
* } from "../declarations/plugins/ManifestPlugin"
|
|
23
|
+
*/
|
|
23
24
|
|
|
24
25
|
/** @typedef {(item: ManifestItem) => boolean} Filter */
|
|
25
26
|
/** @typedef {(manifest: ManifestObject) => ManifestObject} Generate */
|
package/lib/Module.js
CHANGED
|
@@ -19,43 +19,53 @@ const { first } = require("./util/SetHelpers");
|
|
|
19
19
|
const { compareChunksById } = require("./util/comparators");
|
|
20
20
|
const makeSerializable = require("./util/makeSerializable");
|
|
21
21
|
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/** @
|
|
30
|
-
/** @
|
|
31
|
-
/** @
|
|
32
|
-
/** @
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/** @
|
|
41
|
-
/** @
|
|
42
|
-
/** @
|
|
43
|
-
/** @
|
|
44
|
-
/** @
|
|
45
|
-
/** @
|
|
46
|
-
/** @
|
|
22
|
+
/** @import { Source } from "webpack-sources" */
|
|
23
|
+
/** @import { ResolveOptions } from "../declarations/WebpackOptions" */
|
|
24
|
+
/**
|
|
25
|
+
* @import {
|
|
26
|
+
* WebpackOptionsNormalizedWithDefaults as WebpackOptions
|
|
27
|
+
* } from "./config/defaults"
|
|
28
|
+
*/
|
|
29
|
+
/** @import Chunk from "./Chunk" */
|
|
30
|
+
/** @import { ModuleId } from "./ChunkGraph" */
|
|
31
|
+
/** @import ChunkGroup from "./ChunkGroup" */
|
|
32
|
+
/** @import CodeGenerationResults from "./CodeGenerationResults" */
|
|
33
|
+
/**
|
|
34
|
+
* @import Compilation, {
|
|
35
|
+
* AssetInfo,
|
|
36
|
+
* FileSystemDependencies,
|
|
37
|
+
* UnsafeCacheData
|
|
38
|
+
* } from "./Compilation"
|
|
39
|
+
*/
|
|
40
|
+
/** @import ConcatenationScope from "./ConcatenationScope" */
|
|
41
|
+
/** @import Dependency, { UpdateHashContext } from "./Dependency" */
|
|
42
|
+
/** @import DependencyTemplates from "./DependencyTemplates" */
|
|
43
|
+
/** @import { AllTypes } from "./ModuleSourceTypeConstants" */
|
|
44
|
+
/** @import FileSystemInfo from "./FileSystemInfo" */
|
|
45
|
+
/** @import { ConnectionState } from "./ModuleGraphConnection" */
|
|
46
|
+
/** @import { ModuleTypes } from "./ModuleTypeConstants" */
|
|
47
|
+
/** @import { OptimizationBailouts } from "./ModuleGraph" */
|
|
48
|
+
/** @import ModuleProfile from "./ModuleProfile" */
|
|
49
|
+
/** @import NormalModuleFactory from "./NormalModuleFactory" */
|
|
50
|
+
/** @import RequestShortener from "./RequestShortener" */
|
|
51
|
+
/** @import { ResolverWithOptions } from "./ResolverFactory" */
|
|
52
|
+
/** @import RuntimeTemplate from "./RuntimeTemplate" */
|
|
47
53
|
/**
|
|
48
54
|
* Defines the init fragment type used by this module.
|
|
49
55
|
* @template T
|
|
50
56
|
* @typedef {import("./InitFragment")<T>} InitFragment
|
|
51
57
|
*/
|
|
52
|
-
/** @
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
/** @import WebpackError from "./errors/WebpackError" */
|
|
59
|
+
/**
|
|
60
|
+
* @import {
|
|
61
|
+
* ObjectDeserializerContext,
|
|
62
|
+
* ObjectSerializerContext
|
|
63
|
+
* } from "./serialization/ObjectMiddleware"
|
|
64
|
+
*/
|
|
65
|
+
/** @import Hash from "./util/Hash" */
|
|
66
|
+
/** @import { InputFileSystem } from "./util/fs" */
|
|
67
|
+
/** @import { AssociatedObjectForCache } from "./util/identifier" */
|
|
68
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
59
69
|
/**
|
|
60
70
|
* @template T
|
|
61
71
|
* @typedef {import("./util/SortableSet")<T>} SortableSet
|
|
@@ -173,6 +183,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
173
183
|
* @property {boolean=} sideEffectFree
|
|
174
184
|
* @property {Map<string, Record<string, string>>=} exportsFinalNameByRuntime using in ModuleLibraryPlugin
|
|
175
185
|
* @property {Map<string, string>=} exportsSourceByRuntime using in ModuleLibraryPlugin
|
|
186
|
+
* @property {Map<string, string>=} exportsBindingSourceByRuntime export definitions `ModuleLibraryPlugin` took over, re-emitted only where the module is wrapped
|
|
176
187
|
*/
|
|
177
188
|
|
|
178
189
|
/**
|
|
@@ -188,7 +199,10 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
188
199
|
* @property {Map<string, AssetInfo | undefined>=} assetsInfo
|
|
189
200
|
* @property {Set<string>=} topLevelDeclarations top level declaration names
|
|
190
201
|
* @property {boolean=} isCircular true when the module is part of a circular dependency chain
|
|
191
|
-
* @property {boolean=}
|
|
202
|
+
* @property {boolean=} usesEval true when the module calls `eval` directly
|
|
203
|
+
* @property {number=} ineffectivePureAnnotations how many `#__PURE__` annotations sit where the parser does not read them
|
|
204
|
+
* @property {number=} topLevelThis how many times the module reads `this` at its top level
|
|
205
|
+
* @property {boolean=} usesTopLevelAwaitForOf module uses top-level `for await…of` or `await using`, which can't be lowered to a generator
|
|
192
206
|
*/
|
|
193
207
|
|
|
194
208
|
/** @typedef {string | Set<string>} ValueCacheVersion */
|
|
@@ -1250,6 +1264,21 @@ class Module extends DependenciesBlock {
|
|
|
1250
1264
|
this.resolveOptions = undefined;
|
|
1251
1265
|
}
|
|
1252
1266
|
|
|
1267
|
+
/**
|
|
1268
|
+
* Re-acquire factory-derived helpers (parser/generator) for an incremental
|
|
1269
|
+
* rebuild so this compilation's plugin hooks apply.
|
|
1270
|
+
* @param {NormalModuleFactory} normalModuleFactory the normal module factory
|
|
1271
|
+
* @returns {void}
|
|
1272
|
+
*/
|
|
1273
|
+
_restoreParserAndGenerator(normalModuleFactory) {}
|
|
1274
|
+
|
|
1275
|
+
/**
|
|
1276
|
+
* Releases the cached parser between incremental rebuilds so it doesn't keep
|
|
1277
|
+
* the previous compilation alive.
|
|
1278
|
+
* @returns {void}
|
|
1279
|
+
*/
|
|
1280
|
+
_cleanupParserForCache() {}
|
|
1281
|
+
|
|
1253
1282
|
/**
|
|
1254
1283
|
* Gets the original source.
|
|
1255
1284
|
* @returns {Source | null} the original source for the module before webpack transformation
|
package/lib/ModuleFactory.js
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @
|
|
9
|
-
/** @
|
|
10
|
-
/** @
|
|
8
|
+
/** @import { ResolveOptions } from "../declarations/WebpackOptions" */
|
|
9
|
+
/** @import Dependency from "./Dependency" */
|
|
10
|
+
/** @import Module from "./Module" */
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Defines the module factory result type used by this module.
|
|
@@ -10,10 +10,10 @@ const { DEFAULTS } = require("./config/defaults");
|
|
|
10
10
|
const createHash = require("./util/createHash");
|
|
11
11
|
const memoize = require("./util/memoize");
|
|
12
12
|
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
13
|
+
/** @import { HashFunction } from "../declarations/WebpackOptions" */
|
|
14
|
+
/** @import ChunkGraph from "./ChunkGraph" */
|
|
15
|
+
/** @import Module from "./Module" */
|
|
16
|
+
/** @import RequestShortener from "./RequestShortener" */
|
|
17
17
|
|
|
18
18
|
/** @typedef {(str: string) => boolean} MatcherFn */
|
|
19
19
|
/** @typedef {string | RegExp | MatcherFn | (string | RegExp | MatcherFn)[]} Matcher */
|
|
@@ -21,6 +21,11 @@ const memoize = require("./util/memoize");
|
|
|
21
21
|
|
|
22
22
|
const ModuleFilenameHelpers = module.exports;
|
|
23
23
|
|
|
24
|
+
ModuleFilenameHelpers.DEFAULT_MODULE_FILENAME_TEMPLATE =
|
|
25
|
+
"webpack://[namespace]/[resourcePath]";
|
|
26
|
+
ModuleFilenameHelpers.DEFAULT_FALLBACK_MODULE_FILENAME_TEMPLATE =
|
|
27
|
+
"webpack://[namespace]/[resourcePath]?[hash]";
|
|
28
|
+
|
|
24
29
|
// TODO webpack 6: consider removing these
|
|
25
30
|
ModuleFilenameHelpers.ALL_LOADERS_RESOURCE = "[all-loaders][resource]";
|
|
26
31
|
ModuleFilenameHelpers.REGEXP_ALL_LOADERS_RESOURCE =
|
package/lib/ModuleGraph.js
CHANGED
|
@@ -14,18 +14,21 @@ const SortableSet = require("./util/SortableSet");
|
|
|
14
14
|
const WeakTupleMap = require("./util/WeakTupleMap");
|
|
15
15
|
const { sortWithSourceOrder } = require("./util/comparators");
|
|
16
16
|
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
21
|
-
/** @
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/** @
|
|
25
|
-
/** @
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
/** @import { ModuleMemCaches } from "./Compilation" */
|
|
18
|
+
/** @import DependenciesBlock from "./DependenciesBlock" */
|
|
19
|
+
/** @import Dependency, { ExportInfoName } from "./Dependency" */
|
|
20
|
+
/** @import { ExportInfo } from "./ExportsInfo" */
|
|
21
|
+
/** @import Module from "./Module" */
|
|
22
|
+
/** @import ModuleProfile from "./ModuleProfile" */
|
|
23
|
+
/** @import RequestShortener from "./RequestShortener" */
|
|
24
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
25
|
+
/** @import HarmonyImportSideEffectDependency from "./dependencies/HarmonyImportSideEffectDependency" */
|
|
26
|
+
/**
|
|
27
|
+
* @import HarmonyImportSpecifierDependency, {
|
|
28
|
+
* idsSymbol as HarmonyImportSpecifierDependencyIDsSymbol
|
|
29
|
+
* } from "./dependencies/HarmonyImportSpecifierDependency"
|
|
30
|
+
*/
|
|
31
|
+
/** @import { DependencySourceOrder } from "./util/comparators" */
|
|
29
32
|
|
|
30
33
|
/**
|
|
31
34
|
* Defines the optimization bailout function callback.
|
|
@@ -124,9 +127,16 @@ class ModuleGraphModule {
|
|
|
124
127
|
|
|
125
128
|
/** @typedef {EXPECTED_OBJECT} MetaKey */
|
|
126
129
|
|
|
127
|
-
/**
|
|
128
|
-
|
|
129
|
-
|
|
130
|
+
/**
|
|
131
|
+
* @import {
|
|
132
|
+
* idsSymbol as CommonJsExportRequireDependencyIDsSymbol
|
|
133
|
+
* } from "./dependencies/CommonJsExportRequireDependency"
|
|
134
|
+
*/
|
|
135
|
+
/**
|
|
136
|
+
* @import {
|
|
137
|
+
* idsSymbol as HarmonyExportImportedSpecifierDependencyIDsSymbol
|
|
138
|
+
* } from "./dependencies/HarmonyExportImportedSpecifierDependency"
|
|
139
|
+
*/
|
|
130
140
|
|
|
131
141
|
/**
|
|
132
142
|
* Defines the known meta type used by this module.
|
|
@@ -171,6 +181,15 @@ class ModuleGraph {
|
|
|
171
181
|
*/
|
|
172
182
|
this._cacheStage = undefined;
|
|
173
183
|
|
|
184
|
+
// incremental rebuilds: when set, move/copyOutgoingModuleConnections record
|
|
185
|
+
// their seal-time graph mutations (concatenation) here so they can be reversed,
|
|
186
|
+
// keeping this durable graph reusable across rebuilds
|
|
187
|
+
/**
|
|
188
|
+
* @type {{ oldModule?: Module, newModule: Module, movedOut?: ModuleGraphConnection[] | undefined, movedIn?: ModuleGraphConnection[] | undefined, copied?: ModuleGraphConnection[] }[] | undefined}
|
|
189
|
+
* @private
|
|
190
|
+
*/
|
|
191
|
+
this._mutationJournal = undefined;
|
|
192
|
+
|
|
174
193
|
/**
|
|
175
194
|
* @type {WeakMap<Dependency, DependencySourceOrder>}
|
|
176
195
|
* @private
|
|
@@ -395,6 +414,59 @@ class ModuleGraph {
|
|
|
395
414
|
this._dependencyMap.set(dependency, null);
|
|
396
415
|
}
|
|
397
416
|
|
|
417
|
+
/**
|
|
418
|
+
* Removes every outgoing connection of `module` whose dependency is in
|
|
419
|
+
* `staleDependencies`, including inactive ones left by `updateModule`
|
|
420
|
+
* re-targeting (which the dependency-keyed `removeConnection` misses). Needed
|
|
421
|
+
* when a module is rebuilt against a persisted graph so stale connections don't
|
|
422
|
+
* linger in the old target's incoming set and crash seal-time plugins.
|
|
423
|
+
* @param {Module} module the rebuilt origin module
|
|
424
|
+
* @param {Set<Dependency>} staleDependencies dependencies replaced by the rebuild
|
|
425
|
+
* @returns {void}
|
|
426
|
+
*/
|
|
427
|
+
_removeStaleOutgoingConnections(module, staleDependencies) {
|
|
428
|
+
const mgm = this._getModuleGraphModule(module);
|
|
429
|
+
const outgoing = mgm.outgoingConnections;
|
|
430
|
+
if (outgoing === undefined) return;
|
|
431
|
+
for (const connection of outgoing) {
|
|
432
|
+
if (
|
|
433
|
+
!staleDependencies.has(
|
|
434
|
+
/** @type {Dependency} */ (connection.dependency)
|
|
435
|
+
)
|
|
436
|
+
) {
|
|
437
|
+
continue;
|
|
438
|
+
}
|
|
439
|
+
outgoing.delete(connection);
|
|
440
|
+
if (connection.module !== null) {
|
|
441
|
+
this._getModuleGraphModule(
|
|
442
|
+
connection.module
|
|
443
|
+
).incomingConnections.delete(connection);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Assigns `module`'s pending outgoing connections into the dependency map by
|
|
450
|
+
* origin. `getConnection` normally does this lazily keyed by a dependency's
|
|
451
|
+
* PARENT module; an incremental barrel un-lazy wires a re-export target from
|
|
452
|
+
* the importer's walk, so the export dep's parent differs from its origin
|
|
453
|
+
* barrel and the lazy flush never reaches it. Flush by origin to fix that.
|
|
454
|
+
* @param {Module} module the origin module
|
|
455
|
+
* @returns {void}
|
|
456
|
+
*/
|
|
457
|
+
_flushUnassignedConnections(module) {
|
|
458
|
+
const mgm = this._getModuleGraphModule(module);
|
|
459
|
+
const pending = mgm._unassignedConnections;
|
|
460
|
+
if (pending === undefined || pending.length === 0) return;
|
|
461
|
+
for (const connection of pending) {
|
|
462
|
+
this._dependencyMap.set(
|
|
463
|
+
/** @type {Dependency} */ (connection.dependency),
|
|
464
|
+
connection
|
|
465
|
+
);
|
|
466
|
+
}
|
|
467
|
+
pending.length = 0;
|
|
468
|
+
}
|
|
469
|
+
|
|
398
470
|
/**
|
|
399
471
|
* Adds the provided dependency to the module graph.
|
|
400
472
|
* @param {Dependency} dependency the referencing dependency
|
|
@@ -437,6 +509,35 @@ class ModuleGraph {
|
|
|
437
509
|
mgm.async = false;
|
|
438
510
|
}
|
|
439
511
|
|
|
512
|
+
/**
|
|
513
|
+
* Removes a module from the graph entirely, detaching its connections. Used to
|
|
514
|
+
* drop stale runtime modules on an incremental rebuild so the persisted graph
|
|
515
|
+
* doesn't accumulate them.
|
|
516
|
+
* @param {Module} module the module to remove
|
|
517
|
+
* @returns {void}
|
|
518
|
+
*/
|
|
519
|
+
_removeModule(module) {
|
|
520
|
+
const mgm = this._moduleMap.get(module);
|
|
521
|
+
if (mgm === undefined) return;
|
|
522
|
+
if (mgm.outgoingConnections !== undefined) {
|
|
523
|
+
for (const connection of mgm.outgoingConnections) {
|
|
524
|
+
if (connection.module && connection.module !== module) {
|
|
525
|
+
const other = this._moduleMap.get(connection.module);
|
|
526
|
+
if (other !== undefined) other.incomingConnections.delete(connection);
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
for (const connection of mgm.incomingConnections) {
|
|
531
|
+
if (connection.originModule && connection.originModule !== module) {
|
|
532
|
+
const other = this._moduleMap.get(connection.originModule);
|
|
533
|
+
if (other !== undefined && other.outgoingConnections !== undefined) {
|
|
534
|
+
other.outgoingConnections.delete(connection);
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
this._moduleMap.delete(module);
|
|
539
|
+
}
|
|
540
|
+
|
|
440
541
|
/**
|
|
441
542
|
* Removes all module attributes.
|
|
442
543
|
* @returns {void}
|
|
@@ -461,6 +562,11 @@ class ModuleGraph {
|
|
|
461
562
|
if (oldModule === newModule) return;
|
|
462
563
|
const oldMgm = this._getModuleGraphModule(oldModule);
|
|
463
564
|
const newMgm = this._getModuleGraphModule(newModule);
|
|
565
|
+
const journal = this._mutationJournal;
|
|
566
|
+
/** @type {ModuleGraphConnection[] | undefined} */
|
|
567
|
+
const movedOut = journal ? [] : undefined;
|
|
568
|
+
/** @type {ModuleGraphConnection[] | undefined} */
|
|
569
|
+
const movedIn = journal ? [] : undefined;
|
|
464
570
|
// Outgoing connections
|
|
465
571
|
const oldConnections = oldMgm.outgoingConnections;
|
|
466
572
|
if (oldConnections !== undefined) {
|
|
@@ -473,6 +579,7 @@ class ModuleGraph {
|
|
|
473
579
|
connection.originModule = newModule;
|
|
474
580
|
newConnections.add(connection);
|
|
475
581
|
oldConnections.delete(connection);
|
|
582
|
+
if (movedOut) movedOut.push(connection);
|
|
476
583
|
}
|
|
477
584
|
}
|
|
478
585
|
}
|
|
@@ -484,8 +591,69 @@ class ModuleGraph {
|
|
|
484
591
|
connection.module = newModule;
|
|
485
592
|
newConnections2.add(connection);
|
|
486
593
|
oldConnections2.delete(connection);
|
|
594
|
+
if (movedIn) movedIn.push(connection);
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
if (journal) journal.push({ oldModule, newModule, movedOut, movedIn });
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* Start recording connection moves so they can later be reversed for incremental rebuilds.
|
|
602
|
+
* @returns {void}
|
|
603
|
+
*/
|
|
604
|
+
_startMutationJournal() {
|
|
605
|
+
this._mutationJournal = [];
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* Reverse all recorded connection moves, restoring the graph to its pre-seal
|
|
610
|
+
* (end-of-make) state, then stop recording (incremental rebuilds).
|
|
611
|
+
* @returns {void}
|
|
612
|
+
*/
|
|
613
|
+
_restoreFromMutationJournal() {
|
|
614
|
+
const journal = this._mutationJournal;
|
|
615
|
+
if (journal === undefined) return;
|
|
616
|
+
for (let i = journal.length - 1; i >= 0; i--) {
|
|
617
|
+
const { oldModule, newModule, movedOut, movedIn, copied } = journal[i];
|
|
618
|
+
const newMgm = this._getModuleGraphModule(newModule);
|
|
619
|
+
// copyOutgoingModuleConnections clones connections onto newModule and the
|
|
620
|
+
// external targets; undo by deleting the clones (there is no oldModule)
|
|
621
|
+
if (copied !== undefined) {
|
|
622
|
+
for (const connection of copied) {
|
|
623
|
+
if (newMgm.outgoingConnections !== undefined) {
|
|
624
|
+
newMgm.outgoingConnections.delete(connection);
|
|
625
|
+
}
|
|
626
|
+
if (connection.module !== null && connection.module !== undefined) {
|
|
627
|
+
this._getModuleGraphModule(
|
|
628
|
+
connection.module
|
|
629
|
+
).incomingConnections.delete(connection);
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
continue;
|
|
633
|
+
}
|
|
634
|
+
const oldModuleT = /** @type {Module} */ (oldModule);
|
|
635
|
+
const oldMgm = this._getModuleGraphModule(oldModuleT);
|
|
636
|
+
if (movedOut !== undefined) {
|
|
637
|
+
if (oldMgm.outgoingConnections === undefined) {
|
|
638
|
+
oldMgm.outgoingConnections = new SortableSet();
|
|
639
|
+
}
|
|
640
|
+
for (const connection of movedOut) {
|
|
641
|
+
connection.originModule = oldModuleT;
|
|
642
|
+
oldMgm.outgoingConnections.add(connection);
|
|
643
|
+
if (newMgm.outgoingConnections !== undefined) {
|
|
644
|
+
newMgm.outgoingConnections.delete(connection);
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
if (movedIn !== undefined) {
|
|
649
|
+
for (const connection of movedIn) {
|
|
650
|
+
connection.module = oldModuleT;
|
|
651
|
+
oldMgm.incomingConnections.add(connection);
|
|
652
|
+
newMgm.incomingConnections.delete(connection);
|
|
653
|
+
}
|
|
487
654
|
}
|
|
488
655
|
}
|
|
656
|
+
this._mutationJournal = undefined;
|
|
489
657
|
}
|
|
490
658
|
|
|
491
659
|
/**
|
|
@@ -499,6 +667,9 @@ class ModuleGraph {
|
|
|
499
667
|
if (oldModule === newModule) return;
|
|
500
668
|
const oldMgm = this._getModuleGraphModule(oldModule);
|
|
501
669
|
const newMgm = this._getModuleGraphModule(newModule);
|
|
670
|
+
const journal = this._mutationJournal;
|
|
671
|
+
/** @type {ModuleGraphConnection[] | undefined} */
|
|
672
|
+
const copied = journal ? [] : undefined;
|
|
502
673
|
// Outgoing connections
|
|
503
674
|
const oldConnections = oldMgm.outgoingConnections;
|
|
504
675
|
if (oldConnections !== undefined) {
|
|
@@ -515,9 +686,13 @@ class ModuleGraph {
|
|
|
515
686
|
const otherMgm = this._getModuleGraphModule(newConnection.module);
|
|
516
687
|
otherMgm.incomingConnections.add(newConnection);
|
|
517
688
|
}
|
|
689
|
+
if (copied) copied.push(newConnection);
|
|
518
690
|
}
|
|
519
691
|
}
|
|
520
692
|
}
|
|
693
|
+
if (journal && copied !== undefined && copied.length > 0) {
|
|
694
|
+
journal.push({ newModule, copied });
|
|
695
|
+
}
|
|
521
696
|
}
|
|
522
697
|
|
|
523
698
|
/**
|
|
@@ -752,7 +927,7 @@ class ModuleGraph {
|
|
|
752
927
|
* Returns info about the export.
|
|
753
928
|
* @param {Module} module the module
|
|
754
929
|
* @param {string} exportName the export
|
|
755
|
-
* @returns {ExportInfo} info about the export
|
|
930
|
+
* @returns {InstanceType<ExportInfo>} info about the export
|
|
756
931
|
*/
|
|
757
932
|
getExportInfo(module, exportName) {
|
|
758
933
|
const mgm = this._getModuleGraphModule(module);
|
|
@@ -763,7 +938,7 @@ class ModuleGraph {
|
|
|
763
938
|
* Gets read only export info.
|
|
764
939
|
* @param {Module} module the module
|
|
765
940
|
* @param {string} exportName the export
|
|
766
|
-
* @returns {ExportInfo} info about the export (do not modify)
|
|
941
|
+
* @returns {InstanceType<ExportInfo>} info about the export (do not modify)
|
|
767
942
|
*/
|
|
768
943
|
getReadOnlyExportInfo(module, exportName) {
|
|
769
944
|
const mgm = this._getModuleGraphModule(module);
|
|
@@ -1044,9 +1219,7 @@ class ModuleGraph {
|
|
|
1044
1219
|
const moduleGraph = moduleGraphForModuleMap.get(module);
|
|
1045
1220
|
if (!moduleGraph) {
|
|
1046
1221
|
throw new Error(
|
|
1047
|
-
`${
|
|
1048
|
-
deprecateMessage
|
|
1049
|
-
}There was no ModuleGraph assigned to the Module for backward-compat (Use the new API)`
|
|
1222
|
+
`${deprecateMessage}There was no ModuleGraph assigned to the Module for backward-compat (Use the new API)`
|
|
1050
1223
|
);
|
|
1051
1224
|
}
|
|
1052
1225
|
return moduleGraph;
|
|
@@ -1090,5 +1263,6 @@ const moduleGraphForModuleMap = new WeakMap();
|
|
|
1090
1263
|
/** @type {Map<string, (module: Module) => ModuleGraph>} */
|
|
1091
1264
|
const deprecateMap = new Map();
|
|
1092
1265
|
|
|
1266
|
+
ModuleGraph.ModuleGraphConnection = ModuleGraphConnection;
|
|
1267
|
+
|
|
1093
1268
|
module.exports = ModuleGraph;
|
|
1094
|
-
module.exports.ModuleGraphConnection = ModuleGraphConnection;
|