@depup/webpack 5.106.0-depup.0 → 5.109.0-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -11
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +141 -9
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +23 -26
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +54 -37
- package/lib/Compilation.js +635 -107
- package/lib/Compiler.js +93 -31
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +498 -127
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +399 -108
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +376 -78
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +575 -149
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +92 -6
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +15 -0
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -60
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +5 -2
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +485 -181
- package/lib/NormalModuleFactory.js +148 -29
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +104 -26
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +29 -3
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +43 -7
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +591 -41
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/ModuleFederationPlugin.js +12 -26
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +534 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +156 -77
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +356 -204
- package/lib/css/CssParser.js +3452 -1950
- package/lib/css/syntax.js +4058 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +138 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +682 -368
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +32 -2
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +140 -46
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +253 -37
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +59 -3
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +426 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +71 -49
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +34 -8
- package/lib/html/HtmlGenerator.js +1470 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1111 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9020 -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 +25 -2
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +579 -183
- package/lib/javascript/JavascriptParser.js +1289 -462
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +4380 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +23 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +585 -116
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +159 -34
- package/lib/optimize/RealContentHashPlugin.js +125 -50
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +54 -6
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +663 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +552 -463
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +50 -3
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +94 -12
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
- package/lib/stats/StatsFactory.js +39 -18
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +97 -6
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1117 -79
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +8608 -1159
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const { getContext } = require("loader-runner");
|
|
9
8
|
const asyncLib = require("neo-async");
|
|
10
9
|
const {
|
|
11
10
|
AsyncSeriesBailHook,
|
|
@@ -21,6 +20,7 @@ const ModuleGraph = require("./ModuleGraph");
|
|
|
21
20
|
const { JAVASCRIPT_MODULE_TYPE_AUTO } = require("./ModuleTypeConstants");
|
|
22
21
|
const NormalModule = require("./NormalModule");
|
|
23
22
|
const { ImportPhaseUtils } = require("./dependencies/ImportPhase");
|
|
23
|
+
const { getContext } = require("./loaders/LoaderRunner");
|
|
24
24
|
const BasicEffectRulePlugin = require("./rules/BasicEffectRulePlugin");
|
|
25
25
|
const BasicMatcherRulePlugin = require("./rules/BasicMatcherRulePlugin");
|
|
26
26
|
const ObjectMatcherRulePlugin = require("./rules/ObjectMatcherRulePlugin");
|
|
@@ -31,6 +31,7 @@ const { getScheme } = require("./util/URLAbsoluteSpecifier");
|
|
|
31
31
|
const { cachedCleverMerge, cachedSetProperty } = require("./util/cleverMerge");
|
|
32
32
|
const { join } = require("./util/fs");
|
|
33
33
|
const {
|
|
34
|
+
escapeHashInPathRequest,
|
|
34
35
|
parseResource,
|
|
35
36
|
parseResourceWithoutFragment
|
|
36
37
|
} = require("./util/identifier");
|
|
@@ -62,14 +63,16 @@ const {
|
|
|
62
63
|
/** @typedef {import("./util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
|
|
63
64
|
|
|
64
65
|
/**
|
|
66
|
+
* Defines the callback type used by this module.
|
|
65
67
|
* @template T
|
|
66
68
|
* @typedef {import("./Compiler").Callback<T>} Callback
|
|
67
69
|
*/
|
|
68
70
|
|
|
69
71
|
/** @typedef {Pick<RuleSetRule, "type" | "sideEffects" | "parser" | "generator" | "resolve" | "layer" | "extractSourceMap">} ModuleSettings */
|
|
70
|
-
/** @typedef {
|
|
72
|
+
/** @typedef {NormalModuleCreateData & { settings: ModuleSettings }} CreateData */
|
|
71
73
|
|
|
72
74
|
/**
|
|
75
|
+
* Defines the resolve data type used by this module.
|
|
73
76
|
* @typedef {object} ResolveData
|
|
74
77
|
* @property {ModuleFactoryCreateData["contextInfo"]} contextInfo
|
|
75
78
|
* @property {ModuleFactoryCreateData["resolveOptions"]} resolveOptions
|
|
@@ -79,7 +82,7 @@ const {
|
|
|
79
82
|
* @property {ImportAttributes=} attributes
|
|
80
83
|
* @property {ModuleDependency[]} dependencies
|
|
81
84
|
* @property {string} dependencyType
|
|
82
|
-
* @property {CreateData} createData
|
|
85
|
+
* @property {Partial<CreateData>} createData
|
|
83
86
|
* @property {FileSystemDependencies} fileDependencies
|
|
84
87
|
* @property {FileSystemDependencies} missingDependencies
|
|
85
88
|
* @property {FileSystemDependencies} contextDependencies
|
|
@@ -88,6 +91,7 @@ const {
|
|
|
88
91
|
*/
|
|
89
92
|
|
|
90
93
|
/**
|
|
94
|
+
* Defines the resource data type used by this module.
|
|
91
95
|
* @typedef {object} ResourceData
|
|
92
96
|
* @property {string} resource
|
|
93
97
|
* @property {string=} path
|
|
@@ -97,6 +101,7 @@ const {
|
|
|
97
101
|
*/
|
|
98
102
|
|
|
99
103
|
/**
|
|
104
|
+
* Defines the resource scheme data type used by this module.
|
|
100
105
|
* @typedef {object} ResourceSchemeData
|
|
101
106
|
* @property {string=} mimetype mime type of the resource
|
|
102
107
|
* @property {string=} parameters additional parameters for the resource
|
|
@@ -107,11 +112,25 @@ const {
|
|
|
107
112
|
/** @typedef {ResourceData & { data: ResourceSchemeData & Partial<ResolveRequest> }} ResourceDataWithData */
|
|
108
113
|
|
|
109
114
|
/**
|
|
115
|
+
* Defines the parsed loader request type used by this module.
|
|
110
116
|
* @typedef {object} ParsedLoaderRequest
|
|
111
117
|
* @property {string} loader loader
|
|
112
118
|
* @property {string | undefined} options options
|
|
113
119
|
*/
|
|
114
120
|
|
|
121
|
+
/**
|
|
122
|
+
* Dependencies captured while resolving a loader.
|
|
123
|
+
* @typedef {object} ResolveDependencies
|
|
124
|
+
* @property {LazySet<string>} fileDependencies file dependencies of the resolve
|
|
125
|
+
* @property {LazySet<string>} contextDependencies context dependencies of the resolve
|
|
126
|
+
* @property {LazySet<string>} missingDependencies missing dependencies of the resolve
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Memoized result of resolving a loader for a given (context, request).
|
|
131
|
+
* @typedef {ResolveDependencies & { loader: string, query: string | undefined, type: string | undefined }} LoaderResolveCacheEntry
|
|
132
|
+
*/
|
|
133
|
+
|
|
115
134
|
/** @typedef {import("./ModuleTypeConstants").JAVASCRIPT_MODULE_TYPE_AUTO} JAVASCRIPT_MODULE_TYPE_AUTO */
|
|
116
135
|
/** @typedef {import("./ModuleTypeConstants").JAVASCRIPT_MODULE_TYPE_DYNAMIC} JAVASCRIPT_MODULE_TYPE_DYNAMIC */
|
|
117
136
|
/** @typedef {import("./ModuleTypeConstants").JAVASCRIPT_MODULE_TYPE_ESM} JAVASCRIPT_MODULE_TYPE_ESM */
|
|
@@ -127,8 +146,9 @@ const {
|
|
|
127
146
|
/** @typedef {import("./ModuleTypeConstants").CSS_MODULE_TYPE_GLOBAL} CSS_MODULE_TYPE_GLOBAL */
|
|
128
147
|
/** @typedef {import("./ModuleTypeConstants").CSS_MODULE_TYPE_MODULE} CSS_MODULE_TYPE_MODULE */
|
|
129
148
|
/** @typedef {import("./ModuleTypeConstants").CSS_MODULE_TYPE_AUTO} CSS_MODULE_TYPE_AUTO */
|
|
149
|
+
/** @typedef {import("./ModuleTypeConstants").HTML_MODULE_TYPE} HTML_MODULE_TYPE */
|
|
130
150
|
|
|
131
|
-
/** @typedef {JAVASCRIPT_MODULE_TYPE_AUTO | JAVASCRIPT_MODULE_TYPE_DYNAMIC | JAVASCRIPT_MODULE_TYPE_ESM | JSON_MODULE_TYPE | ASSET_MODULE_TYPE | ASSET_MODULE_TYPE_INLINE | ASSET_MODULE_TYPE_RESOURCE | ASSET_MODULE_TYPE_SOURCE | WEBASSEMBLY_MODULE_TYPE_ASYNC | WEBASSEMBLY_MODULE_TYPE_SYNC | CSS_MODULE_TYPE | CSS_MODULE_TYPE_GLOBAL | CSS_MODULE_TYPE_MODULE | CSS_MODULE_TYPE_AUTO} KnownNormalModuleTypes */
|
|
151
|
+
/** @typedef {JAVASCRIPT_MODULE_TYPE_AUTO | JAVASCRIPT_MODULE_TYPE_DYNAMIC | JAVASCRIPT_MODULE_TYPE_ESM | JSON_MODULE_TYPE | ASSET_MODULE_TYPE | ASSET_MODULE_TYPE_INLINE | ASSET_MODULE_TYPE_RESOURCE | ASSET_MODULE_TYPE_SOURCE | WEBASSEMBLY_MODULE_TYPE_ASYNC | WEBASSEMBLY_MODULE_TYPE_SYNC | CSS_MODULE_TYPE | CSS_MODULE_TYPE_GLOBAL | CSS_MODULE_TYPE_MODULE | CSS_MODULE_TYPE_AUTO | HTML_MODULE_TYPE} KnownNormalModuleTypes */
|
|
132
152
|
/** @typedef {KnownNormalModuleTypes | string} NormalModuleTypes */
|
|
133
153
|
|
|
134
154
|
const EMPTY_RESOLVE_OPTIONS = {};
|
|
@@ -143,6 +163,26 @@ const MATCH_RESOURCE_REGEX = /^([^!]+)!=!/;
|
|
|
143
163
|
const LEADING_DOT_EXTENSION_REGEX = /^[^.]/;
|
|
144
164
|
|
|
145
165
|
/**
|
|
166
|
+
* Replays the file/context/missing dependencies captured by a loader resolve
|
|
167
|
+
* into a resolve context, so memoized loaders still record everything needed
|
|
168
|
+
* for watch invalidation.
|
|
169
|
+
* @param {ResolveContext} resolveContext resolve context to add dependencies to
|
|
170
|
+
* @param {ResolveDependencies} source captured resolve dependencies
|
|
171
|
+
* @returns {void}
|
|
172
|
+
*/
|
|
173
|
+
const replayResolveDependencies = (resolveContext, source) => {
|
|
174
|
+
// On this path resolveContext always carries the three LazySet dependency
|
|
175
|
+
// sets built in the `resolve` hook, so they are safe to treat as LazySet.
|
|
176
|
+
/** @type {LazySet<string>} */
|
|
177
|
+
(resolveContext.fileDependencies).addAll(source.fileDependencies);
|
|
178
|
+
/** @type {LazySet<string>} */
|
|
179
|
+
(resolveContext.contextDependencies).addAll(source.contextDependencies);
|
|
180
|
+
/** @type {LazySet<string>} */
|
|
181
|
+
(resolveContext.missingDependencies).addAll(source.missingDependencies);
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Returns ident.
|
|
146
186
|
* @param {LoaderItem} data data
|
|
147
187
|
* @returns {string} ident
|
|
148
188
|
*/
|
|
@@ -163,6 +203,7 @@ const loaderToIdent = (data) => {
|
|
|
163
203
|
};
|
|
164
204
|
|
|
165
205
|
/**
|
|
206
|
+
* Stringify loaders and resource.
|
|
166
207
|
* @param {LoaderItem[]} loaders loaders
|
|
167
208
|
* @param {string} resource resource
|
|
168
209
|
* @returns {string} stringified loaders and resource
|
|
@@ -176,6 +217,7 @@ const stringifyLoadersAndResource = (loaders, resource) => {
|
|
|
176
217
|
};
|
|
177
218
|
|
|
178
219
|
/**
|
|
220
|
+
* Checks whether it needs calls.
|
|
179
221
|
* @param {number} times times
|
|
180
222
|
* @param {(err?: null | Error) => void} callback callback
|
|
181
223
|
* @returns {(err?: null | Error) => void} callback
|
|
@@ -191,6 +233,7 @@ const needCalls = (times, callback) => (err) => {
|
|
|
191
233
|
};
|
|
192
234
|
|
|
193
235
|
/**
|
|
236
|
+
* Merges global options.
|
|
194
237
|
* @template T
|
|
195
238
|
* @template O
|
|
196
239
|
* @param {T} globalOptions global options
|
|
@@ -221,6 +264,7 @@ const mergeGlobalOptions = (globalOptions, type, localOptions) => {
|
|
|
221
264
|
|
|
222
265
|
// TODO webpack 6 remove
|
|
223
266
|
/**
|
|
267
|
+
* Deprecation changed hook message.
|
|
224
268
|
* @template {import("tapable").Hook<EXPECTED_ANY, EXPECTED_ANY>} T
|
|
225
269
|
* @param {string} name name
|
|
226
270
|
* @param {T} hook hook
|
|
@@ -309,8 +353,14 @@ const ruleSetCompiler = new RuleSetCompiler([
|
|
|
309
353
|
/** @typedef {import("../declarations/WebpackOptions").CssGeneratorOptions} CssGeneratorOptions */
|
|
310
354
|
/** @typedef {import("../declarations/WebpackOptions").CssModuleGeneratorOptions} CssModuleGeneratorOptions */
|
|
311
355
|
|
|
356
|
+
/** @typedef {import("./html/HtmlParser")} HtmlParser */
|
|
357
|
+
/** @typedef {import("../declarations/WebpackOptions").EmptyParserOptions} HtmlParserOptions */
|
|
358
|
+
/** @typedef {import("./html/HtmlGenerator")} HtmlGenerator */
|
|
359
|
+
/** @typedef {import("../declarations/WebpackOptions").HtmlGeneratorOptions} HtmlGeneratorOptions */
|
|
360
|
+
|
|
312
361
|
/* eslint-disable jsdoc/type-formatting */
|
|
313
362
|
/**
|
|
363
|
+
* Defines the shared type used by this module.
|
|
314
364
|
* @typedef {[
|
|
315
365
|
* [JAVASCRIPT_MODULE_TYPE_AUTO, JavascriptParser, JavascriptParserOptions, JavascriptGenerator, EmptyGeneratorOptions],
|
|
316
366
|
* [JAVASCRIPT_MODULE_TYPE_DYNAMIC, JavascriptParser, JavascriptParserOptions, JavascriptGenerator, EmptyGeneratorOptions],
|
|
@@ -321,32 +371,48 @@ const ruleSetCompiler = new RuleSetCompiler([
|
|
|
321
371
|
* [ASSET_MODULE_TYPE_RESOURCE, AssetParser, EmptyParserOptions, AssetGenerator, AssetGeneratorOptions],
|
|
322
372
|
* [ASSET_MODULE_TYPE_SOURCE, AssetSourceParser, EmptyParserOptions, AssetSourceGenerator, EmptyGeneratorOptions],
|
|
323
373
|
* [ASSET_MODULE_TYPE_BYTES, AssetBytesParser, EmptyParserOptions, AssetBytesGenerator, EmptyGeneratorOptions],
|
|
324
|
-
* [WEBASSEMBLY_MODULE_TYPE_ASYNC, AsyncWebAssemblyParser, EmptyParserOptions, Generator,
|
|
325
|
-
* [WEBASSEMBLY_MODULE_TYPE_SYNC, WebAssemblyParser, EmptyParserOptions, Generator,
|
|
374
|
+
* [WEBASSEMBLY_MODULE_TYPE_ASYNC, AsyncWebAssemblyParser, EmptyParserOptions, Generator, EmptyGeneratorOptions],
|
|
375
|
+
* [WEBASSEMBLY_MODULE_TYPE_SYNC, WebAssemblyParser, EmptyParserOptions, Generator, EmptyGeneratorOptions],
|
|
326
376
|
* [CSS_MODULE_TYPE, CssParser, CssParserOptions, CssGenerator, CssGeneratorOptions],
|
|
327
377
|
* [CSS_MODULE_TYPE_AUTO, CssParser, CssModuleParserOptions, CssGenerator, CssModuleGeneratorOptions],
|
|
328
378
|
* [CSS_MODULE_TYPE_MODULE, CssParser, CssModuleParserOptions, CssGenerator, CssModuleGeneratorOptions],
|
|
329
379
|
* [CSS_MODULE_TYPE_GLOBAL, CssParser, CssModuleParserOptions, CssGenerator, CssModuleGeneratorOptions],
|
|
380
|
+
* [HTML_MODULE_TYPE, HtmlParser, HtmlParserOptions, HtmlGenerator, HtmlGeneratorOptions],
|
|
330
381
|
* [string, Parser, ParserOptions, Generator, GeneratorOptions],
|
|
331
382
|
* ]} ParsersAndGeneratorsByTypes
|
|
332
383
|
*/
|
|
333
384
|
/* eslint-enable jsdoc/type-formatting */
|
|
334
385
|
|
|
335
386
|
/**
|
|
387
|
+
* Defines the extract tuple elements type used by this module.
|
|
336
388
|
* @template {unknown[]} T
|
|
337
389
|
* @template {number[]} I
|
|
338
390
|
* @typedef {{ [K in keyof I]: K extends keyof I ? I[K] extends keyof T ? T[I[K]] : never : never }} ExtractTupleElements
|
|
339
391
|
*/
|
|
340
392
|
|
|
341
393
|
/**
|
|
394
|
+
* Represents the normal module factory runtime component.
|
|
342
395
|
* @template {unknown[]} T
|
|
343
396
|
* @template {number[]} A
|
|
344
397
|
* @template [R=void]
|
|
345
398
|
* @typedef {T extends [infer Head extends [string, ...unknown[]], ...infer Tail extends [string, ...unknown[]][]] ? Record<Head[0], SyncBailHook<ExtractTupleElements<Head, A>, R extends number ? Head[R] : R>> & RecordFactoryFromTuple<Tail, A, R> : unknown } RecordFactoryFromTuple
|
|
346
399
|
*/
|
|
347
400
|
|
|
401
|
+
/**
|
|
402
|
+
* Maps each tuple in `T` to a record from its `[0]` key to its `[I]` value.
|
|
403
|
+
* @template {unknown[]} T
|
|
404
|
+
* @template {number} I
|
|
405
|
+
* @typedef {T extends [infer Head extends [string, ...unknown[]], ...infer Tail extends [string, ...unknown[]][]] ? Record<Head[0], I extends keyof Head ? Head[I] : never> & TupleToTypeMap<Tail, I> : unknown } TupleToTypeMap
|
|
406
|
+
*/
|
|
407
|
+
|
|
408
|
+
/** @typedef {TupleToTypeMap<ParsersAndGeneratorsByTypes, 1>} ParserByType */
|
|
409
|
+
/** @typedef {TupleToTypeMap<ParsersAndGeneratorsByTypes, 2>} ParserOptionsByType */
|
|
410
|
+
/** @typedef {TupleToTypeMap<ParsersAndGeneratorsByTypes, 3>} GeneratorByType */
|
|
411
|
+
/** @typedef {TupleToTypeMap<ParsersAndGeneratorsByTypes, 4>} GeneratorOptionsByType */
|
|
412
|
+
|
|
348
413
|
class NormalModuleFactory extends ModuleFactory {
|
|
349
414
|
/**
|
|
415
|
+
* Creates an instance of NormalModuleFactory.
|
|
350
416
|
* @param {object} param params
|
|
351
417
|
* @param {string=} param.context context
|
|
352
418
|
* @param {InputFileSystem} param.fs file system
|
|
@@ -423,6 +489,8 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
423
489
|
this.generatorCache = new Map();
|
|
424
490
|
/** @type {Set<Module>} */
|
|
425
491
|
this._restoredUnsafeCacheEntries = new Set();
|
|
492
|
+
/** @type {Map<string, LoaderResolveCacheEntry>} */
|
|
493
|
+
this._loaderResolveCache = new Map();
|
|
426
494
|
|
|
427
495
|
/** @type {(resource: string) => import("./util/identifier").ParsedResource} */
|
|
428
496
|
const cacheParseResource = parseResource.bindCache(
|
|
@@ -471,7 +539,9 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
471
539
|
// Ignored
|
|
472
540
|
if (result === false) return callback();
|
|
473
541
|
|
|
474
|
-
const createData =
|
|
542
|
+
const createData =
|
|
543
|
+
/** @type {CreateData} */
|
|
544
|
+
(resolveData.createData);
|
|
475
545
|
|
|
476
546
|
this.hooks.createModule.callAsync(
|
|
477
547
|
createData,
|
|
@@ -484,18 +554,12 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
484
554
|
|
|
485
555
|
// TODO webpack 6 make it required and move javascript/wasm/asset properties to own module
|
|
486
556
|
createdModule = this.hooks.createModuleClass
|
|
487
|
-
.for(
|
|
488
|
-
/** @type {ModuleSettings} */
|
|
489
|
-
(createData.settings).type
|
|
490
|
-
)
|
|
557
|
+
.for(createData.settings.type)
|
|
491
558
|
.call(createData, resolveData);
|
|
492
559
|
|
|
493
560
|
if (!createdModule) {
|
|
494
561
|
createdModule = /** @type {Module} */ (
|
|
495
|
-
new NormalModule(
|
|
496
|
-
/** @type {NormalModuleCreateData} */
|
|
497
|
-
(createData)
|
|
498
|
-
)
|
|
562
|
+
new NormalModule(createData)
|
|
499
563
|
);
|
|
500
564
|
}
|
|
501
565
|
}
|
|
@@ -868,6 +932,7 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
868
932
|
);
|
|
869
933
|
|
|
870
934
|
/**
|
|
935
|
+
* Processes the provided string.
|
|
871
936
|
* @param {string} context context
|
|
872
937
|
*/
|
|
873
938
|
const defaultResolve = (context) => {
|
|
@@ -895,7 +960,7 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
895
960
|
this.resolveResource(
|
|
896
961
|
contextInfo,
|
|
897
962
|
context,
|
|
898
|
-
unresolvedResource,
|
|
963
|
+
escapeHashInPathRequest(unresolvedResource),
|
|
899
964
|
normalResolver,
|
|
900
965
|
resolveContext,
|
|
901
966
|
(err, _resolvedResource, resolvedResourceResolveData) => {
|
|
@@ -972,6 +1037,7 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
972
1037
|
}
|
|
973
1038
|
|
|
974
1039
|
/**
|
|
1040
|
+
* Processes the provided data.
|
|
975
1041
|
* @param {ModuleFactoryCreateData} data data object
|
|
976
1042
|
* @param {ModuleFactoryCallback} callback callback
|
|
977
1043
|
* @returns {void}
|
|
@@ -1080,6 +1146,7 @@ class NormalModuleFactory extends ModuleFactory {
|
|
|
1080
1146
|
}
|
|
1081
1147
|
|
|
1082
1148
|
/**
|
|
1149
|
+
* Processes the provided context info.
|
|
1083
1150
|
* @param {ModuleFactoryCreateDataContextInfo} contextInfo context info
|
|
1084
1151
|
* @param {string} context context
|
|
1085
1152
|
* @param {string} unresolvedResource unresolved resource
|
|
@@ -1152,6 +1219,7 @@ ${hints.join("\n\n")}`;
|
|
|
1152
1219
|
}
|
|
1153
1220
|
|
|
1154
1221
|
/**
|
|
1222
|
+
* Resolve resource error hints.
|
|
1155
1223
|
* @param {Error} error error
|
|
1156
1224
|
* @param {ModuleFactoryCreateDataContextInfo} contextInfo context info
|
|
1157
1225
|
* @param {string} context context
|
|
@@ -1277,6 +1345,7 @@ If changing the source code is not an option there is also a resolve options cal
|
|
|
1277
1345
|
}
|
|
1278
1346
|
|
|
1279
1347
|
/**
|
|
1348
|
+
* Resolves request array.
|
|
1280
1349
|
* @param {ModuleFactoryCreateDataContextInfo} contextInfo context info
|
|
1281
1350
|
* @param {string} context context
|
|
1282
1351
|
* @param {LoaderItem[]} array array
|
|
@@ -1298,16 +1367,47 @@ If changing the source code is not an option there is also a resolve options cal
|
|
|
1298
1367
|
asyncLib.map(
|
|
1299
1368
|
array,
|
|
1300
1369
|
/**
|
|
1370
|
+
* Handles the callback logic for this hook.
|
|
1301
1371
|
* @param {LoaderItem} item item
|
|
1302
1372
|
* @param {Callback<LoaderItem>} callback callback
|
|
1373
|
+
* @returns {void}
|
|
1303
1374
|
*/
|
|
1304
1375
|
(item, callback) => {
|
|
1376
|
+
// Loaders resolve identically for a given (context, request), so memoize
|
|
1377
|
+
// the result and the resolve's dependencies to skip repeated resolves.
|
|
1378
|
+
const cacheKey = `${context}\n${item.loader}`;
|
|
1379
|
+
const cached = this._loaderResolveCache.get(cacheKey);
|
|
1380
|
+
if (cached !== undefined) {
|
|
1381
|
+
replayResolveDependencies(resolveContext, cached);
|
|
1382
|
+
return callback(null, {
|
|
1383
|
+
loader: cached.loader,
|
|
1384
|
+
type: cached.type,
|
|
1385
|
+
options:
|
|
1386
|
+
item.options === undefined
|
|
1387
|
+
? cached.query
|
|
1388
|
+
? cached.query.slice(1)
|
|
1389
|
+
: undefined
|
|
1390
|
+
: item.options,
|
|
1391
|
+
ident: item.options === undefined ? undefined : item.ident
|
|
1392
|
+
});
|
|
1393
|
+
}
|
|
1394
|
+
// Capture this resolve's dependencies in dedicated sets so a future hit
|
|
1395
|
+
// can replay them; also feed them back into the caller's resolveContext.
|
|
1396
|
+
const captureContext = {
|
|
1397
|
+
...resolveContext,
|
|
1398
|
+
fileDependencies: new LazySet(),
|
|
1399
|
+
contextDependencies: new LazySet(),
|
|
1400
|
+
missingDependencies: new LazySet()
|
|
1401
|
+
};
|
|
1305
1402
|
resolver.resolve(
|
|
1306
1403
|
contextInfo,
|
|
1307
1404
|
context,
|
|
1308
1405
|
item.loader,
|
|
1309
|
-
|
|
1406
|
+
captureContext,
|
|
1310
1407
|
(err, result, resolveRequest) => {
|
|
1408
|
+
// Merge the captured dependencies back so a failed or successful
|
|
1409
|
+
// resolve records them for watch invalidation just like before.
|
|
1410
|
+
replayResolveDependencies(resolveContext, captureContext);
|
|
1311
1411
|
if (
|
|
1312
1412
|
err &&
|
|
1313
1413
|
/^[^/]*$/.test(item.loader) &&
|
|
@@ -1349,6 +1449,16 @@ If changing the source code is not an option there is also a resolve options cal
|
|
|
1349
1449
|
/** @type {ResolveRequest} */
|
|
1350
1450
|
(resolveRequest).descriptionFileData.type
|
|
1351
1451
|
);
|
|
1452
|
+
|
|
1453
|
+
this._loaderResolveCache.set(cacheKey, {
|
|
1454
|
+
loader: parsedResult.path,
|
|
1455
|
+
query: parsedResult.query,
|
|
1456
|
+
type,
|
|
1457
|
+
fileDependencies: captureContext.fileDependencies,
|
|
1458
|
+
contextDependencies: captureContext.contextDependencies,
|
|
1459
|
+
missingDependencies: captureContext.missingDependencies
|
|
1460
|
+
});
|
|
1461
|
+
|
|
1352
1462
|
/** @type {LoaderItem} */
|
|
1353
1463
|
const resolved = {
|
|
1354
1464
|
loader: parsedResult.path,
|
|
@@ -1376,9 +1486,11 @@ If changing the source code is not an option there is also a resolve options cal
|
|
|
1376
1486
|
}
|
|
1377
1487
|
|
|
1378
1488
|
/**
|
|
1379
|
-
*
|
|
1489
|
+
* Returns parser.
|
|
1490
|
+
* @template {string} T
|
|
1491
|
+
* @param {T} type type
|
|
1380
1492
|
* @param {ParserOptions} parserOptions parser options
|
|
1381
|
-
* @returns {
|
|
1493
|
+
* @returns {ParserByType[T]} parser
|
|
1382
1494
|
*/
|
|
1383
1495
|
getParser(type, parserOptions = EMPTY_PARSER_OPTIONS) {
|
|
1384
1496
|
let cache = this.parserCache.get(type);
|
|
@@ -1395,13 +1507,15 @@ If changing the source code is not an option there is also a resolve options cal
|
|
|
1395
1507
|
cache.set(parserOptions, parser);
|
|
1396
1508
|
}
|
|
1397
1509
|
|
|
1398
|
-
return parser;
|
|
1510
|
+
return /** @type {ParserByType[T]} */ (parser);
|
|
1399
1511
|
}
|
|
1400
1512
|
|
|
1401
1513
|
/**
|
|
1402
|
-
*
|
|
1514
|
+
* Creates a parser from the provided type.
|
|
1515
|
+
* @template {string} T
|
|
1516
|
+
* @param {T} type type
|
|
1403
1517
|
* @param {ParserOptions} parserOptions parser options
|
|
1404
|
-
* @returns {
|
|
1518
|
+
* @returns {ParserByType[T]} parser
|
|
1405
1519
|
*/
|
|
1406
1520
|
createParser(type, parserOptions = {}) {
|
|
1407
1521
|
parserOptions = mergeGlobalOptions(
|
|
@@ -1414,13 +1528,15 @@ If changing the source code is not an option there is also a resolve options cal
|
|
|
1414
1528
|
throw new Error(`No parser registered for ${type}`);
|
|
1415
1529
|
}
|
|
1416
1530
|
this.hooks.parser.for(type).call(parser, parserOptions);
|
|
1417
|
-
return parser;
|
|
1531
|
+
return /** @type {ParserByType[T]} */ (parser);
|
|
1418
1532
|
}
|
|
1419
1533
|
|
|
1420
1534
|
/**
|
|
1421
|
-
*
|
|
1535
|
+
* Returns generator.
|
|
1536
|
+
* @template {string} T
|
|
1537
|
+
* @param {T} type type of generator
|
|
1422
1538
|
* @param {GeneratorOptions} generatorOptions generator options
|
|
1423
|
-
* @returns {
|
|
1539
|
+
* @returns {GeneratorByType[T]} generator
|
|
1424
1540
|
*/
|
|
1425
1541
|
getGenerator(type, generatorOptions = EMPTY_GENERATOR_OPTIONS) {
|
|
1426
1542
|
let cache = this.generatorCache.get(type);
|
|
@@ -1437,13 +1553,15 @@ If changing the source code is not an option there is also a resolve options cal
|
|
|
1437
1553
|
cache.set(generatorOptions, generator);
|
|
1438
1554
|
}
|
|
1439
1555
|
|
|
1440
|
-
return generator;
|
|
1556
|
+
return /** @type {GeneratorByType[T]} */ (generator);
|
|
1441
1557
|
}
|
|
1442
1558
|
|
|
1443
1559
|
/**
|
|
1444
|
-
*
|
|
1560
|
+
* Creates a generator.
|
|
1561
|
+
* @template {string} T
|
|
1562
|
+
* @param {T} type type of generator
|
|
1445
1563
|
* @param {GeneratorOptions} generatorOptions generator options
|
|
1446
|
-
* @returns {
|
|
1564
|
+
* @returns {GeneratorByType[T]} generator
|
|
1447
1565
|
*/
|
|
1448
1566
|
createGenerator(type, generatorOptions = {}) {
|
|
1449
1567
|
generatorOptions = mergeGlobalOptions(
|
|
@@ -1458,10 +1576,11 @@ If changing the source code is not an option there is also a resolve options cal
|
|
|
1458
1576
|
throw new Error(`No generator registered for ${type}`);
|
|
1459
1577
|
}
|
|
1460
1578
|
this.hooks.generator.for(type).call(generator, generatorOptions);
|
|
1461
|
-
return generator;
|
|
1579
|
+
return /** @type {GeneratorByType[T]} */ (generator);
|
|
1462
1580
|
}
|
|
1463
1581
|
|
|
1464
1582
|
/**
|
|
1583
|
+
* Returns the resolver.
|
|
1465
1584
|
* @param {Parameters<ResolverFactory["get"]>[0]} type type of resolver
|
|
1466
1585
|
* @param {Parameters<ResolverFactory["get"]>[1]=} resolveOptions options
|
|
1467
1586
|
* @returns {ReturnType<ResolverFactory["get"]>} the resolver
|
|
@@ -22,12 +22,14 @@ class NormalModuleReplacementPlugin {
|
|
|
22
22
|
* @param {string | ModuleReplacer} newResource the resource replacement
|
|
23
23
|
*/
|
|
24
24
|
constructor(resourceRegExp, newResource) {
|
|
25
|
+
/** @type {RegExp} */
|
|
25
26
|
this.resourceRegExp = resourceRegExp;
|
|
27
|
+
/** @type {string | ModuleReplacer} */
|
|
26
28
|
this.newResource = newResource;
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
/**
|
|
30
|
-
*
|
|
32
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
31
33
|
* @param {Compiler} compiler the compiler instance
|
|
32
34
|
* @returns {void}
|
|
33
35
|
*/
|
package/lib/NullFactory.js
CHANGED
|
@@ -12,6 +12,7 @@ const ModuleFactory = require("./ModuleFactory");
|
|
|
12
12
|
|
|
13
13
|
class NullFactory extends ModuleFactory {
|
|
14
14
|
/**
|
|
15
|
+
* Processes the provided data.
|
|
15
16
|
* @param {ModuleFactoryCreateData} data data object
|
|
16
17
|
* @param {ModuleFactoryCallback} callback callback
|
|
17
18
|
* @returns {void}
|
package/lib/OptionsApply.js
CHANGED
package/lib/Parser.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
/** @typedef {Record<string, EXPECTED_ANY>} PreparsedAst */
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
+
* Defines the parser state base type used by this module.
|
|
15
16
|
* @typedef {object} ParserStateBase
|
|
16
17
|
* @property {string | Buffer} source
|
|
17
18
|
* @property {NormalModule} current
|
|
@@ -25,13 +26,14 @@
|
|
|
25
26
|
class Parser {
|
|
26
27
|
/* istanbul ignore next */
|
|
27
28
|
/**
|
|
29
|
+
* Parses the provided source and updates the parser state.
|
|
28
30
|
* @abstract
|
|
29
31
|
* @param {string | Buffer | PreparsedAst} source the source to parse
|
|
30
32
|
* @param {ParserState} state the parser state
|
|
31
33
|
* @returns {ParserState} the parser state
|
|
32
34
|
*/
|
|
33
35
|
parse(source, state) {
|
|
34
|
-
const AbstractMethodError = require("./AbstractMethodError");
|
|
36
|
+
const AbstractMethodError = require("./errors/AbstractMethodError");
|
|
35
37
|
|
|
36
38
|
throw new AbstractMethodError();
|
|
37
39
|
}
|
package/lib/PlatformPlugin.js
CHANGED
|
@@ -16,6 +16,7 @@ const PLUGIN_NAME = "PlatformPlugin";
|
|
|
16
16
|
*/
|
|
17
17
|
class PlatformPlugin {
|
|
18
18
|
/**
|
|
19
|
+
* Creates an instance of PlatformPlugin.
|
|
19
20
|
* @param {Partial<PlatformTargetProperties>} platform target properties
|
|
20
21
|
*/
|
|
21
22
|
constructor(platform) {
|
|
@@ -24,7 +25,7 @@ class PlatformPlugin {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
|
-
*
|
|
28
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
28
29
|
* @param {Compiler} compiler the compiler instance
|
|
29
30
|
* @returns {void}
|
|
30
31
|
*/
|
package/lib/PrefetchPlugin.js
CHANGED
|
@@ -13,12 +13,15 @@ const PLUGIN_NAME = "PrefetchPlugin";
|
|
|
13
13
|
|
|
14
14
|
class PrefetchPlugin {
|
|
15
15
|
/**
|
|
16
|
+
* Creates an instance of PrefetchPlugin.
|
|
16
17
|
* @param {string} context context or request if context is not set
|
|
17
18
|
* @param {string=} request request
|
|
18
19
|
*/
|
|
19
20
|
constructor(context, request) {
|
|
20
21
|
if (request) {
|
|
22
|
+
/** @type {string | null} */
|
|
21
23
|
this.context = context;
|
|
24
|
+
/** @type {string} */
|
|
22
25
|
this.request = request;
|
|
23
26
|
} else {
|
|
24
27
|
this.context = null;
|
|
@@ -27,7 +30,7 @@ class PrefetchPlugin {
|
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
/**
|
|
30
|
-
*
|
|
33
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
31
34
|
* @param {Compiler} compiler the compiler instance
|
|
32
35
|
* @returns {void}
|
|
33
36
|
*/
|