@depup/webpack 5.106.1-depup.0 → 5.109.0-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -11
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +141 -9
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +23 -26
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +54 -37
- package/lib/Compilation.js +635 -107
- package/lib/Compiler.js +93 -31
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +498 -127
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +399 -108
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +376 -78
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +575 -149
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +92 -6
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +15 -0
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +5 -2
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +485 -181
- package/lib/NormalModuleFactory.js +148 -29
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +104 -26
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +29 -3
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +43 -7
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +591 -41
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/ModuleFederationPlugin.js +12 -26
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +534 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +156 -77
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +356 -204
- package/lib/css/CssParser.js +3443 -1953
- package/lib/css/syntax.js +4058 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +138 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +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 +32 -2
- 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 +253 -37
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +59 -3
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +426 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +71 -49
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +34 -8
- package/lib/html/HtmlGenerator.js +1470 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1111 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9020 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +25 -2
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +579 -183
- package/lib/javascript/JavascriptParser.js +1289 -462
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +4380 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +23 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +585 -116
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +159 -34
- package/lib/optimize/RealContentHashPlugin.js +125 -50
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +54 -6
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +663 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +552 -463
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +50 -3
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +94 -12
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
- package/lib/stats/StatsFactory.js +39 -18
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +97 -6
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1117 -79
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +8608 -1159
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
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
|
*/
|
|
@@ -303,21 +315,28 @@ class Compiler {
|
|
|
303
315
|
browser: null,
|
|
304
316
|
webworker: null,
|
|
305
317
|
node: null,
|
|
318
|
+
deno: null,
|
|
319
|
+
bun: null,
|
|
306
320
|
nwjs: null,
|
|
307
|
-
electron: null
|
|
321
|
+
electron: null,
|
|
322
|
+
universal: null
|
|
308
323
|
};
|
|
309
324
|
|
|
310
325
|
this.options = options;
|
|
311
326
|
|
|
327
|
+
/** @type {string} */
|
|
312
328
|
this.context = context;
|
|
313
329
|
|
|
330
|
+
/** @type {RequestShortener} */
|
|
314
331
|
this.requestShortener = new RequestShortener(context, this.root);
|
|
315
332
|
|
|
333
|
+
/** @type {Cache} */
|
|
316
334
|
this.cache = new Cache();
|
|
317
335
|
|
|
318
336
|
/** @type {Map<Module, ModuleMemCachesItem> | undefined} */
|
|
319
337
|
this.moduleMemCaches = undefined;
|
|
320
338
|
|
|
339
|
+
/** @type {string} */
|
|
321
340
|
this.compilerPath = "";
|
|
322
341
|
|
|
323
342
|
/** @type {boolean} */
|
|
@@ -329,6 +348,7 @@ class Compiler {
|
|
|
329
348
|
/** @type {boolean} */
|
|
330
349
|
this.watchMode = false;
|
|
331
350
|
|
|
351
|
+
/** @type {boolean} */
|
|
332
352
|
this._backCompat = this.options.experiments.backCompat !== false;
|
|
333
353
|
|
|
334
354
|
/** @type {Compilation | undefined} */
|
|
@@ -354,6 +374,7 @@ class Compiler {
|
|
|
354
374
|
}
|
|
355
375
|
|
|
356
376
|
/**
|
|
377
|
+
* Returns the cache facade instance.
|
|
357
378
|
* @param {string} name cache name
|
|
358
379
|
* @returns {CacheFacade} the cache facade instance
|
|
359
380
|
*/
|
|
@@ -366,6 +387,7 @@ class Compiler {
|
|
|
366
387
|
}
|
|
367
388
|
|
|
368
389
|
/**
|
|
390
|
+
* Gets infrastructure logger.
|
|
369
391
|
* @param {string | (() => string)} name name of the logger, or function called once to get the logger name
|
|
370
392
|
* @returns {Logger} a logger with that name
|
|
371
393
|
*/
|
|
@@ -481,6 +503,26 @@ class Compiler {
|
|
|
481
503
|
}
|
|
482
504
|
|
|
483
505
|
/**
|
|
506
|
+
* Release fields on a finished compilation that nothing reads after emit,
|
|
507
|
+
* so the heap can shrink while user code still holds the Stats reference.
|
|
508
|
+
* Recurses into child compilations. Stats output is preserved — only
|
|
509
|
+
* codeGen byproducts are dropped.
|
|
510
|
+
* @param {Compilation} compilation finished compilation to slim down
|
|
511
|
+
* @returns {void}
|
|
512
|
+
*/
|
|
513
|
+
_releaseUnusedCompilationData(compilation) {
|
|
514
|
+
for (const child of compilation.children) {
|
|
515
|
+
this._releaseUnusedCompilationData(child);
|
|
516
|
+
}
|
|
517
|
+
// Rendered source per (module × runtime) — used only during seal/emit,
|
|
518
|
+
// never read by Stats, and not serialized to the persistent cache.
|
|
519
|
+
if (compilation.codeGenerationResults !== undefined) {
|
|
520
|
+
compilation.codeGenerationResults.map.clear();
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
/**
|
|
525
|
+
* Returns a compiler watcher.
|
|
484
526
|
* @param {WatchOptions} watchOptions the watcher's options
|
|
485
527
|
* @param {Callback<Stats>} handler signals when the call finishes
|
|
486
528
|
* @returns {Watching | undefined} a compiler watcher
|
|
@@ -498,6 +540,7 @@ class Compiler {
|
|
|
498
540
|
}
|
|
499
541
|
|
|
500
542
|
/**
|
|
543
|
+
* Processes the provided stat.
|
|
501
544
|
* @param {Callback<Stats>} callback signals when the call finishes
|
|
502
545
|
* @returns {void}
|
|
503
546
|
*/
|
|
@@ -511,6 +554,7 @@ class Compiler {
|
|
|
511
554
|
let logger;
|
|
512
555
|
|
|
513
556
|
/**
|
|
557
|
+
* Processes the provided err.
|
|
514
558
|
* @param {Error | null} err error
|
|
515
559
|
* @param {Stats=} stats stats
|
|
516
560
|
*/
|
|
@@ -532,6 +576,7 @@ class Compiler {
|
|
|
532
576
|
this.running = true;
|
|
533
577
|
|
|
534
578
|
/**
|
|
579
|
+
* Processes the provided err.
|
|
535
580
|
* @param {Error | null} err error
|
|
536
581
|
* @param {Compilation=} _compilation compilation
|
|
537
582
|
* @returns {void}
|
|
@@ -639,6 +684,7 @@ class Compiler {
|
|
|
639
684
|
}
|
|
640
685
|
|
|
641
686
|
/**
|
|
687
|
+
* Processes the provided run as child callback.
|
|
642
688
|
* @param {RunAsChildCallback} callback signals when the call finishes
|
|
643
689
|
* @returns {void}
|
|
644
690
|
*/
|
|
@@ -646,6 +692,7 @@ class Compiler {
|
|
|
646
692
|
const startTime = Date.now();
|
|
647
693
|
|
|
648
694
|
/**
|
|
695
|
+
* Processes the provided err.
|
|
649
696
|
* @param {Error | null} err error
|
|
650
697
|
* @param {Chunk[]=} entries entries
|
|
651
698
|
* @param {Compilation=} compilation compilation
|
|
@@ -699,6 +746,7 @@ class Compiler {
|
|
|
699
746
|
}
|
|
700
747
|
|
|
701
748
|
/**
|
|
749
|
+
* Processes the provided compilation.
|
|
702
750
|
* @param {Compilation} compilation the compilation
|
|
703
751
|
* @param {ErrorCallback} callback signals when the assets are emitted
|
|
704
752
|
* @returns {void}
|
|
@@ -708,6 +756,7 @@ class Compiler {
|
|
|
708
756
|
let outputPath;
|
|
709
757
|
|
|
710
758
|
/**
|
|
759
|
+
* Processes the provided err.
|
|
711
760
|
* @param {Error=} err error
|
|
712
761
|
* @returns {void}
|
|
713
762
|
*/
|
|
@@ -740,18 +789,21 @@ class Compiler {
|
|
|
740
789
|
includesHash(targetFile, info.fullhash));
|
|
741
790
|
}
|
|
742
791
|
|
|
792
|
+
const fs = /** @type {OutputFileSystem} */ (this.outputFileSystem);
|
|
793
|
+
// A Windows drive-absolute targetFile is written as-is; joining it onto
|
|
794
|
+
// outputPath would produce an invalid path (e.g. C:\out\D:\file). A
|
|
795
|
+
// leading "/" stays relative to outputPath (e.g. entry name "/dir/x").
|
|
796
|
+
const targetPath = WINDOWS_ABS_PATH_REGEXP.test(targetFile)
|
|
797
|
+
? targetFile
|
|
798
|
+
: join(fs, outputPath, targetFile);
|
|
799
|
+
|
|
743
800
|
/**
|
|
801
|
+
* Processes the provided err.
|
|
744
802
|
* @param {Error=} err error
|
|
745
803
|
* @returns {void}
|
|
746
804
|
*/
|
|
747
805
|
const writeOut = (err) => {
|
|
748
806
|
if (err) return callback(err);
|
|
749
|
-
const targetPath = join(
|
|
750
|
-
/** @type {OutputFileSystem} */
|
|
751
|
-
(this.outputFileSystem),
|
|
752
|
-
outputPath,
|
|
753
|
-
targetFile
|
|
754
|
-
);
|
|
755
807
|
allTargetPaths.add(targetPath);
|
|
756
808
|
|
|
757
809
|
// check if the target file has already been written by this Compiler
|
|
@@ -875,6 +927,7 @@ ${other}`);
|
|
|
875
927
|
};
|
|
876
928
|
|
|
877
929
|
/**
|
|
930
|
+
* Updates with replacement source.
|
|
878
931
|
* @param {number} size size
|
|
879
932
|
*/
|
|
880
933
|
const updateWithReplacementSource = (size) => {
|
|
@@ -897,6 +950,7 @@ ${other}`);
|
|
|
897
950
|
};
|
|
898
951
|
|
|
899
952
|
/**
|
|
953
|
+
* Updates file with replacement source.
|
|
900
954
|
* @param {string} file file
|
|
901
955
|
* @param {CacheEntry} cacheEntry cache entry
|
|
902
956
|
* @param {number} size size
|
|
@@ -918,6 +972,7 @@ ${other}`);
|
|
|
918
972
|
};
|
|
919
973
|
|
|
920
974
|
/**
|
|
975
|
+
* Process existing file.
|
|
921
976
|
* @param {IStats} stats stats
|
|
922
977
|
* @returns {void}
|
|
923
978
|
*/
|
|
@@ -1014,8 +1069,7 @@ ${other}`);
|
|
|
1014
1069
|
};
|
|
1015
1070
|
|
|
1016
1071
|
if (/\/|\\/.test(targetFile)) {
|
|
1017
|
-
const
|
|
1018
|
-
const dir = dirname(fs, join(fs, outputPath, targetFile));
|
|
1072
|
+
const dir = dirname(fs, targetPath);
|
|
1019
1073
|
mkdirp(fs, dir, writeOut);
|
|
1020
1074
|
} else {
|
|
1021
1075
|
writeOut();
|
|
@@ -1052,6 +1106,7 @@ ${other}`);
|
|
|
1052
1106
|
}
|
|
1053
1107
|
|
|
1054
1108
|
/**
|
|
1109
|
+
* Processes the provided error callback.
|
|
1055
1110
|
* @param {ErrorCallback} callback signals when the call finishes
|
|
1056
1111
|
* @returns {void}
|
|
1057
1112
|
*/
|
|
@@ -1076,6 +1131,7 @@ ${other}`);
|
|
|
1076
1131
|
}
|
|
1077
1132
|
|
|
1078
1133
|
/**
|
|
1134
|
+
* Processes the provided error callback.
|
|
1079
1135
|
* @param {ErrorCallback} callback signals when the call finishes
|
|
1080
1136
|
* @returns {void}
|
|
1081
1137
|
*/
|
|
@@ -1125,6 +1181,7 @@ ${other}`);
|
|
|
1125
1181
|
}
|
|
1126
1182
|
|
|
1127
1183
|
/**
|
|
1184
|
+
* Processes the provided error callback.
|
|
1128
1185
|
* @param {ErrorCallback} callback signals when the call finishes
|
|
1129
1186
|
* @returns {void}
|
|
1130
1187
|
*/
|
|
@@ -1151,6 +1208,7 @@ ${other}`);
|
|
|
1151
1208
|
}
|
|
1152
1209
|
|
|
1153
1210
|
/**
|
|
1211
|
+
* Processes the provided error callback.
|
|
1154
1212
|
* @param {ErrorCallback} callback signals when the call finishes
|
|
1155
1213
|
* @returns {void}
|
|
1156
1214
|
*/
|
|
@@ -1173,13 +1231,15 @@ ${other}`);
|
|
|
1173
1231
|
if (err) return callback(err);
|
|
1174
1232
|
|
|
1175
1233
|
try {
|
|
1176
|
-
this.records =
|
|
1177
|
-
/** @type {
|
|
1178
|
-
|
|
1234
|
+
this.records =
|
|
1235
|
+
/** @type {Records} */
|
|
1236
|
+
(parseJson(/** @type {Buffer} */ (content).toString("utf8")));
|
|
1179
1237
|
} catch (parseErr) {
|
|
1180
1238
|
return callback(
|
|
1181
1239
|
new Error(
|
|
1182
|
-
`Cannot parse records: ${
|
|
1240
|
+
`Cannot parse records: ${
|
|
1241
|
+
/** @type {Error} */ (parseErr).message
|
|
1242
|
+
}`
|
|
1183
1243
|
)
|
|
1184
1244
|
);
|
|
1185
1245
|
}
|
|
@@ -1191,6 +1251,7 @@ ${other}`);
|
|
|
1191
1251
|
}
|
|
1192
1252
|
|
|
1193
1253
|
/**
|
|
1254
|
+
* Creates a child compiler.
|
|
1194
1255
|
* @param {Compilation} compilation the compilation
|
|
1195
1256
|
* @param {string} compilerName the compiler's name
|
|
1196
1257
|
* @param {number} compilerIndex the compiler's index
|
|
@@ -1293,6 +1354,7 @@ ${other}`);
|
|
|
1293
1354
|
}
|
|
1294
1355
|
|
|
1295
1356
|
/**
|
|
1357
|
+
* Creates a compilation.
|
|
1296
1358
|
* @param {CompilationParams} params the compilation parameters
|
|
1297
1359
|
* @returns {Compilation} compilation
|
|
1298
1360
|
*/
|
|
@@ -1302,6 +1364,7 @@ ${other}`);
|
|
|
1302
1364
|
}
|
|
1303
1365
|
|
|
1304
1366
|
/**
|
|
1367
|
+
* Returns the created compilation.
|
|
1305
1368
|
* @param {CompilationParams} params the compilation parameters
|
|
1306
1369
|
* @returns {Compilation} the created compilation
|
|
1307
1370
|
*/
|
|
@@ -1343,6 +1406,7 @@ ${other}`);
|
|
|
1343
1406
|
}
|
|
1344
1407
|
|
|
1345
1408
|
/**
|
|
1409
|
+
* Processes the provided compilation.
|
|
1346
1410
|
* @param {Callback<Compilation>} callback signals when the compilation finishes
|
|
1347
1411
|
* @returns {void}
|
|
1348
1412
|
*/
|
|
@@ -1394,6 +1458,7 @@ ${other}`);
|
|
|
1394
1458
|
}
|
|
1395
1459
|
|
|
1396
1460
|
/**
|
|
1461
|
+
* Processes the provided error callback.
|
|
1397
1462
|
* @param {ErrorCallback} callback signals when the compiler closes
|
|
1398
1463
|
* @returns {void}
|
|
1399
1464
|
*/
|
|
@@ -1407,9 +1472,14 @@ ${other}`);
|
|
|
1407
1472
|
}
|
|
1408
1473
|
this.hooks.shutdown.callAsync((err) => {
|
|
1409
1474
|
if (err) return callback(err);
|
|
1410
|
-
//
|
|
1411
|
-
//
|
|
1412
|
-
|
|
1475
|
+
// Defer a microtask so a close() made inside the run callback can't
|
|
1476
|
+
// release codeGenerationResults before afterDone fires on the same stack.
|
|
1477
|
+
const lastCompilation = this._lastCompilation;
|
|
1478
|
+
if (lastCompilation !== undefined) {
|
|
1479
|
+
Promise.resolve().then(() => {
|
|
1480
|
+
this._releaseUnusedCompilationData(lastCompilation);
|
|
1481
|
+
});
|
|
1482
|
+
}
|
|
1413
1483
|
this._lastCompilation = undefined;
|
|
1414
1484
|
this._lastNormalModuleFactory = undefined;
|
|
1415
1485
|
this.cache.shutdown(callback);
|
|
@@ -1431,6 +1501,7 @@ ${other}`);
|
|
|
1431
1501
|
}
|
|
1432
1502
|
|
|
1433
1503
|
/**
|
|
1504
|
+
* Returns schema.
|
|
1434
1505
|
* @returns {Schema} schema
|
|
1435
1506
|
*/
|
|
1436
1507
|
const getSchema = () => {
|
|
@@ -1444,12 +1515,7 @@ ${other}`);
|
|
|
1444
1515
|
// // If we have precompiled schema let's use it
|
|
1445
1516
|
if (check) {
|
|
1446
1517
|
if (!check(value)) {
|
|
1447
|
-
getValidate()(
|
|
1448
|
-
getSchema(),
|
|
1449
|
-
/** @type {EXPECTED_OBJECT | EXPECTED_OBJECT[]} */
|
|
1450
|
-
(value),
|
|
1451
|
-
options
|
|
1452
|
-
);
|
|
1518
|
+
getValidate()(getSchema(), value, options);
|
|
1453
1519
|
require("util").deprecate(
|
|
1454
1520
|
() => {},
|
|
1455
1521
|
"webpack bug: Pre-compiled schema reports error while real schema is happy. This has performance drawbacks.",
|
|
@@ -1460,11 +1526,7 @@ ${other}`);
|
|
|
1460
1526
|
}
|
|
1461
1527
|
|
|
1462
1528
|
// Otherwise let's standard validation
|
|
1463
|
-
getValidate()(
|
|
1464
|
-
getSchema(),
|
|
1465
|
-
/** @type {EXPECTED_OBJECT | EXPECTED_OBJECT[]} */ (value),
|
|
1466
|
-
options
|
|
1467
|
-
);
|
|
1529
|
+
getValidate()(getSchema(), value, options);
|
|
1468
1530
|
}
|
|
1469
1531
|
}
|
|
1470
1532
|
|
|
@@ -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
|
*/
|