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
package/lib/util/identifier.js
CHANGED
|
@@ -11,6 +11,7 @@ const SEGMENTS_SPLIT_REGEXP = /([|!])/;
|
|
|
11
11
|
const WINDOWS_PATH_SEPARATOR_REGEXP = /\\/g;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
+
* Relative path to request.
|
|
14
15
|
* @param {string} relativePath relative path
|
|
15
16
|
* @returns {string} request
|
|
16
17
|
*/
|
|
@@ -22,6 +23,7 @@ const relativePathToRequest = (relativePath) => {
|
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
/**
|
|
26
|
+
* Absolute to request.
|
|
25
27
|
* @param {string} context context for relative path
|
|
26
28
|
* @param {string} maybeAbsolutePath path to make relative
|
|
27
29
|
* @returns {string} relative path in request style
|
|
@@ -70,6 +72,7 @@ const absoluteToRequest = (context, maybeAbsolutePath) => {
|
|
|
70
72
|
};
|
|
71
73
|
|
|
72
74
|
/**
|
|
75
|
+
* Request to absolute.
|
|
73
76
|
* @param {string} context context for relative path
|
|
74
77
|
* @param {string} relativePath path
|
|
75
78
|
* @returns {string} absolute path
|
|
@@ -84,27 +87,32 @@ const requestToAbsolute = (context, relativePath) => {
|
|
|
84
87
|
/** @typedef {EXPECTED_OBJECT} AssociatedObjectForCache */
|
|
85
88
|
|
|
86
89
|
/**
|
|
90
|
+
* Defines the make cacheable result type used by this module.
|
|
87
91
|
* @template T
|
|
88
92
|
* @typedef {(value: string, cache?: AssociatedObjectForCache) => T} MakeCacheableResult
|
|
89
93
|
*/
|
|
90
94
|
|
|
91
95
|
/**
|
|
96
|
+
* Defines the bind cache result fn type used by this module.
|
|
92
97
|
* @template T
|
|
93
98
|
* @typedef {(value: string) => T} BindCacheResultFn
|
|
94
99
|
*/
|
|
95
100
|
|
|
96
101
|
/**
|
|
102
|
+
* Defines the bind cache type used by this module.
|
|
97
103
|
* @template T
|
|
98
104
|
* @typedef {(cache: AssociatedObjectForCache) => BindCacheResultFn<T>} BindCache
|
|
99
105
|
*/
|
|
100
106
|
|
|
101
107
|
/**
|
|
108
|
+
* Returns } cacheable function.
|
|
102
109
|
* @template T
|
|
103
110
|
* @param {((value: string) => T)} realFn real function
|
|
104
111
|
* @returns {MakeCacheableResult<T> & { bindCache: BindCache<T> }} cacheable function
|
|
105
112
|
*/
|
|
106
113
|
const makeCacheable = (realFn) => {
|
|
107
114
|
/**
|
|
115
|
+
* Defines the cache item type used by this module.
|
|
108
116
|
* @template T
|
|
109
117
|
* @typedef {Map<string, T>} CacheItem
|
|
110
118
|
*/
|
|
@@ -112,6 +120,7 @@ const makeCacheable = (realFn) => {
|
|
|
112
120
|
const cache = new WeakMap();
|
|
113
121
|
|
|
114
122
|
/**
|
|
123
|
+
* Returns cache item.
|
|
115
124
|
* @param {AssociatedObjectForCache} associatedObjectForCache an object to which the cache will be attached
|
|
116
125
|
* @returns {CacheItem<T>} cache item
|
|
117
126
|
*/
|
|
@@ -139,6 +148,7 @@ const makeCacheable = (realFn) => {
|
|
|
139
148
|
fn.bindCache = (associatedObjectForCache) => {
|
|
140
149
|
const cache = getCache(associatedObjectForCache);
|
|
141
150
|
/**
|
|
151
|
+
* Returns value.
|
|
142
152
|
* @param {string} str string
|
|
143
153
|
* @returns {T} value
|
|
144
154
|
*/
|
|
@@ -161,6 +171,7 @@ const makeCacheable = (realFn) => {
|
|
|
161
171
|
/** @typedef {(value: string, associatedObjectForCache?: AssociatedObjectForCache) => BindContextCacheForContextResultFn} BindContextCacheForContext */
|
|
162
172
|
|
|
163
173
|
/**
|
|
174
|
+
* Creates cacheable with context.
|
|
164
175
|
* @param {(context: string, identifier: string) => string} fn function
|
|
165
176
|
* @returns {MakeCacheableWithContextResult & { bindCache: BindCacheForContext, bindContextCache: BindContextCacheForContext }} cacheable function with context
|
|
166
177
|
*/
|
|
@@ -211,6 +222,7 @@ const makeCacheableWithContext = (fn) => {
|
|
|
211
222
|
}
|
|
212
223
|
|
|
213
224
|
/**
|
|
225
|
+
* Returns the returned relative path.
|
|
214
226
|
* @param {string} context context used to create relative path
|
|
215
227
|
* @param {string} identifier identifier used to create relative path
|
|
216
228
|
* @returns {string} the returned relative path
|
|
@@ -256,6 +268,7 @@ const makeCacheableWithContext = (fn) => {
|
|
|
256
268
|
}
|
|
257
269
|
|
|
258
270
|
/**
|
|
271
|
+
* Returns the returned relative path.
|
|
259
272
|
* @param {string} identifier identifier used to create relative path
|
|
260
273
|
* @returns {string} the returned relative path
|
|
261
274
|
*/
|
|
@@ -276,6 +289,7 @@ const makeCacheableWithContext = (fn) => {
|
|
|
276
289
|
};
|
|
277
290
|
|
|
278
291
|
/**
|
|
292
|
+
* Make paths relative.
|
|
279
293
|
* @param {string} context context for relative path
|
|
280
294
|
* @param {string} identifier identifier for path
|
|
281
295
|
* @returns {string} a converted relative path
|
|
@@ -287,6 +301,7 @@ const _makePathsRelative = (context, identifier) =>
|
|
|
287
301
|
.join("");
|
|
288
302
|
|
|
289
303
|
/**
|
|
304
|
+
* Make paths absolute.
|
|
290
305
|
* @param {string} context context for relative path
|
|
291
306
|
* @param {string} identifier identifier for path
|
|
292
307
|
* @returns {string} a converted relative path
|
|
@@ -298,6 +313,7 @@ const _makePathsAbsolute = (context, identifier) =>
|
|
|
298
313
|
.join("");
|
|
299
314
|
|
|
300
315
|
/**
|
|
316
|
+
* Returns a new request string avoiding absolute paths when possible.
|
|
301
317
|
* @param {string} context absolute context path
|
|
302
318
|
* @param {string} request any request string may containing absolute paths, query string, etc.
|
|
303
319
|
* @returns {string} a new request string avoiding absolute paths when possible
|
|
@@ -311,6 +327,7 @@ const _contextify = (context, request) =>
|
|
|
311
327
|
const contextify = makeCacheableWithContext(_contextify);
|
|
312
328
|
|
|
313
329
|
/**
|
|
330
|
+
* Returns a new request string using absolute paths when possible.
|
|
314
331
|
* @param {string} context absolute context path
|
|
315
332
|
* @param {string} request any request string
|
|
316
333
|
* @returns {string} a new request string using absolute paths when possible
|
|
@@ -332,6 +349,7 @@ const ZERO_ESCAPE_REGEXP = /\0(.)/g;
|
|
|
332
349
|
/** @typedef {{ resource: string, path: string, query: string }} ParsedResourceWithoutFragment */
|
|
333
350
|
|
|
334
351
|
/**
|
|
352
|
+
* Returns parsed parts.
|
|
335
353
|
* @param {string} str the path with query and fragment
|
|
336
354
|
* @returns {ParsedResource} parsed parts
|
|
337
355
|
*/
|
|
@@ -428,6 +446,7 @@ const _parseResourceWithoutFragment = (str) => {
|
|
|
428
446
|
};
|
|
429
447
|
|
|
430
448
|
/**
|
|
449
|
+
* Returns repeated ../ to leave the directory of the provided filename to be back on output dir.
|
|
431
450
|
* @param {string} filename the filename which should be undone
|
|
432
451
|
* @param {string} outputPath the output path that is restored (only relevant when filename contains "..")
|
|
433
452
|
* @param {boolean} enforceRelative true returns ./ for empty paths
|
package/lib/util/magicComment.js
CHANGED
|
@@ -12,15 +12,18 @@ const { register } = require("./serialization");
|
|
|
12
12
|
|
|
13
13
|
/** @typedef {{ serialize: (context: ObjectSerializerContext) => void, deserialize: (context: ObjectDeserializerContext) => void }} SerializableClass */
|
|
14
14
|
/**
|
|
15
|
+
* Defines the serializable class constructor type used by this module.
|
|
15
16
|
* @template {SerializableClass} T
|
|
16
17
|
* @typedef {(new (...params: EXPECTED_ANY[]) => T) & { deserialize?: (context: ObjectDeserializerContext) => T }} SerializableClassConstructor
|
|
17
18
|
*/
|
|
18
19
|
|
|
19
20
|
/**
|
|
21
|
+
* Represents ClassSerializer.
|
|
20
22
|
* @template {SerializableClass} T
|
|
21
23
|
*/
|
|
22
24
|
class ClassSerializer {
|
|
23
25
|
/**
|
|
26
|
+
* Creates an instance of ClassSerializer.
|
|
24
27
|
* @param {SerializableClassConstructor<T>} Constructor constructor
|
|
25
28
|
*/
|
|
26
29
|
constructor(Constructor) {
|
|
@@ -28,6 +31,7 @@ class ClassSerializer {
|
|
|
28
31
|
}
|
|
29
32
|
|
|
30
33
|
/**
|
|
34
|
+
* Serializes this instance into the provided serializer context.
|
|
31
35
|
* @param {T} obj obj
|
|
32
36
|
* @param {ObjectSerializerContext} context context
|
|
33
37
|
*/
|
|
@@ -36,6 +40,7 @@ class ClassSerializer {
|
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
/**
|
|
43
|
+
* Restores this instance from the provided deserializer context.
|
|
39
44
|
* @param {ObjectDeserializerContext} context context
|
|
40
45
|
* @returns {T} obj
|
|
41
46
|
*/
|
|
@@ -50,6 +55,7 @@ class ClassSerializer {
|
|
|
50
55
|
}
|
|
51
56
|
|
|
52
57
|
/**
|
|
58
|
+
* Processes the provided constructor.
|
|
53
59
|
* @template {Constructor} T
|
|
54
60
|
* @param {T} Constructor the constructor
|
|
55
61
|
* @param {string} request the request which will be required when deserializing
|
package/lib/util/memoize.js
CHANGED
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
+
* Defines the function returning type used by this module.
|
|
8
9
|
* @template T
|
|
9
10
|
* @typedef {() => T} FunctionReturning
|
|
10
11
|
*/
|
|
11
12
|
|
|
12
13
|
/**
|
|
14
|
+
* Returns new function.
|
|
13
15
|
* @template T
|
|
14
16
|
* @param {FunctionReturning<T>} fn memorized function
|
|
15
17
|
* @returns {FunctionReturning<T>} new function
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
const { extname } = require("path");
|
|
8
|
+
const db = require("mime-db");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* RegExp to match type in RFC 6838
|
|
12
|
+
*
|
|
13
|
+
* type-name = restricted-name
|
|
14
|
+
* subtype-name = restricted-name
|
|
15
|
+
* restricted-name = restricted-name-first *126restricted-name-chars
|
|
16
|
+
* restricted-name-first = ALPHA / DIGIT
|
|
17
|
+
* restricted-name-chars = ALPHA / DIGIT / "!" / "#" / "$" / "&" / "-" / "^" / "_"
|
|
18
|
+
* restricted-name-chars =/ "." ; Characters before first dot always specify a facet name
|
|
19
|
+
* restricted-name-chars =/ "+" ; Characters after last plus always specify a structured syntax suffix
|
|
20
|
+
* ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
|
|
21
|
+
* DIGIT = %x30-39 ; 0-9
|
|
22
|
+
*/
|
|
23
|
+
const TYPE_REGEXP =
|
|
24
|
+
/^ *(([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126})) *(?:;.*)?$/;
|
|
25
|
+
const extensions = Object.create(null);
|
|
26
|
+
const types = Object.create(null);
|
|
27
|
+
|
|
28
|
+
// Score RFC facets (see https://tools.ietf.org/html/rfc6838#section-3)
|
|
29
|
+
|
|
30
|
+
/** @type {Record<string, number>} */
|
|
31
|
+
const FACET_SCORES = {
|
|
32
|
+
"prs.": 100,
|
|
33
|
+
"x-": 200,
|
|
34
|
+
"x.": 300,
|
|
35
|
+
"vnd.": 400,
|
|
36
|
+
default: 900
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/** @typedef {"nginx" | "apache" | "iana" | "default"} SourceScore */
|
|
40
|
+
|
|
41
|
+
// Score mime source (Logic originally from `jshttp/mime-types` module)
|
|
42
|
+
/** @type {Record<SourceScore, number>} */
|
|
43
|
+
const SOURCE_SCORES = {
|
|
44
|
+
nginx: 10,
|
|
45
|
+
apache: 20,
|
|
46
|
+
iana: 40,
|
|
47
|
+
default: 30
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/** @type {Record<string, number>} */
|
|
51
|
+
const TYPE_SCORES = {
|
|
52
|
+
// prefer application/xml over text/xml
|
|
53
|
+
// prefer application/rtf over text/rtf
|
|
54
|
+
application: 1,
|
|
55
|
+
|
|
56
|
+
// prefer font/woff over application/font-woff
|
|
57
|
+
font: 2,
|
|
58
|
+
|
|
59
|
+
// prefer video/mp4 over audio/mp4 over application/mp4
|
|
60
|
+
// See https://www.rfc-editor.org/rfc/rfc4337.html#section-2
|
|
61
|
+
audio: 2,
|
|
62
|
+
video: 3,
|
|
63
|
+
|
|
64
|
+
default: 0
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @param {string} mimeType mime type
|
|
69
|
+
* @param {SourceScore=} source source
|
|
70
|
+
* @returns {number} min score
|
|
71
|
+
*/
|
|
72
|
+
function mimeScore(mimeType, source = "default") {
|
|
73
|
+
if (mimeType === "application/octet-stream") {
|
|
74
|
+
return 0;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const [type, subtype] = mimeType.split("/");
|
|
78
|
+
|
|
79
|
+
const facet = subtype.replace(/(\.|x-).*/, "$1");
|
|
80
|
+
|
|
81
|
+
const facetScore = FACET_SCORES[facet] || FACET_SCORES.default;
|
|
82
|
+
const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default;
|
|
83
|
+
const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default;
|
|
84
|
+
|
|
85
|
+
// All else being equal prefer shorter types
|
|
86
|
+
const lengthScore = 1 - mimeType.length / 100;
|
|
87
|
+
|
|
88
|
+
return facetScore + sourceScore + typeScore + lengthScore;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* @param {string} ext extension
|
|
93
|
+
* @param {string} type0 the first type
|
|
94
|
+
* @param {string} type1 the second type
|
|
95
|
+
* @returns {string} preferred type
|
|
96
|
+
*/
|
|
97
|
+
const preferredType = (ext, type0, type1) => {
|
|
98
|
+
const score0 = type0 ? mimeScore(type0, db[type0].source) : 0;
|
|
99
|
+
const score1 = type1 ? mimeScore(type1, db[type1].source) : 0;
|
|
100
|
+
|
|
101
|
+
return score0 > score1 ? type0 : type1;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* @param {Record<string, readonly string[]>} extensions extensions
|
|
106
|
+
* @param {Record<string, string>} types types
|
|
107
|
+
*/
|
|
108
|
+
const populate = (extensions, types) => {
|
|
109
|
+
for (const type of Object.keys(db)) {
|
|
110
|
+
const mime = db[type];
|
|
111
|
+
const foundExtensions = mime.extensions;
|
|
112
|
+
|
|
113
|
+
if (!foundExtensions || foundExtensions.length === 0) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// mime -> extensions
|
|
118
|
+
extensions[type] = foundExtensions;
|
|
119
|
+
|
|
120
|
+
// extension -> mime
|
|
121
|
+
for (let i = 0; i < foundExtensions.length; i++) {
|
|
122
|
+
const extension = foundExtensions[i];
|
|
123
|
+
|
|
124
|
+
types[extension] = preferredType(extension, types[extension], type);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
populate(extensions, types);
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Get the default extension for a MIME type.
|
|
133
|
+
* @param {string} type type
|
|
134
|
+
* @returns {undefined | string} resolve extension
|
|
135
|
+
*/
|
|
136
|
+
const extension = (type) => {
|
|
137
|
+
if (!type) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const match = TYPE_REGEXP.exec(type);
|
|
142
|
+
|
|
143
|
+
if (!match) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const possibleExtensions = extensions[match[1].toLowerCase()];
|
|
148
|
+
|
|
149
|
+
if (!possibleExtensions || possibleExtensions.length === 0) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return possibleExtensions[0];
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Lookup the MIME type for a file path/extension.
|
|
158
|
+
* @param {string} path path
|
|
159
|
+
* @returns {undefined | string} resolved MIME type
|
|
160
|
+
*/
|
|
161
|
+
const lookup = (path) => {
|
|
162
|
+
if (!path) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// get the extension ("ext" or ".ext" or full path)
|
|
167
|
+
const extension = extname(`x.${path}`).toLowerCase().slice(1);
|
|
168
|
+
|
|
169
|
+
if (!extension) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
return types[extension];
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
module.exports = { extension, lookup };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
/** @typedef {import("../util/fs").JsonValue} JsonValue */
|
|
8
|
+
|
|
9
|
+
// Inspired by https://github.com/npm/json-parse-even-better-errors
|
|
10
|
+
|
|
11
|
+
// Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
|
|
12
|
+
// because the buffer-to-string conversion in `fs.readFileSync()`
|
|
13
|
+
// translates it to FEFF, the UTF-16 BOM.
|
|
14
|
+
/**
|
|
15
|
+
* @param {string | Buffer} txt text
|
|
16
|
+
* @returns {string} text without BOM
|
|
17
|
+
*/
|
|
18
|
+
const stripBOM = (txt) => String(txt).replace(/^\uFEFF/, "");
|
|
19
|
+
|
|
20
|
+
class JSONParseError extends SyntaxError {
|
|
21
|
+
/**
|
|
22
|
+
* @param {Error} err err
|
|
23
|
+
* @param {EXPECTED_ANY} raw raw
|
|
24
|
+
* @param {string} txt text
|
|
25
|
+
* @param {number=} context context
|
|
26
|
+
* @param {EXPECTED_FUNCTION=} caller caller
|
|
27
|
+
*/
|
|
28
|
+
constructor(err, raw, txt, context = 20, caller = parseJson) {
|
|
29
|
+
let originalMessage = err.message;
|
|
30
|
+
/** @type {string} */
|
|
31
|
+
let message;
|
|
32
|
+
/** @type {number} */
|
|
33
|
+
let position;
|
|
34
|
+
|
|
35
|
+
if (typeof raw !== "string") {
|
|
36
|
+
message = `Cannot parse ${Array.isArray(raw) && raw.length === 0 ? "an empty array" : String(raw)}`;
|
|
37
|
+
position = 0;
|
|
38
|
+
} else if (!txt) {
|
|
39
|
+
message = `${originalMessage} while parsing empty string`;
|
|
40
|
+
position = 0;
|
|
41
|
+
} else {
|
|
42
|
+
// Node 20 puts single quotes around the token and a comma after it
|
|
43
|
+
const UNEXPECTED_TOKEN = /^Unexpected token '?(.)'?(,)? /i;
|
|
44
|
+
const badTokenMatch = originalMessage.match(UNEXPECTED_TOKEN);
|
|
45
|
+
const badIndexMatch = originalMessage.match(/ position\s+(\d+)/i);
|
|
46
|
+
|
|
47
|
+
if (badTokenMatch) {
|
|
48
|
+
const h = badTokenMatch[1].charCodeAt(0).toString(16).toUpperCase();
|
|
49
|
+
const hex = `0x${h.length % 2 ? "0" : ""}${h}`;
|
|
50
|
+
|
|
51
|
+
originalMessage = originalMessage.replace(
|
|
52
|
+
UNEXPECTED_TOKEN,
|
|
53
|
+
`Unexpected token ${JSON.stringify(badTokenMatch[1])} (${hex})$2 `
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** @type {number | undefined} */
|
|
58
|
+
let errIdx;
|
|
59
|
+
|
|
60
|
+
if (badIndexMatch) {
|
|
61
|
+
errIdx = Number(badIndexMatch[1]);
|
|
62
|
+
} else if (
|
|
63
|
+
// doesn't happen in Node 22+
|
|
64
|
+
/^Unexpected end of JSON.*/i.test(originalMessage)
|
|
65
|
+
) {
|
|
66
|
+
errIdx = txt.length - 1;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (errIdx === undefined) {
|
|
70
|
+
message = `${originalMessage} while parsing '${txt.slice(0, context * 2)}'`;
|
|
71
|
+
position = 0;
|
|
72
|
+
} else {
|
|
73
|
+
const start = errIdx <= context ? 0 : errIdx - context;
|
|
74
|
+
const end =
|
|
75
|
+
errIdx + context >= txt.length ? txt.length : errIdx + context;
|
|
76
|
+
const slice = `${start ? "..." : ""}${txt.slice(start, end)}${end === txt.length ? "" : "..."}`;
|
|
77
|
+
|
|
78
|
+
message = `${originalMessage} while parsing ${txt === slice ? "" : "near "}${JSON.stringify(slice)}`;
|
|
79
|
+
position = errIdx;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
super(message);
|
|
84
|
+
|
|
85
|
+
this.name = "JSONParseError";
|
|
86
|
+
this.systemError = err;
|
|
87
|
+
this.position = position;
|
|
88
|
+
|
|
89
|
+
Error.captureStackTrace(this, caller || this.constructor);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @template [R=JsonValue]
|
|
95
|
+
* @callback ParseJsonFn
|
|
96
|
+
* @param {string} raw text
|
|
97
|
+
* @param {(this: EXPECTED_ANY, key: string, value: EXPECTED_ANY) => EXPECTED_ANY=} reviver reviver
|
|
98
|
+
* @returns {R} parsed JSON
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
/** @type {ParseJsonFn} */
|
|
102
|
+
const parseJson = (raw, reviver) => {
|
|
103
|
+
const txt = stripBOM(raw);
|
|
104
|
+
|
|
105
|
+
try {
|
|
106
|
+
return JSON.parse(txt, reviver);
|
|
107
|
+
} catch (err) {
|
|
108
|
+
throw new JSONParseError(/** @type {Error} */ (err), raw, txt);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
module.exports = parseJson;
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* Walks a dynamically expanding async work tree with bounded concurrency.
|
|
10
|
+
* Each processed item may enqueue more items through `push`, allowing callers
|
|
11
|
+
* to model breadth-first or depth-first discovery without managing the queue
|
|
12
|
+
* themselves.
|
|
9
13
|
* @template T
|
|
10
14
|
* @template {Error} E
|
|
11
15
|
* @param {Iterable<T>} items initial items
|
|
@@ -22,6 +26,8 @@ const processAsyncTree = (items, concurrency, processor, callback) => {
|
|
|
22
26
|
let processScheduled = true;
|
|
23
27
|
|
|
24
28
|
/**
|
|
29
|
+
* Enqueues a newly discovered item and schedules queue processing when the
|
|
30
|
+
* current concurrency budget allows more work to start.
|
|
25
31
|
* @param {T} item item
|
|
26
32
|
*/
|
|
27
33
|
const push = (item) => {
|
|
@@ -33,6 +39,8 @@ const processAsyncTree = (items, concurrency, processor, callback) => {
|
|
|
33
39
|
};
|
|
34
40
|
|
|
35
41
|
/**
|
|
42
|
+
* Handles completion of a single processor call, propagating the first
|
|
43
|
+
* error and scheduling more queued work when possible.
|
|
36
44
|
* @param {E | null | undefined} err error
|
|
37
45
|
*/
|
|
38
46
|
const processorCallback = (err) => {
|
package/lib/util/property.js
CHANGED
|
@@ -33,6 +33,7 @@ register(
|
|
|
33
33
|
"webpack-sources/CachedSource",
|
|
34
34
|
new (class CachedSourceSerializer {
|
|
35
35
|
/**
|
|
36
|
+
* Serializes this instance into the provided serializer context.
|
|
36
37
|
* @param {CachedSource} source the cached source to be serialized
|
|
37
38
|
* @param {ObjectSerializerContext} context context
|
|
38
39
|
* @returns {void}
|
|
@@ -47,6 +48,7 @@ register(
|
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
/**
|
|
51
|
+
* Restores this instance from the provided deserializer context.
|
|
50
52
|
* @param {ObjectDeserializerContext} context context
|
|
51
53
|
* @returns {CachedSource} cached source
|
|
52
54
|
*/
|
|
@@ -64,6 +66,7 @@ register(
|
|
|
64
66
|
"webpack-sources/RawSource",
|
|
65
67
|
new (class RawSourceSerializer {
|
|
66
68
|
/**
|
|
69
|
+
* Serializes this instance into the provided serializer context.
|
|
67
70
|
* @param {RawSource} source the raw source to be serialized
|
|
68
71
|
* @param {ObjectSerializerContext} context context
|
|
69
72
|
* @returns {void}
|
|
@@ -74,6 +77,7 @@ register(
|
|
|
74
77
|
}
|
|
75
78
|
|
|
76
79
|
/**
|
|
80
|
+
* Restores this instance from the provided deserializer context.
|
|
77
81
|
* @param {ObjectDeserializerContext} context context
|
|
78
82
|
* @returns {RawSource} raw source
|
|
79
83
|
*/
|
|
@@ -91,6 +95,7 @@ register(
|
|
|
91
95
|
"webpack-sources/ConcatSource",
|
|
92
96
|
new (class ConcatSourceSerializer {
|
|
93
97
|
/**
|
|
98
|
+
* Serializes this instance into the provided serializer context.
|
|
94
99
|
* @param {ConcatSource} source the concat source to be serialized
|
|
95
100
|
* @param {ObjectSerializerContext} context context
|
|
96
101
|
* @returns {void}
|
|
@@ -100,6 +105,7 @@ register(
|
|
|
100
105
|
}
|
|
101
106
|
|
|
102
107
|
/**
|
|
108
|
+
* Restores this instance from the provided deserializer context.
|
|
103
109
|
* @param {ObjectDeserializerContext} context context
|
|
104
110
|
* @returns {ConcatSource} concat source
|
|
105
111
|
*/
|
|
@@ -117,6 +123,7 @@ register(
|
|
|
117
123
|
"webpack-sources/PrefixSource",
|
|
118
124
|
new (class PrefixSourceSerializer {
|
|
119
125
|
/**
|
|
126
|
+
* Serializes this instance into the provided serializer context.
|
|
120
127
|
* @param {PrefixSource} source the prefix source to be serialized
|
|
121
128
|
* @param {ObjectSerializerContext} context context
|
|
122
129
|
* @returns {void}
|
|
@@ -127,6 +134,7 @@ register(
|
|
|
127
134
|
}
|
|
128
135
|
|
|
129
136
|
/**
|
|
137
|
+
* Restores this instance from the provided deserializer context.
|
|
130
138
|
* @param {ObjectDeserializerContext} context context
|
|
131
139
|
* @returns {PrefixSource} prefix source
|
|
132
140
|
*/
|
|
@@ -142,6 +150,7 @@ register(
|
|
|
142
150
|
"webpack-sources/ReplaceSource",
|
|
143
151
|
new (class ReplaceSourceSerializer {
|
|
144
152
|
/**
|
|
153
|
+
* Serializes this instance into the provided serializer context.
|
|
145
154
|
* @param {ReplaceSource} source the replace source to be serialized
|
|
146
155
|
* @param {ObjectSerializerContext} context context
|
|
147
156
|
* @returns {void}
|
|
@@ -162,6 +171,7 @@ register(
|
|
|
162
171
|
}
|
|
163
172
|
|
|
164
173
|
/**
|
|
174
|
+
* Restores this instance from the provided deserializer context.
|
|
165
175
|
* @param {ObjectDeserializerContext} context context
|
|
166
176
|
* @returns {ReplaceSource} replace source
|
|
167
177
|
*/
|
|
@@ -193,6 +203,7 @@ register(
|
|
|
193
203
|
"webpack-sources/OriginalSource",
|
|
194
204
|
new (class OriginalSourceSerializer {
|
|
195
205
|
/**
|
|
206
|
+
* Serializes this instance into the provided serializer context.
|
|
196
207
|
* @param {OriginalSource} source the original source to be serialized
|
|
197
208
|
* @param {ObjectSerializerContext} context context
|
|
198
209
|
* @returns {void}
|
|
@@ -203,6 +214,7 @@ register(
|
|
|
203
214
|
}
|
|
204
215
|
|
|
205
216
|
/**
|
|
217
|
+
* Restores this instance from the provided deserializer context.
|
|
206
218
|
* @param {ObjectDeserializerContext} context context
|
|
207
219
|
* @returns {OriginalSource} original source
|
|
208
220
|
*/
|
|
@@ -220,6 +232,7 @@ register(
|
|
|
220
232
|
"acorn/SourceLocation",
|
|
221
233
|
new (class SourceLocationSerializer {
|
|
222
234
|
/**
|
|
235
|
+
* Serializes this instance into the provided serializer context.
|
|
223
236
|
* @param {SourceLocation} loc the location to be serialized
|
|
224
237
|
* @param {ObjectSerializerContext} context context
|
|
225
238
|
* @returns {void}
|
|
@@ -232,6 +245,7 @@ register(
|
|
|
232
245
|
}
|
|
233
246
|
|
|
234
247
|
/**
|
|
248
|
+
* Restores this instance from the provided deserializer context.
|
|
235
249
|
* @param {ObjectDeserializerContext} context context
|
|
236
250
|
* @returns {RealDependencyLocation} location
|
|
237
251
|
*/
|
|
@@ -256,6 +270,7 @@ register(
|
|
|
256
270
|
"acorn/Position",
|
|
257
271
|
new (class PositionSerializer {
|
|
258
272
|
/**
|
|
273
|
+
* Serializes this instance into the provided serializer context.
|
|
259
274
|
* @param {Position} pos the position to be serialized
|
|
260
275
|
* @param {ObjectSerializerContext} context context
|
|
261
276
|
* @returns {void}
|
|
@@ -266,6 +281,7 @@ register(
|
|
|
266
281
|
}
|
|
267
282
|
|
|
268
283
|
/**
|
|
284
|
+
* Restores this instance from the provided deserializer context.
|
|
269
285
|
* @param {ObjectDeserializerContext} context context
|
|
270
286
|
* @returns {SourcePosition} position
|
|
271
287
|
*/
|
|
@@ -284,6 +300,7 @@ register(
|
|
|
284
300
|
"webpack-sources/SourceMapSource",
|
|
285
301
|
new (class SourceMapSourceSerializer {
|
|
286
302
|
/**
|
|
303
|
+
* Serializes this instance into the provided serializer context.
|
|
287
304
|
* @param {SourceMapSource} source the source map source to be serialized
|
|
288
305
|
* @param {ObjectSerializerContext} context context
|
|
289
306
|
* @returns {void}
|
|
@@ -293,6 +310,7 @@ register(
|
|
|
293
310
|
}
|
|
294
311
|
|
|
295
312
|
/**
|
|
313
|
+
* Restores this instance from the provided deserializer context.
|
|
296
314
|
* @param {ObjectDeserializerContext} context context
|
|
297
315
|
* @returns {SourceMapSource} source source map source
|
|
298
316
|
*/
|
|
@@ -309,6 +327,7 @@ register(
|
|
|
309
327
|
"schema-utils/ValidationError",
|
|
310
328
|
new (class ValidationErrorSerializer {
|
|
311
329
|
/**
|
|
330
|
+
* Serializes this instance into the provided serializer context.
|
|
312
331
|
* @param {ValidationError} error the source map source to be serialized
|
|
313
332
|
* @param {ObjectSerializerContext} context context
|
|
314
333
|
* @returns {void}
|
|
@@ -324,6 +343,7 @@ register(
|
|
|
324
343
|
}
|
|
325
344
|
|
|
326
345
|
/**
|
|
346
|
+
* Restores this instance from the provided deserializer context.
|
|
327
347
|
* @param {ObjectDeserializerContext} context context
|
|
328
348
|
* @returns {ValidationError} error
|
|
329
349
|
*/
|