@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const WebpackError = require("../WebpackError");
|
|
8
|
+
const WebpackError = require("../errors/WebpackError");
|
|
9
|
+
const { cssExportConvention } = require("../util/conventions");
|
|
9
10
|
const makeSerializable = require("../util/makeSerializable");
|
|
10
11
|
const CssImportDependency = require("./CssImportDependency");
|
|
11
12
|
|
|
@@ -13,12 +14,13 @@ const CssImportDependency = require("./CssImportDependency");
|
|
|
13
14
|
/** @typedef {import("../Dependency")} Dependency */
|
|
14
15
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
|
15
16
|
/** @typedef {import("../Module")} Module */
|
|
16
|
-
/** @typedef {import("../
|
|
17
|
+
/** @typedef {import("../css/CssGenerator")} CssGenerator */
|
|
18
|
+
/** @typedef {import("../css/CssModule")} CssModule */
|
|
17
19
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
18
20
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
19
21
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
20
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
21
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
22
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string]>} ObjectDeserializerContext */
|
|
23
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, string]>} ObjectSerializerContext */
|
|
22
24
|
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
|
|
23
25
|
/** @typedef {import("../../declarations/WebpackOptions").CssGeneratorExportsConvention} CssGeneratorExportsConvention */
|
|
24
26
|
/** @typedef {import("./CssIcssExportDependency").ExportMode} ExportMode */
|
|
@@ -37,8 +39,30 @@ class CssIcssImportDependency extends CssImportDependency {
|
|
|
37
39
|
*/
|
|
38
40
|
constructor(request, range, mode, importName, localName) {
|
|
39
41
|
super(request, range, mode);
|
|
42
|
+
/** @type {string} */
|
|
40
43
|
this.importName = importName;
|
|
44
|
+
/** @type {string} */
|
|
41
45
|
this.localName = localName;
|
|
46
|
+
/** @type {undefined | string[]} */
|
|
47
|
+
this._importNameConventionNames = undefined;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Memoized `cssExportConvention(this.importName, convention)`. The target
|
|
52
|
+
* module is fixed for a given dep, so its `exportsConvention` is fixed,
|
|
53
|
+
* so the convention-derived aliases of `importName` can be cached on the dep.
|
|
54
|
+
* @param {CssGeneratorExportsConvention} convention convention from the target module's generator
|
|
55
|
+
* @returns {string[]} convention results
|
|
56
|
+
*/
|
|
57
|
+
getImportNameConventionNames(convention) {
|
|
58
|
+
if (this._importNameConventionNames) {
|
|
59
|
+
return this._importNameConventionNames;
|
|
60
|
+
}
|
|
61
|
+
this._importNameConventionNames = cssExportConvention(
|
|
62
|
+
this.importName,
|
|
63
|
+
convention
|
|
64
|
+
);
|
|
65
|
+
return this._importNameConventionNames;
|
|
42
66
|
}
|
|
43
67
|
|
|
44
68
|
get type() {
|
|
@@ -61,17 +85,37 @@ class CssIcssImportDependency extends CssImportDependency {
|
|
|
61
85
|
}
|
|
62
86
|
|
|
63
87
|
/**
|
|
64
|
-
* Returns warnings
|
|
88
|
+
* Returns warnings.
|
|
65
89
|
* @param {ModuleGraph} moduleGraph module graph
|
|
66
90
|
* @returns {WebpackError[] | null | undefined} warnings
|
|
67
91
|
*/
|
|
68
92
|
getWarnings(moduleGraph) {
|
|
69
|
-
const module =
|
|
93
|
+
const module = /** @type {CssModule | undefined} */ (
|
|
94
|
+
moduleGraph.getModule(this)
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
if (!module) return null;
|
|
98
|
+
|
|
99
|
+
// The target module stores exports under the names produced by its
|
|
100
|
+
// `exportsConvention`, so a raw `isExportProvided(this.importName)`
|
|
101
|
+
// would false-positive against `camel-case-only` / `dashes-only` (and
|
|
102
|
+
// any custom function that drops the original spelling). Expand
|
|
103
|
+
// `importName` through the *target* module's convention and accept
|
|
104
|
+
// if any alias is provided.
|
|
105
|
+
const generator =
|
|
106
|
+
/** @type {CssGenerator | undefined} */
|
|
107
|
+
(module.generator);
|
|
108
|
+
const convention =
|
|
109
|
+
generator &&
|
|
110
|
+
/** @type {CssGeneratorExportsConvention | undefined} */
|
|
111
|
+
(generator.options && generator.options.exportsConvention);
|
|
112
|
+
const exportsInfo = moduleGraph.getExportsInfo(module);
|
|
113
|
+
const names = convention
|
|
114
|
+
? this.getImportNameConventionNames(convention)
|
|
115
|
+
: [this.importName];
|
|
116
|
+
const isProvided = names.some((name) => exportsInfo.isExportProvided(name));
|
|
70
117
|
|
|
71
|
-
if (
|
|
72
|
-
module &&
|
|
73
|
-
!moduleGraph.getExportsInfo(module).isExportProvided(this.importName)
|
|
74
|
-
) {
|
|
118
|
+
if (!isProvided) {
|
|
75
119
|
const error = new WebpackError(
|
|
76
120
|
`Referenced name "${this.importName}" in "${this.userRequest}" not found`
|
|
77
121
|
);
|
|
@@ -84,23 +128,23 @@ class CssIcssImportDependency extends CssImportDependency {
|
|
|
84
128
|
}
|
|
85
129
|
|
|
86
130
|
/**
|
|
131
|
+
* Serializes this instance into the provided serializer context.
|
|
87
132
|
* @param {ObjectSerializerContext} context context
|
|
88
133
|
*/
|
|
89
134
|
serialize(context) {
|
|
90
|
-
|
|
91
|
-
write(this.importName);
|
|
92
|
-
write(this.localName);
|
|
135
|
+
context.write(this.importName).write(this.localName);
|
|
93
136
|
super.serialize(context);
|
|
94
137
|
}
|
|
95
138
|
|
|
96
139
|
/**
|
|
140
|
+
* Restores this instance from the provided deserializer context.
|
|
97
141
|
* @param {ObjectDeserializerContext} context context
|
|
98
142
|
*/
|
|
99
143
|
deserialize(context) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
this.localName = read();
|
|
103
|
-
super.deserialize(
|
|
144
|
+
this.importName = context.read();
|
|
145
|
+
const c1 = context.rest;
|
|
146
|
+
this.localName = c1.read();
|
|
147
|
+
super.deserialize(c1.rest);
|
|
104
148
|
}
|
|
105
149
|
}
|
|
106
150
|
|
|
@@ -108,6 +152,7 @@ CssIcssImportDependency.Template = class CssIcssImportDependencyTemplate extends
|
|
|
108
152
|
CssImportDependency.Template
|
|
109
153
|
) {
|
|
110
154
|
/**
|
|
155
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
111
156
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
112
157
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
113
158
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -18,24 +18,31 @@ const NullDependency = require("./NullDependency");
|
|
|
18
18
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
|
19
19
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
20
20
|
/** @typedef {import("../css/CssParser").Range} Range */
|
|
21
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
22
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
21
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, Range, string | undefined, string | undefined, string | undefined]>} ObjectDeserializerContext */
|
|
22
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, Range, string | undefined, string | undefined, string | undefined]>} ObjectSerializerContext */
|
|
23
23
|
/** @typedef {import("../util/Hash")} Hash */
|
|
24
24
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
25
25
|
|
|
26
26
|
class CssIcssSymbolDependency extends NullDependency {
|
|
27
27
|
/**
|
|
28
|
+
* Creates an instance of CssIcssSymbolDependency.
|
|
28
29
|
* @param {string} localName local name
|
|
29
30
|
* @param {Range} range range
|
|
30
31
|
* @param {string=} value value when it was defined in this module
|
|
31
32
|
* @param {string=} importName import name when it was imported from other module
|
|
33
|
+
* @param {string=} request request of the `@value` import that was active when this reference was parsed — used to disambiguate when the same local name is imported from multiple modules
|
|
32
34
|
*/
|
|
33
|
-
constructor(localName, range, value, importName) {
|
|
35
|
+
constructor(localName, range, value, importName, request) {
|
|
34
36
|
super();
|
|
37
|
+
/** @type {string} */
|
|
35
38
|
this.localName = localName;
|
|
36
39
|
this.range = range;
|
|
40
|
+
/** @type {string | undefined} */
|
|
37
41
|
this.value = value;
|
|
42
|
+
/** @type {string | undefined} */
|
|
38
43
|
this.importName = importName;
|
|
44
|
+
/** @type {string | undefined} */
|
|
45
|
+
this.request = request;
|
|
39
46
|
/** @type {undefined | string} */
|
|
40
47
|
this._hashUpdate = undefined;
|
|
41
48
|
}
|
|
@@ -45,40 +52,50 @@ class CssIcssSymbolDependency extends NullDependency {
|
|
|
45
52
|
}
|
|
46
53
|
|
|
47
54
|
/**
|
|
48
|
-
*
|
|
55
|
+
* Updates the hash with the data contributed by this instance.
|
|
49
56
|
* @param {Hash} hash hash to be updated
|
|
50
57
|
* @param {UpdateHashContext} context context
|
|
51
58
|
* @returns {void}
|
|
52
59
|
*/
|
|
53
60
|
updateHash(hash, context) {
|
|
54
61
|
if (this._hashUpdate === undefined) {
|
|
55
|
-
|
|
62
|
+
// Concatenate with explicit field separators so adjacent fields
|
|
63
|
+
// can't alias each other (e.g. range `[1,11]` + localName `"foo"`
|
|
64
|
+
// vs range `[1,1]` + localName `"1foo"`).
|
|
65
|
+
this._hashUpdate = `range|${JSON.stringify(this.range)}|localName|${this.localName}|value|${this.value || ""}|importName|${this.importName || ""}|request|${this.request || ""}`;
|
|
56
66
|
}
|
|
57
67
|
hash.update(this._hashUpdate);
|
|
58
68
|
}
|
|
59
69
|
|
|
60
70
|
/**
|
|
71
|
+
* Serializes this instance into the provided serializer context.
|
|
61
72
|
* @param {ObjectSerializerContext} context context
|
|
62
73
|
*/
|
|
63
74
|
serialize(context) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
75
|
+
context
|
|
76
|
+
.write(this.localName)
|
|
77
|
+
.write(this.range)
|
|
78
|
+
.write(this.value)
|
|
79
|
+
.write(this.importName)
|
|
80
|
+
.write(this.request);
|
|
69
81
|
super.serialize(context);
|
|
70
82
|
}
|
|
71
83
|
|
|
72
84
|
/**
|
|
85
|
+
* Restores this instance from the provided deserializer context.
|
|
73
86
|
* @param {ObjectDeserializerContext} context context
|
|
74
87
|
*/
|
|
75
88
|
deserialize(context) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
this.range = read();
|
|
79
|
-
|
|
80
|
-
this.
|
|
81
|
-
|
|
89
|
+
this.localName = context.read();
|
|
90
|
+
const c1 = context.rest;
|
|
91
|
+
this.range = c1.read();
|
|
92
|
+
const c2 = c1.rest;
|
|
93
|
+
this.value = c2.read();
|
|
94
|
+
const c3 = c2.rest;
|
|
95
|
+
this.importName = c3.read();
|
|
96
|
+
const c4 = c3.rest;
|
|
97
|
+
this.request = c4.read();
|
|
98
|
+
super.deserialize(c4.rest);
|
|
82
99
|
}
|
|
83
100
|
}
|
|
84
101
|
|
|
@@ -86,6 +103,7 @@ CssIcssSymbolDependency.Template = class CssIcssSymbolDependencyTemplate extends
|
|
|
86
103
|
NullDependency.Template
|
|
87
104
|
) {
|
|
88
105
|
/**
|
|
106
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
89
107
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
90
108
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
91
109
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -99,7 +117,8 @@ CssIcssSymbolDependency.Template = class CssIcssSymbolDependencyTemplate extends
|
|
|
99
117
|
? CssIcssExportDependency.Template.resolve(
|
|
100
118
|
dep.localName,
|
|
101
119
|
dep.importName,
|
|
102
|
-
templateContext
|
|
120
|
+
templateContext,
|
|
121
|
+
dep.request
|
|
103
122
|
)
|
|
104
123
|
: dep.value;
|
|
105
124
|
|
|
@@ -9,8 +9,10 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
9
9
|
const ModuleDependency = require("./ModuleDependency");
|
|
10
10
|
|
|
11
11
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
12
|
+
/** @typedef {import("../../declarations/WebpackOptions").CssParserExportType} CssParserExportType */
|
|
12
13
|
/** @typedef {import("../Dependency")} Dependency */
|
|
13
14
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
|
15
|
+
/** @typedef {import("../css/CssModule").Inheritance} Inheritance */
|
|
14
16
|
/** @typedef {import("../css/CssParser").Range} Range */
|
|
15
17
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
16
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
@@ -25,14 +27,32 @@ class CssImportDependency extends ModuleDependency {
|
|
|
25
27
|
* @param {string=} layer layer
|
|
26
28
|
* @param {string=} supports list of supports conditions
|
|
27
29
|
* @param {string=} media list of media conditions
|
|
30
|
+
* @param {Inheritance=} inheritance layer/supports/media chain inherited from the importing module
|
|
31
|
+
* @param {CssParserExportType=} exportType exportType inherited from the importing module
|
|
28
32
|
*/
|
|
29
|
-
constructor(
|
|
33
|
+
constructor(
|
|
34
|
+
request,
|
|
35
|
+
range,
|
|
36
|
+
mode,
|
|
37
|
+
layer,
|
|
38
|
+
supports,
|
|
39
|
+
media,
|
|
40
|
+
inheritance,
|
|
41
|
+
exportType
|
|
42
|
+
) {
|
|
30
43
|
super(request);
|
|
31
44
|
this.range = range;
|
|
32
45
|
this.mode = mode;
|
|
46
|
+
/** @type {string | undefined} */
|
|
33
47
|
this.layer = layer;
|
|
48
|
+
/** @type {string | undefined} */
|
|
34
49
|
this.supports = supports;
|
|
50
|
+
/** @type {string | undefined} */
|
|
35
51
|
this.media = media;
|
|
52
|
+
/** @type {Inheritance | undefined} */
|
|
53
|
+
this.inheritance = inheritance;
|
|
54
|
+
/** @type {CssParserExportType | undefined} */
|
|
55
|
+
this.exportType = exportType;
|
|
36
56
|
}
|
|
37
57
|
|
|
38
58
|
get type() {
|
|
@@ -44,6 +64,15 @@ class CssImportDependency extends ModuleDependency {
|
|
|
44
64
|
}
|
|
45
65
|
|
|
46
66
|
/**
|
|
67
|
+
* Returns true if this dependency can be concatenated
|
|
68
|
+
* @returns {boolean} true if this dependency can be concatenated
|
|
69
|
+
*/
|
|
70
|
+
canConcatenate() {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Returns an identifier to merge equal requests.
|
|
47
76
|
* @returns {string | null} an identifier to merge equal requests
|
|
48
77
|
*/
|
|
49
78
|
getResourceIdentifier() {
|
|
@@ -69,6 +98,7 @@ class CssImportDependency extends ModuleDependency {
|
|
|
69
98
|
}
|
|
70
99
|
|
|
71
100
|
/**
|
|
101
|
+
* Serializes this instance into the provided serializer context.
|
|
72
102
|
* @param {ObjectSerializerContext} context context
|
|
73
103
|
*/
|
|
74
104
|
serialize(context) {
|
|
@@ -78,10 +108,13 @@ class CssImportDependency extends ModuleDependency {
|
|
|
78
108
|
write(this.layer);
|
|
79
109
|
write(this.supports);
|
|
80
110
|
write(this.media);
|
|
111
|
+
write(this.inheritance);
|
|
112
|
+
write(this.exportType);
|
|
81
113
|
super.serialize(context);
|
|
82
114
|
}
|
|
83
115
|
|
|
84
116
|
/**
|
|
117
|
+
* Restores this instance from the provided deserializer context.
|
|
85
118
|
* @param {ObjectDeserializerContext} context context
|
|
86
119
|
*/
|
|
87
120
|
deserialize(context) {
|
|
@@ -91,6 +124,8 @@ class CssImportDependency extends ModuleDependency {
|
|
|
91
124
|
this.layer = read();
|
|
92
125
|
this.supports = read();
|
|
93
126
|
this.media = read();
|
|
127
|
+
this.inheritance = read();
|
|
128
|
+
this.exportType = read();
|
|
94
129
|
super.deserialize(context);
|
|
95
130
|
}
|
|
96
131
|
}
|
|
@@ -99,6 +134,7 @@ CssImportDependency.Template = class CssImportDependencyTemplate extends (
|
|
|
99
134
|
ModuleDependency.Template
|
|
100
135
|
) {
|
|
101
136
|
/**
|
|
137
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
102
138
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
103
139
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
104
140
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const { ASSET_URL_TYPE } = require("../ModuleSourceTypeConstants");
|
|
8
9
|
const RawDataUrlModule = require("../asset/RawDataUrlModule");
|
|
9
10
|
const makeSerializable = require("../util/makeSerializable");
|
|
10
11
|
const memoize = require("../util/memoize");
|
|
@@ -12,15 +13,19 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
12
13
|
|
|
13
14
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
14
15
|
/** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */
|
|
16
|
+
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
15
17
|
/** @typedef {import("../Dependency")} Dependency */
|
|
16
18
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
|
17
19
|
/** @typedef {import("../Module")} Module */
|
|
20
|
+
/** @typedef {import("../Module").BuildInfo} BuildInfo */
|
|
18
21
|
/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
|
|
19
22
|
/** @typedef {import("../Module").CodeGenerationResultData} CodeGenerationResultData */
|
|
20
23
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
21
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
22
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
24
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<["string" | "url" | "src", true | undefined, true | undefined, ("high" | "low" | "auto" | undefined), string | undefined, string | undefined, string | undefined]>} ObjectDeserializerContext */
|
|
25
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<["string" | "url" | "src", true | undefined, true | undefined, ("high" | "low" | "auto" | undefined), string | undefined, string | undefined, string | undefined]>} ObjectSerializerContext */
|
|
26
|
+
/** @typedef {import("../util/Hash")} Hash */
|
|
23
27
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
28
|
+
/** @typedef {import("../NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
|
|
24
29
|
|
|
25
30
|
const getIgnoredRawDataUrlModule = memoize(
|
|
26
31
|
() => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)")
|
|
@@ -28,6 +33,7 @@ const getIgnoredRawDataUrlModule = memoize(
|
|
|
28
33
|
|
|
29
34
|
class CssUrlDependency extends ModuleDependency {
|
|
30
35
|
/**
|
|
36
|
+
* Creates an instance of CssUrlDependency.
|
|
31
37
|
* @param {string} request request
|
|
32
38
|
* @param {Range} range range of the argument
|
|
33
39
|
* @param {"string" | "url" | "src"} urlType dependency type e.g. url() or string
|
|
@@ -36,6 +42,18 @@ class CssUrlDependency extends ModuleDependency {
|
|
|
36
42
|
super(request);
|
|
37
43
|
this.range = range;
|
|
38
44
|
this.urlType = urlType;
|
|
45
|
+
/** @type {true | undefined} */
|
|
46
|
+
this.prefetch = undefined;
|
|
47
|
+
/** @type {true | undefined} */
|
|
48
|
+
this.preload = undefined;
|
|
49
|
+
/** @type {"low" | "high" | "auto" | undefined} */
|
|
50
|
+
this.fetchPriority = undefined;
|
|
51
|
+
/** @type {string | undefined} */
|
|
52
|
+
this.asAttribute = undefined;
|
|
53
|
+
/** @type {string | undefined} */
|
|
54
|
+
this.typeAttribute = undefined;
|
|
55
|
+
/** @type {string | undefined} */
|
|
56
|
+
this.mediaAttribute = undefined;
|
|
39
57
|
}
|
|
40
58
|
|
|
41
59
|
get type() {
|
|
@@ -47,6 +65,7 @@ class CssUrlDependency extends ModuleDependency {
|
|
|
47
65
|
}
|
|
48
66
|
|
|
49
67
|
/**
|
|
68
|
+
* Creates an ignored module.
|
|
50
69
|
* @param {string} context context directory
|
|
51
70
|
* @returns {Module} ignored module
|
|
52
71
|
*/
|
|
@@ -55,25 +74,79 @@ class CssUrlDependency extends ModuleDependency {
|
|
|
55
74
|
}
|
|
56
75
|
|
|
57
76
|
/**
|
|
77
|
+
* Updates the hash with the data contributed by this instance.
|
|
78
|
+
* @param {Hash} hash hash to be updated
|
|
79
|
+
* @param {UpdateHashContext} context context
|
|
80
|
+
* @returns {void}
|
|
81
|
+
*/
|
|
82
|
+
updateHash(hash, context) {
|
|
83
|
+
// The dependency template substitutes the referenced asset's hashed
|
|
84
|
+
// filename into the rendered CSS at code-generation time. Folding the
|
|
85
|
+
// asset module's content hash into the dependency hash ensures the
|
|
86
|
+
// CSS module's hash invalidates — and the CSS chunk's contenthash
|
|
87
|
+
// updates — whenever the referenced asset's content changes.
|
|
88
|
+
const { chunkGraph } = context;
|
|
89
|
+
const module = chunkGraph.moduleGraph.getModule(this);
|
|
90
|
+
if (!module) return;
|
|
91
|
+
const buildInfo = /** @type {NormalModuleBuildInfo | undefined} */ (
|
|
92
|
+
module.buildInfo
|
|
93
|
+
);
|
|
94
|
+
if (buildInfo && buildInfo.hash) {
|
|
95
|
+
hash.update(/** @type {string} */ (buildInfo.hash));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Serializes this instance into the provided serializer context.
|
|
58
101
|
* @param {ObjectSerializerContext} context context
|
|
59
102
|
*/
|
|
60
103
|
serialize(context) {
|
|
61
|
-
|
|
62
|
-
|
|
104
|
+
context
|
|
105
|
+
.write(this.urlType)
|
|
106
|
+
.write(this.prefetch)
|
|
107
|
+
.write(this.preload)
|
|
108
|
+
.write(this.fetchPriority)
|
|
109
|
+
.write(this.asAttribute)
|
|
110
|
+
.write(this.typeAttribute)
|
|
111
|
+
.write(this.mediaAttribute);
|
|
63
112
|
super.serialize(context);
|
|
64
113
|
}
|
|
65
114
|
|
|
66
115
|
/**
|
|
116
|
+
* Restores this instance from the provided deserializer context.
|
|
67
117
|
* @param {ObjectDeserializerContext} context context
|
|
68
118
|
*/
|
|
69
119
|
deserialize(context) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
120
|
+
this.urlType = context.read();
|
|
121
|
+
const c1 = context.rest;
|
|
122
|
+
this.prefetch = c1.read();
|
|
123
|
+
const c2 = c1.rest;
|
|
124
|
+
this.preload = c2.read();
|
|
125
|
+
const c3 = c2.rest;
|
|
126
|
+
this.fetchPriority = c3.read();
|
|
127
|
+
const c4 = c3.rest;
|
|
128
|
+
this.asAttribute = c4.read();
|
|
129
|
+
const c5 = c4.rest;
|
|
130
|
+
this.typeAttribute = c5.read();
|
|
131
|
+
const c6 = c5.rest;
|
|
132
|
+
this.mediaAttribute = c6.read();
|
|
133
|
+
super.deserialize(c6.rest);
|
|
73
134
|
}
|
|
74
135
|
}
|
|
75
136
|
|
|
137
|
+
// Hoisted out of `cssEscapeString` so the patterns + replacer aren't
|
|
138
|
+
// recompiled/reallocated per `url()` / `src()` reference at code-gen.
|
|
139
|
+
const CSS_ESCAPE_UNQUOTED_REGEXP = /[\n\t ()'"\\]/g;
|
|
140
|
+
const CSS_ESCAPE_DOUBLE_REGEXP = /[\n"\\]/g;
|
|
141
|
+
const CSS_ESCAPE_SINGLE_REGEXP = /[\n'\\]/g;
|
|
76
142
|
/**
|
|
143
|
+
* @param {string} m matched character
|
|
144
|
+
* @returns {string} the character backslash-escaped
|
|
145
|
+
*/
|
|
146
|
+
const cssEscapeReplacer = (m) => `\\${m}`;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Returns string in quotes if needed.
|
|
77
150
|
* @param {string} str string
|
|
78
151
|
* @returns {string} string in quotes if needed
|
|
79
152
|
*/
|
|
@@ -100,17 +173,18 @@ const cssEscapeString = (str) => {
|
|
|
100
173
|
}
|
|
101
174
|
}
|
|
102
175
|
if (countWhiteOrBracket < 2) {
|
|
103
|
-
return str.replace(
|
|
176
|
+
return str.replace(CSS_ESCAPE_UNQUOTED_REGEXP, cssEscapeReplacer);
|
|
104
177
|
} else if (countQuotation <= countApostrophe) {
|
|
105
|
-
return `"${str.replace(
|
|
178
|
+
return `"${str.replace(CSS_ESCAPE_DOUBLE_REGEXP, cssEscapeReplacer)}"`;
|
|
106
179
|
}
|
|
107
|
-
return `'${str.replace(
|
|
180
|
+
return `'${str.replace(CSS_ESCAPE_SINGLE_REGEXP, cssEscapeReplacer)}'`;
|
|
108
181
|
};
|
|
109
182
|
|
|
110
183
|
CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
|
|
111
184
|
ModuleDependency.Template
|
|
112
185
|
) {
|
|
113
186
|
/**
|
|
187
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
114
188
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
115
189
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
116
190
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -163,6 +237,7 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
|
|
|
163
237
|
}
|
|
164
238
|
|
|
165
239
|
/**
|
|
240
|
+
* Returns the url of the asset.
|
|
166
241
|
* @param {object} options options object
|
|
167
242
|
* @param {Module} options.module the module
|
|
168
243
|
* @param {RuntimeSpec=} options.runtime runtime
|
|
@@ -177,13 +252,11 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
|
|
|
177
252
|
const data = codeGen.data;
|
|
178
253
|
if (!data) return "data:,";
|
|
179
254
|
const url = data.get("url");
|
|
180
|
-
if (!url || !url[
|
|
181
|
-
return url[
|
|
255
|
+
if (!url || !url[ASSET_URL_TYPE]) return "data:,";
|
|
256
|
+
return url[ASSET_URL_TYPE];
|
|
182
257
|
}
|
|
183
258
|
};
|
|
184
259
|
|
|
185
260
|
makeSerializable(CssUrlDependency, "webpack/lib/dependencies/CssUrlDependency");
|
|
186
261
|
|
|
187
|
-
CssUrlDependency.PUBLIC_PATH_AUTO = "__WEBPACK_CSS_PUBLIC_PATH_AUTO__";
|
|
188
|
-
|
|
189
262
|
module.exports = CssUrlDependency;
|
|
@@ -10,6 +10,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
10
10
|
|
|
11
11
|
class DelegatedSourceDependency extends ModuleDependency {
|
|
12
12
|
/**
|
|
13
|
+
* Creates an instance of DelegatedSourceDependency.
|
|
13
14
|
* @param {string} request the request string
|
|
14
15
|
*/
|
|
15
16
|
constructor(request) {
|
|
@@ -8,19 +8,22 @@
|
|
|
8
8
|
const Dependency = require("../Dependency");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
|
10
10
|
|
|
11
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
12
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
13
11
|
/** @typedef {import("./EntryDependency")} EntryDependency */
|
|
12
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[EntryDependency[], string]>} ObjectDeserializerContext */
|
|
13
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[EntryDependency[], string]>} ObjectSerializerContext */
|
|
14
14
|
|
|
15
15
|
class DllEntryDependency extends Dependency {
|
|
16
16
|
/**
|
|
17
|
+
* Creates an instance of DllEntryDependency.
|
|
17
18
|
* @param {EntryDependency[]} dependencies dependencies
|
|
18
19
|
* @param {string} name name
|
|
19
20
|
*/
|
|
20
21
|
constructor(dependencies, name) {
|
|
21
22
|
super();
|
|
22
23
|
|
|
24
|
+
/** @type {EntryDependency[]} */
|
|
23
25
|
this.dependencies = dependencies;
|
|
26
|
+
/** @type {string} */
|
|
24
27
|
this.name = name;
|
|
25
28
|
}
|
|
26
29
|
|
|
@@ -29,27 +32,23 @@ class DllEntryDependency extends Dependency {
|
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
/**
|
|
35
|
+
* Serializes this instance into the provided serializer context.
|
|
32
36
|
* @param {ObjectSerializerContext} context context
|
|
33
37
|
*/
|
|
34
38
|
serialize(context) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
write(this.dependencies);
|
|
38
|
-
write(this.name);
|
|
39
|
-
|
|
39
|
+
context.write(this.dependencies).write(this.name);
|
|
40
40
|
super.serialize(context);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
|
+
* Restores this instance from the provided deserializer context.
|
|
44
45
|
* @param {ObjectDeserializerContext} context context
|
|
45
46
|
*/
|
|
46
47
|
deserialize(context) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
super.deserialize(context);
|
|
48
|
+
this.dependencies = context.read();
|
|
49
|
+
const c1 = context.rest;
|
|
50
|
+
this.name = c1.read();
|
|
51
|
+
super.deserialize(c1.rest);
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
const parserStateExportsState = new WeakMap();
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
+
* Processes the provided parser state.
|
|
15
16
|
* @param {JavascriptParserState} parserState parser state
|
|
16
17
|
* @returns {void}
|
|
17
18
|
*/
|
|
@@ -26,6 +27,7 @@ module.exports.bailout = (parserState) => {
|
|
|
26
27
|
};
|
|
27
28
|
|
|
28
29
|
/**
|
|
30
|
+
* Processes the provided parser state.
|
|
29
31
|
* @param {JavascriptParserState} parserState parser state
|
|
30
32
|
* @returns {void}
|
|
31
33
|
*/
|
|
@@ -41,6 +43,7 @@ module.exports.enable = (parserState) => {
|
|
|
41
43
|
};
|
|
42
44
|
|
|
43
45
|
/**
|
|
46
|
+
* Returns true, when enabled.
|
|
44
47
|
* @param {JavascriptParserState} parserState parser state
|
|
45
48
|
* @returns {boolean} true, when enabled
|
|
46
49
|
*/
|
|
@@ -50,6 +53,7 @@ module.exports.isEnabled = (parserState) => {
|
|
|
50
53
|
};
|
|
51
54
|
|
|
52
55
|
/**
|
|
56
|
+
* Processes the provided parser state.
|
|
53
57
|
* @param {JavascriptParserState} parserState parser state
|
|
54
58
|
* @returns {void}
|
|
55
59
|
*/
|
|
@@ -61,6 +65,7 @@ module.exports.setDynamic = (parserState) => {
|
|
|
61
65
|
};
|
|
62
66
|
|
|
63
67
|
/**
|
|
68
|
+
* Processes the provided parser state.
|
|
64
69
|
* @param {JavascriptParserState} parserState parser state
|
|
65
70
|
* @returns {void}
|
|
66
71
|
*/
|