@depup/webpack 5.111.1-depup.1 → 5.112.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 +4 -7
- package/changes.json +3 -15
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +224 -106
- package/lib/Compiler.js +19 -19
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -70
- package/lib/EntryPlugin.js +3 -68
- package/lib/Entrypoint.js +3 -121
- package/lib/ExternalsPlugin.js +3 -92
- package/lib/FileSystemInfo.js +3 -4629
- package/lib/InitFragment.js +3 -204
- package/lib/LibraryTemplatePlugin.js +3 -46
- package/lib/ModuleFilenameHelpers.js +3 -400
- package/lib/ModuleNotFoundError.js +2 -2
- package/lib/MultiCompiler.js +37 -8
- package/lib/NormalModule.js +3 -2242
- package/lib/NullFactory.js +3 -22
- package/lib/ProgressPlugin.js +3 -908
- package/lib/RawModule.js +3 -197
- package/lib/RequestShortener.js +3 -37
- package/lib/SingleEntryPlugin.js +1 -1
- package/lib/WebpackError.js +2 -2
- package/lib/asset/AssetBytesGenerator.js +8 -8
- package/lib/asset/AssetBytesParser.js +3 -3
- package/lib/asset/AssetGenerator.js +36 -22
- package/lib/asset/AssetModule.js +2 -2
- package/lib/asset/AssetModulesPlugin.js +6 -9
- package/lib/asset/AssetParser.js +3 -3
- package/lib/asset/AssetSourceGenerator.js +8 -8
- package/lib/asset/AssetSourceParser.js +3 -3
- package/lib/asset/RawDataUrlModule.js +17 -10
- package/lib/asset/WebManifestGenerator.js +7 -7
- package/lib/asset/WebManifestParser.js +5 -5
- package/lib/async-modules/AsyncModuleHelpers.js +6 -5
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +4 -3
- package/lib/async-modules/isGeneratorLowered.js +3 -3
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
- package/lib/{Cache.js → cache/Cache.js} +1 -1
- package/lib/{CacheFacade.js → cache/CacheFacade.js} +5 -5
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +2 -2
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
- package/lib/cache/PackFileCacheStrategy.js +8 -10
- package/lib/cache/ResolverCachePlugin.js +8 -4
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
- package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
- package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +217 -200
- package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
- package/lib/config/browserslistTargetHandler.js +1 -1
- package/lib/{cli.js → config/cli.js} +5 -158
- package/lib/config/defaults.js +144 -48
- package/lib/config/getClaimedAssetTypes.js +21 -13
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +10 -0
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +13 -11
- package/lib/container/ContainerEntryModuleFactory.js +2 -2
- package/lib/container/ContainerExposedDependency.js +1 -1
- package/lib/container/ContainerPlugin.js +178 -5
- package/lib/container/ContainerReferencePlugin.js +75 -14
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackItemDependency.js +1 -1
- package/lib/container/FallbackModule.js +12 -10
- package/lib/container/FallbackModuleFactory.js +2 -2
- package/lib/container/HoistContainerReferencesPlugin.js +10 -11
- package/lib/container/ModuleFederationPlugin.js +306 -7
- package/lib/container/RemoteModule.js +14 -10
- package/lib/container/RemoteRuntimeModule.js +5 -5
- package/lib/container/RemoteToExternalDependency.js +1 -1
- package/lib/container/moduleFederationHooks.js +1 -1
- package/lib/context/ContextModule.js +36 -25
- package/lib/context/ContextModuleFactory.js +13 -10
- package/lib/context/ContextReplacementPlugin.js +3 -3
- package/lib/css/CssGenerator.js +38 -31
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
- package/lib/css/CssLoadingRuntimeModule.js +77 -44
- package/lib/css/CssModule.js +27 -29
- package/lib/css/CssModulesPlugin.js +128 -44
- package/lib/css/CssParser.js +682 -291
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/css/cssMinify.js +110 -37
- package/lib/css/data.js +6985 -5125
- package/lib/css/syntax-parser.js +19873 -0
- package/lib/css/syntax-printer.js +6037 -0
- package/lib/css/syntax.js +37 -18686
- package/lib/debug/ProfilingPlugin.js +52 -19
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +9 -9
- package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/ConstDependency.js +3 -120
- package/lib/dependencies/ContextElementDependency.js +5 -172
- package/lib/dependencies/NullDependency.js +3 -37
- package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
- package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -10
- package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
- package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
- package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
- package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
- package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +10 -10
- package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
- package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
- package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
- package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
- package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
- package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
- package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
- package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
- package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
- package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -33
- package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
- package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
- package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
- package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +35 -30
- package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
- package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
- package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
- package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
- package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
- package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
- package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
- package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +5 -5
- package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
- package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
- package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
- package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
- package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
- package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
- package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
- package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
- package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
- package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
- package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
- package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
- package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
- package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
- package/lib/dependencies/context/ContextElementDependency.js +198 -0
- package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +9 -9
- package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
- package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +4 -4
- package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
- package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
- package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
- package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
- package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +12 -11
- package/lib/dependencies/core/ConstDependency.js +131 -0
- package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
- package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
- package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
- package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
- package/lib/dependencies/core/NullDependency.js +44 -0
- package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
- package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
- package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +369 -92
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +23 -16
- package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
- package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
- package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +23 -16
- package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
- package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
- package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
- package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +19 -17
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
- package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
- package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
- package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +133 -118
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +60 -36
- package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
- package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
- package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
- package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +99 -84
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +94 -59
- package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
- package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
- package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
- package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
- package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
- package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
- package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
- package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +51 -141
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -19
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -15
- package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
- package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
- package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
- package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
- package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
- package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
- package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
- package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
- package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +119 -98
- package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
- package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
- package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
- package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
- package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
- package/lib/{url → dependencies/url}/URLParserPlugin.js +16 -18
- package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
- package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
- package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
- package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
- package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +31 -33
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
- package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
- package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
- package/lib/devtool/ModuleFilenameHelpers.js +413 -0
- package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
- package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +154 -26
- package/lib/{util → devtool}/generateDebugId.js +1 -1
- package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
- package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
- package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
- package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
- package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
- package/lib/dll/DelegatedModule.js +20 -18
- package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
- package/lib/dll/DelegatedPlugin.js +1 -1
- package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
- package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
- package/lib/dll/DllEntryPlugin.js +3 -3
- package/lib/dll/DllModule.js +11 -9
- package/lib/dll/DllModuleFactory.js +3 -3
- package/lib/dll/DllPlugin.js +18 -6
- package/lib/dll/DllReferencePlugin.js +102 -26
- package/lib/dll/LibManifestPlugin.js +9 -7
- package/lib/electron/ElectronTargetPlugin.js +2 -2
- package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
- package/lib/{dependencies → entry}/EntryDependency.js +11 -2
- package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
- package/lib/entry/EntryPlugin.js +75 -0
- package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
- package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
- package/lib/errors/DeprecatedOptionWarning.js +30 -0
- package/lib/errors/DllManifestError.js +26 -0
- package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
- package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
- package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +7 -5
- package/lib/errors/ExternalStarReexportError.js +2 -2
- package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
- package/lib/errors/HookWebpackError.js +4 -4
- package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
- package/lib/errors/ModuleBuildError.js +1 -1
- package/lib/errors/ModuleDependencyError.js +2 -2
- package/lib/errors/ModuleDependencyWarning.js +2 -2
- package/lib/errors/ModuleError.js +1 -1
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +3 -3
- package/lib/errors/ModuleParseError.js +1 -1
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/ModuleWarning.js +1 -1
- package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
- package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
- package/lib/errors/NodeStuffInWebError.js +7 -2
- package/lib/errors/PathVariableError.js +31 -0
- package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
- package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
- package/lib/errors/RuntimeModuleGenerationError.js +51 -0
- package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
- package/lib/errors/SystemImportDeprecationWarning.js +43 -0
- package/lib/errors/UnmergeableEntryExportsError.js +34 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
- package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
- package/lib/errors/WebpackError.js +12 -3
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
- package/lib/{ExternalModule.js → externals/ExternalModule.js} +79 -55
- package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
- package/lib/externals/ExternalsPlugin.js +99 -0
- package/lib/fs/FileSystemInfo.js +4642 -0
- package/lib/{util → fs}/fs.js +22 -9
- package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
- package/lib/graph/Chunk.js +985 -0
- package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
- package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
- package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
- package/lib/graph/Dependency.js +628 -0
- package/lib/graph/Entrypoint.js +136 -0
- package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +130 -82
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +30 -30
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +152 -57
- package/lib/{util → graph}/findGraphRoots.js +14 -8
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +47 -47
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
- package/lib/hmr/LazyCompilationPlugin.js +31 -21
- package/lib/html/HtmlGenerator.js +107 -43
- package/lib/html/HtmlModule.js +6 -2
- package/lib/html/HtmlModulesPlugin.js +172 -76
- package/lib/html/HtmlParser.js +503 -153
- package/lib/html/builtinEmbeddedRenderer.js +60 -13
- package/lib/html/data.js +2 -1
- package/lib/html/htmlMinify.js +111 -41
- package/lib/html/syntax-parser.js +15796 -0
- package/lib/html/syntax-printer.js +1034 -0
- package/lib/html/syntax.js +37 -13952
- package/lib/html/xmlMinify.js +67 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +31 -4
- package/lib/ids/IdHelpers.js +4 -4
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
- package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
- package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
- package/lib/ids/SyncModuleIdsPlugin.js +3 -3
- package/lib/{util → ids}/numberHash.js +1 -1
- package/lib/index.js +303 -97
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +25 -25
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +4 -4
- package/lib/javascript/ChunkHelpers.js +64 -4
- package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
- package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +74 -7
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +17 -17
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
- package/lib/javascript/JavascriptModule.js +4 -3
- package/lib/javascript/JavascriptModulesPlugin.js +440 -211
- package/lib/javascript/JavascriptParser.js +220 -134
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/javascript/MergedEntryExports.js +196 -0
- package/lib/javascript/ScopeAnalyzer.js +3840 -5
- package/lib/javascript/StartupHelpers.js +6 -6
- package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
- package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
- package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
- package/lib/javascript/data.js +533 -122
- package/lib/javascript/jsMinify.js +272 -0
- package/lib/javascript/regexp.js +67 -32
- package/lib/javascript/syntax-parser.js +18561 -0
- package/lib/javascript/syntax-printer-data.js +933 -0
- package/lib/javascript/syntax-printer.js +47106 -0
- package/lib/javascript/syntax.js +20 -11274
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +10 -10
- package/lib/json/JsonModule.js +2 -2
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -5
- package/lib/json/jsonMinify.js +69 -0
- package/lib/library/AbstractLibraryPlugin.js +28 -15
- package/lib/library/AmdLibraryPlugin.js +4 -4
- package/lib/library/AssignLibraryPlugin.js +27 -11
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
- package/lib/library/JsonpLibraryPlugin.js +1 -1
- package/lib/library/LibraryTemplatePlugin.js +53 -0
- package/lib/library/ModuleLibraryPlugin.js +160 -166
- package/lib/library/SystemLibraryPlugin.js +6 -8
- package/lib/library/UmdLibraryPlugin.js +3 -4
- package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
- package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
- package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
- package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
- package/lib/loaders/LoaderRunner.js +31 -21
- package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
- package/lib/logging/Logger.js +7 -9
- package/lib/logging/ProgressPlugin.js +957 -0
- package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
- package/lib/{Generator.js → module/Generator.js} +16 -14
- package/lib/{Module.js → module/Module.js} +119 -51
- package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
- package/lib/module/NormalModule.js +2348 -0
- package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
- package/lib/module/NullFactory.js +29 -0
- package/lib/{Parser.js → module/Parser.js} +3 -3
- package/lib/module/RawModule.js +208 -0
- package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
- package/lib/{util → module}/extractSourceMap.js +2 -2
- package/lib/{util → module}/findCaseMismatch.js +2 -2
- package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
- package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
- package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
- package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
- package/lib/node/NodeEnvironmentPlugin.js +11 -1
- package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
- package/lib/node/NodeTargetPlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +58 -6
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
- package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
- package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/nodeConsole.js +2 -4
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
- package/lib/optimize/ConcatenatedModule.js +229 -214
- package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
- package/lib/optimize/ConstExportsPlugin.js +7 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
- package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +17 -17
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +17 -17
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
- package/lib/optimize/InlineExports.js +11 -3
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +10 -10
- package/lib/optimize/LazyBarrels.js +584 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +16 -7
- package/lib/optimize/MangleExportsPlugin.js +5 -5
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +20 -12
- package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
- package/lib/optimize/RealContentHashPlugin.js +16 -7
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +18 -18
- package/lib/optimize/SplitChunksPlugin.js +713 -155
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +17 -17
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
- package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
- package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
- package/lib/output/SSRManifestPlugin.js +349 -0
- package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
- package/lib/performance/BroadContextsPlugin.js +4 -4
- package/lib/performance/CacheEffectivenessPlugin.js +2 -3
- package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
- package/lib/performance/DuplicateModulesPlugin.js +3 -4
- package/lib/performance/DuplicatePackagesPlugin.js +3 -3
- package/lib/performance/DynamicExportsPlugin.js +2 -2
- package/lib/performance/EvalUsagePlugin.js +3 -3
- package/lib/performance/HotspotsPlugin.js +11 -10
- package/lib/performance/LargeModulesPlugin.js +2 -3
- package/lib/performance/LegacyJavascriptPlugin.js +1 -2
- package/lib/performance/MissingSideEffectsPlugin.js +2 -3
- package/lib/performance/MissingSourceMapsPlugin.js +5 -6
- package/lib/performance/PureAnnotationsPlugin.js +3 -3
- package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +11 -12
- package/lib/performance/TopLevelThisPlugin.js +8 -7
- package/lib/performance/UnsplitVendorsPlugin.js +1 -2
- package/lib/performance/UnusedAliasesPlugin.js +6 -7
- package/lib/performance/UnusedAssetsPlugin.js +5 -5
- package/lib/performance/UnusedDefinesPlugin.js +2 -2
- package/lib/performance/UnusedExternalsPlugin.js +3 -4
- package/lib/performance/UnusedFederationPlugin.js +2 -4
- package/lib/performance/UnusedModulesPlugin.js +5 -4
- package/lib/performance/getModuleSize.js +1 -1
- package/lib/performance/hasOnlyUnusedExports.js +4 -4
- package/lib/performance/isOnlyReexported.js +7 -6
- package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
- package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
- package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +65 -44
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
- package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
- package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
- package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
- package/lib/resolve/getResolveOptionsKey.js +59 -0
- package/lib/rules/RuleSetCompiler.js +27 -46
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
- package/lib/runtime/AsyncModuleRuntimeModule.js +7 -4
- package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
- package/lib/runtime/BaseUriRuntimeModule.js +3 -3
- package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
- package/lib/runtime/CompatRuntimeModule.js +4 -4
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
- package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
- package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +6 -6
- package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
- package/lib/runtime/GlobalRuntimeModule.js +3 -3
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
- package/lib/runtime/HelperRuntimeModule.js +16 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/NonceRuntimeModule.js +2 -2
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
- package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
- package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
- package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
- package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
- package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
- package/lib/runtime/SystemContextRuntimeModule.js +2 -2
- package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
- package/lib/runtime/WorkerRuntimeModule.js +1 -1
- package/lib/runtime/baseUri.js +1 -1
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +67 -11
- package/lib/schemes/VirtualUrlPlugin.js +50 -16
- package/lib/serialization/AggregateErrorSerializer.js +2 -2
- package/lib/serialization/FileMiddleware.js +3 -3
- package/lib/serialization/ObjectMiddleware.js +47 -16
- package/lib/serialization/SerializerMiddleware.js +2 -2
- package/lib/serialization/SingleItemMiddleware.js +4 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
- package/lib/sharing/ConsumeSharedModule.js +18 -14
- package/lib/sharing/ConsumeSharedPlugin.js +148 -42
- package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
- package/lib/sharing/ProvideForSharedDependency.js +9 -1
- package/lib/sharing/ProvideSharedDependency.js +1 -1
- package/lib/sharing/ProvideSharedModule.js +11 -9
- package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
- package/lib/sharing/ProvideSharedPlugin.js +111 -20
- package/lib/sharing/SharePlugin.js +102 -9
- package/lib/sharing/ShareRuntimeModule.js +6 -6
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/{util → sharing}/semver.js +14 -16
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +22 -19
- package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
- package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
- package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
- package/lib/{Stats.js → stats/Stats.js} +4 -4
- package/lib/stats/StatsFactory.js +14 -13
- package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
- package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
- package/lib/template/DependencyTemplate.js +77 -0
- package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
- package/lib/template/InitFragment.js +223 -0
- package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
- package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
- package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
- package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +145 -63
- package/lib/{Template.js → template/Template.js} +13 -11
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
- package/lib/typescript/TypeScriptPlugin.js +3 -3
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +349 -44
- package/lib/util/TupleSet.js +27 -27
- package/lib/util/WeakTupleMap.js +10 -12
- package/lib/util/buildDiagnostics.js +2 -2
- package/lib/util/comparators.js +10 -10
- package/lib/util/concatenate.js +28 -147
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +94 -15
- package/lib/util/deprecation.js +1 -1
- package/lib/util/extractComments.js +118 -0
- package/lib/util/formatLocation.js +1 -1
- package/lib/util/globUtils.js +197 -16
- package/lib/util/haltVisitors.js +51 -0
- package/lib/util/handlerKeys.js +2 -2
- package/lib/util/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +294 -102
- package/lib/util/magicComment.js +12 -7
- package/lib/util/makeSerializable.js +23 -4
- package/lib/util/parseJson.js +1 -1
- package/lib/util/preloadModuleType.js +5 -2
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/removeBOM.js +1 -1
- package/lib/util/runtime.js +1 -1
- package/lib/util/serialization.js +4 -1
- package/lib/util/source.js +2 -2
- package/lib/util/terminalColors.js +161 -0
- package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +11 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
- package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
- package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
- package/lib/wasm/wasmModuleFilename.js +2 -2
- package/lib/wasm-sync/SyncWasmModule.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +9 -8
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +14 -15
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +6 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
- package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
- package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
- package/lib/{Watching.js → watch/Watching.js} +8 -8
- package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
- package/lib/web/FetchCompileWasmPlugin.js +6 -4
- package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
- package/lib/web/JsonpTemplatePlugin.js +1 -1
- package/lib/webpack.js +27 -17
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
- package/package.json +49 -38
- package/schemas/WebpackOptions.check.js +2 -1
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +294 -74
- package/schemas/plugins/BannerPlugin.check.js +2 -1
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
- package/schemas/plugins/HtmlParserOptions.check.js +2 -1
- package/schemas/plugins/IgnorePlugin.check.js +1 -0
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +2 -1
- package/schemas/plugins/ProgressPlugin.json +2 -7
- package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
- package/schemas/plugins/SSRManifestPlugin.json +20 -0
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
- package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssParserOptions.check.js +1 -0
- package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +19355 -13873
- package/lib/LazyBarrel.js +0 -388
- package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
- package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
- package/lib/javascript/ChunkFormatHelpers.js +0 -72
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1500
- package/lib/javascript/regexpData.js +0 -51
- package/lib/performance/getSourceModules.js +0 -22
- package/lib/util/Semaphore.js +0 -65
- package/lib/util/objectToMap.js +0 -15
- package/schemas/WebpackOptions.check.d.ts +0 -7
- package/schemas/_container.json +0 -155
- package/schemas/_sharing.json +0 -118
- package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
- package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
- package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
- package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
- package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
- package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
- package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
- package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
- /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
- /package/lib/{util → css}/conventions.js +0 -0
- /package/lib/{util → css}/topologicalSort.js +0 -0
- /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
- /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
- /package/lib/{util → fs}/StackedCacheMap.js +0 -0
- /package/lib/{util → javascript}/StackedMap.js +0 -0
- /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
- /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
- /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
- /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
- /package/lib/{util → optimize}/Queue.js +0 -0
- /package/lib/{util → stats}/smartGrouping.js +0 -0
|
@@ -6,44 +6,47 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const { SyncWaterfallHook } = require("tapable");
|
|
9
|
+
const ConstDependency = require("../dependencies/core/ConstDependency");
|
|
10
|
+
const WebpackError = require("../errors/WebpackError");
|
|
11
|
+
const BasicEvaluatedExpression = require("../javascript/BasicEvaluatedExpression");
|
|
12
|
+
const { isVariableInfo } = require("../javascript/JavascriptParser");
|
|
13
|
+
const {
|
|
14
|
+
evaluateToString,
|
|
15
|
+
toConstantDependency
|
|
16
|
+
} = require("../javascript/JavascriptParserHelpers");
|
|
9
17
|
const {
|
|
10
18
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
|
11
19
|
JAVASCRIPT_MODULE_TYPE_DYNAMIC,
|
|
12
20
|
JAVASCRIPT_MODULE_TYPE_ESM
|
|
13
|
-
} = require("
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const {
|
|
20
|
-
evaluateToString,
|
|
21
|
-
toConstantDependency
|
|
22
|
-
} = require("./javascript/JavascriptParserHelpers");
|
|
23
|
-
const { getBuildDiagnostics } = require("./util/buildDiagnostics");
|
|
24
|
-
const createHash = require("./util/createHash");
|
|
25
|
-
const createHooksRegistry = require("./util/createHooksRegistry");
|
|
21
|
+
} = require("../module/ModuleTypeConstants");
|
|
22
|
+
const NormalModule = require("../module/NormalModule");
|
|
23
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
24
|
+
const { getBuildDiagnostics } = require("../util/buildDiagnostics");
|
|
25
|
+
const createHash = require("../util/createHash");
|
|
26
|
+
const createHooksRegistry = require("../util/createHooksRegistry");
|
|
26
27
|
|
|
27
28
|
/** @import { Expression, MemberExpression } from "estree" */
|
|
28
|
-
/** @import
|
|
29
|
+
/** @import { Source } from "webpack-sources" */
|
|
30
|
+
/** @import Compiler from "../Compiler" */
|
|
31
|
+
/** @import { PreparsedAst } from "../module/Parser" */
|
|
29
32
|
/**
|
|
30
|
-
* @import {
|
|
33
|
+
* @import Module, {
|
|
31
34
|
* BuildInfo,
|
|
32
35
|
* ValueCacheVersion,
|
|
33
36
|
* ValueCacheVersions
|
|
34
|
-
* } from "
|
|
37
|
+
* } from "../module/Module"
|
|
35
38
|
*/
|
|
36
|
-
/** @import
|
|
37
|
-
/** @import RuntimeTemplate from "
|
|
39
|
+
/** @import { NormalModuleBuildInfo } from "../module/NormalModule" */
|
|
40
|
+
/** @import RuntimeTemplate from "../template/RuntimeTemplate" */
|
|
38
41
|
/**
|
|
39
42
|
* @import JavascriptParser, {
|
|
40
43
|
* DestructuringAssignmentProperties,
|
|
41
44
|
* Members,
|
|
42
45
|
* Range
|
|
43
|
-
* } from "
|
|
46
|
+
* } from "../javascript/JavascriptParser"
|
|
44
47
|
*/
|
|
45
|
-
/** @import { Logger } from "
|
|
46
|
-
/** @import Compilation from "
|
|
48
|
+
/** @import { Logger } from "../logging/Logger" */
|
|
49
|
+
/** @import Compilation from "../Compilation" */
|
|
47
50
|
|
|
48
51
|
/** @typedef {null | undefined | RegExp | EXPECTED_FUNCTION | string | number | boolean | bigint | undefined} CodeValuePrimitive */
|
|
49
52
|
/** @typedef {RecursiveArrayOrRecord<CodeValuePrimitive | RuntimeValue>} CodeValue */
|
|
@@ -56,9 +59,30 @@ const createHooksRegistry = require("./util/createHooksRegistry");
|
|
|
56
59
|
* @property {string[]=} missingDependencies
|
|
57
60
|
* @property {string[]=} buildDependencies
|
|
58
61
|
* @property {string | (() => string)=} version
|
|
62
|
+
* @property {boolean=} async resolve the generator before parsing, including promise-returning functions not declared `async`
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
/** @typedef {CodeValuePrimitive | PromiseLike<CodeValuePrimitive>} GeneratedValue */
|
|
66
|
+
/** @typedef {(value: { module: NormalModule, key: string, readonly version: ValueCacheVersion }) => GeneratedValue} GeneratorFn */
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Whether the generator is declared `async`.
|
|
70
|
+
* @param {GeneratorFn} fn generator function
|
|
71
|
+
* @returns {boolean} true when the generator is an async function
|
|
59
72
|
*/
|
|
73
|
+
const isAsyncFunction = (fn) =>
|
|
74
|
+
Object.prototype.toString.call(fn) === "[object AsyncFunction]";
|
|
60
75
|
|
|
61
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* Whether a generated value still has to be awaited.
|
|
78
|
+
* @param {GeneratedValue} value what the generator returned
|
|
79
|
+
* @returns {value is PromiseLike<CodeValuePrimitive>} true for a thenable
|
|
80
|
+
*/
|
|
81
|
+
const isThenable = (value) =>
|
|
82
|
+
(typeof value === "object" || typeof value === "function") &&
|
|
83
|
+
value !== null &&
|
|
84
|
+
typeof (/** @type {PromiseLike<CodeValuePrimitive>} */ (value).then) ===
|
|
85
|
+
"function";
|
|
62
86
|
|
|
63
87
|
class RuntimeValue {
|
|
64
88
|
/**
|
|
@@ -76,6 +100,15 @@ class RuntimeValue {
|
|
|
76
100
|
}
|
|
77
101
|
/** @type {true | RuntimeValueOptions} */
|
|
78
102
|
this.options = options || {};
|
|
103
|
+
/**
|
|
104
|
+
* Resolved before the module is parsed, since the parser cannot wait.
|
|
105
|
+
* Use the option for promise-returning functions not declared `async`.
|
|
106
|
+
* @type {boolean}
|
|
107
|
+
*/
|
|
108
|
+
this.async =
|
|
109
|
+
this.options !== true && typeof this.options.async === "boolean"
|
|
110
|
+
? this.options.async
|
|
111
|
+
: isAsyncFunction(fn);
|
|
79
112
|
}
|
|
80
113
|
|
|
81
114
|
get fileDependencies() {
|
|
@@ -83,14 +116,14 @@ class RuntimeValue {
|
|
|
83
116
|
}
|
|
84
117
|
|
|
85
118
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
* @param {
|
|
119
|
+
* Records what the value is computed from on the module it is rendered into,
|
|
120
|
+
* so a change to any of it rebuilds that module.
|
|
121
|
+
* @param {NormalModule} module the module the value is rendered into
|
|
89
122
|
* @param {string} key the defined key
|
|
90
|
-
* @returns {
|
|
123
|
+
* @returns {void}
|
|
91
124
|
*/
|
|
92
|
-
|
|
93
|
-
const buildInfo = /** @type {BuildInfo} */ (
|
|
125
|
+
addDependencies(module, key) {
|
|
126
|
+
const buildInfo = /** @type {BuildInfo} */ (module.buildInfo);
|
|
94
127
|
if (this.options === true) {
|
|
95
128
|
buildInfo.cacheable = false;
|
|
96
129
|
const diagnostics = getBuildDiagnostics(buildInfo);
|
|
@@ -125,9 +158,18 @@ class RuntimeValue {
|
|
|
125
158
|
}
|
|
126
159
|
}
|
|
127
160
|
}
|
|
161
|
+
}
|
|
128
162
|
|
|
163
|
+
/**
|
|
164
|
+
* Runs the generator for one module.
|
|
165
|
+
* @param {NormalModule} module the module the value is rendered into
|
|
166
|
+
* @param {ValueCacheVersions} valueCacheVersions valueCacheVersions
|
|
167
|
+
* @param {string} key the defined key
|
|
168
|
+
* @returns {GeneratedValue} the value, or a promise of it
|
|
169
|
+
*/
|
|
170
|
+
call(module, valueCacheVersions, key) {
|
|
129
171
|
return this.fn({
|
|
130
|
-
module
|
|
172
|
+
module,
|
|
131
173
|
key,
|
|
132
174
|
get version() {
|
|
133
175
|
return /** @type {ValueCacheVersion} */ (
|
|
@@ -137,6 +179,32 @@ class RuntimeValue {
|
|
|
137
179
|
});
|
|
138
180
|
}
|
|
139
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Returns code.
|
|
184
|
+
* @param {JavascriptParser} parser the parser
|
|
185
|
+
* @param {ValueCacheVersions} valueCacheVersions valueCacheVersions
|
|
186
|
+
* @param {string} key the defined key
|
|
187
|
+
* @returns {CodeValuePrimitive} code
|
|
188
|
+
*/
|
|
189
|
+
exec(parser, valueCacheVersions, key) {
|
|
190
|
+
const module = parser.state.module;
|
|
191
|
+
this.addDependencies(module, key);
|
|
192
|
+
|
|
193
|
+
if (this.async) return getResolvedValue(module, this, key);
|
|
194
|
+
|
|
195
|
+
const value = this.call(module, valueCacheVersions, key);
|
|
196
|
+
|
|
197
|
+
if (isThenable(value)) {
|
|
198
|
+
// Consume a rejection even though the synchronous parser cannot await it.
|
|
199
|
+
Promise.resolve(value).catch(() => {});
|
|
200
|
+
throw new WebpackError(
|
|
201
|
+
`DefinePlugin: the runtime value for "${key}" returned a Promise, but the generator was not declared asynchronous. Declare it with \`async\`, or set \`async: true\` in its options, so webpack can resolve it before the module is parsed.`
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return value;
|
|
206
|
+
}
|
|
207
|
+
|
|
140
208
|
getCacheVersion() {
|
|
141
209
|
return this.options === true
|
|
142
210
|
? undefined
|
|
@@ -400,6 +468,7 @@ const EMPTY_OBJECT = {};
|
|
|
400
468
|
* @property {Map<string, Set<string>>} nestedByFinalKey nested object keys by final key segment
|
|
401
469
|
* @property {Map<string, string[]>} keysByPrefix definition keys below each dotted-key prefix
|
|
402
470
|
* @property {boolean} hasRuntimeValue renders are module-dependent (RuntimeValue present)
|
|
471
|
+
* @property {boolean} hasAsyncRuntimeValue asynchronous generators need to resolve before parsing
|
|
403
472
|
* @property {WeakMap<MergedDefinitionMap, string>} codeCache rendered code per node (static trees only)
|
|
404
473
|
* @property {Logger} logger the logger
|
|
405
474
|
*/
|
|
@@ -429,13 +498,14 @@ const toPropertyKey = (key) =>
|
|
|
429
498
|
/**
|
|
430
499
|
* Whether a definition value contains a RuntimeValue (module-dependent code).
|
|
431
500
|
* @param {CodeValue} value definition value
|
|
501
|
+
* @param {boolean=} asyncOnly whether only asynchronous generators count
|
|
432
502
|
* @returns {boolean} true when a RuntimeValue is contained
|
|
433
503
|
*/
|
|
434
|
-
const containsRuntimeValue = (value) => {
|
|
435
|
-
if (value instanceof RuntimeValue) return
|
|
504
|
+
const containsRuntimeValue = (value, asyncOnly = false) => {
|
|
505
|
+
if (value instanceof RuntimeValue) return !asyncOnly || value.async;
|
|
436
506
|
if (isObjectDefinition(value)) {
|
|
437
507
|
for (const key of Object.keys(value)) {
|
|
438
|
-
if (containsRuntimeValue(value[key])) return true;
|
|
508
|
+
if (containsRuntimeValue(value[key], asyncOnly)) return true;
|
|
439
509
|
}
|
|
440
510
|
}
|
|
441
511
|
return false;
|
|
@@ -515,11 +585,15 @@ const getMergedDefinitions = (compilation) => {
|
|
|
515
585
|
}
|
|
516
586
|
};
|
|
517
587
|
let hasRuntimeValue = false;
|
|
588
|
+
let hasAsyncRuntimeValue = false;
|
|
518
589
|
/** @type {Map<string, string[]>} */
|
|
519
590
|
const keysByPrefix = new Map();
|
|
520
591
|
for (const key of Object.keys(definitions)) {
|
|
521
|
-
if (TYPEOF_OPERATOR_REGEXP.test(key)) continue;
|
|
522
592
|
const code = definitions[key];
|
|
593
|
+
if (!hasAsyncRuntimeValue && containsRuntimeValue(code, true)) {
|
|
594
|
+
hasAsyncRuntimeValue = true;
|
|
595
|
+
}
|
|
596
|
+
if (TYPEOF_OPERATOR_REGEXP.test(key)) continue;
|
|
523
597
|
insertMergedDefinition(root, key.split("."), code);
|
|
524
598
|
if (!hasRuntimeValue && containsRuntimeValue(code)) hasRuntimeValue = true;
|
|
525
599
|
// group this key under every ancestor prefix (value deps of object reads)
|
|
@@ -536,7 +610,9 @@ const getMergedDefinitions = (compilation) => {
|
|
|
536
610
|
keysByPrefix.set(prefix, [key]);
|
|
537
611
|
}
|
|
538
612
|
}
|
|
539
|
-
|
|
613
|
+
// a nested object is walked separately and an empty string renders to
|
|
614
|
+
// no code; every other shape is a destructurable leaf, falsy included
|
|
615
|
+
if (isObjectDefinition(code) || code === "") continue;
|
|
540
616
|
const idx = key.lastIndexOf(".");
|
|
541
617
|
if (idx <= 0 || idx >= key.length - 1) continue;
|
|
542
618
|
const nested = key.slice(0, idx);
|
|
@@ -552,6 +628,7 @@ const getMergedDefinitions = (compilation) => {
|
|
|
552
628
|
nestedByFinalKey,
|
|
553
629
|
keysByPrefix,
|
|
554
630
|
hasRuntimeValue,
|
|
631
|
+
hasAsyncRuntimeValue,
|
|
555
632
|
codeCache: new WeakMap(),
|
|
556
633
|
logger: compilation.getLogger("webpack.DefinePlugin")
|
|
557
634
|
};
|
|
@@ -678,15 +755,256 @@ const createCompilationHooks = () => ({
|
|
|
678
755
|
* @returns {Error} the annotated error
|
|
679
756
|
*/
|
|
680
757
|
const annotateEvaluationError = (key, code, error) => {
|
|
681
|
-
|
|
758
|
+
// a RuntimeValue holds the generator, not code: JSON drops the function and
|
|
759
|
+
// leaves only its options, which says nothing about what failed
|
|
760
|
+
const value =
|
|
761
|
+
code instanceof RuntimeValue
|
|
762
|
+
? `runtimeValue(${code.fn.name || "anonymous"})`
|
|
763
|
+
: typeof code === "string"
|
|
764
|
+
? code
|
|
765
|
+
: JSON.stringify(code);
|
|
682
766
|
const prefix = `DefinePlugin: failed to evaluate value for "${key}" (\`${value}\`)`;
|
|
683
767
|
if (error instanceof Error) {
|
|
684
|
-
|
|
768
|
+
// one instance can reach several modules, so prefix it only once
|
|
769
|
+
if (!error.message.startsWith(prefix)) {
|
|
770
|
+
error.message = `${prefix}: ${error.message}`;
|
|
771
|
+
}
|
|
685
772
|
return error;
|
|
686
773
|
}
|
|
687
774
|
return new WebpackError(`${prefix}: ${error}`);
|
|
688
775
|
};
|
|
689
776
|
|
|
777
|
+
/** @typedef {{ value: CodeValuePrimitive } | { error: unknown }} ResolvedRuntimeValue */
|
|
778
|
+
/** @typedef {Map<RuntimeValue, Map<string, ResolvedRuntimeValue>>} ResolvedRuntimeValues */
|
|
779
|
+
/** @typedef {{ value: RuntimeValue, keys: Set<string>, roots: Set<string> }} AsyncRuntimeValue */
|
|
780
|
+
|
|
781
|
+
/**
|
|
782
|
+
* Values resolved during the async build, ready for synchronous parser hooks.
|
|
783
|
+
* @type {WeakMap<Module, ResolvedRuntimeValues>}
|
|
784
|
+
*/
|
|
785
|
+
const RESOLVED_RUNTIME_VALUES = new WeakMap();
|
|
786
|
+
|
|
787
|
+
/**
|
|
788
|
+
* @typedef {object} AsyncRuntimeDefinitions
|
|
789
|
+
* @property {Map<RuntimeValue, AsyncRuntimeValue>} values async generators
|
|
790
|
+
* @property {Map<string, string[]>} references replacement code by definition root
|
|
791
|
+
* @property {Set<string>} dynamicRoots roots whose synchronous generators may return more references
|
|
792
|
+
*/
|
|
793
|
+
|
|
794
|
+
/** @type {WeakMap<Compilation, AsyncRuntimeDefinitions>} */
|
|
795
|
+
const ASYNC_RUNTIME_VALUES = new WeakMap();
|
|
796
|
+
|
|
797
|
+
/** @type {WeakSet<Compilation>} */
|
|
798
|
+
const ASYNC_RESOLUTION_TAPPED = new WeakSet();
|
|
799
|
+
|
|
800
|
+
/** @type {WeakSet<JavascriptParser>} */
|
|
801
|
+
const ASYNC_PARSERS = new WeakSet();
|
|
802
|
+
|
|
803
|
+
const IDENTIFIER_ESCAPE_REGEXP =
|
|
804
|
+
/\\u(?:\{([\da-fA-F]{1,6})\}|([\da-fA-F]{4}))/g;
|
|
805
|
+
|
|
806
|
+
/**
|
|
807
|
+
* Includes escaped spellings when checking whether source may use a definition.
|
|
808
|
+
* @param {string} source source or replacement code
|
|
809
|
+
* @returns {string} source with Unicode escapes decoded
|
|
810
|
+
*/
|
|
811
|
+
const decodeIdentifierEscapes = (source) =>
|
|
812
|
+
source.includes("\\u")
|
|
813
|
+
? source.replace(IDENTIFIER_ESCAPE_REGEXP, (escape, point, unit) => {
|
|
814
|
+
const value = Number.parseInt(point || unit, 16);
|
|
815
|
+
return value <= 0x10ffff ? String.fromCodePoint(value) : escape;
|
|
816
|
+
})
|
|
817
|
+
: source;
|
|
818
|
+
|
|
819
|
+
/**
|
|
820
|
+
* Collects runtime values under their dotted, object-member and array keys.
|
|
821
|
+
* @param {CodeValue} code definition value
|
|
822
|
+
* @param {Set<string>} keys keys the value can be rendered under
|
|
823
|
+
* @param {string} root first segment of the definition key
|
|
824
|
+
* @param {AsyncRuntimeDefinitions} into collected definitions
|
|
825
|
+
* @returns {void}
|
|
826
|
+
*/
|
|
827
|
+
const collectAsyncRuntimeValues = (code, keys, root, into) => {
|
|
828
|
+
if (code instanceof RuntimeValue) {
|
|
829
|
+
if (!code.async) {
|
|
830
|
+
into.dynamicRoots.add(root);
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
833
|
+
const collected = into.values.get(code);
|
|
834
|
+
// one instance can be defined under more than one key
|
|
835
|
+
if (collected === undefined) {
|
|
836
|
+
into.values.set(code, {
|
|
837
|
+
value: code,
|
|
838
|
+
keys: new Set(keys),
|
|
839
|
+
roots: new Set([root])
|
|
840
|
+
});
|
|
841
|
+
return;
|
|
842
|
+
}
|
|
843
|
+
for (const key of keys) collected.keys.add(key);
|
|
844
|
+
collected.roots.add(root);
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
847
|
+
if (!isObjectDefinition(code)) {
|
|
848
|
+
const reference = decodeIdentifierEscapes(String(code));
|
|
849
|
+
const references = into.references.get(root);
|
|
850
|
+
if (references) references.push(reference);
|
|
851
|
+
else into.references.set(root, [reference]);
|
|
852
|
+
return;
|
|
853
|
+
}
|
|
854
|
+
const isArray = Array.isArray(code);
|
|
855
|
+
for (const name of Object.keys(code)) {
|
|
856
|
+
/** @type {Set<string>} */
|
|
857
|
+
const childKeys = new Set(
|
|
858
|
+
isArray ? keys : [name, name.slice(name.lastIndexOf(".") + 1)]
|
|
859
|
+
);
|
|
860
|
+
for (const key of keys) childKeys.add(`${key}.${name}`);
|
|
861
|
+
collectAsyncRuntimeValues(code[name], childKeys, root, into);
|
|
862
|
+
}
|
|
863
|
+
};
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
* The asynchronous runtime values of every definition, collected once per
|
|
867
|
+
* compilation.
|
|
868
|
+
* @param {Compilation} compilation the compilation
|
|
869
|
+
* @returns {AsyncRuntimeDefinitions} the definitions
|
|
870
|
+
*/
|
|
871
|
+
const getAsyncRuntimeValues = (compilation) => {
|
|
872
|
+
const cached = ASYNC_RUNTIME_VALUES.get(compilation);
|
|
873
|
+
if (cached) return cached;
|
|
874
|
+
|
|
875
|
+
/** @type {AsyncRuntimeDefinitions} */
|
|
876
|
+
const collected = {
|
|
877
|
+
values: new Map(),
|
|
878
|
+
references: new Map(),
|
|
879
|
+
dynamicRoots: new Set()
|
|
880
|
+
};
|
|
881
|
+
const { definitions } = getMergedDefinitions(compilation);
|
|
882
|
+
|
|
883
|
+
for (const key of Object.keys(definitions)) {
|
|
884
|
+
const name = key.replace(TYPEOF_OPERATOR_REGEXP, "");
|
|
885
|
+
const dot = name.indexOf(".");
|
|
886
|
+
const keys = new Set([key]);
|
|
887
|
+
if (name === key && dot !== -1) {
|
|
888
|
+
keys.add(key.slice(key.lastIndexOf(".") + 1));
|
|
889
|
+
}
|
|
890
|
+
collectAsyncRuntimeValues(
|
|
891
|
+
definitions[key],
|
|
892
|
+
keys,
|
|
893
|
+
dot === -1 ? name : name.slice(0, dot),
|
|
894
|
+
collected
|
|
895
|
+
);
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
ASYNC_RUNTIME_VALUES.set(compilation, collected);
|
|
899
|
+
return collected;
|
|
900
|
+
};
|
|
901
|
+
|
|
902
|
+
/**
|
|
903
|
+
* Whether source or replacement code may reference a definition root.
|
|
904
|
+
* @param {string[]} sources module source and reachable replacement code
|
|
905
|
+
* @param {Iterable<string>} roots first segments of definition keys
|
|
906
|
+
* @returns {boolean} false only when the module cannot reference the value
|
|
907
|
+
*/
|
|
908
|
+
const mayReference = (sources, roots) => {
|
|
909
|
+
for (const root of roots) {
|
|
910
|
+
for (const source of sources) {
|
|
911
|
+
if (source.includes(root)) return true;
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
return false;
|
|
915
|
+
};
|
|
916
|
+
|
|
917
|
+
/**
|
|
918
|
+
* Resolves the asynchronous runtime values a module may reference, while the
|
|
919
|
+
* module is still building and a promise can still be awaited.
|
|
920
|
+
* @param {Compilation} compilation the compilation
|
|
921
|
+
* @param {NormalModule} module the module about to be parsed
|
|
922
|
+
* @param {boolean} resolveAll whether a custom AST can introduce additional references
|
|
923
|
+
* @returns {Promise<void>} resolves once every value the module may use is known
|
|
924
|
+
*/
|
|
925
|
+
const resolveAsyncRuntimeValues = async (compilation, module, resolveAll) => {
|
|
926
|
+
const definitions = getAsyncRuntimeValues(compilation);
|
|
927
|
+
const remaining = new Set(definitions.values.values());
|
|
928
|
+
const references = new Map(definitions.references);
|
|
929
|
+
/** @type {ResolvedRuntimeValues} */
|
|
930
|
+
const resolved = new Map();
|
|
931
|
+
const { valueCacheVersions } = compilation;
|
|
932
|
+
const source = /** @type {Source} */ (module.originalSource()).source();
|
|
933
|
+
const sources = [decodeIdentifierEscapes(source.toString())];
|
|
934
|
+
|
|
935
|
+
while (remaining.size > 0) {
|
|
936
|
+
let addedReferences;
|
|
937
|
+
do {
|
|
938
|
+
addedReferences = false;
|
|
939
|
+
for (const [root, code] of references) {
|
|
940
|
+
if (!mayReference(sources, [root])) continue;
|
|
941
|
+
references.delete(root);
|
|
942
|
+
sources.push(...code);
|
|
943
|
+
addedReferences = true;
|
|
944
|
+
}
|
|
945
|
+
} while (addedReferences);
|
|
946
|
+
// A synchronous generator may return arbitrary code. Keep its invocation
|
|
947
|
+
// at parse time, but prepare any async values that code might reference.
|
|
948
|
+
resolveAll = resolveAll || mayReference(sources, definitions.dynamicRoots);
|
|
949
|
+
/** @type {Promise<void>[]} */
|
|
950
|
+
const pending = [];
|
|
951
|
+
for (const entry of remaining) {
|
|
952
|
+
const { value, keys, roots } = entry;
|
|
953
|
+
if (!resolveAll && !mayReference(sources, roots)) continue;
|
|
954
|
+
remaining.delete(entry);
|
|
955
|
+
/** @type {Map<string, ResolvedRuntimeValue>} */
|
|
956
|
+
const byKey = new Map();
|
|
957
|
+
resolved.set(value, byKey);
|
|
958
|
+
for (const key of keys) {
|
|
959
|
+
pending.push(
|
|
960
|
+
Promise.resolve()
|
|
961
|
+
.then(() => value.call(module, valueCacheVersions, key))
|
|
962
|
+
.then(
|
|
963
|
+
(code) => {
|
|
964
|
+
byKey.set(key, { value: code });
|
|
965
|
+
sources.push(decodeIdentifierEscapes(String(code)));
|
|
966
|
+
},
|
|
967
|
+
(error) => {
|
|
968
|
+
// Text matching can include unused members or shadowed names,
|
|
969
|
+
// so keep the rejection as it is and annotate it in
|
|
970
|
+
// `getResolvedValue`, only for the module that consumes it
|
|
971
|
+
byKey.set(key, { error });
|
|
972
|
+
}
|
|
973
|
+
)
|
|
974
|
+
);
|
|
975
|
+
}
|
|
976
|
+
}
|
|
977
|
+
if (pending.length === 0) break;
|
|
978
|
+
await Promise.all(pending);
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
// last, so that a rebuild never reads what the previous build resolved
|
|
982
|
+
RESOLVED_RUNTIME_VALUES.set(module, resolved);
|
|
983
|
+
};
|
|
984
|
+
|
|
985
|
+
/**
|
|
986
|
+
* What an asynchronous generator produced for this module, resolved before the
|
|
987
|
+
* module was parsed.
|
|
988
|
+
* @param {NormalModule} module the module being parsed
|
|
989
|
+
* @param {RuntimeValue} runtimeValue the runtime value
|
|
990
|
+
* @param {string} key the defined key
|
|
991
|
+
* @returns {CodeValuePrimitive} the value
|
|
992
|
+
*/
|
|
993
|
+
const getResolvedValue = (module, runtimeValue, key) => {
|
|
994
|
+
const resolved = RESOLVED_RUNTIME_VALUES.get(module);
|
|
995
|
+
const byKey = resolved && resolved.get(runtimeValue);
|
|
996
|
+
const result = byKey && byKey.get(key);
|
|
997
|
+
if (result === undefined) {
|
|
998
|
+
throw new WebpackError(
|
|
999
|
+
`DefinePlugin: the asynchronous runtime value for "${key}" was not resolved before the module was parsed.`
|
|
1000
|
+
);
|
|
1001
|
+
}
|
|
1002
|
+
if ("error" in result) {
|
|
1003
|
+
throw annotateEvaluationError(key, runtimeValue, result.error);
|
|
1004
|
+
}
|
|
1005
|
+
return result.value;
|
|
1006
|
+
};
|
|
1007
|
+
|
|
690
1008
|
/**
|
|
691
1009
|
* @typedef {ReturnType<typeof createCompilationHooks>} DefinePluginHooks
|
|
692
1010
|
*/
|
|
@@ -704,7 +1022,8 @@ class DefinePlugin {
|
|
|
704
1022
|
}
|
|
705
1023
|
|
|
706
1024
|
/**
|
|
707
|
-
*
|
|
1025
|
+
* Creates a runtime value. Async generators resolve once per module and key
|
|
1026
|
+
* before parsing; promise-returning functions require the `async` option.
|
|
708
1027
|
* @param {GeneratorFn} fn generator function
|
|
709
1028
|
* @param {true | string[] | RuntimeValueOptions=} options options
|
|
710
1029
|
* @returns {RuntimeValue} runtime value
|
|
@@ -768,6 +1087,52 @@ class DefinePlugin {
|
|
|
768
1087
|
// built lazily here: every definitions hook is tapped by the time
|
|
769
1088
|
// parsers are created, and the result is cached per compilation
|
|
770
1089
|
const mergedDefinitions = getMergedDefinitions(compilation);
|
|
1090
|
+
// a parser is created before the module it parses is built, so this
|
|
1091
|
+
// is in place before the first value has to be resolved
|
|
1092
|
+
if (mergedDefinitions.hasAsyncRuntimeValue) {
|
|
1093
|
+
ASYNC_PARSERS.add(parser);
|
|
1094
|
+
if (!ASYNC_RESOLUTION_TAPPED.has(compilation)) {
|
|
1095
|
+
ASYNC_RESOLUTION_TAPPED.add(compilation);
|
|
1096
|
+
NormalModule.getCompilationHooks(
|
|
1097
|
+
compilation
|
|
1098
|
+
).beforeParse.tapPromise(
|
|
1099
|
+
{ name: PLUGIN_NAME, stage: Infinity },
|
|
1100
|
+
async (module) => {
|
|
1101
|
+
const moduleParser = /** @type {JavascriptParser} */ (
|
|
1102
|
+
module.parser
|
|
1103
|
+
);
|
|
1104
|
+
if (
|
|
1105
|
+
!ASYNC_PARSERS.has(moduleParser) ||
|
|
1106
|
+
module.shouldPreventParsing(
|
|
1107
|
+
compilation.options.module.noParse,
|
|
1108
|
+
module.request
|
|
1109
|
+
)
|
|
1110
|
+
) {
|
|
1111
|
+
return;
|
|
1112
|
+
}
|
|
1113
|
+
// A loader-provided AST or a custom parse function means the
|
|
1114
|
+
// module is parsed from something other than its source text,
|
|
1115
|
+
// so scanning that text cannot find every reference.
|
|
1116
|
+
const hasPreparsedAst =
|
|
1117
|
+
/** @type {{ _ast: PreparsedAst | null }} */ (
|
|
1118
|
+
/** @type {unknown} */ (module)
|
|
1119
|
+
)._ast !== null;
|
|
1120
|
+
await resolveAsyncRuntimeValues(
|
|
1121
|
+
compilation,
|
|
1122
|
+
module,
|
|
1123
|
+
hasPreparsedAst ||
|
|
1124
|
+
typeof moduleParser.options.parse === "function"
|
|
1125
|
+
);
|
|
1126
|
+
}
|
|
1127
|
+
);
|
|
1128
|
+
compilation.hooks.succeedModule.tap(PLUGIN_NAME, (module) => {
|
|
1129
|
+
RESOLVED_RUNTIME_VALUES.delete(module);
|
|
1130
|
+
});
|
|
1131
|
+
compilation.hooks.failedModule.tap(PLUGIN_NAME, (module) => {
|
|
1132
|
+
RESOLVED_RUNTIME_VALUES.delete(module);
|
|
1133
|
+
});
|
|
1134
|
+
}
|
|
1135
|
+
}
|
|
771
1136
|
/** @type {Set<string>} */
|
|
772
1137
|
const hooked = new Set();
|
|
773
1138
|
const mainValue =
|
|
@@ -852,9 +1217,7 @@ class DefinePlugin {
|
|
|
852
1217
|
if (fullKey === "import" || fullKey === "import.meta") continue;
|
|
853
1218
|
parser.hooks.canRename.for(fullKey).tap(PLUGIN_NAME, () => {
|
|
854
1219
|
addValueDependency(key);
|
|
855
|
-
if (
|
|
856
|
-
parser.scope.definitions.get(firstKey) instanceof VariableInfo
|
|
857
|
-
) {
|
|
1220
|
+
if (isVariableInfo(parser.scope.definitions.get(firstKey))) {
|
|
858
1221
|
return false;
|
|
859
1222
|
}
|
|
860
1223
|
return true;
|
|
@@ -898,7 +1261,10 @@ class DefinePlugin {
|
|
|
898
1261
|
if (
|
|
899
1262
|
!finalSet ||
|
|
900
1263
|
!finalSet.has(id) ||
|
|
901
|
-
!
|
|
1264
|
+
!Object.prototype.hasOwnProperty.call(
|
|
1265
|
+
mergedDefinitions.definitions,
|
|
1266
|
+
fullKey
|
|
1267
|
+
)
|
|
902
1268
|
) {
|
|
903
1269
|
return;
|
|
904
1270
|
}
|
|
@@ -42,15 +42,15 @@
|
|
|
42
42
|
|
|
43
43
|
"use strict";
|
|
44
44
|
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
const { join } = require("
|
|
45
|
+
const DotenvFileError = require("../errors/DotenvFileError");
|
|
46
|
+
const FileSystemInfo = require("../fs/FileSystemInfo");
|
|
47
|
+
const { join } = require("../fs/fs");
|
|
48
48
|
|
|
49
|
-
/** @import { DotenvPluginOptions } from "
|
|
50
|
-
/** @import Compiler from "
|
|
51
|
-
/** @import { ItemCacheFacade } from "
|
|
52
|
-
/** @import { InputFileSystem } from "
|
|
53
|
-
/** @import { Snapshot } from "
|
|
49
|
+
/** @import { DotenvPluginOptions } from "../../declarations/WebpackOptions" */
|
|
50
|
+
/** @import Compiler from "../Compiler" */
|
|
51
|
+
/** @import { ItemCacheFacade } from "../cache/CacheFacade" */
|
|
52
|
+
/** @import { InputFileSystem } from "../fs/fs" */
|
|
53
|
+
/** @import { Snapshot } from "../fs/FileSystemInfo" */
|
|
54
54
|
|
|
55
55
|
/** @typedef {Exclude<DotenvPluginOptions["prefix"], string | undefined>} Prefix */
|
|
56
56
|
/** @typedef {Record<string, string>} Env */
|
|
@@ -270,7 +270,7 @@ class DotenvPlugin {
|
|
|
270
270
|
compiler.hooks.validate.tap(PLUGIN_NAME, () => {
|
|
271
271
|
compiler.validate(
|
|
272
272
|
() => {
|
|
273
|
-
const { definitions } = require("
|
|
273
|
+
const { definitions } = require("../../schemas/WebpackOptions.json");
|
|
274
274
|
|
|
275
275
|
return {
|
|
276
276
|
definitions,
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const WebpackError = require("../errors/WebpackError");
|
|
8
9
|
const DefinePlugin = require("./DefinePlugin");
|
|
9
|
-
const WebpackError = require("./errors/WebpackError");
|
|
10
10
|
|
|
11
|
-
/** @import Compiler from "
|
|
11
|
+
/** @import Compiler from "../Compiler" */
|
|
12
12
|
/** @import { CodeValue } from "./DefinePlugin" */
|
|
13
13
|
|
|
14
14
|
const PLUGIN_NAME = "EnvironmentPlugin";
|