@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/lib/Compiler.js
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const parseJson = require("json-parse-even-better-errors");
|
|
9
8
|
const asyncLib = require("neo-async");
|
|
10
9
|
const {
|
|
11
10
|
AsyncParallelHook,
|
|
@@ -18,7 +17,6 @@ const Cache = require("./Cache");
|
|
|
18
17
|
const CacheFacade = require("./CacheFacade");
|
|
19
18
|
const ChunkGraph = require("./ChunkGraph");
|
|
20
19
|
const Compilation = require("./Compilation");
|
|
21
|
-
const ConcurrentCompilationError = require("./ConcurrentCompilationError");
|
|
22
20
|
const ContextModuleFactory = require("./ContextModuleFactory");
|
|
23
21
|
const ModuleGraph = require("./ModuleGraph");
|
|
24
22
|
const NormalModuleFactory = require("./NormalModuleFactory");
|
|
@@ -26,11 +24,16 @@ const RequestShortener = require("./RequestShortener");
|
|
|
26
24
|
const ResolverFactory = require("./ResolverFactory");
|
|
27
25
|
const Stats = require("./Stats");
|
|
28
26
|
const Watching = require("./Watching");
|
|
29
|
-
const
|
|
27
|
+
const ConcurrentCompilationError = require("./errors/ConcurrentCompilationError");
|
|
28
|
+
const WebpackError = require("./errors/WebpackError");
|
|
30
29
|
const { Logger } = require("./logging/Logger");
|
|
31
30
|
const { dirname, join, mkdirp } = require("./util/fs");
|
|
32
|
-
const {
|
|
31
|
+
const {
|
|
32
|
+
WINDOWS_ABS_PATH_REGEXP,
|
|
33
|
+
makePathsRelative
|
|
34
|
+
} = require("./util/identifier");
|
|
33
35
|
const memoize = require("./util/memoize");
|
|
36
|
+
const parseJson = require("./util/parseJson");
|
|
34
37
|
const { isSourceEqual } = require("./util/source");
|
|
35
38
|
const webpack = require(".");
|
|
36
39
|
|
|
@@ -67,12 +70,14 @@ const webpack = require(".");
|
|
|
67
70
|
/** @typedef {import("schema-utils").ValidationErrorConfiguration} ValidationErrorConfiguration */
|
|
68
71
|
|
|
69
72
|
/**
|
|
73
|
+
* Defines the compilation params type used by this module.
|
|
70
74
|
* @typedef {object} CompilationParams
|
|
71
75
|
* @property {NormalModuleFactory} normalModuleFactory
|
|
72
76
|
* @property {ContextModuleFactory} contextModuleFactory
|
|
73
77
|
*/
|
|
74
78
|
|
|
75
79
|
/**
|
|
80
|
+
* Defines the callback type used by this module.
|
|
76
81
|
* @template T
|
|
77
82
|
* @template [R=void]
|
|
78
83
|
* @typedef {import("./webpack").Callback<T, R>} Callback
|
|
@@ -81,6 +86,7 @@ const webpack = require(".");
|
|
|
81
86
|
/** @typedef {import("./webpack").ErrorCallback} ErrorCallback */
|
|
82
87
|
|
|
83
88
|
/**
|
|
89
|
+
* Defines the run as child callback callback.
|
|
84
90
|
* @callback RunAsChildCallback
|
|
85
91
|
* @param {Error | null} err
|
|
86
92
|
* @param {Chunk[]=} entries
|
|
@@ -89,6 +95,7 @@ const webpack = require(".");
|
|
|
89
95
|
*/
|
|
90
96
|
|
|
91
97
|
/**
|
|
98
|
+
* Defines the known records type used by this module.
|
|
92
99
|
* @typedef {object} KnownRecords
|
|
93
100
|
* @property {SplitData[]=} aggressiveSplits
|
|
94
101
|
* @property {RecordsChunks=} chunks
|
|
@@ -105,6 +112,7 @@ const webpack = require(".");
|
|
|
105
112
|
/** @typedef {KnownRecords & Record<string, KnownRecords[]> & Record<string, EXPECTED_ANY>} Records */
|
|
106
113
|
|
|
107
114
|
/**
|
|
115
|
+
* Defines the asset emitted info type used by this module.
|
|
108
116
|
* @typedef {object} AssetEmittedInfo
|
|
109
117
|
* @property {Buffer} content
|
|
110
118
|
* @property {Source} source
|
|
@@ -121,6 +129,7 @@ const webpack = require(".");
|
|
|
121
129
|
/** @typedef {{ buildInfo: BuildInfo, references: WeakReferences | undefined, memCache: MemCache }} ModuleMemCachesItem */
|
|
122
130
|
|
|
123
131
|
/**
|
|
132
|
+
* Checks whether this object is sorted.
|
|
124
133
|
* @template T
|
|
125
134
|
* @param {T[]} array an array
|
|
126
135
|
* @returns {boolean} true, if the array is sorted
|
|
@@ -133,6 +142,7 @@ const isSorted = (array) => {
|
|
|
133
142
|
};
|
|
134
143
|
|
|
135
144
|
/**
|
|
145
|
+
* Returns the object with properties sorted by property name.
|
|
136
146
|
* @template {object} T
|
|
137
147
|
* @param {T} obj an object
|
|
138
148
|
* @param {(keyof T)[]} keys the keys of the object
|
|
@@ -147,6 +157,7 @@ const sortObject = (obj, keys) => {
|
|
|
147
157
|
};
|
|
148
158
|
|
|
149
159
|
/**
|
|
160
|
+
* Returns true, if the filename contains any hash.
|
|
150
161
|
* @param {string} filename filename
|
|
151
162
|
* @param {string | string[] | undefined} hashes list of hashes
|
|
152
163
|
* @returns {boolean} true, if the filename contains any hash
|
|
@@ -163,6 +174,7 @@ const getValidate = memoize(() => require("schema-utils").validate);
|
|
|
163
174
|
|
|
164
175
|
class Compiler {
|
|
165
176
|
/**
|
|
177
|
+
* Creates an instance of Compiler.
|
|
166
178
|
* @param {string} context the compilation path
|
|
167
179
|
* @param {WebpackOptions} options options
|
|
168
180
|
*/
|
|
@@ -210,9 +222,15 @@ class Compiler {
|
|
|
210
222
|
/** @type {AsyncSeriesHook<[Compilation]>} */
|
|
211
223
|
afterCompile: new AsyncSeriesHook(["compilation"]),
|
|
212
224
|
|
|
213
|
-
/**
|
|
225
|
+
/**
|
|
226
|
+
* @type {AsyncSeriesHook<[]>}
|
|
227
|
+
* @since 5.67.0
|
|
228
|
+
*/
|
|
214
229
|
readRecords: new AsyncSeriesHook([]),
|
|
215
|
-
/**
|
|
230
|
+
/**
|
|
231
|
+
* @type {AsyncSeriesHook<[]>}
|
|
232
|
+
* @since 5.67.0
|
|
233
|
+
*/
|
|
216
234
|
emitRecords: new AsyncSeriesHook([]),
|
|
217
235
|
|
|
218
236
|
/** @type {AsyncSeriesHook<[Compiler]>} */
|
|
@@ -223,7 +241,10 @@ class Compiler {
|
|
|
223
241
|
invalid: new SyncHook(["filename", "changeTime"]),
|
|
224
242
|
/** @type {SyncHook<[]>} */
|
|
225
243
|
watchClose: new SyncHook([]),
|
|
226
|
-
/**
|
|
244
|
+
/**
|
|
245
|
+
* @type {AsyncSeriesHook<[]>}
|
|
246
|
+
* @since 5.17.0
|
|
247
|
+
*/
|
|
227
248
|
shutdown: new AsyncSeriesHook([]),
|
|
228
249
|
|
|
229
250
|
/** @type {SyncBailHook<[string, string, EXPECTED_ANY[] | undefined], true | void>} */
|
|
@@ -231,7 +252,10 @@ class Compiler {
|
|
|
231
252
|
|
|
232
253
|
// TODO the following hooks are weirdly located here
|
|
233
254
|
// TODO move them for webpack 5
|
|
234
|
-
/**
|
|
255
|
+
/**
|
|
256
|
+
* @type {SyncHook<[]>}
|
|
257
|
+
* @since 5.106.0
|
|
258
|
+
*/
|
|
235
259
|
validate: new SyncHook([]),
|
|
236
260
|
/** @type {SyncHook<[]>} */
|
|
237
261
|
environment: new SyncHook([]),
|
|
@@ -303,21 +327,28 @@ class Compiler {
|
|
|
303
327
|
browser: null,
|
|
304
328
|
webworker: null,
|
|
305
329
|
node: null,
|
|
330
|
+
deno: null,
|
|
331
|
+
bun: null,
|
|
306
332
|
nwjs: null,
|
|
307
|
-
electron: null
|
|
333
|
+
electron: null,
|
|
334
|
+
universal: null
|
|
308
335
|
};
|
|
309
336
|
|
|
310
337
|
this.options = options;
|
|
311
338
|
|
|
339
|
+
/** @type {string} */
|
|
312
340
|
this.context = context;
|
|
313
341
|
|
|
342
|
+
/** @type {RequestShortener} */
|
|
314
343
|
this.requestShortener = new RequestShortener(context, this.root);
|
|
315
344
|
|
|
345
|
+
/** @type {Cache} */
|
|
316
346
|
this.cache = new Cache();
|
|
317
347
|
|
|
318
348
|
/** @type {Map<Module, ModuleMemCachesItem> | undefined} */
|
|
319
349
|
this.moduleMemCaches = undefined;
|
|
320
350
|
|
|
351
|
+
/** @type {string} */
|
|
321
352
|
this.compilerPath = "";
|
|
322
353
|
|
|
323
354
|
/** @type {boolean} */
|
|
@@ -329,6 +360,7 @@ class Compiler {
|
|
|
329
360
|
/** @type {boolean} */
|
|
330
361
|
this.watchMode = false;
|
|
331
362
|
|
|
363
|
+
/** @type {boolean} */
|
|
332
364
|
this._backCompat = this.options.experiments.backCompat !== false;
|
|
333
365
|
|
|
334
366
|
/** @type {Compilation | undefined} */
|
|
@@ -354,6 +386,7 @@ class Compiler {
|
|
|
354
386
|
}
|
|
355
387
|
|
|
356
388
|
/**
|
|
389
|
+
* Returns the cache facade instance.
|
|
357
390
|
* @param {string} name cache name
|
|
358
391
|
* @returns {CacheFacade} the cache facade instance
|
|
359
392
|
*/
|
|
@@ -366,6 +399,7 @@ class Compiler {
|
|
|
366
399
|
}
|
|
367
400
|
|
|
368
401
|
/**
|
|
402
|
+
* Gets infrastructure logger.
|
|
369
403
|
* @param {string | (() => string)} name name of the logger, or function called once to get the logger name
|
|
370
404
|
* @returns {Logger} a logger with that name
|
|
371
405
|
*/
|
|
@@ -481,6 +515,26 @@ class Compiler {
|
|
|
481
515
|
}
|
|
482
516
|
|
|
483
517
|
/**
|
|
518
|
+
* Release fields on a finished compilation that nothing reads after emit,
|
|
519
|
+
* so the heap can shrink while user code still holds the Stats reference.
|
|
520
|
+
* Recurses into child compilations. Stats output is preserved — only
|
|
521
|
+
* codeGen byproducts are dropped.
|
|
522
|
+
* @param {Compilation} compilation finished compilation to slim down
|
|
523
|
+
* @returns {void}
|
|
524
|
+
*/
|
|
525
|
+
_releaseUnusedCompilationData(compilation) {
|
|
526
|
+
for (const child of compilation.children) {
|
|
527
|
+
this._releaseUnusedCompilationData(child);
|
|
528
|
+
}
|
|
529
|
+
// Rendered source per (module × runtime) — used only during seal/emit,
|
|
530
|
+
// never read by Stats, and not serialized to the persistent cache.
|
|
531
|
+
if (compilation.codeGenerationResults !== undefined) {
|
|
532
|
+
compilation.codeGenerationResults.map.clear();
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* Returns a compiler watcher.
|
|
484
538
|
* @param {WatchOptions} watchOptions the watcher's options
|
|
485
539
|
* @param {Callback<Stats>} handler signals when the call finishes
|
|
486
540
|
* @returns {Watching | undefined} a compiler watcher
|
|
@@ -498,6 +552,7 @@ class Compiler {
|
|
|
498
552
|
}
|
|
499
553
|
|
|
500
554
|
/**
|
|
555
|
+
* Processes the provided stat.
|
|
501
556
|
* @param {Callback<Stats>} callback signals when the call finishes
|
|
502
557
|
* @returns {void}
|
|
503
558
|
*/
|
|
@@ -511,6 +566,7 @@ class Compiler {
|
|
|
511
566
|
let logger;
|
|
512
567
|
|
|
513
568
|
/**
|
|
569
|
+
* Processes the provided err.
|
|
514
570
|
* @param {Error | null} err error
|
|
515
571
|
* @param {Stats=} stats stats
|
|
516
572
|
*/
|
|
@@ -532,6 +588,7 @@ class Compiler {
|
|
|
532
588
|
this.running = true;
|
|
533
589
|
|
|
534
590
|
/**
|
|
591
|
+
* Processes the provided err.
|
|
535
592
|
* @param {Error | null} err error
|
|
536
593
|
* @param {Compilation=} _compilation compilation
|
|
537
594
|
* @returns {void}
|
|
@@ -639,6 +696,7 @@ class Compiler {
|
|
|
639
696
|
}
|
|
640
697
|
|
|
641
698
|
/**
|
|
699
|
+
* Processes the provided run as child callback.
|
|
642
700
|
* @param {RunAsChildCallback} callback signals when the call finishes
|
|
643
701
|
* @returns {void}
|
|
644
702
|
*/
|
|
@@ -646,6 +704,7 @@ class Compiler {
|
|
|
646
704
|
const startTime = Date.now();
|
|
647
705
|
|
|
648
706
|
/**
|
|
707
|
+
* Processes the provided err.
|
|
649
708
|
* @param {Error | null} err error
|
|
650
709
|
* @param {Chunk[]=} entries entries
|
|
651
710
|
* @param {Compilation=} compilation compilation
|
|
@@ -699,6 +758,7 @@ class Compiler {
|
|
|
699
758
|
}
|
|
700
759
|
|
|
701
760
|
/**
|
|
761
|
+
* Processes the provided compilation.
|
|
702
762
|
* @param {Compilation} compilation the compilation
|
|
703
763
|
* @param {ErrorCallback} callback signals when the assets are emitted
|
|
704
764
|
* @returns {void}
|
|
@@ -708,6 +768,7 @@ class Compiler {
|
|
|
708
768
|
let outputPath;
|
|
709
769
|
|
|
710
770
|
/**
|
|
771
|
+
* Processes the provided err.
|
|
711
772
|
* @param {Error=} err error
|
|
712
773
|
* @returns {void}
|
|
713
774
|
*/
|
|
@@ -740,18 +801,21 @@ class Compiler {
|
|
|
740
801
|
includesHash(targetFile, info.fullhash));
|
|
741
802
|
}
|
|
742
803
|
|
|
804
|
+
const fs = /** @type {OutputFileSystem} */ (this.outputFileSystem);
|
|
805
|
+
// A Windows drive-absolute targetFile is written as-is; joining it onto
|
|
806
|
+
// outputPath would produce an invalid path (e.g. C:\out\D:\file). A
|
|
807
|
+
// leading "/" stays relative to outputPath (e.g. entry name "/dir/x").
|
|
808
|
+
const targetPath = WINDOWS_ABS_PATH_REGEXP.test(targetFile)
|
|
809
|
+
? targetFile
|
|
810
|
+
: join(fs, outputPath, targetFile);
|
|
811
|
+
|
|
743
812
|
/**
|
|
813
|
+
* Processes the provided err.
|
|
744
814
|
* @param {Error=} err error
|
|
745
815
|
* @returns {void}
|
|
746
816
|
*/
|
|
747
817
|
const writeOut = (err) => {
|
|
748
818
|
if (err) return callback(err);
|
|
749
|
-
const targetPath = join(
|
|
750
|
-
/** @type {OutputFileSystem} */
|
|
751
|
-
(this.outputFileSystem),
|
|
752
|
-
outputPath,
|
|
753
|
-
targetFile
|
|
754
|
-
);
|
|
755
819
|
allTargetPaths.add(targetPath);
|
|
756
820
|
|
|
757
821
|
// check if the target file has already been written by this Compiler
|
|
@@ -875,6 +939,7 @@ ${other}`);
|
|
|
875
939
|
};
|
|
876
940
|
|
|
877
941
|
/**
|
|
942
|
+
* Updates with replacement source.
|
|
878
943
|
* @param {number} size size
|
|
879
944
|
*/
|
|
880
945
|
const updateWithReplacementSource = (size) => {
|
|
@@ -897,6 +962,7 @@ ${other}`);
|
|
|
897
962
|
};
|
|
898
963
|
|
|
899
964
|
/**
|
|
965
|
+
* Updates file with replacement source.
|
|
900
966
|
* @param {string} file file
|
|
901
967
|
* @param {CacheEntry} cacheEntry cache entry
|
|
902
968
|
* @param {number} size size
|
|
@@ -918,6 +984,7 @@ ${other}`);
|
|
|
918
984
|
};
|
|
919
985
|
|
|
920
986
|
/**
|
|
987
|
+
* Process existing file.
|
|
921
988
|
* @param {IStats} stats stats
|
|
922
989
|
* @returns {void}
|
|
923
990
|
*/
|
|
@@ -1014,8 +1081,7 @@ ${other}`);
|
|
|
1014
1081
|
};
|
|
1015
1082
|
|
|
1016
1083
|
if (/\/|\\/.test(targetFile)) {
|
|
1017
|
-
const
|
|
1018
|
-
const dir = dirname(fs, join(fs, outputPath, targetFile));
|
|
1084
|
+
const dir = dirname(fs, targetPath);
|
|
1019
1085
|
mkdirp(fs, dir, writeOut);
|
|
1020
1086
|
} else {
|
|
1021
1087
|
writeOut();
|
|
@@ -1052,6 +1118,7 @@ ${other}`);
|
|
|
1052
1118
|
}
|
|
1053
1119
|
|
|
1054
1120
|
/**
|
|
1121
|
+
* Processes the provided error callback.
|
|
1055
1122
|
* @param {ErrorCallback} callback signals when the call finishes
|
|
1056
1123
|
* @returns {void}
|
|
1057
1124
|
*/
|
|
@@ -1076,6 +1143,7 @@ ${other}`);
|
|
|
1076
1143
|
}
|
|
1077
1144
|
|
|
1078
1145
|
/**
|
|
1146
|
+
* Processes the provided error callback.
|
|
1079
1147
|
* @param {ErrorCallback} callback signals when the call finishes
|
|
1080
1148
|
* @returns {void}
|
|
1081
1149
|
*/
|
|
@@ -1125,6 +1193,7 @@ ${other}`);
|
|
|
1125
1193
|
}
|
|
1126
1194
|
|
|
1127
1195
|
/**
|
|
1196
|
+
* Processes the provided error callback.
|
|
1128
1197
|
* @param {ErrorCallback} callback signals when the call finishes
|
|
1129
1198
|
* @returns {void}
|
|
1130
1199
|
*/
|
|
@@ -1151,6 +1220,7 @@ ${other}`);
|
|
|
1151
1220
|
}
|
|
1152
1221
|
|
|
1153
1222
|
/**
|
|
1223
|
+
* Processes the provided error callback.
|
|
1154
1224
|
* @param {ErrorCallback} callback signals when the call finishes
|
|
1155
1225
|
* @returns {void}
|
|
1156
1226
|
*/
|
|
@@ -1173,13 +1243,15 @@ ${other}`);
|
|
|
1173
1243
|
if (err) return callback(err);
|
|
1174
1244
|
|
|
1175
1245
|
try {
|
|
1176
|
-
this.records =
|
|
1177
|
-
/** @type {
|
|
1178
|
-
|
|
1246
|
+
this.records =
|
|
1247
|
+
/** @type {Records} */
|
|
1248
|
+
(parseJson(/** @type {Buffer} */ (content).toString("utf8")));
|
|
1179
1249
|
} catch (parseErr) {
|
|
1180
1250
|
return callback(
|
|
1181
1251
|
new Error(
|
|
1182
|
-
`Cannot parse records: ${
|
|
1252
|
+
`Cannot parse records: ${
|
|
1253
|
+
/** @type {Error} */ (parseErr).message
|
|
1254
|
+
}`
|
|
1183
1255
|
)
|
|
1184
1256
|
);
|
|
1185
1257
|
}
|
|
@@ -1191,6 +1263,7 @@ ${other}`);
|
|
|
1191
1263
|
}
|
|
1192
1264
|
|
|
1193
1265
|
/**
|
|
1266
|
+
* Creates a child compiler.
|
|
1194
1267
|
* @param {Compilation} compilation the compilation
|
|
1195
1268
|
* @param {string} compilerName the compiler's name
|
|
1196
1269
|
* @param {number} compilerIndex the compiler's index
|
|
@@ -1293,6 +1366,7 @@ ${other}`);
|
|
|
1293
1366
|
}
|
|
1294
1367
|
|
|
1295
1368
|
/**
|
|
1369
|
+
* Creates a compilation.
|
|
1296
1370
|
* @param {CompilationParams} params the compilation parameters
|
|
1297
1371
|
* @returns {Compilation} compilation
|
|
1298
1372
|
*/
|
|
@@ -1302,6 +1376,7 @@ ${other}`);
|
|
|
1302
1376
|
}
|
|
1303
1377
|
|
|
1304
1378
|
/**
|
|
1379
|
+
* Returns the created compilation.
|
|
1305
1380
|
* @param {CompilationParams} params the compilation parameters
|
|
1306
1381
|
* @returns {Compilation} the created compilation
|
|
1307
1382
|
*/
|
|
@@ -1343,6 +1418,7 @@ ${other}`);
|
|
|
1343
1418
|
}
|
|
1344
1419
|
|
|
1345
1420
|
/**
|
|
1421
|
+
* Processes the provided compilation.
|
|
1346
1422
|
* @param {Callback<Compilation>} callback signals when the compilation finishes
|
|
1347
1423
|
* @returns {void}
|
|
1348
1424
|
*/
|
|
@@ -1394,6 +1470,7 @@ ${other}`);
|
|
|
1394
1470
|
}
|
|
1395
1471
|
|
|
1396
1472
|
/**
|
|
1473
|
+
* Processes the provided error callback.
|
|
1397
1474
|
* @param {ErrorCallback} callback signals when the compiler closes
|
|
1398
1475
|
* @returns {void}
|
|
1399
1476
|
*/
|
|
@@ -1407,9 +1484,14 @@ ${other}`);
|
|
|
1407
1484
|
}
|
|
1408
1485
|
this.hooks.shutdown.callAsync((err) => {
|
|
1409
1486
|
if (err) return callback(err);
|
|
1410
|
-
//
|
|
1411
|
-
//
|
|
1412
|
-
|
|
1487
|
+
// Defer a microtask so a close() made inside the run callback can't
|
|
1488
|
+
// release codeGenerationResults before afterDone fires on the same stack.
|
|
1489
|
+
const lastCompilation = this._lastCompilation;
|
|
1490
|
+
if (lastCompilation !== undefined) {
|
|
1491
|
+
Promise.resolve().then(() => {
|
|
1492
|
+
this._releaseUnusedCompilationData(lastCompilation);
|
|
1493
|
+
});
|
|
1494
|
+
}
|
|
1413
1495
|
this._lastCompilation = undefined;
|
|
1414
1496
|
this._lastNormalModuleFactory = undefined;
|
|
1415
1497
|
this.cache.shutdown(callback);
|
|
@@ -1431,6 +1513,7 @@ ${other}`);
|
|
|
1431
1513
|
}
|
|
1432
1514
|
|
|
1433
1515
|
/**
|
|
1516
|
+
* Returns schema.
|
|
1434
1517
|
* @returns {Schema} schema
|
|
1435
1518
|
*/
|
|
1436
1519
|
const getSchema = () => {
|
|
@@ -1444,12 +1527,7 @@ ${other}`);
|
|
|
1444
1527
|
// // If we have precompiled schema let's use it
|
|
1445
1528
|
if (check) {
|
|
1446
1529
|
if (!check(value)) {
|
|
1447
|
-
getValidate()(
|
|
1448
|
-
getSchema(),
|
|
1449
|
-
/** @type {EXPECTED_OBJECT | EXPECTED_OBJECT[]} */
|
|
1450
|
-
(value),
|
|
1451
|
-
options
|
|
1452
|
-
);
|
|
1530
|
+
getValidate()(getSchema(), value, options);
|
|
1453
1531
|
require("util").deprecate(
|
|
1454
1532
|
() => {},
|
|
1455
1533
|
"webpack bug: Pre-compiled schema reports error while real schema is happy. This has performance drawbacks.",
|
|
@@ -1460,11 +1538,7 @@ ${other}`);
|
|
|
1460
1538
|
}
|
|
1461
1539
|
|
|
1462
1540
|
// Otherwise let's standard validation
|
|
1463
|
-
getValidate()(
|
|
1464
|
-
getSchema(),
|
|
1465
|
-
/** @type {EXPECTED_OBJECT | EXPECTED_OBJECT[]} */ (value),
|
|
1466
|
-
options
|
|
1467
|
-
);
|
|
1541
|
+
getValidate()(getSchema(), value, options);
|
|
1468
1542
|
}
|
|
1469
1543
|
}
|
|
1470
1544
|
|
|
@@ -17,24 +17,34 @@ const {
|
|
|
17
17
|
/** @typedef {import("./optimize/ConcatenatedModule").ExportName} Ids */
|
|
18
18
|
|
|
19
19
|
const MODULE_REFERENCE_REGEXP =
|
|
20
|
-
/^__WEBPACK_MODULE_REFERENCE__(\d+)_([\da-f]+|ns)(_call)?(_directImport)?(_deferredImport)?(?:_asiSafe(\d))?__$/;
|
|
20
|
+
/^__WEBPACK_MODULE_REFERENCE__(\d+)_([\da-f]+|ns)(_call)?(_directImport)?(_deferredImport)?(_mangleableNs)?(?:_asiSafe(\d))?__$/;
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
+
* Encodes how a concatenated module reference should be interpreted when it is
|
|
24
|
+
* later reconstructed from its placeholder identifier.
|
|
23
25
|
* @typedef {object} ModuleReferenceOptions
|
|
24
|
-
* @property {Ids} ids the properties
|
|
26
|
+
* @property {Ids} ids the properties or exports selected from the referenced module
|
|
25
27
|
* @property {boolean} call true, when this referenced export is called
|
|
26
28
|
* @property {boolean} directImport true, when this referenced export is directly imported (not via property access)
|
|
27
29
|
* @property {boolean} deferredImport true, when this referenced export is deferred
|
|
30
|
+
* @property {boolean} mangleableNamespace true, when a whole-namespace reference may use a decoupled namespace object that keeps the original export names
|
|
28
31
|
* @property {boolean | undefined} asiSafe if the position is ASI safe or unknown
|
|
29
32
|
*/
|
|
30
33
|
|
|
34
|
+
/**
|
|
35
|
+
* Tracks the symbols and cross-module references needed while rendering a
|
|
36
|
+
* concatenated module.
|
|
37
|
+
*/
|
|
31
38
|
class ConcatenationScope {
|
|
32
39
|
/**
|
|
40
|
+
* Creates the mutable scope object used while rendering a concatenated
|
|
41
|
+
* module and its cross-module references.
|
|
33
42
|
* @param {ModuleInfo[] | Map<Module, ModuleInfo>} modulesMap all module info by module
|
|
34
43
|
* @param {ConcatenatedModuleInfo} currentModule the current module info
|
|
35
44
|
* @param {Set<string>} usedNames all used names
|
|
36
45
|
*/
|
|
37
46
|
constructor(modulesMap, currentModule, usedNames) {
|
|
47
|
+
/** @type {ConcatenatedModuleInfo} */
|
|
38
48
|
this._currentModule = currentModule;
|
|
39
49
|
if (Array.isArray(modulesMap)) {
|
|
40
50
|
/** @type {Map<Module, ConcatenatedModuleInfo>} */
|
|
@@ -44,11 +54,14 @@ class ConcatenationScope {
|
|
|
44
54
|
}
|
|
45
55
|
modulesMap = map;
|
|
46
56
|
}
|
|
57
|
+
/** @type {Set<string>} */
|
|
47
58
|
this.usedNames = usedNames;
|
|
59
|
+
/** @type {Map<Module, ModuleInfo>} */
|
|
48
60
|
this._modulesMap = modulesMap;
|
|
49
61
|
}
|
|
50
62
|
|
|
51
63
|
/**
|
|
64
|
+
* Checks whether a module participates in the current concatenation scope.
|
|
52
65
|
* @param {Module} module the referenced module
|
|
53
66
|
* @returns {boolean} true, when it's in the scope
|
|
54
67
|
*/
|
|
@@ -57,6 +70,8 @@ class ConcatenationScope {
|
|
|
57
70
|
}
|
|
58
71
|
|
|
59
72
|
/**
|
|
73
|
+
* Records the symbol that should be used when the current module exports a
|
|
74
|
+
* named binding.
|
|
60
75
|
* @param {string} exportName name of the export
|
|
61
76
|
* @param {string} symbol identifier of the export in source code
|
|
62
77
|
*/
|
|
@@ -70,6 +85,8 @@ class ConcatenationScope {
|
|
|
70
85
|
}
|
|
71
86
|
|
|
72
87
|
/**
|
|
88
|
+
* Records a raw expression that can be used to reference an export without
|
|
89
|
+
* going through the normal symbol map.
|
|
73
90
|
* @param {string} exportName name of the export
|
|
74
91
|
* @param {string} expression expression to be used
|
|
75
92
|
*/
|
|
@@ -83,6 +100,7 @@ class ConcatenationScope {
|
|
|
83
100
|
}
|
|
84
101
|
|
|
85
102
|
/**
|
|
103
|
+
* Returns the raw expression registered for an export, if one exists.
|
|
86
104
|
* @param {string} exportName name of the export
|
|
87
105
|
* @returns {string | undefined} the expression of the export
|
|
88
106
|
*/
|
|
@@ -94,6 +112,8 @@ class ConcatenationScope {
|
|
|
94
112
|
}
|
|
95
113
|
|
|
96
114
|
/**
|
|
115
|
+
* Replaces the raw expression for an export only when that export already
|
|
116
|
+
* has an entry in the raw export map.
|
|
97
117
|
* @param {string} exportName name of the export
|
|
98
118
|
* @param {string} expression expression to be used
|
|
99
119
|
*/
|
|
@@ -107,6 +127,7 @@ class ConcatenationScope {
|
|
|
107
127
|
}
|
|
108
128
|
|
|
109
129
|
/**
|
|
130
|
+
* Records the symbol that should be used for the synthetic namespace export.
|
|
110
131
|
* @param {string} symbol identifier of the export in source code
|
|
111
132
|
*/
|
|
112
133
|
registerNamespaceExport(symbol) {
|
|
@@ -114,6 +135,8 @@ class ConcatenationScope {
|
|
|
114
135
|
}
|
|
115
136
|
|
|
116
137
|
/**
|
|
138
|
+
* Encodes a reference to another concatenated module as a placeholder
|
|
139
|
+
* identifier that can be parsed later during code generation.
|
|
117
140
|
* @param {Module} module the referenced module
|
|
118
141
|
* @param {Partial<ModuleReferenceOptions>} options options
|
|
119
142
|
* @returns {string} the reference as identifier
|
|
@@ -125,6 +148,7 @@ class ConcatenationScope {
|
|
|
125
148
|
call = false,
|
|
126
149
|
directImport = false,
|
|
127
150
|
deferredImport = false,
|
|
151
|
+
mangleableNamespace = false,
|
|
128
152
|
asiSafe = false
|
|
129
153
|
}
|
|
130
154
|
) {
|
|
@@ -132,6 +156,7 @@ class ConcatenationScope {
|
|
|
132
156
|
const callFlag = call ? "_call" : "";
|
|
133
157
|
const directImportFlag = directImport ? "_directImport" : "";
|
|
134
158
|
const deferredImportFlag = deferredImport ? "_deferredImport" : "";
|
|
159
|
+
const mangleableNamespaceFlag = mangleableNamespace ? "_mangleableNs" : "";
|
|
135
160
|
const asiSafeFlag = asiSafe
|
|
136
161
|
? "_asiSafe1"
|
|
137
162
|
: asiSafe === false
|
|
@@ -141,10 +166,12 @@ class ConcatenationScope {
|
|
|
141
166
|
? Buffer.from(JSON.stringify(ids), "utf8").toString("hex")
|
|
142
167
|
: "ns";
|
|
143
168
|
// a "._" is appended to allow "delete ...", which would cause a SyntaxError in strict mode
|
|
144
|
-
return `__WEBPACK_MODULE_REFERENCE__${info.index}_${exportData}${callFlag}${directImportFlag}${deferredImportFlag}${asiSafeFlag}__._`;
|
|
169
|
+
return `__WEBPACK_MODULE_REFERENCE__${info.index}_${exportData}${callFlag}${directImportFlag}${deferredImportFlag}${mangleableNamespaceFlag}${asiSafeFlag}__._`;
|
|
145
170
|
}
|
|
146
171
|
|
|
147
172
|
/**
|
|
173
|
+
* Checks whether an identifier is one of webpack's encoded concatenation
|
|
174
|
+
* module references.
|
|
148
175
|
* @param {string} name the identifier
|
|
149
176
|
* @returns {boolean} true, when it's an module reference
|
|
150
177
|
*/
|
|
@@ -153,6 +180,8 @@ class ConcatenationScope {
|
|
|
153
180
|
}
|
|
154
181
|
|
|
155
182
|
/**
|
|
183
|
+
* Parses an encoded module reference back into its module index and
|
|
184
|
+
* reference flags.
|
|
156
185
|
* @param {string} name the identifier
|
|
157
186
|
* @returns {ModuleReferenceOptions & { index: number } | null} parsed options and index
|
|
158
187
|
*/
|
|
@@ -160,7 +189,7 @@ class ConcatenationScope {
|
|
|
160
189
|
const match = MODULE_REFERENCE_REGEXP.exec(name);
|
|
161
190
|
if (!match) return null;
|
|
162
191
|
const index = Number(match[1]);
|
|
163
|
-
const asiSafe = match[
|
|
192
|
+
const asiSafe = match[7];
|
|
164
193
|
return {
|
|
165
194
|
index,
|
|
166
195
|
ids:
|
|
@@ -170,6 +199,7 @@ class ConcatenationScope {
|
|
|
170
199
|
call: Boolean(match[3]),
|
|
171
200
|
directImport: Boolean(match[4]),
|
|
172
201
|
deferredImport: Boolean(match[5]),
|
|
202
|
+
mangleableNamespace: Boolean(match[6]),
|
|
173
203
|
asiSafe: asiSafe ? asiSafe === "1" : undefined
|
|
174
204
|
};
|
|
175
205
|
}
|
|
@@ -15,6 +15,7 @@ const { mergeRuntime } = require("./util/runtime");
|
|
|
15
15
|
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
+
* Returns wrapped source.
|
|
18
19
|
* @param {string} condition condition
|
|
19
20
|
* @param {string | Source} source source
|
|
20
21
|
* @returns {string | Source} wrapped source
|
|
@@ -36,10 +37,12 @@ const wrapInCondition = (condition, source) => {
|
|
|
36
37
|
};
|
|
37
38
|
|
|
38
39
|
/**
|
|
40
|
+
* Represents ConditionalInitFragment.
|
|
39
41
|
* @extends {InitFragment<GenerateContext>}
|
|
40
42
|
*/
|
|
41
43
|
class ConditionalInitFragment extends InitFragment {
|
|
42
44
|
/**
|
|
45
|
+
* Creates an instance of ConditionalInitFragment.
|
|
43
46
|
* @param {string | Source | undefined} content the source code that will be included as initialization code
|
|
44
47
|
* @param {number} stage category of initialization code (contribute to order)
|
|
45
48
|
* @param {number} position position in the category (contribute to order)
|
|
@@ -60,6 +63,7 @@ class ConditionalInitFragment extends InitFragment {
|
|
|
60
63
|
}
|
|
61
64
|
|
|
62
65
|
/**
|
|
66
|
+
* Returns the source code that will be included as initialization code.
|
|
63
67
|
* @param {GenerateContext} context context
|
|
64
68
|
* @returns {string | Source | undefined} the source code that will be included as initialization code
|
|
65
69
|
*/
|
|
@@ -77,6 +81,7 @@ class ConditionalInitFragment extends InitFragment {
|
|
|
77
81
|
}
|
|
78
82
|
|
|
79
83
|
/**
|
|
84
|
+
* Returns the source code that will be included at the end of the module.
|
|
80
85
|
* @param {GenerateContext} context context
|
|
81
86
|
* @returns {string | Source | undefined} the source code that will be included at the end of the module
|
|
82
87
|
*/
|
|
@@ -94,6 +99,7 @@ class ConditionalInitFragment extends InitFragment {
|
|
|
94
99
|
}
|
|
95
100
|
|
|
96
101
|
/**
|
|
102
|
+
* Returns merged fragment.
|
|
97
103
|
* @param {ConditionalInitFragment} other fragment to merge with
|
|
98
104
|
* @returns {ConditionalInitFragment} merged fragment
|
|
99
105
|
*/
|