webpack 5.106.1 → 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 -1
- 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 +59 -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 +10 -2
- 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 +5 -0
- 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
|
@@ -66,6 +66,7 @@ const IS_MODULES = /\.modules?\.[^.]+$/i;
|
|
|
66
66
|
const CSS_COMMENT = /\/\*((?!\*\/)[\s\S]*?)\*\//g;
|
|
67
67
|
|
|
68
68
|
/**
|
|
69
|
+
* Returns matches.
|
|
69
70
|
* @param {RegExp} regexp a regexp
|
|
70
71
|
* @param {string} str a string
|
|
71
72
|
* @returns {RegExpExecArray[]} matches
|
|
@@ -87,6 +88,7 @@ const matchAll = (regexp, str) => {
|
|
|
87
88
|
};
|
|
88
89
|
|
|
89
90
|
/**
|
|
91
|
+
* Returns normalized url.
|
|
90
92
|
* @param {string} str url string
|
|
91
93
|
* @param {boolean} isString is url wrapped in quotes
|
|
92
94
|
* @returns {string} normalized url
|
|
@@ -131,6 +133,7 @@ const regexExcessiveSpaces =
|
|
|
131
133
|
/(^|\\+)?(\\[A-F0-9]{1,6})\u0020(?![a-fA-F0-9\u0020])/g;
|
|
132
134
|
|
|
133
135
|
/**
|
|
136
|
+
* Returns escaped identifier.
|
|
134
137
|
* @param {string} str string
|
|
135
138
|
* @returns {string} escaped identifier
|
|
136
139
|
*/
|
|
@@ -184,6 +187,7 @@ const escapeIdentifier = (str) => {
|
|
|
184
187
|
const CONTAINS_ESCAPE = /\\/;
|
|
185
188
|
|
|
186
189
|
/**
|
|
190
|
+
* Returns hex.
|
|
187
191
|
* @param {string} str string
|
|
188
192
|
* @returns {[string, number] | undefined} hex
|
|
189
193
|
*/
|
|
@@ -221,6 +225,7 @@ const gobbleHex = (str) => {
|
|
|
221
225
|
};
|
|
222
226
|
|
|
223
227
|
/**
|
|
228
|
+
* Unescape identifier.
|
|
224
229
|
* @param {string} str string
|
|
225
230
|
* @returns {string} unescaped string
|
|
226
231
|
*/
|
|
@@ -406,6 +411,7 @@ const GRID = {
|
|
|
406
411
|
};
|
|
407
412
|
|
|
408
413
|
/**
|
|
414
|
+
* Gets known properties.
|
|
409
415
|
* @param {{ animation?: boolean, container?: boolean, customIdents?: boolean, grid?: boolean }=} options options
|
|
410
416
|
* @returns {Map<string, Record<string, number>>} list of known properties
|
|
411
417
|
*/
|
|
@@ -527,6 +533,7 @@ const getKnownProperties = (options = {}) => {
|
|
|
527
533
|
|
|
528
534
|
class LocConverter {
|
|
529
535
|
/**
|
|
536
|
+
* Creates an instance of LocConverter.
|
|
530
537
|
* @param {string} input input
|
|
531
538
|
*/
|
|
532
539
|
constructor(input) {
|
|
@@ -537,6 +544,7 @@ class LocConverter {
|
|
|
537
544
|
}
|
|
538
545
|
|
|
539
546
|
/**
|
|
547
|
+
* Returns location converter.
|
|
540
548
|
* @param {number} pos position
|
|
541
549
|
* @returns {LocConverter} location converter
|
|
542
550
|
*/
|
|
@@ -583,6 +591,7 @@ const eatUntilSemi = walkCssTokens.eatUntil(";");
|
|
|
583
591
|
const eatUntilLeftCurly = walkCssTokens.eatUntil("{");
|
|
584
592
|
|
|
585
593
|
/**
|
|
594
|
+
* Defines the css parser own options type used by this module.
|
|
586
595
|
* @typedef {object} CssParserOwnOptions
|
|
587
596
|
* @property {("pure" | "global" | "local" | "auto")=} defaultMode default mode
|
|
588
597
|
*/
|
|
@@ -591,6 +600,7 @@ const eatUntilLeftCurly = walkCssTokens.eatUntil("{");
|
|
|
591
600
|
|
|
592
601
|
class CssParser extends Parser {
|
|
593
602
|
/**
|
|
603
|
+
* Creates an instance of CssParser.
|
|
594
604
|
* @param {CssParserOptions=} options options
|
|
595
605
|
*/
|
|
596
606
|
constructor(options = {}) {
|
|
@@ -615,6 +625,7 @@ class CssParser extends Parser {
|
|
|
615
625
|
}
|
|
616
626
|
|
|
617
627
|
/**
|
|
628
|
+
* Processes the provided state.
|
|
618
629
|
* @param {ParserState} state parser state
|
|
619
630
|
* @param {string} message warning message
|
|
620
631
|
* @param {LocConverter} locConverter location converter
|
|
@@ -634,6 +645,7 @@ class CssParser extends Parser {
|
|
|
634
645
|
}
|
|
635
646
|
|
|
636
647
|
/**
|
|
648
|
+
* Parses the provided source and updates the parser state.
|
|
637
649
|
* @param {string | Buffer | PreparsedAst} source the source to parse
|
|
638
650
|
* @param {ParserState} state the parser state
|
|
639
651
|
* @returns {ParserState} the parser state
|
|
@@ -700,6 +712,7 @@ class CssParser extends Parser {
|
|
|
700
712
|
const icssDefinitions = new Map();
|
|
701
713
|
|
|
702
714
|
/**
|
|
715
|
+
* Checks whether this css parser is next nested syntax.
|
|
703
716
|
* @param {string} input input
|
|
704
717
|
* @param {number} pos position
|
|
705
718
|
* @returns {boolean} true, when next is nested syntax
|
|
@@ -731,12 +744,14 @@ class CssParser extends Parser {
|
|
|
731
744
|
return true;
|
|
732
745
|
};
|
|
733
746
|
/**
|
|
747
|
+
* Checks whether this css parser is local mode.
|
|
734
748
|
* @returns {boolean} true, when in local scope
|
|
735
749
|
*/
|
|
736
750
|
const isLocalMode = () =>
|
|
737
751
|
modeData === LOCAL_MODE || (mode === "local" && modeData === undefined);
|
|
738
752
|
|
|
739
753
|
/**
|
|
754
|
+
* Returns end.
|
|
740
755
|
* @param {string} input input
|
|
741
756
|
* @param {number} start start
|
|
742
757
|
* @param {number} end end
|
|
@@ -763,6 +778,7 @@ class CssParser extends Parser {
|
|
|
763
778
|
// Vanilla CSS stuff
|
|
764
779
|
|
|
765
780
|
/**
|
|
781
|
+
* Processes the provided input.
|
|
766
782
|
* @param {string} input input
|
|
767
783
|
* @param {number} start name start position
|
|
768
784
|
* @param {number} end name end position
|
|
@@ -875,6 +891,7 @@ class CssParser extends Parser {
|
|
|
875
891
|
};
|
|
876
892
|
|
|
877
893
|
/**
|
|
894
|
+
* Process url function.
|
|
878
895
|
* @param {string} input input
|
|
879
896
|
* @param {number} end end position
|
|
880
897
|
* @param {string} name the name of function
|
|
@@ -937,6 +954,7 @@ class CssParser extends Parser {
|
|
|
937
954
|
};
|
|
938
955
|
|
|
939
956
|
/**
|
|
957
|
+
* Process old url function.
|
|
940
958
|
* @param {string} input input
|
|
941
959
|
* @param {number} start start position
|
|
942
960
|
* @param {number} end end position
|
|
@@ -999,6 +1017,7 @@ class CssParser extends Parser {
|
|
|
999
1017
|
};
|
|
1000
1018
|
|
|
1001
1019
|
/**
|
|
1020
|
+
* Process image set function.
|
|
1002
1021
|
* @param {string} input input
|
|
1003
1022
|
* @param {number} start start position
|
|
1004
1023
|
* @param {number} end end position
|
|
@@ -1063,6 +1082,7 @@ class CssParser extends Parser {
|
|
|
1063
1082
|
// CSS modules stuff
|
|
1064
1083
|
|
|
1065
1084
|
/**
|
|
1085
|
+
* Returns resolved reexport (localName and importName).
|
|
1066
1086
|
* @param {string} value value to resolve
|
|
1067
1087
|
* @param {string=} localName override local name
|
|
1068
1088
|
* @param {boolean=} isCustomProperty true when it is custom property, otherwise false
|
|
@@ -1096,6 +1116,7 @@ class CssParser extends Parser {
|
|
|
1096
1116
|
};
|
|
1097
1117
|
|
|
1098
1118
|
/**
|
|
1119
|
+
* Process import or export.
|
|
1099
1120
|
* @param {0 | 1} type import or export
|
|
1100
1121
|
* @param {string} input input
|
|
1101
1122
|
* @param {number} pos start position
|
|
@@ -1149,6 +1170,7 @@ class CssParser extends Parser {
|
|
|
1149
1170
|
}
|
|
1150
1171
|
|
|
1151
1172
|
/**
|
|
1173
|
+
* Creates a dep from the provided name.
|
|
1152
1174
|
* @param {string} name name
|
|
1153
1175
|
* @param {string} value value
|
|
1154
1176
|
* @param {number} start start of position
|
|
@@ -1266,6 +1288,7 @@ class CssParser extends Parser {
|
|
|
1266
1288
|
/** @typedef {{ from: string, items: ({ localName: string, importName: string })[] }} ValueAtRuleImport */
|
|
1267
1289
|
/** @typedef {{ localName: string, value: string }} ValueAtRuleValue */
|
|
1268
1290
|
/**
|
|
1291
|
+
* Parses value at rule params.
|
|
1269
1292
|
* @param {string} str value at-rule params
|
|
1270
1293
|
* @returns {ValueAtRuleImport | ValueAtRuleValue} parsed result
|
|
1271
1294
|
*/
|
|
@@ -1334,6 +1357,7 @@ class CssParser extends Parser {
|
|
|
1334
1357
|
};
|
|
1335
1358
|
|
|
1336
1359
|
/**
|
|
1360
|
+
* Processes the provided input.
|
|
1337
1361
|
* @param {string} input input
|
|
1338
1362
|
* @param {number} start name start position
|
|
1339
1363
|
* @param {number} end name end position
|
|
@@ -1451,6 +1475,7 @@ class CssParser extends Parser {
|
|
|
1451
1475
|
};
|
|
1452
1476
|
|
|
1453
1477
|
/**
|
|
1478
|
+
* Process icss symbol.
|
|
1454
1479
|
* @param {string} name ICSS symbol name
|
|
1455
1480
|
* @param {number} start start position
|
|
1456
1481
|
* @param {number} end end position
|
|
@@ -1474,6 +1499,7 @@ class CssParser extends Parser {
|
|
|
1474
1499
|
};
|
|
1475
1500
|
|
|
1476
1501
|
/**
|
|
1502
|
+
* Process local or global function.
|
|
1477
1503
|
* @param {string} input input
|
|
1478
1504
|
* @param {1 | 2} type type of function
|
|
1479
1505
|
* @param {number} start start position
|
|
@@ -1535,6 +1561,7 @@ class CssParser extends Parser {
|
|
|
1535
1561
|
};
|
|
1536
1562
|
|
|
1537
1563
|
/**
|
|
1564
|
+
* Process local at rule.
|
|
1538
1565
|
* @param {string} input input
|
|
1539
1566
|
* @param {number} end name end position
|
|
1540
1567
|
* @param {{ string?: boolean, identifier?: boolean | RegExp }} options types which allowed to handle
|
|
@@ -1629,6 +1656,7 @@ class CssParser extends Parser {
|
|
|
1629
1656
|
);
|
|
1630
1657
|
};
|
|
1631
1658
|
/**
|
|
1659
|
+
* Process dashed ident.
|
|
1632
1660
|
* @param {string} input input
|
|
1633
1661
|
* @param {number} start start position
|
|
1634
1662
|
* @param {number} end end position
|
|
@@ -1728,6 +1756,7 @@ class CssParser extends Parser {
|
|
|
1728
1756
|
return end;
|
|
1729
1757
|
};
|
|
1730
1758
|
/**
|
|
1759
|
+
* Process local declaration.
|
|
1731
1760
|
* @param {string} input input
|
|
1732
1761
|
* @param {number} pos name start position
|
|
1733
1762
|
* @param {number} end name end position
|
|
@@ -2133,6 +2162,7 @@ class CssParser extends Parser {
|
|
|
2133
2162
|
};
|
|
2134
2163
|
|
|
2135
2164
|
/**
|
|
2165
|
+
* Process id selector.
|
|
2136
2166
|
* @param {string} input input
|
|
2137
2167
|
* @param {number} start start position
|
|
2138
2168
|
* @param {number} end end position
|
|
@@ -2156,6 +2186,7 @@ class CssParser extends Parser {
|
|
|
2156
2186
|
};
|
|
2157
2187
|
|
|
2158
2188
|
/**
|
|
2189
|
+
* Process class selector.
|
|
2159
2190
|
* @param {string} input input
|
|
2160
2191
|
* @param {number} start start position
|
|
2161
2192
|
* @param {number} end end position
|
|
@@ -2181,6 +2212,7 @@ class CssParser extends Parser {
|
|
|
2181
2212
|
};
|
|
2182
2213
|
|
|
2183
2214
|
/**
|
|
2215
|
+
* Process attribute selector.
|
|
2184
2216
|
* @param {string} input input
|
|
2185
2217
|
* @param {number} start start position
|
|
2186
2218
|
* @param {number} end end position
|
|
@@ -2315,6 +2347,29 @@ class CssParser extends Parser {
|
|
|
2315
2347
|
|
|
2316
2348
|
return eatUntilSemi(input, start);
|
|
2317
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
|
+
}
|
|
2318
2373
|
case "@import": {
|
|
2319
2374
|
if (!this.options.import) {
|
|
2320
2375
|
return eatUntilSemi(input, end);
|
|
@@ -2328,7 +2383,7 @@ class CssParser extends Parser {
|
|
|
2328
2383
|
start,
|
|
2329
2384
|
end
|
|
2330
2385
|
);
|
|
2331
|
-
return end;
|
|
2386
|
+
return eatUntilSemi(input, end);
|
|
2332
2387
|
}
|
|
2333
2388
|
|
|
2334
2389
|
return processAtImport(input, start, end);
|
|
@@ -2653,6 +2708,7 @@ class CssParser extends Parser {
|
|
|
2653
2708
|
}
|
|
2654
2709
|
|
|
2655
2710
|
/**
|
|
2711
|
+
* Returns comments in the range.
|
|
2656
2712
|
* @param {Range} range range
|
|
2657
2713
|
* @returns {Comment[]} comments in the range
|
|
2658
2714
|
*/
|
|
@@ -2660,6 +2716,7 @@ class CssParser extends Parser {
|
|
|
2660
2716
|
if (!this.comments) return [];
|
|
2661
2717
|
const [rangeStart, rangeEnd] = range;
|
|
2662
2718
|
/**
|
|
2719
|
+
* Returns compared.
|
|
2663
2720
|
* @param {Comment} comment comment
|
|
2664
2721
|
* @param {number} needle needle
|
|
2665
2722
|
* @returns {number} compared
|
|
@@ -2682,6 +2739,7 @@ class CssParser extends Parser {
|
|
|
2682
2739
|
}
|
|
2683
2740
|
|
|
2684
2741
|
/**
|
|
2742
|
+
* Parses comment options.
|
|
2685
2743
|
* @param {Range} range range of the comment
|
|
2686
2744
|
* @returns {{ options: Record<string, EXPECTED_ANY> | null, errors: (Error & { comment: Comment })[] | null }} result
|
|
2687
2745
|
*/
|