webpack 5.106.0 → 5.106.2
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/lib/APIPlugin.js +3 -1
- package/lib/AbstractMethodError.js +10 -1
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AsyncDependencyToInitialChunkError.js +6 -1
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +10 -1
- package/lib/Cache.js +26 -1
- package/lib/CacheFacade.js +26 -0
- package/lib/CaseSensitiveModulesWarning.js +9 -1
- package/lib/Chunk.js +46 -0
- package/lib/ChunkGraph.js +111 -0
- package/lib/ChunkGroup.js +57 -13
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CleanPlugin.js +14 -1
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CommentCompilationWarning.js +6 -0
- package/lib/CompatibilityPlugin.js +15 -1
- package/lib/Compilation.js +127 -1
- package/lib/Compiler.js +37 -4
- package/lib/ConcatenationScope.js +24 -1
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +4 -1
- package/lib/ContextExclusionPlugin.js +2 -1
- package/lib/ContextModule.js +12 -0
- package/lib/ContextModuleFactory.js +10 -0
- package/lib/ContextReplacementPlugin.js +4 -1
- package/lib/CssModule.js +6 -0
- package/lib/DefinePlugin.js +20 -7
- package/lib/DelegatedModule.js +13 -0
- package/lib/DelegatedModuleFactoryPlugin.js +3 -0
- package/lib/DelegatedPlugin.js +2 -1
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +26 -3
- package/lib/DependencyTemplate.js +5 -0
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DllEntryPlugin.js +2 -1
- package/lib/DllModule.js +11 -0
- package/lib/DllModuleFactory.js +1 -0
- package/lib/DllPlugin.js +2 -1
- package/lib/DllReferencePlugin.js +11 -6
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +3 -0
- package/lib/EntryPlugin.js +2 -1
- package/lib/Entrypoint.js +4 -0
- package/lib/EnvironmentPlugin.js +2 -1
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +3 -1
- package/lib/ExportsInfo.js +56 -2
- package/lib/ExportsInfoApiPlugin.js +2 -1
- package/lib/ExternalModule.js +38 -0
- package/lib/ExternalModuleFactoryPlugin.js +10 -0
- package/lib/ExternalsPlugin.js +2 -1
- package/lib/FileSystemInfo.js +105 -0
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
- package/lib/FlagDependencyExportsPlugin.js +4 -1
- package/lib/FlagDependencyUsagePlugin.js +5 -1
- package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
- package/lib/Generator.js +13 -0
- package/lib/GraphHelpers.js +3 -0
- package/lib/HookWebpackError.js +6 -0
- package/lib/HotModuleReplacementPlugin.js +9 -1
- package/lib/IgnoreErrorModuleFactory.js +2 -0
- package/lib/IgnorePlugin.js +2 -1
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +10 -0
- package/lib/InvalidDependenciesModuleWarning.js +1 -0
- package/lib/JavascriptMetaInfoPlugin.js +2 -1
- package/lib/LibManifestPlugin.js +4 -1
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +2 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +82 -4
- package/lib/ModuleBuildError.js +3 -0
- package/lib/ModuleDependencyWarning.js +1 -0
- package/lib/ModuleError.js +2 -0
- package/lib/ModuleFactory.js +5 -0
- package/lib/ModuleFilenameHelpers.js +3 -0
- package/lib/ModuleGraph.js +66 -0
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +1 -0
- package/lib/ModuleParseError.js +3 -0
- package/lib/ModuleRestoreError.js +1 -0
- package/lib/ModuleSourceTypeConstants.js +1 -0
- package/lib/ModuleStoreError.js +1 -0
- package/lib/ModuleTemplate.js +8 -0
- package/lib/ModuleWarning.js +3 -0
- package/lib/MultiCompiler.js +28 -0
- package/lib/MultiStats.js +8 -0
- package/lib/MultiWatching.js +3 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffInWebError.js +1 -0
- package/lib/NodeStuffPlugin.js +10 -1
- package/lib/NormalModule.js +30 -2
- package/lib/NormalModuleFactory.js +25 -0
- package/lib/NormalModuleReplacementPlugin.js +1 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +2 -0
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +2 -1
- package/lib/ProgressPlugin.js +29 -12
- package/lib/ProvidePlugin.js +3 -1
- package/lib/RawModule.js +12 -0
- package/lib/RecordIdsPlugin.js +8 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/RequireJsStuffPlugin.js +2 -1
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +1 -0
- package/lib/RuntimeModule.js +13 -0
- package/lib/RuntimePlugin.js +2 -0
- package/lib/RuntimeTemplate.js +35 -1
- package/lib/SelfModuleFactory.js +2 -0
- package/lib/SizeFormatHelpers.js +1 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +3 -1
- package/lib/Stats.js +5 -0
- package/lib/Template.js +20 -0
- package/lib/TemplatedPathPlugin.js +10 -3
- package/lib/UnhandledSchemeError.js +6 -0
- package/lib/UnsupportedFeatureWarning.js +1 -0
- package/lib/UseStrictPlugin.js +2 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +1 -1
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +1 -1
- package/lib/WatchIgnorePlugin.js +4 -1
- package/lib/Watching.js +14 -0
- package/lib/WebpackError.js +3 -0
- package/lib/WebpackIsIncludedPlugin.js +2 -0
- package/lib/WebpackOptionsApply.js +1 -0
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +6 -0
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +20 -2
- package/lib/asset/AssetModulesPlugin.js +4 -1
- package/lib/asset/AssetParser.js +2 -0
- package/lib/asset/AssetSourceGenerator.js +6 -0
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +11 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +15 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
- package/lib/cache/AddManagedPathsPlugin.js +2 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
- package/lib/cache/PackFileCacheStrategy.js +29 -0
- package/lib/cache/ResolverCachePlugin.js +10 -1
- package/lib/cache/getLazyHashedEtag.js +4 -0
- package/lib/cache/mergeEtags.js +2 -0
- package/lib/cli.js +30 -0
- package/lib/config/browserslistTargetHandler.js +2 -0
- package/lib/config/defaults.js +35 -2
- package/lib/config/normalization.js +12 -0
- package/lib/config/target.js +11 -0
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +12 -0
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +4 -0
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +2 -1
- package/lib/container/FallbackDependency.js +4 -0
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +12 -0
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/ModuleFederationPlugin.js +3 -1
- package/lib/container/RemoteModule.js +13 -0
- package/lib/container/RemoteRuntimeModule.js +1 -0
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +35 -14
- package/lib/css/CssInjectStyleRuntimeModule.js +1 -0
- package/lib/css/CssLoadingRuntimeModule.js +1 -0
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +1 -0
- package/lib/css/CssModulesPlugin.js +69 -3
- package/lib/css/CssParser.js +71 -1
- package/lib/css/walkCssTokens.js +31 -0
- package/lib/debug/ProfilingPlugin.js +19 -1
- package/lib/dependencies/AMDDefineDependency.js +7 -0
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
- package/lib/dependencies/AMDPlugin.js +4 -1
- package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
- package/lib/dependencies/AMDRequireContextDependency.js +3 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +13 -0
- package/lib/dependencies/AMDRequireDependency.js +4 -0
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +6 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +1 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +8 -0
- package/lib/dependencies/CommonJsExportsDependency.js +4 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +8 -0
- package/lib/dependencies/CommonJsFullRequireDependency.js +4 -0
- package/lib/dependencies/CommonJsImportsParserPlugin.js +20 -0
- package/lib/dependencies/CommonJsPlugin.js +4 -1
- package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
- package/lib/dependencies/CommonJsRequireDependency.js +3 -0
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
- package/lib/dependencies/ConstDependency.js +6 -1
- package/lib/dependencies/ContextDependency.js +8 -1
- package/lib/dependencies/ContextDependencyHelpers.js +3 -0
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +4 -0
- package/lib/dependencies/CreateRequireParserPlugin.js +6 -0
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
- package/lib/dependencies/CriticalDependencyWarning.js +1 -0
- package/lib/dependencies/CssIcssExportDependency.js +11 -3
- package/lib/dependencies/CssIcssImportDependency.js +4 -1
- package/lib/dependencies/CssIcssSymbolDependency.js +5 -1
- package/lib/dependencies/CssImportDependency.js +4 -0
- package/lib/dependencies/CssUrlDependency.js +7 -0
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +3 -0
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportsInfoDependency.js +6 -0
- package/lib/dependencies/ExternalModuleDependency.js +5 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +3 -0
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +2 -0
- package/lib/dependencies/HarmonyExportExpressionDependency.js +14 -5
- package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +33 -2
- package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
- package/lib/dependencies/HarmonyExports.js +2 -0
- package/lib/dependencies/HarmonyImportDependency.js +11 -0
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +9 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +17 -2
- package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
- package/lib/dependencies/ImportContextDependency.js +4 -0
- package/lib/dependencies/ImportDependency.js +5 -0
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +3 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
- package/lib/dependencies/ImportMetaPlugin.js +6 -0
- package/lib/dependencies/ImportParserPlugin.js +7 -0
- package/lib/dependencies/ImportPhase.js +6 -2
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +2 -0
- package/lib/dependencies/JsonExportsDependency.js +6 -1
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +2 -0
- package/lib/dependencies/LoaderPlugin.js +4 -1
- package/lib/dependencies/LocalModule.js +4 -0
- package/lib/dependencies/LocalModuleDependency.js +4 -0
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
- package/lib/dependencies/ModuleDependency.js +7 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +6 -1
- package/lib/dependencies/PureExpressionDependency.js +7 -1
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
- package/lib/dependencies/RequireEnsureDependency.js +4 -0
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +4 -0
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -0
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/dependencies/RequireResolveContextDependency.js +3 -0
- package/lib/dependencies/RequireResolveDependency.js +1 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
- package/lib/dependencies/StaticExportsDependency.js +3 -0
- package/lib/dependencies/SystemPlugin.js +4 -1
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/URLContextDependency.js +3 -0
- package/lib/dependencies/URLDependency.js +6 -0
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +4 -1
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
- package/lib/dependencies/WorkerDependency.js +6 -1
- package/lib/dependencies/WorkerPlugin.js +9 -1
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +1 -0
- package/lib/electron/ElectronTargetPlugin.js +2 -1
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
- package/lib/formatLocation.js +2 -0
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +20 -1
- package/lib/hmr/lazyCompilationBackend.js +2 -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 +20 -0
- 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 +5 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
- package/lib/javascript/BasicEvaluatedExpression.js +4 -2
- 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 +5 -1
- package/lib/javascript/JavascriptGenerator.js +10 -0
- package/lib/javascript/JavascriptModulesPlugin.js +23 -1
- package/lib/javascript/JavascriptParser.js +163 -0
- package/lib/javascript/JavascriptParserHelpers.js +6 -0
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +8 -10
- package/lib/library/AbstractLibraryPlugin.js +16 -1
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +16 -0
- package/lib/library/EnableLibraryPlugin.js +7 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +12 -1
- package/lib/library/SystemLibraryPlugin.js +8 -0
- package/lib/library/UmdLibraryPlugin.js +16 -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 +3 -1
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +2 -1
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +2 -0
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/nodeConsole.js +3 -0
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +11 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
- package/lib/optimize/InnerGraph.js +15 -0
- package/lib/optimize/InnerGraphPlugin.js +3 -1
- 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 +1 -0
- package/lib/optimize/ModuleConcatenationPlugin.js +21 -1
- package/lib/optimize/RealContentHashPlugin.js +16 -1
- 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 +7 -1
- package/lib/optimize/SplitChunksPlugin.js +49 -1
- package/lib/performance/AssetsOverSizeLimitWarning.js +1 -0
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -0
- package/lib/performance/SizeLimitsPlugin.js +7 -1
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -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 +18 -0
- package/lib/rules/UseEffectRulePlugin.js +6 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
- package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +2 -0
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
- package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +43 -1
- package/lib/schemes/VirtualUrlPlugin.js +6 -1
- package/lib/serialization/AggregateErrorSerializer.js +2 -0
- package/lib/serialization/ArraySerializer.js +2 -0
- package/lib/serialization/BinaryMiddleware.js +20 -1
- package/lib/serialization/DateObjectSerializer.js +2 -0
- package/lib/serialization/ErrorObjectSerializer.js +3 -0
- package/lib/serialization/FileMiddleware.js +21 -0
- package/lib/serialization/MapObjectSerializer.js +2 -0
- package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
- package/lib/serialization/ObjectMiddleware.js +23 -0
- package/lib/serialization/PlainObjectSerializer.js +7 -0
- package/lib/serialization/RegExpObjectSerializer.js +2 -0
- package/lib/serialization/Serializer.js +5 -0
- package/lib/serialization/SerializerMiddleware.js +12 -0
- package/lib/serialization/SetObjectSerializer.js +2 -0
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +15 -0
- package/lib/sharing/ConsumeSharedPlugin.js +6 -1
- package/lib/sharing/ConsumeSharedRuntimeModule.js +1 -0
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +4 -0
- package/lib/sharing/ProvideSharedModule.js +11 -0
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +4 -1
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +1 -0
- package/lib/sharing/resolveMatchedConfigs.js +3 -0
- package/lib/sharing/utils.js +8 -0
- package/lib/stats/DefaultStatsFactoryPlugin.js +56 -1
- package/lib/stats/DefaultStatsPresetPlugin.js +11 -1
- package/lib/stats/DefaultStatsPrinterPlugin.js +37 -1
- package/lib/stats/StatsFactory.js +12 -0
- package/lib/stats/StatsPrinter.js +7 -0
- package/lib/url/URLParserPlugin.js +6 -0
- package/lib/util/AppendOnlyStackedSet.js +15 -0
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +20 -0
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +21 -0
- package/lib/util/LazySet.js +39 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +14 -1
- package/lib/util/SetHelpers.js +3 -0
- package/lib/util/SortableSet.js +6 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +45 -0
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +13 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +33 -0
- package/lib/util/binarySearchBounds.js +1 -0
- package/lib/util/cleverMerge.js +17 -0
- package/lib/util/comparators.js +31 -0
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +6 -0
- package/lib/util/conventions.js +4 -0
- package/lib/util/dataURL.js +1 -0
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +20 -0
- package/lib/util/extractSourceMap.js +1 -0
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +5 -0
- package/lib/util/fs.js +63 -0
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/hash-digest.js +8 -0
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/identifier.js +19 -0
- package/lib/util/magicComment.js +1 -0
- package/lib/util/makeSerializable.js +6 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +1 -0
- package/lib/util/parseJson.js +112 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +1 -0
- package/lib/util/registerExternalSerializer.js +20 -0
- 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 +2 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +10 -1
- package/lib/wasm-async/AsyncWebAssemblyParser.js +1 -0
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +1 -0
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +1 -1
- package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +2 -0
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
- package/lib/wasm-sync/WebAssemblyParser.js +2 -0
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
- package/lib/web/FetchCompileWasmPlugin.js +13 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +10 -0
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/package.json +12 -14
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +44 -55
- package/types.d.ts +4594 -331
|
@@ -64,6 +64,7 @@ const publicPathAutoRegex = new RegExp(CssUrlDependency.PUBLIC_PATH_AUTO, "g");
|
|
|
64
64
|
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
|
65
65
|
|
|
66
66
|
/**
|
|
67
|
+
* Defines the render context type used by this module.
|
|
67
68
|
* @typedef {object} RenderContext
|
|
68
69
|
* @property {Chunk} chunk the chunk
|
|
69
70
|
* @property {ChunkGraph} chunkGraph the chunk graph
|
|
@@ -75,6 +76,7 @@ const publicPathAutoRegex = new RegExp(CssUrlDependency.PUBLIC_PATH_AUTO, "g");
|
|
|
75
76
|
*/
|
|
76
77
|
|
|
77
78
|
/**
|
|
79
|
+
* Defines the chunk render context type used by this module.
|
|
78
80
|
* @typedef {object} ChunkRenderContext
|
|
79
81
|
* @property {Chunk=} chunk the chunk
|
|
80
82
|
* @property {ChunkGraph=} chunkGraph the chunk graph
|
|
@@ -86,12 +88,14 @@ const publicPathAutoRegex = new RegExp(CssUrlDependency.PUBLIC_PATH_AUTO, "g");
|
|
|
86
88
|
*/
|
|
87
89
|
|
|
88
90
|
/**
|
|
91
|
+
* Defines the compilation hooks type used by this module.
|
|
89
92
|
* @typedef {object} CompilationHooks
|
|
90
93
|
* @property {SyncWaterfallHook<[Source, Module, ChunkRenderContext]>} renderModulePackage
|
|
91
94
|
* @property {SyncHook<[Chunk, Hash, ChunkHashContext]>} chunkHash
|
|
92
95
|
*/
|
|
93
96
|
|
|
94
97
|
/**
|
|
98
|
+
* Defines the module factory cache entry type used by this module.
|
|
95
99
|
* @typedef {object} ModuleFactoryCacheEntry
|
|
96
100
|
* @property {string} undoPath - The undo path to the CSS file
|
|
97
101
|
* @property {Inheritance} inheritance - The inheritance chain
|
|
@@ -109,6 +113,7 @@ const getCssInjectStyleRuntimeModule = memoize(() =>
|
|
|
109
113
|
);
|
|
110
114
|
|
|
111
115
|
/**
|
|
116
|
+
* Returns ], definitions: import("../../schemas/WebpackOptions.json")["definitions"] }} schema.
|
|
112
117
|
* @param {string} name name
|
|
113
118
|
* @returns {{ oneOf: [{ $ref: string }], definitions: import("../../schemas/WebpackOptions.json")["definitions"] }} schema
|
|
114
119
|
*/
|
|
@@ -138,6 +143,7 @@ const PLUGIN_NAME = "CssModulesPlugin";
|
|
|
138
143
|
|
|
139
144
|
class CssModulesPlugin {
|
|
140
145
|
/**
|
|
146
|
+
* Returns the attached hooks.
|
|
141
147
|
* @param {Compilation} compilation the compilation
|
|
142
148
|
* @returns {CompilationHooks} the attached hooks
|
|
143
149
|
*/
|
|
@@ -168,7 +174,7 @@ class CssModulesPlugin {
|
|
|
168
174
|
}
|
|
169
175
|
|
|
170
176
|
/**
|
|
171
|
-
*
|
|
177
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
172
178
|
* @param {Compiler} compiler the compiler instance
|
|
173
179
|
* @returns {void}
|
|
174
180
|
*/
|
|
@@ -399,7 +405,7 @@ class CssModulesPlugin {
|
|
|
399
405
|
supports: dependency.supports,
|
|
400
406
|
media: dependency.media,
|
|
401
407
|
inheritance,
|
|
402
|
-
exportType: exportType ||
|
|
408
|
+
exportType: parent.exportType || exportType
|
|
403
409
|
})
|
|
404
410
|
);
|
|
405
411
|
}
|
|
@@ -586,6 +592,7 @@ class CssModulesPlugin {
|
|
|
586
592
|
});
|
|
587
593
|
const globalChunkLoading = compilation.outputOptions.chunkLoading;
|
|
588
594
|
/**
|
|
595
|
+
* Checks whether this css modules plugin is enabled for chunk.
|
|
589
596
|
* @param {Chunk} chunk the chunk
|
|
590
597
|
* @returns {boolean} true, when enabled
|
|
591
598
|
*/
|
|
@@ -600,6 +607,7 @@ class CssModulesPlugin {
|
|
|
600
607
|
/** @type {WeakSet<Chunk>} */
|
|
601
608
|
const onceForChunkSet = new WeakSet();
|
|
602
609
|
/**
|
|
610
|
+
* Handles the hook callback for this code path.
|
|
603
611
|
* @param {Chunk} chunk chunk to check
|
|
604
612
|
* @param {RuntimeRequirements} set runtime requirements
|
|
605
613
|
*/
|
|
@@ -681,6 +689,7 @@ class CssModulesPlugin {
|
|
|
681
689
|
}
|
|
682
690
|
|
|
683
691
|
/**
|
|
692
|
+
* Gets modules in order.
|
|
684
693
|
* @param {Chunk} chunk chunk
|
|
685
694
|
* @param {Iterable<Module> | undefined} modules unordered modules
|
|
686
695
|
* @param {Compilation} compilation compilation
|
|
@@ -722,6 +731,7 @@ class CssModulesPlugin {
|
|
|
722
731
|
);
|
|
723
732
|
|
|
724
733
|
/**
|
|
734
|
+
* Compares module lists.
|
|
725
735
|
* @param {{ list: Module[] }} a a
|
|
726
736
|
* @param {{ list: Module[] }} b b
|
|
727
737
|
* @returns {-1 | 0 | 1} result
|
|
@@ -826,12 +836,16 @@ class CssModulesPlugin {
|
|
|
826
836
|
}
|
|
827
837
|
|
|
828
838
|
/**
|
|
839
|
+
* Gets ordered chunk css modules.
|
|
829
840
|
* @param {Chunk} chunk chunk
|
|
830
841
|
* @param {ChunkGraph} chunkGraph chunk graph
|
|
831
842
|
* @param {Compilation} compilation compilation
|
|
832
843
|
* @returns {CssModule[]} ordered css modules
|
|
833
844
|
*/
|
|
834
845
|
getOrderedChunkCssModules(chunk, chunkGraph, compilation) {
|
|
846
|
+
/** @type {string | undefined} */
|
|
847
|
+
let charset;
|
|
848
|
+
|
|
835
849
|
return /** @type {CssModule[]} */ ([
|
|
836
850
|
...this.getModulesInOrder(
|
|
837
851
|
chunk,
|
|
@@ -850,11 +864,42 @@ class CssModulesPlugin {
|
|
|
850
864
|
compareModulesByFullName(compilation.compiler)
|
|
851
865
|
),
|
|
852
866
|
compilation
|
|
853
|
-
)
|
|
867
|
+
).map((module) => {
|
|
868
|
+
if (
|
|
869
|
+
typeof (/** @type {BuildInfo} */ (module.buildInfo).charset) !==
|
|
870
|
+
"undefined"
|
|
871
|
+
) {
|
|
872
|
+
if (
|
|
873
|
+
typeof charset !== "undefined" &&
|
|
874
|
+
charset !== /** @type {BuildInfo} */ (module.buildInfo).charset
|
|
875
|
+
) {
|
|
876
|
+
const err = new WebpackError(
|
|
877
|
+
`Conflicting @charset at-rules detected: the module ${module.readableIdentifier(
|
|
878
|
+
compilation.requestShortener
|
|
879
|
+
)} (in chunk ${chunk.name || chunk.id}) specifies "${
|
|
880
|
+
/** @type {BuildInfo} */ (module.buildInfo).charset
|
|
881
|
+
}", but "${charset}" was expected, all modules must use the same character set`
|
|
882
|
+
);
|
|
883
|
+
|
|
884
|
+
err.chunk = chunk;
|
|
885
|
+
err.module = module;
|
|
886
|
+
err.hideStack = true;
|
|
887
|
+
|
|
888
|
+
compilation.warnings.push(err);
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
if (typeof charset === "undefined") {
|
|
892
|
+
charset = /** @type {BuildInfo} */ (module.buildInfo).charset;
|
|
893
|
+
}
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
return module;
|
|
897
|
+
})
|
|
854
898
|
]);
|
|
855
899
|
}
|
|
856
900
|
|
|
857
901
|
/**
|
|
902
|
+
* Renders css module source.
|
|
858
903
|
* @param {CssModule} module css module
|
|
859
904
|
* @param {ChunkRenderContext} renderContext options object
|
|
860
905
|
* @param {CompilationHooks} hooks hooks
|
|
@@ -953,6 +998,7 @@ class CssModulesPlugin {
|
|
|
953
998
|
}
|
|
954
999
|
|
|
955
1000
|
/**
|
|
1001
|
+
* Renders generated source.
|
|
956
1002
|
* @param {RenderContext} renderContext the render context
|
|
957
1003
|
* @param {CompilationHooks} hooks hooks
|
|
958
1004
|
* @returns {Source} generated source
|
|
@@ -969,7 +1015,19 @@ class CssModulesPlugin {
|
|
|
969
1015
|
hooks
|
|
970
1016
|
) {
|
|
971
1017
|
const source = new ConcatSource();
|
|
1018
|
+
|
|
1019
|
+
/** @type {string | undefined} */
|
|
1020
|
+
let charset;
|
|
1021
|
+
|
|
972
1022
|
for (const module of modules) {
|
|
1023
|
+
if (
|
|
1024
|
+
typeof (/** @type {BuildInfo} */ (module.buildInfo).charset) !==
|
|
1025
|
+
"undefined" &&
|
|
1026
|
+
typeof charset === "undefined"
|
|
1027
|
+
) {
|
|
1028
|
+
charset = /** @type {BuildInfo} */ (module.buildInfo).charset;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
973
1031
|
try {
|
|
974
1032
|
const codeGenResult = codeGenerationResults.get(module, chunk.runtime);
|
|
975
1033
|
const moduleSourceContent =
|
|
@@ -1000,11 +1058,18 @@ class CssModulesPlugin {
|
|
|
1000
1058
|
throw err;
|
|
1001
1059
|
}
|
|
1002
1060
|
}
|
|
1061
|
+
|
|
1003
1062
|
chunk.rendered = true;
|
|
1063
|
+
|
|
1064
|
+
if (charset) {
|
|
1065
|
+
return new ConcatSource(`@charset "${charset}";\n`, source);
|
|
1066
|
+
}
|
|
1067
|
+
|
|
1004
1068
|
return source;
|
|
1005
1069
|
}
|
|
1006
1070
|
|
|
1007
1071
|
/**
|
|
1072
|
+
* Gets chunk filename template.
|
|
1008
1073
|
* @param {Chunk} chunk chunk
|
|
1009
1074
|
* @param {OutputOptions} outputOptions output options
|
|
1010
1075
|
* @returns {TemplatePath} used filename template
|
|
@@ -1019,6 +1084,7 @@ class CssModulesPlugin {
|
|
|
1019
1084
|
}
|
|
1020
1085
|
|
|
1021
1086
|
/**
|
|
1087
|
+
* Returns true, when the chunk has css.
|
|
1022
1088
|
* @param {Chunk} chunk chunk
|
|
1023
1089
|
* @param {ChunkGraph} chunkGraph chunk graph
|
|
1024
1090
|
* @returns {boolean} true, when the chunk has css
|
package/lib/css/CssParser.js
CHANGED
|
@@ -51,6 +51,7 @@ const CC_HYPHEN_MINUS = "-".charCodeAt(0);
|
|
|
51
51
|
const CC_TILDE = "~".charCodeAt(0);
|
|
52
52
|
const CC_EQUAL = "=".charCodeAt(0);
|
|
53
53
|
const CC_FULL_STOP = ".".charCodeAt(0);
|
|
54
|
+
const CC_EXCLAMATION = "!".charCodeAt(0);
|
|
54
55
|
|
|
55
56
|
// https://www.w3.org/TR/css-syntax-3/#newline
|
|
56
57
|
// We don't have `preprocessing` stage, so we need specify all of them
|
|
@@ -65,6 +66,7 @@ const IS_MODULES = /\.modules?\.[^.]+$/i;
|
|
|
65
66
|
const CSS_COMMENT = /\/\*((?!\*\/)[\s\S]*?)\*\//g;
|
|
66
67
|
|
|
67
68
|
/**
|
|
69
|
+
* Returns matches.
|
|
68
70
|
* @param {RegExp} regexp a regexp
|
|
69
71
|
* @param {string} str a string
|
|
70
72
|
* @returns {RegExpExecArray[]} matches
|
|
@@ -86,6 +88,7 @@ const matchAll = (regexp, str) => {
|
|
|
86
88
|
};
|
|
87
89
|
|
|
88
90
|
/**
|
|
91
|
+
* Returns normalized url.
|
|
89
92
|
* @param {string} str url string
|
|
90
93
|
* @param {boolean} isString is url wrapped in quotes
|
|
91
94
|
* @returns {string} normalized url
|
|
@@ -130,6 +133,7 @@ const regexExcessiveSpaces =
|
|
|
130
133
|
/(^|\\+)?(\\[A-F0-9]{1,6})\u0020(?![a-fA-F0-9\u0020])/g;
|
|
131
134
|
|
|
132
135
|
/**
|
|
136
|
+
* Returns escaped identifier.
|
|
133
137
|
* @param {string} str string
|
|
134
138
|
* @returns {string} escaped identifier
|
|
135
139
|
*/
|
|
@@ -183,6 +187,7 @@ const escapeIdentifier = (str) => {
|
|
|
183
187
|
const CONTAINS_ESCAPE = /\\/;
|
|
184
188
|
|
|
185
189
|
/**
|
|
190
|
+
* Returns hex.
|
|
186
191
|
* @param {string} str string
|
|
187
192
|
* @returns {[string, number] | undefined} hex
|
|
188
193
|
*/
|
|
@@ -220,6 +225,7 @@ const gobbleHex = (str) => {
|
|
|
220
225
|
};
|
|
221
226
|
|
|
222
227
|
/**
|
|
228
|
+
* Unescape identifier.
|
|
223
229
|
* @param {string} str string
|
|
224
230
|
* @returns {string} unescaped string
|
|
225
231
|
*/
|
|
@@ -405,6 +411,7 @@ const GRID = {
|
|
|
405
411
|
};
|
|
406
412
|
|
|
407
413
|
/**
|
|
414
|
+
* Gets known properties.
|
|
408
415
|
* @param {{ animation?: boolean, container?: boolean, customIdents?: boolean, grid?: boolean }=} options options
|
|
409
416
|
* @returns {Map<string, Record<string, number>>} list of known properties
|
|
410
417
|
*/
|
|
@@ -526,6 +533,7 @@ const getKnownProperties = (options = {}) => {
|
|
|
526
533
|
|
|
527
534
|
class LocConverter {
|
|
528
535
|
/**
|
|
536
|
+
* Creates an instance of LocConverter.
|
|
529
537
|
* @param {string} input input
|
|
530
538
|
*/
|
|
531
539
|
constructor(input) {
|
|
@@ -536,6 +544,7 @@ class LocConverter {
|
|
|
536
544
|
}
|
|
537
545
|
|
|
538
546
|
/**
|
|
547
|
+
* Returns location converter.
|
|
539
548
|
* @param {number} pos position
|
|
540
549
|
* @returns {LocConverter} location converter
|
|
541
550
|
*/
|
|
@@ -582,6 +591,7 @@ const eatUntilSemi = walkCssTokens.eatUntil(";");
|
|
|
582
591
|
const eatUntilLeftCurly = walkCssTokens.eatUntil("{");
|
|
583
592
|
|
|
584
593
|
/**
|
|
594
|
+
* Defines the css parser own options type used by this module.
|
|
585
595
|
* @typedef {object} CssParserOwnOptions
|
|
586
596
|
* @property {("pure" | "global" | "local" | "auto")=} defaultMode default mode
|
|
587
597
|
*/
|
|
@@ -590,6 +600,7 @@ const eatUntilLeftCurly = walkCssTokens.eatUntil("{");
|
|
|
590
600
|
|
|
591
601
|
class CssParser extends Parser {
|
|
592
602
|
/**
|
|
603
|
+
* Creates an instance of CssParser.
|
|
593
604
|
* @param {CssParserOptions=} options options
|
|
594
605
|
*/
|
|
595
606
|
constructor(options = {}) {
|
|
@@ -614,6 +625,7 @@ class CssParser extends Parser {
|
|
|
614
625
|
}
|
|
615
626
|
|
|
616
627
|
/**
|
|
628
|
+
* Processes the provided state.
|
|
617
629
|
* @param {ParserState} state parser state
|
|
618
630
|
* @param {string} message warning message
|
|
619
631
|
* @param {LocConverter} locConverter location converter
|
|
@@ -633,6 +645,7 @@ class CssParser extends Parser {
|
|
|
633
645
|
}
|
|
634
646
|
|
|
635
647
|
/**
|
|
648
|
+
* Parses the provided source and updates the parser state.
|
|
636
649
|
* @param {string | Buffer | PreparsedAst} source the source to parse
|
|
637
650
|
* @param {ParserState} state the parser state
|
|
638
651
|
* @returns {ParserState} the parser state
|
|
@@ -699,6 +712,7 @@ class CssParser extends Parser {
|
|
|
699
712
|
const icssDefinitions = new Map();
|
|
700
713
|
|
|
701
714
|
/**
|
|
715
|
+
* Checks whether this css parser is next nested syntax.
|
|
702
716
|
* @param {string} input input
|
|
703
717
|
* @param {number} pos position
|
|
704
718
|
* @returns {boolean} true, when next is nested syntax
|
|
@@ -730,12 +744,14 @@ class CssParser extends Parser {
|
|
|
730
744
|
return true;
|
|
731
745
|
};
|
|
732
746
|
/**
|
|
747
|
+
* Checks whether this css parser is local mode.
|
|
733
748
|
* @returns {boolean} true, when in local scope
|
|
734
749
|
*/
|
|
735
750
|
const isLocalMode = () =>
|
|
736
751
|
modeData === LOCAL_MODE || (mode === "local" && modeData === undefined);
|
|
737
752
|
|
|
738
753
|
/**
|
|
754
|
+
* Returns end.
|
|
739
755
|
* @param {string} input input
|
|
740
756
|
* @param {number} start start
|
|
741
757
|
* @param {number} end end
|
|
@@ -762,6 +778,7 @@ class CssParser extends Parser {
|
|
|
762
778
|
// Vanilla CSS stuff
|
|
763
779
|
|
|
764
780
|
/**
|
|
781
|
+
* Processes the provided input.
|
|
765
782
|
* @param {string} input input
|
|
766
783
|
* @param {number} start name start position
|
|
767
784
|
* @param {number} end name end position
|
|
@@ -874,6 +891,7 @@ class CssParser extends Parser {
|
|
|
874
891
|
};
|
|
875
892
|
|
|
876
893
|
/**
|
|
894
|
+
* Process url function.
|
|
877
895
|
* @param {string} input input
|
|
878
896
|
* @param {number} end end position
|
|
879
897
|
* @param {string} name the name of function
|
|
@@ -936,6 +954,7 @@ class CssParser extends Parser {
|
|
|
936
954
|
};
|
|
937
955
|
|
|
938
956
|
/**
|
|
957
|
+
* Process old url function.
|
|
939
958
|
* @param {string} input input
|
|
940
959
|
* @param {number} start start position
|
|
941
960
|
* @param {number} end end position
|
|
@@ -998,6 +1017,7 @@ class CssParser extends Parser {
|
|
|
998
1017
|
};
|
|
999
1018
|
|
|
1000
1019
|
/**
|
|
1020
|
+
* Process image set function.
|
|
1001
1021
|
* @param {string} input input
|
|
1002
1022
|
* @param {number} start start position
|
|
1003
1023
|
* @param {number} end end position
|
|
@@ -1062,6 +1082,7 @@ class CssParser extends Parser {
|
|
|
1062
1082
|
// CSS modules stuff
|
|
1063
1083
|
|
|
1064
1084
|
/**
|
|
1085
|
+
* Returns resolved reexport (localName and importName).
|
|
1065
1086
|
* @param {string} value value to resolve
|
|
1066
1087
|
* @param {string=} localName override local name
|
|
1067
1088
|
* @param {boolean=} isCustomProperty true when it is custom property, otherwise false
|
|
@@ -1095,6 +1116,7 @@ class CssParser extends Parser {
|
|
|
1095
1116
|
};
|
|
1096
1117
|
|
|
1097
1118
|
/**
|
|
1119
|
+
* Process import or export.
|
|
1098
1120
|
* @param {0 | 1} type import or export
|
|
1099
1121
|
* @param {string} input input
|
|
1100
1122
|
* @param {number} pos start position
|
|
@@ -1148,6 +1170,7 @@ class CssParser extends Parser {
|
|
|
1148
1170
|
}
|
|
1149
1171
|
|
|
1150
1172
|
/**
|
|
1173
|
+
* Creates a dep from the provided name.
|
|
1151
1174
|
* @param {string} name name
|
|
1152
1175
|
* @param {string} value value
|
|
1153
1176
|
* @param {number} start start of position
|
|
@@ -1265,6 +1288,7 @@ class CssParser extends Parser {
|
|
|
1265
1288
|
/** @typedef {{ from: string, items: ({ localName: string, importName: string })[] }} ValueAtRuleImport */
|
|
1266
1289
|
/** @typedef {{ localName: string, value: string }} ValueAtRuleValue */
|
|
1267
1290
|
/**
|
|
1291
|
+
* Parses value at rule params.
|
|
1268
1292
|
* @param {string} str value at-rule params
|
|
1269
1293
|
* @returns {ValueAtRuleImport | ValueAtRuleValue} parsed result
|
|
1270
1294
|
*/
|
|
@@ -1333,6 +1357,7 @@ class CssParser extends Parser {
|
|
|
1333
1357
|
};
|
|
1334
1358
|
|
|
1335
1359
|
/**
|
|
1360
|
+
* Processes the provided input.
|
|
1336
1361
|
* @param {string} input input
|
|
1337
1362
|
* @param {number} start name start position
|
|
1338
1363
|
* @param {number} end name end position
|
|
@@ -1450,6 +1475,7 @@ class CssParser extends Parser {
|
|
|
1450
1475
|
};
|
|
1451
1476
|
|
|
1452
1477
|
/**
|
|
1478
|
+
* Process icss symbol.
|
|
1453
1479
|
* @param {string} name ICSS symbol name
|
|
1454
1480
|
* @param {number} start start position
|
|
1455
1481
|
* @param {number} end end position
|
|
@@ -1473,6 +1499,7 @@ class CssParser extends Parser {
|
|
|
1473
1499
|
};
|
|
1474
1500
|
|
|
1475
1501
|
/**
|
|
1502
|
+
* Process local or global function.
|
|
1476
1503
|
* @param {string} input input
|
|
1477
1504
|
* @param {1 | 2} type type of function
|
|
1478
1505
|
* @param {number} start start position
|
|
@@ -1534,6 +1561,7 @@ class CssParser extends Parser {
|
|
|
1534
1561
|
};
|
|
1535
1562
|
|
|
1536
1563
|
/**
|
|
1564
|
+
* Process local at rule.
|
|
1537
1565
|
* @param {string} input input
|
|
1538
1566
|
* @param {number} end name end position
|
|
1539
1567
|
* @param {{ string?: boolean, identifier?: boolean | RegExp }} options types which allowed to handle
|
|
@@ -1628,6 +1656,7 @@ class CssParser extends Parser {
|
|
|
1628
1656
|
);
|
|
1629
1657
|
};
|
|
1630
1658
|
/**
|
|
1659
|
+
* Process dashed ident.
|
|
1631
1660
|
* @param {string} input input
|
|
1632
1661
|
* @param {number} start start position
|
|
1633
1662
|
* @param {number} end end position
|
|
@@ -1727,6 +1756,7 @@ class CssParser extends Parser {
|
|
|
1727
1756
|
return end;
|
|
1728
1757
|
};
|
|
1729
1758
|
/**
|
|
1759
|
+
* Process local declaration.
|
|
1730
1760
|
* @param {string} input input
|
|
1731
1761
|
* @param {number} pos name start position
|
|
1732
1762
|
* @param {number} end name end position
|
|
@@ -1772,10 +1802,16 @@ class CssParser extends Parser {
|
|
|
1772
1802
|
)
|
|
1773
1803
|
: false;
|
|
1774
1804
|
|
|
1805
|
+
let afterExclamation = false;
|
|
1806
|
+
|
|
1775
1807
|
const end = walkCssTokens.consumeUntil(
|
|
1776
1808
|
input,
|
|
1777
1809
|
pos,
|
|
1778
1810
|
{
|
|
1811
|
+
delim(input, start, end) {
|
|
1812
|
+
afterExclamation = input.charCodeAt(start) === CC_EXCLAMATION;
|
|
1813
|
+
return end;
|
|
1814
|
+
},
|
|
1779
1815
|
leftSquareBracket(input, start, end) {
|
|
1780
1816
|
let i = end;
|
|
1781
1817
|
|
|
@@ -1824,6 +1860,11 @@ class CssParser extends Parser {
|
|
|
1824
1860
|
return end;
|
|
1825
1861
|
}
|
|
1826
1862
|
|
|
1863
|
+
if (afterExclamation) {
|
|
1864
|
+
afterExclamation = false;
|
|
1865
|
+
return end;
|
|
1866
|
+
}
|
|
1867
|
+
|
|
1827
1868
|
const identifier = input.slice(start, end);
|
|
1828
1869
|
const keyword = identifier.toLowerCase();
|
|
1829
1870
|
|
|
@@ -2121,6 +2162,7 @@ class CssParser extends Parser {
|
|
|
2121
2162
|
};
|
|
2122
2163
|
|
|
2123
2164
|
/**
|
|
2165
|
+
* Process id selector.
|
|
2124
2166
|
* @param {string} input input
|
|
2125
2167
|
* @param {number} start start position
|
|
2126
2168
|
* @param {number} end end position
|
|
@@ -2144,6 +2186,7 @@ class CssParser extends Parser {
|
|
|
2144
2186
|
};
|
|
2145
2187
|
|
|
2146
2188
|
/**
|
|
2189
|
+
* Process class selector.
|
|
2147
2190
|
* @param {string} input input
|
|
2148
2191
|
* @param {number} start start position
|
|
2149
2192
|
* @param {number} end end position
|
|
@@ -2169,6 +2212,7 @@ class CssParser extends Parser {
|
|
|
2169
2212
|
};
|
|
2170
2213
|
|
|
2171
2214
|
/**
|
|
2215
|
+
* Process attribute selector.
|
|
2172
2216
|
* @param {string} input input
|
|
2173
2217
|
* @param {number} start start position
|
|
2174
2218
|
* @param {number} end end position
|
|
@@ -2303,6 +2347,29 @@ class CssParser extends Parser {
|
|
|
2303
2347
|
|
|
2304
2348
|
return eatUntilSemi(input, start);
|
|
2305
2349
|
}
|
|
2350
|
+
case "@charset": {
|
|
2351
|
+
const atRuleEnd = eatUntilSemi(input, start);
|
|
2352
|
+
|
|
2353
|
+
if (/** @type {CssModule} */ (module).exportType === "style") {
|
|
2354
|
+
return atRuleEnd;
|
|
2355
|
+
}
|
|
2356
|
+
|
|
2357
|
+
const dep = new ConstDependency("", [start, atRuleEnd + 1]);
|
|
2358
|
+
module.addPresentationalDependency(dep);
|
|
2359
|
+
|
|
2360
|
+
const value = walkCssTokens.eatString(input, end);
|
|
2361
|
+
|
|
2362
|
+
if (!value) {
|
|
2363
|
+
return atRuleEnd;
|
|
2364
|
+
}
|
|
2365
|
+
|
|
2366
|
+
/** @type {BuildInfo} */
|
|
2367
|
+
(module.buildInfo).charset = input
|
|
2368
|
+
.slice(value[0] + 1, value[1] - 1)
|
|
2369
|
+
.toUpperCase();
|
|
2370
|
+
|
|
2371
|
+
return atRuleEnd;
|
|
2372
|
+
}
|
|
2306
2373
|
case "@import": {
|
|
2307
2374
|
if (!this.options.import) {
|
|
2308
2375
|
return eatUntilSemi(input, end);
|
|
@@ -2316,7 +2383,7 @@ class CssParser extends Parser {
|
|
|
2316
2383
|
start,
|
|
2317
2384
|
end
|
|
2318
2385
|
);
|
|
2319
|
-
return end;
|
|
2386
|
+
return eatUntilSemi(input, end);
|
|
2320
2387
|
}
|
|
2321
2388
|
|
|
2322
2389
|
return processAtImport(input, start, end);
|
|
@@ -2641,6 +2708,7 @@ class CssParser extends Parser {
|
|
|
2641
2708
|
}
|
|
2642
2709
|
|
|
2643
2710
|
/**
|
|
2711
|
+
* Returns comments in the range.
|
|
2644
2712
|
* @param {Range} range range
|
|
2645
2713
|
* @returns {Comment[]} comments in the range
|
|
2646
2714
|
*/
|
|
@@ -2648,6 +2716,7 @@ class CssParser extends Parser {
|
|
|
2648
2716
|
if (!this.comments) return [];
|
|
2649
2717
|
const [rangeStart, rangeEnd] = range;
|
|
2650
2718
|
/**
|
|
2719
|
+
* Returns compared.
|
|
2651
2720
|
* @param {Comment} comment comment
|
|
2652
2721
|
* @param {number} needle needle
|
|
2653
2722
|
* @returns {number} compared
|
|
@@ -2670,6 +2739,7 @@ class CssParser extends Parser {
|
|
|
2670
2739
|
}
|
|
2671
2740
|
|
|
2672
2741
|
/**
|
|
2742
|
+
* Parses comment options.
|
|
2673
2743
|
* @param {Range} range range of the comment
|
|
2674
2744
|
* @returns {{ options: Record<string, EXPECTED_ANY> | null, errors: (Error & { comment: Comment })[] | null }} result
|
|
2675
2745
|
*/
|