webpack 5.106.1 → 5.107.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/APIPlugin.js +4 -2
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +10 -1
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +26 -0
- 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/CompatibilityPlugin.js +23 -8
- package/lib/Compilation.js +161 -27
- package/lib/Compiler.js +41 -17
- 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 +14 -2
- package/lib/ContextModuleFactory.js +10 -0
- package/lib/ContextReplacementPlugin.js +4 -1
- package/lib/DefinePlugin.js +22 -9
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +48 -4
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +3 -0
- package/lib/EntryPlugin.js +2 -1
- package/lib/Entrypoint.js +4 -0
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -10
- package/lib/ExportsInfo.js +56 -2
- package/lib/ExportsInfoApiPlugin.js +2 -1
- package/lib/ExternalModule.js +114 -15
- package/lib/ExternalModuleFactoryPlugin.js +15 -0
- package/lib/ExternalsPlugin.js +2 -1
- package/lib/FileSystemInfo.js +291 -71
- 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 +16 -3
- package/lib/HotModuleReplacementPlugin.js +35 -9
- package/lib/IgnorePlugin.js +4 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +10 -0
- package/lib/JavascriptMetaInfoPlugin.js +2 -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 +101 -19
- package/lib/ModuleFactory.js +6 -1
- 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/ModuleSourceTypeConstants.js +32 -1
- package/lib/ModuleTemplate.js +8 -0
- package/lib/ModuleTypeConstants.js +12 -3
- package/lib/MultiCompiler.js +30 -2
- package/lib/MultiStats.js +8 -0
- package/lib/MultiWatching.js +3 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +11 -2
- package/lib/NormalModule.js +43 -33
- package/lib/NormalModuleFactory.js +35 -2
- package/lib/NormalModuleReplacementPlugin.js +1 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +2 -1
- package/lib/ProgressPlugin.js +158 -68
- 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/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +6 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +13 -0
- package/lib/RuntimeTemplate.js +35 -1
- package/lib/SelfModuleFactory.js +2 -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/UseStrictPlugin.js +2 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
- package/lib/WarnDeprecatedOptionPlugin.js +2 -2
- package/lib/WarnNoModeSetPlugin.js +17 -2
- package/lib/WatchIgnorePlugin.js +4 -1
- package/lib/Watching.js +16 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +3 -1
- package/lib/WebpackOptionsApply.js +14 -1
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +12 -2
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +42 -10
- package/lib/asset/AssetModulesPlugin.js +7 -2
- package/lib/asset/AssetParser.js +2 -0
- package/lib/asset/AssetSourceGenerator.js +12 -2
- 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 +19 -6
- 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 +33 -4
- 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 +33 -1
- package/lib/config/browserslistTargetHandler.js +2 -0
- package/lib/config/defaults.js +232 -12
- package/lib/config/normalization.js +15 -1
- 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 +336 -100
- package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
- package/lib/css/CssLoadingRuntimeModule.js +23 -4
- package/lib/{CssModule.js → css/CssModule.js} +21 -15
- package/lib/css/CssModulesPlugin.js +235 -89
- package/lib/css/CssParser.js +616 -261
- package/lib/css/walkCssTokens.js +179 -2
- 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 +14 -1
- 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 +64 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
- package/lib/dependencies/CommonJsExportsDependency.js +4 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
- package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
- package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
- package/lib/dependencies/CommonJsPlugin.js +4 -1
- package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
- package/lib/dependencies/CommonJsRequireDependency.js +70 -4
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
- package/lib/dependencies/ConstDependency.js +6 -1
- package/lib/dependencies/ContextDependency.js +9 -2
- package/lib/dependencies/ContextDependencyHelpers.js +4 -1
- 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 +7 -1
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
- package/lib/dependencies/CriticalDependencyWarning.js +2 -1
- package/lib/dependencies/CssIcssExportDependency.js +339 -66
- package/lib/dependencies/CssIcssImportDependency.js +53 -8
- package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
- package/lib/dependencies/CssImportDependency.js +12 -0
- package/lib/dependencies/CssUrlDependency.js +32 -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 +4 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
- package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
- package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
- 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 +21 -2
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
- package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
- package/lib/dependencies/HtmlSourceDependency.js +127 -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 +4 -1
- 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 +9 -2
- package/lib/dependencies/ImportPhase.js +7 -3
- 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 +4 -1
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- 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 +5 -2
- 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 +5 -2
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
- package/lib/dependencies/WorkerDependency.js +6 -1
- package/lib/dependencies/WorkerPlugin.js +11 -3
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +1 -0
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
- package/lib/{DllModule.js → dll/DllModule.js} +35 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
- package/lib/electron/ElectronTargetPlugin.js +2 -1
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
- package/lib/errors/JSONParseError.js +114 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
- package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
- package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
- package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
- package/lib/errors/NonErrorEmittedError.js +28 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -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/html/HtmlGenerator.js +379 -0
- package/lib/html/HtmlModulesPlugin.js +433 -0
- package/lib/html/HtmlParser.js +1489 -0
- package/lib/html/walkHtmlTokens.js +2733 -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 +22 -1
- 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 +39 -15
- 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 +112 -9
- package/lib/javascript/JavascriptParser.js +360 -16
- package/lib/javascript/JavascriptParserHelpers.js +7 -1
- 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 +14 -25
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +16 -0
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +86 -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 +7 -3
- 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 +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +62 -6
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
- package/lib/optimize/InnerGraph.js +16 -1
- package/lib/optimize/InnerGraphPlugin.js +14 -2
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +36 -8
- package/lib/optimize/RealContentHashPlugin.js +104 -26
- 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 +118 -4
- package/lib/optimize/SplitChunksPlugin.js +50 -2
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- 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 +10 -3
- 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 +121 -13
- 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/SetAnonymousDefaultNameRuntimeModule.js +35 -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 +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +43 -1
- package/lib/schemes/VirtualUrlPlugin.js +7 -2
- 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 +14 -2
- 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 +8 -3
- package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +4 -0
- package/lib/sharing/ProvideSharedModule.js +12 -1
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +5 -2
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +1 -0
- package/lib/sharing/resolveMatchedConfigs.js +4 -1
- package/lib/sharing/utils.js +8 -0
- package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
- package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
- package/lib/stats/StatsFactory.js +13 -1
- package/lib/stats/StatsPrinter.js +7 -0
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +8 -2
- 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 +22 -2
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +21 -0
- package/lib/util/LazySet.js +39 -0
- package/lib/util/LocConverter.js +53 -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 +7 -1
- 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 +19 -2
- package/lib/util/comparators.js +34 -3
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +9 -3
- package/lib/util/conventions.js +46 -1
- package/lib/util/createMappings.js +118 -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/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
- package/lib/util/fs.js +71 -8
- 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/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +67 -0
- package/lib/util/internalSerializables.js +35 -19
- package/lib/util/magicComment.js +10 -6
- 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 +41 -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 +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +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 +12 -3
- package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
- package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
- 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 +13 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/package.json +31 -31
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +161 -57
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +22 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +5325 -353
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/lib/css/walkCssTokens.js
CHANGED
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const { makeCacheable } = require("../util/identifier");
|
|
9
|
+
|
|
8
10
|
/**
|
|
11
|
+
* Defines the css token callbacks type used by this module.
|
|
9
12
|
* @typedef {object} CssTokenCallbacks
|
|
10
13
|
* @property {((input: string, start: number, end: number) => number)=} comment
|
|
11
14
|
* @property {((input: string, start: number, end: number) => number)=} whitespace
|
|
@@ -111,6 +114,7 @@ const consumeSpace = (input, pos, callbacks) => {
|
|
|
111
114
|
// Replace any U+000D CARRIAGE RETURN (CR) code points, U+000C FORM FEED (FF) code points, or pairs of U+000D CARRIAGE RETURN (CR) followed by U+000A LINE FEED (LF) in input by a single U+000A LINE FEED (LF) code point.
|
|
112
115
|
|
|
113
116
|
/**
|
|
117
|
+
* Checks whether newline true, if cc is a newline.
|
|
114
118
|
* @param {number} cc char code
|
|
115
119
|
* @returns {boolean} true, if cc is a newline
|
|
116
120
|
*/
|
|
@@ -118,6 +122,7 @@ const _isNewline = (cc) =>
|
|
|
118
122
|
cc === CC_LINE_FEED || cc === CC_CARRIAGE_RETURN || cc === CC_FORM_FEED;
|
|
119
123
|
|
|
120
124
|
/**
|
|
125
|
+
* Consume extra newline.
|
|
121
126
|
* @param {number} cc char code
|
|
122
127
|
* @param {string} input input
|
|
123
128
|
* @param {number} pos position
|
|
@@ -132,12 +137,14 @@ const consumeExtraNewline = (cc, input, pos) => {
|
|
|
132
137
|
};
|
|
133
138
|
|
|
134
139
|
/**
|
|
140
|
+
* Checks whether space true, if cc is a space (U+0009 CHARACTER TABULATION or U+0020 SPACE).
|
|
135
141
|
* @param {number} cc char code
|
|
136
142
|
* @returns {boolean} true, if cc is a space (U+0009 CHARACTER TABULATION or U+0020 SPACE)
|
|
137
143
|
*/
|
|
138
144
|
const _isSpace = (cc) => cc === CC_TAB || cc === CC_SPACE;
|
|
139
145
|
|
|
140
146
|
/**
|
|
147
|
+
* Checks whether white space true, if cc is a whitespace.
|
|
141
148
|
* @param {number} cc char code
|
|
142
149
|
* @returns {boolean} true, if cc is a whitespace
|
|
143
150
|
*/
|
|
@@ -156,6 +163,143 @@ const isIdentStartCodePoint = (cc) =>
|
|
|
156
163
|
cc === CC_LOW_LINE ||
|
|
157
164
|
cc >= 0x80;
|
|
158
165
|
|
|
166
|
+
const REGEX_SINGLE_ESCAPE = /[ -,./:-@[\]^`{-~]/;
|
|
167
|
+
const REGEX_EXCESSIVE_SPACES = /(^|\\+)?(\\[A-F0-9]{1,6}) (?![a-fA-F0-9 ])/g;
|
|
168
|
+
const REGEX_CTRL_WHITESPACE = /[\t\n\f\r\v]/;
|
|
169
|
+
const REGEX_LEADING_HYPHEN_DIGIT = /^-[-\d]/;
|
|
170
|
+
const REGEX_DIGIT = /\d/;
|
|
171
|
+
const CONTAINS_ESCAPE = /\\/;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Returns escaped identifier.
|
|
175
|
+
* @param {string} str string
|
|
176
|
+
* @returns {string} escaped identifier
|
|
177
|
+
*/
|
|
178
|
+
const _escapeIdentifier = (str) => {
|
|
179
|
+
let output = "";
|
|
180
|
+
let counter = 0;
|
|
181
|
+
|
|
182
|
+
while (counter < str.length) {
|
|
183
|
+
const character = str.charAt(counter++);
|
|
184
|
+
|
|
185
|
+
/** @type {string} */
|
|
186
|
+
let value;
|
|
187
|
+
|
|
188
|
+
if (REGEX_CTRL_WHITESPACE.test(character)) {
|
|
189
|
+
const codePoint = character.charCodeAt(0);
|
|
190
|
+
|
|
191
|
+
value = `\\${codePoint.toString(16).toUpperCase()} `;
|
|
192
|
+
} else if (character === "\\" || REGEX_SINGLE_ESCAPE.test(character)) {
|
|
193
|
+
value = `\\${character}`;
|
|
194
|
+
} else {
|
|
195
|
+
value = character;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
output += value;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
const firstChar = str.charAt(0);
|
|
202
|
+
|
|
203
|
+
if (REGEX_LEADING_HYPHEN_DIGIT.test(output)) {
|
|
204
|
+
output = `\\-${output.slice(1)}`;
|
|
205
|
+
} else if (REGEX_DIGIT.test(firstChar)) {
|
|
206
|
+
output = `\\3${firstChar} ${output.slice(1)}`;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// Remove spaces after `\HEX` escapes that are not followed by a hex digit,
|
|
210
|
+
// since they’re redundant. Note that this is only possible if the escape
|
|
211
|
+
// sequence isn’t preceded by an odd number of backslashes.
|
|
212
|
+
output = output.replace(REGEX_EXCESSIVE_SPACES, ($0, $1, $2) => {
|
|
213
|
+
if ($1 && $1.length % 2) {
|
|
214
|
+
// It’s not safe to remove the space, so don’t.
|
|
215
|
+
return $0;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// Strip the space.
|
|
219
|
+
return ($1 || "") + $2;
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
return output;
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Returns hex.
|
|
227
|
+
* @param {string} str string
|
|
228
|
+
* @returns {[string, number] | undefined} hex
|
|
229
|
+
*/
|
|
230
|
+
const gobbleHex = (str) => {
|
|
231
|
+
const lower = str.toLowerCase();
|
|
232
|
+
let hex = "";
|
|
233
|
+
let spaceTerminated = false;
|
|
234
|
+
|
|
235
|
+
for (let i = 0; i < 6 && lower[i] !== undefined; i++) {
|
|
236
|
+
const code = lower.charCodeAt(i);
|
|
237
|
+
// check to see if we are dealing with a valid hex char [a-f|0-9]
|
|
238
|
+
const valid = (code >= 97 && code <= 102) || (code >= 48 && code <= 57);
|
|
239
|
+
// https://drafts.csswg.org/css-syntax/#consume-escaped-code-point
|
|
240
|
+
spaceTerminated = code === 32;
|
|
241
|
+
if (!valid) break;
|
|
242
|
+
hex += lower[i];
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
if (hex.length === 0) return undefined;
|
|
246
|
+
|
|
247
|
+
const codePoint = Number.parseInt(hex, 16);
|
|
248
|
+
const isSurrogate = codePoint >= 0xd800 && codePoint <= 0xdfff;
|
|
249
|
+
|
|
250
|
+
// Add special case for
|
|
251
|
+
// "If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point"
|
|
252
|
+
// https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point
|
|
253
|
+
if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10ffff) {
|
|
254
|
+
return ["�", hex.length + (spaceTerminated ? 1 : 0)];
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
return [
|
|
258
|
+
String.fromCodePoint(codePoint),
|
|
259
|
+
hex.length + (spaceTerminated ? 1 : 0)
|
|
260
|
+
];
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Unescape identifier.
|
|
265
|
+
* @param {string} str string
|
|
266
|
+
* @returns {string} unescaped string
|
|
267
|
+
*/
|
|
268
|
+
const _unescapeIdentifier = (str) => {
|
|
269
|
+
const needToProcess = CONTAINS_ESCAPE.test(str);
|
|
270
|
+
if (!needToProcess) return str;
|
|
271
|
+
let ret = "";
|
|
272
|
+
for (let i = 0; i < str.length; i++) {
|
|
273
|
+
if (str[i] === "\\") {
|
|
274
|
+
const gobbled = gobbleHex(str.slice(i + 1, i + 7));
|
|
275
|
+
if (gobbled !== undefined) {
|
|
276
|
+
ret += gobbled[0];
|
|
277
|
+
i += gobbled[1];
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
// Retain a pair of \\ if double escaped `\\\\`
|
|
281
|
+
// https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e
|
|
282
|
+
if (str[i + 1] === "\\") {
|
|
283
|
+
ret += "\\";
|
|
284
|
+
i += 1;
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
// if \\ is at the end of the string retain it
|
|
288
|
+
// https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb
|
|
289
|
+
if (str.length === i + 1) {
|
|
290
|
+
ret += str[i];
|
|
291
|
+
}
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
294
|
+
ret += str[i];
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
return ret;
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
const escapeIdentifier = makeCacheable(_escapeIdentifier);
|
|
301
|
+
const unescapeIdentifier = makeCacheable(_unescapeIdentifier);
|
|
302
|
+
|
|
159
303
|
/** @type {CharHandler} */
|
|
160
304
|
const consumeDelimToken = (input, pos, callbacks) => {
|
|
161
305
|
// Return a <delim-token> with its value set to the current input code point.
|
|
@@ -207,6 +351,7 @@ const consumeComments = (input, pos, callbacks) => {
|
|
|
207
351
|
};
|
|
208
352
|
|
|
209
353
|
/**
|
|
354
|
+
* Checks whether hex digit true, if cc is a hex digit.
|
|
210
355
|
* @param {number} cc char code
|
|
211
356
|
* @returns {boolean} true, if cc is a hex digit
|
|
212
357
|
*/
|
|
@@ -216,6 +361,7 @@ const _isHexDigit = (cc) =>
|
|
|
216
361
|
(cc >= CC_LOWER_A && cc <= CC_LOWER_F);
|
|
217
362
|
|
|
218
363
|
/**
|
|
364
|
+
* Consume an escaped code point.
|
|
219
365
|
* @param {string} input input
|
|
220
366
|
* @param {number} pos position
|
|
221
367
|
* @returns {number} position
|
|
@@ -339,6 +485,7 @@ const consumeAStringToken = (input, pos, callbacks) => {
|
|
|
339
485
|
};
|
|
340
486
|
|
|
341
487
|
/**
|
|
488
|
+
* Checks whether this object is non ascii code point.
|
|
342
489
|
* @param {number} cc char code
|
|
343
490
|
* @param {number} q char code
|
|
344
491
|
* @returns {boolean} is non-ASCII code point
|
|
@@ -348,6 +495,7 @@ const isNonASCIICodePoint = (cc, q) =>
|
|
|
348
495
|
cc > 0x80;
|
|
349
496
|
|
|
350
497
|
/**
|
|
498
|
+
* Checks whether this object is letter.
|
|
351
499
|
* @param {number} cc char code
|
|
352
500
|
* @returns {boolean} is letter
|
|
353
501
|
*/
|
|
@@ -356,6 +504,7 @@ const isLetter = (cc) =>
|
|
|
356
504
|
(cc >= CC_UPPER_A && cc <= CC_UPPER_Z);
|
|
357
505
|
|
|
358
506
|
/**
|
|
507
|
+
* Is ident start code point.
|
|
359
508
|
* @param {number} cc char code
|
|
360
509
|
* @param {number} q char code
|
|
361
510
|
* @returns {boolean} is identifier start code
|
|
@@ -364,6 +513,7 @@ const _isIdentStartCodePoint = (cc, q) =>
|
|
|
364
513
|
isLetter(cc) || isNonASCIICodePoint(cc, q) || cc === CC_LOW_LINE;
|
|
365
514
|
|
|
366
515
|
/**
|
|
516
|
+
* Is ident code point.
|
|
367
517
|
* @param {number} cc char code
|
|
368
518
|
* @param {number} q char code
|
|
369
519
|
* @returns {boolean} is identifier code
|
|
@@ -371,12 +521,14 @@ const _isIdentStartCodePoint = (cc, q) =>
|
|
|
371
521
|
const _isIdentCodePoint = (cc, q) =>
|
|
372
522
|
_isIdentStartCodePoint(cc, q) || _isDigit(cc) || cc === CC_HYPHEN_MINUS;
|
|
373
523
|
/**
|
|
524
|
+
* Checks whether digit is digit.
|
|
374
525
|
* @param {number} cc char code
|
|
375
526
|
* @returns {boolean} is digit
|
|
376
527
|
*/
|
|
377
528
|
const _isDigit = (cc) => cc >= CC_0 && cc <= CC_9;
|
|
378
529
|
|
|
379
530
|
/**
|
|
531
|
+
* If two code points are valid escape.
|
|
380
532
|
* @param {string} input input
|
|
381
533
|
* @param {number} pos position
|
|
382
534
|
* @param {number=} f first code point
|
|
@@ -401,6 +553,7 @@ const _ifTwoCodePointsAreValidEscape = (input, pos, f, s) => {
|
|
|
401
553
|
};
|
|
402
554
|
|
|
403
555
|
/**
|
|
556
|
+
* If three code points would start an ident sequence.
|
|
404
557
|
* @param {string} input input
|
|
405
558
|
* @param {number} pos position
|
|
406
559
|
* @param {number=} f first
|
|
@@ -453,6 +606,7 @@ const _ifThreeCodePointsWouldStartAnIdentSequence = (input, pos, f, s, t) => {
|
|
|
453
606
|
};
|
|
454
607
|
|
|
455
608
|
/**
|
|
609
|
+
* If three code points would start a number.
|
|
456
610
|
* @param {string} input input
|
|
457
611
|
* @param {number} pos position
|
|
458
612
|
* @param {number=} f first
|
|
@@ -873,6 +1027,7 @@ const _consumeAnIdentSequence = (input, pos) => {
|
|
|
873
1027
|
};
|
|
874
1028
|
|
|
875
1029
|
/**
|
|
1030
|
+
* Is non printable code point.
|
|
876
1031
|
* @param {number} cc char code
|
|
877
1032
|
* @returns {boolean} true, when cc is the non-printable code point, otherwise false
|
|
878
1033
|
*/
|
|
@@ -883,6 +1038,7 @@ const _isNonPrintableCodePoint = (cc) =>
|
|
|
883
1038
|
cc === 0x7f;
|
|
884
1039
|
|
|
885
1040
|
/**
|
|
1041
|
+
* Consume the remnants of a bad url.
|
|
886
1042
|
* @param {string} input input
|
|
887
1043
|
* @param {number} pos position
|
|
888
1044
|
* @returns {number} position
|
|
@@ -924,6 +1080,7 @@ const consumeTheRemnantsOfABadUrl = (input, pos) => {
|
|
|
924
1080
|
};
|
|
925
1081
|
|
|
926
1082
|
/**
|
|
1083
|
+
* Consume a url token.
|
|
927
1084
|
* @param {string} input input
|
|
928
1085
|
* @param {number} pos position
|
|
929
1086
|
* @param {number} fnStart start
|
|
@@ -1285,6 +1442,7 @@ const consumeAToken = (input, pos, callbacks) => {
|
|
|
1285
1442
|
};
|
|
1286
1443
|
|
|
1287
1444
|
/**
|
|
1445
|
+
* Returns pos.
|
|
1288
1446
|
* @param {string} input input css
|
|
1289
1447
|
* @param {number=} pos pos
|
|
1290
1448
|
* @param {CssTokenCallbacks=} callbacks callbacks
|
|
@@ -1309,6 +1467,7 @@ module.exports = (input, pos = 0, callbacks = {}) => {
|
|
|
1309
1467
|
};
|
|
1310
1468
|
|
|
1311
1469
|
/**
|
|
1470
|
+
* Returns pos.
|
|
1312
1471
|
* @param {string} input input css
|
|
1313
1472
|
* @param {number} pos pos
|
|
1314
1473
|
* @param {CssTokenCallbacks} callbacks callbacks
|
|
@@ -1411,6 +1570,7 @@ const consumeUntil = (input, pos, callbacks, additional, options = {}) => {
|
|
|
1411
1570
|
};
|
|
1412
1571
|
|
|
1413
1572
|
/**
|
|
1573
|
+
* Returns position after comments.
|
|
1414
1574
|
* @param {string} input input
|
|
1415
1575
|
* @param {number} pos position
|
|
1416
1576
|
* @returns {number} position after comments
|
|
@@ -1428,6 +1588,7 @@ const eatComments = (input, pos) => {
|
|
|
1428
1588
|
};
|
|
1429
1589
|
|
|
1430
1590
|
/**
|
|
1591
|
+
* Returns position after whitespace.
|
|
1431
1592
|
* @param {string} input input
|
|
1432
1593
|
* @param {number} pos position
|
|
1433
1594
|
* @returns {number} position after whitespace
|
|
@@ -1441,6 +1602,7 @@ const eatWhitespace = (input, pos) => {
|
|
|
1441
1602
|
};
|
|
1442
1603
|
|
|
1443
1604
|
/**
|
|
1605
|
+
* Eat whitespace and comments.
|
|
1444
1606
|
* @param {string} input input
|
|
1445
1607
|
* @param {number} pos position
|
|
1446
1608
|
* @returns {[number, boolean]} position after whitespace and comments
|
|
@@ -1466,6 +1628,7 @@ const eatWhitespaceAndComments = (input, pos) => {
|
|
|
1466
1628
|
};
|
|
1467
1629
|
|
|
1468
1630
|
/**
|
|
1631
|
+
* Returns position after whitespace.
|
|
1469
1632
|
* @param {string} input input
|
|
1470
1633
|
* @param {number} pos position
|
|
1471
1634
|
* @returns {number} position after whitespace
|
|
@@ -1486,6 +1649,7 @@ const eatWhiteLine = (input, pos) => {
|
|
|
1486
1649
|
};
|
|
1487
1650
|
|
|
1488
1651
|
/**
|
|
1652
|
+
* Skip comments and eat ident sequence.
|
|
1489
1653
|
* @param {string} input input
|
|
1490
1654
|
* @param {number} pos position
|
|
1491
1655
|
* @returns {[number, number] | undefined} positions of ident sequence
|
|
@@ -1511,6 +1675,7 @@ const skipCommentsAndEatIdentSequence = (input, pos) => {
|
|
|
1511
1675
|
};
|
|
1512
1676
|
|
|
1513
1677
|
/**
|
|
1678
|
+
* Returns positions of ident sequence.
|
|
1514
1679
|
* @param {string} input input
|
|
1515
1680
|
* @param {number} pos position
|
|
1516
1681
|
* @returns {[number, number] | undefined} positions of ident sequence
|
|
@@ -1531,6 +1696,7 @@ const eatString = (input, pos) => {
|
|
|
1531
1696
|
};
|
|
1532
1697
|
|
|
1533
1698
|
/**
|
|
1699
|
+
* Eat image set strings.
|
|
1534
1700
|
* @param {string} input input
|
|
1535
1701
|
* @param {number} pos position
|
|
1536
1702
|
* @param {CssTokenCallbacks} cbs callbacks
|
|
@@ -1601,14 +1767,15 @@ const eatImageSetStrings = (input, pos, cbs) => {
|
|
|
1601
1767
|
};
|
|
1602
1768
|
|
|
1603
1769
|
/**
|
|
1770
|
+
* Returns positions of top level tokens.
|
|
1604
1771
|
* @param {string} input input
|
|
1605
1772
|
* @param {number} pos position
|
|
1606
1773
|
* @param {CssTokenCallbacks} cbs callbacks
|
|
1607
|
-
* @returns {[[number, number, number, number] | undefined, [number, number] | undefined, [number, number] | undefined, [number, number] | undefined]} positions of top level tokens
|
|
1774
|
+
* @returns {[[number, number, number, number, boolean?] | undefined, [number, number] | undefined, [number, number] | undefined, [number, number] | undefined]} positions of top level tokens — the URL tuple's optional 5th element is `true` when the URL was given as an identifier (CSS Modules `@value` reference)
|
|
1608
1775
|
*/
|
|
1609
1776
|
const eatImportTokens = (input, pos, cbs) => {
|
|
1610
1777
|
const result =
|
|
1611
|
-
/** @type {[[number, number, number, number] | undefined, [number, number] | undefined, [number, number] | undefined, [number, number] | undefined]} */
|
|
1778
|
+
/** @type {[[number, number, number, number, boolean?] | undefined, [number, number] | undefined, [number, number] | undefined, [number, number] | undefined]} */
|
|
1612
1779
|
(Array.from({ length: 4 }));
|
|
1613
1780
|
|
|
1614
1781
|
/** @type {0 | 1 | 2 | undefined} */
|
|
@@ -1712,6 +1879,11 @@ const eatImportTokens = (input, pos, cbs) => {
|
|
|
1712
1879
|
if (name === "layer") {
|
|
1713
1880
|
result[1] = [start, end];
|
|
1714
1881
|
scope = undefined;
|
|
1882
|
+
} else if (result[0] === undefined) {
|
|
1883
|
+
// Capture as URL identifier (e.g. `@import myValue;` where
|
|
1884
|
+
// `myValue` is a CSS Modules `@value` definition).
|
|
1885
|
+
result[0] = [start, end, start, end, true];
|
|
1886
|
+
scope = undefined;
|
|
1715
1887
|
}
|
|
1716
1888
|
}
|
|
1717
1889
|
|
|
@@ -1744,6 +1916,7 @@ const eatImportTokens = (input, pos, cbs) => {
|
|
|
1744
1916
|
};
|
|
1745
1917
|
|
|
1746
1918
|
/**
|
|
1919
|
+
* Eat ident sequence.
|
|
1747
1920
|
* @param {string} input input
|
|
1748
1921
|
* @param {number} pos position
|
|
1749
1922
|
* @returns {[number, number] | undefined} positions of ident sequence
|
|
@@ -1769,6 +1942,7 @@ const eatIdentSequence = (input, pos) => {
|
|
|
1769
1942
|
};
|
|
1770
1943
|
|
|
1771
1944
|
/**
|
|
1945
|
+
* Eat ident sequence or string.
|
|
1772
1946
|
* @param {string} input input
|
|
1773
1947
|
* @param {number} pos position
|
|
1774
1948
|
* @returns {[number, number, boolean] | undefined} positions of ident sequence or string
|
|
@@ -1799,6 +1973,7 @@ const eatIdentSequenceOrString = (input, pos) => {
|
|
|
1799
1973
|
};
|
|
1800
1974
|
|
|
1801
1975
|
/**
|
|
1976
|
+
* Returns function to eat characters.
|
|
1802
1977
|
* @param {string} chars characters
|
|
1803
1978
|
* @returns {(input: string, pos: number) => number} function to eat characters
|
|
1804
1979
|
*/
|
|
@@ -1837,7 +2012,9 @@ module.exports.eatUntil = eatUntil;
|
|
|
1837
2012
|
module.exports.eatWhiteLine = eatWhiteLine;
|
|
1838
2013
|
module.exports.eatWhitespace = eatWhitespace;
|
|
1839
2014
|
module.exports.eatWhitespaceAndComments = eatWhitespaceAndComments;
|
|
2015
|
+
module.exports.escapeIdentifier = escapeIdentifier;
|
|
1840
2016
|
module.exports.isIdentStartCodePoint = isIdentStartCodePoint;
|
|
1841
2017
|
module.exports.isWhiteSpace = _isWhiteSpace;
|
|
1842
2018
|
module.exports.skipCommentsAndEatIdentSequence =
|
|
1843
2019
|
skipCommentsAndEatIdentSequence;
|
|
2020
|
+
module.exports.unescapeIdentifier = unescapeIdentifier;
|
|
@@ -23,21 +23,25 @@ const { dirname, mkdirpSync } = require("../util/fs");
|
|
|
23
23
|
/** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
+
* Defines the hook type used by this module.
|
|
26
27
|
* @template T, R
|
|
27
28
|
* @typedef {import("tapable").Hook<T, R>} Hook
|
|
28
29
|
*/
|
|
29
30
|
|
|
30
31
|
/**
|
|
32
|
+
* Defines the fake hook type used by this module.
|
|
31
33
|
* @template T
|
|
32
34
|
* @typedef {import("../util/deprecation").FakeHook<T>} FakeHook
|
|
33
35
|
*/
|
|
34
36
|
|
|
35
37
|
/**
|
|
38
|
+
* Defines the hook map type used by this module.
|
|
36
39
|
* @template T
|
|
37
40
|
* @typedef {import("tapable").HookMap<T>} HookMap
|
|
38
41
|
*/
|
|
39
42
|
|
|
40
43
|
/**
|
|
44
|
+
* Defines the hook interceptor type used by this module.
|
|
41
45
|
* @template T, R
|
|
42
46
|
* @typedef {import("tapable").HookInterceptor<T, R>} HookInterceptor
|
|
43
47
|
*/
|
|
@@ -57,6 +61,7 @@ try {
|
|
|
57
61
|
|
|
58
62
|
class Profiler {
|
|
59
63
|
/**
|
|
64
|
+
* Creates an instance of Profiler.
|
|
60
65
|
* @param {Inspector} inspector inspector
|
|
61
66
|
*/
|
|
62
67
|
constructor(inspector) {
|
|
@@ -97,6 +102,7 @@ class Profiler {
|
|
|
97
102
|
}
|
|
98
103
|
|
|
99
104
|
/**
|
|
105
|
+
* Returns promise for the result.
|
|
100
106
|
* @param {string} method method name
|
|
101
107
|
* @param {EXPECTED_OBJECT=} params params
|
|
102
108
|
* @returns {Promise<EXPECTED_ANY | void>} Promise for the result
|
|
@@ -127,6 +133,7 @@ class Profiler {
|
|
|
127
133
|
}
|
|
128
134
|
|
|
129
135
|
/**
|
|
136
|
+
* Returns }>} profile result.
|
|
130
137
|
* @returns {Promise<{ profile: { startTime: number, endTime: number } }>} profile result
|
|
131
138
|
*/
|
|
132
139
|
stopProfiling() {
|
|
@@ -161,6 +168,7 @@ class Profiler {
|
|
|
161
168
|
*/
|
|
162
169
|
|
|
163
170
|
/**
|
|
171
|
+
* Creates a trace from the provided f.
|
|
164
172
|
* @param {IntermediateFileSystem} fs filesystem used for output
|
|
165
173
|
* @param {string} outputPath The location where to write the log.
|
|
166
174
|
* @returns {Trace} The trace object
|
|
@@ -229,6 +237,7 @@ const PLUGIN_NAME = "ProfilingPlugin";
|
|
|
229
237
|
|
|
230
238
|
class ProfilingPlugin {
|
|
231
239
|
/**
|
|
240
|
+
* Creates an instance of ProfilingPlugin.
|
|
232
241
|
* @param {ProfilingPluginOptions=} options options object
|
|
233
242
|
*/
|
|
234
243
|
constructor(options = {}) {
|
|
@@ -237,7 +246,7 @@ class ProfilingPlugin {
|
|
|
237
246
|
}
|
|
238
247
|
|
|
239
248
|
/**
|
|
240
|
-
*
|
|
249
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
241
250
|
* @param {Compiler} compiler the compiler instance
|
|
242
251
|
* @returns {void}
|
|
243
252
|
*/
|
|
@@ -376,6 +385,7 @@ class ProfilingPlugin {
|
|
|
376
385
|
/** @typedef {Record<string, Hook<EXPECTED_ANY, EXPECTED_ANY> | FakeHook<EXPECTED_ANY> | HookMap<EXPECTED_ANY>>} Hooks */
|
|
377
386
|
|
|
378
387
|
/**
|
|
388
|
+
* Intercept all hooks for.
|
|
379
389
|
* @param {EXPECTED_OBJECT & { hooks?: Hooks }} instance instance
|
|
380
390
|
* @param {Trace} tracer tracer
|
|
381
391
|
* @param {string} logLabel log label
|
|
@@ -393,6 +403,7 @@ const interceptAllHooksFor = (instance, tracer, logLabel) => {
|
|
|
393
403
|
};
|
|
394
404
|
|
|
395
405
|
/**
|
|
406
|
+
* Intercept all parser hooks.
|
|
396
407
|
* @param {NormalModuleFactory} moduleFactory normal module factory
|
|
397
408
|
* @param {Trace} tracer tracer
|
|
398
409
|
*/
|
|
@@ -414,6 +425,7 @@ const interceptAllParserHooks = (moduleFactory, tracer) => {
|
|
|
414
425
|
};
|
|
415
426
|
|
|
416
427
|
/**
|
|
428
|
+
* Intercept all generator hooks.
|
|
417
429
|
* @param {NormalModuleFactory} moduleFactory normal module factory
|
|
418
430
|
* @param {Trace} tracer tracer
|
|
419
431
|
*/
|
|
@@ -435,6 +447,7 @@ const interceptAllGeneratorHooks = (moduleFactory, tracer) => {
|
|
|
435
447
|
};
|
|
436
448
|
|
|
437
449
|
/**
|
|
450
|
+
* Intercept all javascript modules plugin hooks.
|
|
438
451
|
* @param {Compilation} compilation compilation
|
|
439
452
|
* @param {Trace} tracer tracer
|
|
440
453
|
*/
|
|
@@ -452,6 +465,7 @@ const interceptAllJavascriptModulesPluginHooks = (compilation, tracer) => {
|
|
|
452
465
|
};
|
|
453
466
|
|
|
454
467
|
/**
|
|
468
|
+
* Intercept all css modules plugin hooks.
|
|
455
469
|
* @param {Compilation} compilation compilation
|
|
456
470
|
* @param {Trace} tracer tracer
|
|
457
471
|
*/
|
|
@@ -468,6 +482,7 @@ const interceptAllCssModulesPluginHooks = (compilation, tracer) => {
|
|
|
468
482
|
/** @typedef {(...args: EXPECTED_ANY[]) => EXPECTED_ANY | Promise<(...args: EXPECTED_ANY[]) => EXPECTED_ANY>} PluginFunction */
|
|
469
483
|
|
|
470
484
|
/**
|
|
485
|
+
* Creates interceptor for.
|
|
471
486
|
* @template T
|
|
472
487
|
* @param {string} instance instance
|
|
473
488
|
* @param {Trace} tracer tracer
|
|
@@ -475,6 +490,7 @@ const interceptAllCssModulesPluginHooks = (compilation, tracer) => {
|
|
|
475
490
|
*/
|
|
476
491
|
const makeInterceptorFor = (instance, tracer) => (hookName) => ({
|
|
477
492
|
/**
|
|
493
|
+
* Returns modified full tap.
|
|
478
494
|
* @param {FullTap} tapInfo tap info
|
|
479
495
|
* @returns {FullTap} modified full tap
|
|
480
496
|
*/
|
|
@@ -494,6 +510,7 @@ const makeInterceptorFor = (instance, tracer) => (hookName) => ({
|
|
|
494
510
|
});
|
|
495
511
|
|
|
496
512
|
/**
|
|
513
|
+
* Creates new profiled tap fn.
|
|
497
514
|
* @param {string} hookName Name of the hook to profile.
|
|
498
515
|
* @param {Trace} tracer The trace object.
|
|
499
516
|
* @param {object} options Options for the profiled fn.
|
|
@@ -538,6 +555,7 @@ const makeNewProfiledTapFn = (hookName, tracer, { name, type, fn }) => {
|
|
|
538
555
|
fn(
|
|
539
556
|
...args,
|
|
540
557
|
/**
|
|
558
|
+
* Handles the cat callback for this hook.
|
|
541
559
|
* @param {...EXPECTED_ANY[]} r result
|
|
542
560
|
*/
|
|
543
561
|
(...r) => {
|
|
@@ -108,6 +108,7 @@ const DEFINITIONS = {
|
|
|
108
108
|
|
|
109
109
|
class AMDDefineDependency extends NullDependency {
|
|
110
110
|
/**
|
|
111
|
+
* Creates an instance of AMDDefineDependency.
|
|
111
112
|
* @param {Range} range range
|
|
112
113
|
* @param {Range | null} arrayRange array range
|
|
113
114
|
* @param {Range | null} functionRange function range
|
|
@@ -130,6 +131,7 @@ class AMDDefineDependency extends NullDependency {
|
|
|
130
131
|
}
|
|
131
132
|
|
|
132
133
|
/**
|
|
134
|
+
* Serializes this instance into the provided serializer context.
|
|
133
135
|
* @param {ObjectSerializerContext} context context
|
|
134
136
|
*/
|
|
135
137
|
serialize(context) {
|
|
@@ -144,6 +146,7 @@ class AMDDefineDependency extends NullDependency {
|
|
|
144
146
|
}
|
|
145
147
|
|
|
146
148
|
/**
|
|
149
|
+
* Restores this instance from the provided deserializer context.
|
|
147
150
|
* @param {ObjectDeserializerContext} context context
|
|
148
151
|
*/
|
|
149
152
|
deserialize(context) {
|
|
@@ -167,6 +170,7 @@ AMDDefineDependency.Template = class AMDDefineDependencyTemplate extends (
|
|
|
167
170
|
NullDependency.Template
|
|
168
171
|
) {
|
|
169
172
|
/**
|
|
173
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
170
174
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
171
175
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
172
176
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -183,6 +187,7 @@ AMDDefineDependency.Template = class AMDDefineDependencyTemplate extends (
|
|
|
183
187
|
}
|
|
184
188
|
|
|
185
189
|
/**
|
|
190
|
+
* Returns variable name.
|
|
186
191
|
* @param {AMDDefineDependency} dependency dependency
|
|
187
192
|
* @returns {string | false | null} variable name
|
|
188
193
|
*/
|
|
@@ -195,6 +200,7 @@ AMDDefineDependency.Template = class AMDDefineDependencyTemplate extends (
|
|
|
195
200
|
}
|
|
196
201
|
|
|
197
202
|
/**
|
|
203
|
+
* Returns branch.
|
|
198
204
|
* @param {AMDDefineDependency} dependency dependency
|
|
199
205
|
* @returns {string} branch
|
|
200
206
|
*/
|
|
@@ -207,6 +213,7 @@ AMDDefineDependency.Template = class AMDDefineDependencyTemplate extends (
|
|
|
207
213
|
}
|
|
208
214
|
|
|
209
215
|
/**
|
|
216
|
+
* Processes the provided dependency.
|
|
210
217
|
* @param {AMDDefineDependency} dependency dependency
|
|
211
218
|
* @param {ReplaceSource} source source
|
|
212
219
|
* @param {string} definition definition
|
|
@@ -35,6 +35,7 @@ const { addLocalModule, getLocalModule } = require("./LocalModulesHelpers");
|
|
|
35
35
|
/** @typedef {import("./LocalModule")} LocalModule */
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
+
* Checks whether this object is bound function expression.
|
|
38
39
|
* @param {Expression | SpreadElement} expr expression
|
|
39
40
|
* @returns {expr is CallExpression} true if it's a bound function expression
|
|
40
41
|
*/
|
|
@@ -51,6 +52,7 @@ const isBoundFunctionExpression = (expr) => {
|
|
|
51
52
|
/** @typedef {FunctionExpression | ArrowFunctionExpression} UnboundFunctionExpression */
|
|
52
53
|
|
|
53
54
|
/**
|
|
55
|
+
* Checks whether this object is unbound function expression.
|
|
54
56
|
* @param {Expression | SpreadElement} expr expression
|
|
55
57
|
* @returns {expr is FunctionExpression | ArrowFunctionExpression} true when unbound function expression
|
|
56
58
|
*/
|
|
@@ -61,6 +63,7 @@ const isUnboundFunctionExpression = (expr) => {
|
|
|
61
63
|
};
|
|
62
64
|
|
|
63
65
|
/**
|
|
66
|
+
* Checks whether this object is callable.
|
|
64
67
|
* @param {Expression | SpreadElement} expr expression
|
|
65
68
|
* @returns {expr is FunctionExpression | ArrowFunctionExpression | CallExpression} true when callable
|
|
66
69
|
*/
|
|
@@ -76,6 +79,7 @@ const PLUGIN_NAME = "AMDDefineDependencyParserPlugin";
|
|
|
76
79
|
|
|
77
80
|
class AMDDefineDependencyParserPlugin {
|
|
78
81
|
/**
|
|
82
|
+
* Creates an instance of AMDDefineDependencyParserPlugin.
|
|
79
83
|
* @param {JavascriptParserOptions} options parserOptions
|
|
80
84
|
*/
|
|
81
85
|
constructor(options) {
|
|
@@ -83,6 +87,7 @@ class AMDDefineDependencyParserPlugin {
|
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
/**
|
|
90
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
86
91
|
* @param {JavascriptParser} parser the parser
|
|
87
92
|
* @returns {void}
|
|
88
93
|
*/
|
|
@@ -93,6 +98,7 @@ class AMDDefineDependencyParserPlugin {
|
|
|
93
98
|
}
|
|
94
99
|
|
|
95
100
|
/**
|
|
101
|
+
* Processes the provided parser.
|
|
96
102
|
* @param {JavascriptParser} parser the parser
|
|
97
103
|
* @param {CallExpression} expr call expression
|
|
98
104
|
* @param {BasicEvaluatedExpression} param param
|
|
@@ -160,6 +166,7 @@ class AMDDefineDependencyParserPlugin {
|
|
|
160
166
|
}
|
|
161
167
|
|
|
162
168
|
/**
|
|
169
|
+
* Processes the provided parser.
|
|
163
170
|
* @param {JavascriptParser} parser the parser
|
|
164
171
|
* @param {CallExpression} expr call expression
|
|
165
172
|
* @param {BasicEvaluatedExpression} param param
|
|
@@ -226,6 +233,7 @@ class AMDDefineDependencyParserPlugin {
|
|
|
226
233
|
}
|
|
227
234
|
|
|
228
235
|
/**
|
|
236
|
+
* Processes the provided parser.
|
|
229
237
|
* @param {JavascriptParser} parser the parser
|
|
230
238
|
* @param {CallExpression} expr call expression
|
|
231
239
|
* @param {BasicEvaluatedExpression} param param
|
|
@@ -251,6 +259,7 @@ class AMDDefineDependencyParserPlugin {
|
|
|
251
259
|
}
|
|
252
260
|
|
|
253
261
|
/**
|
|
262
|
+
* Process call define.
|
|
254
263
|
* @param {JavascriptParser} parser the parser
|
|
255
264
|
* @param {CallExpression} expr call expression
|
|
256
265
|
* @returns {boolean | undefined} result
|
|
@@ -464,6 +473,7 @@ class AMDDefineDependencyParserPlugin {
|
|
|
464
473
|
}
|
|
465
474
|
|
|
466
475
|
/**
|
|
476
|
+
* New define dependency.
|
|
467
477
|
* @param {Range} range range
|
|
468
478
|
* @param {Range | null} arrayRange array range
|
|
469
479
|
* @param {Range | null} functionRange function range
|
|
@@ -488,6 +498,7 @@ class AMDDefineDependencyParserPlugin {
|
|
|
488
498
|
}
|
|
489
499
|
|
|
490
500
|
/**
|
|
501
|
+
* New require array dependency.
|
|
491
502
|
* @param {(string | LocalModuleDependency | AMDRequireItemDependency)[]} depsArray deps array
|
|
492
503
|
* @param {Range} range range
|
|
493
504
|
* @returns {AMDRequireArrayDependency} AMDRequireArrayDependency
|
|
@@ -497,6 +508,7 @@ class AMDDefineDependencyParserPlugin {
|
|
|
497
508
|
}
|
|
498
509
|
|
|
499
510
|
/**
|
|
511
|
+
* New require item dependency.
|
|
500
512
|
* @param {string} request request
|
|
501
513
|
* @param {Range=} range range
|
|
502
514
|
* @returns {AMDRequireItemDependency} AMDRequireItemDependency
|