@depup/webpack 5.106.1-depup.0 → 5.109.2-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/bin/webpack.js +12 -0
- 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 +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- 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 +537 -139
- 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 +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- 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 +33 -30
- 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 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- 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 +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- 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 +123 -118
- 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 +52 -6
- 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 +302 -12
- 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 +612 -43
- 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/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- 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 +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -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 +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -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 +681 -367
- 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 +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- 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 +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- 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 +80 -52
- 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 +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -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 +49 -12
- 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 +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -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 +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- 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 +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- 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 +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- 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 +200 -50
- 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 +687 -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 +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- 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 +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- 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 +118 -7
- 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 +1173 -80
- 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 +11053 -3019
- 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
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
|
+
const Template = require("../Template");
|
|
9
|
+
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
|
10
|
+
|
|
11
|
+
/** @typedef {import("../Compilation")} Compilation */
|
|
12
|
+
|
|
13
|
+
class SetAnonymousDefaultNameRuntimeModule extends HelperRuntimeModule {
|
|
14
|
+
constructor() {
|
|
15
|
+
super("set anonymous default export name");
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Generates runtime code for this runtime module.
|
|
20
|
+
* @returns {string | null} runtime code
|
|
21
|
+
*/
|
|
22
|
+
generate() {
|
|
23
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
|
24
|
+
const { runtimeTemplate } = compilation;
|
|
25
|
+
const fn = RuntimeGlobals.setAnonymousDefaultName;
|
|
26
|
+
return Template.asString([
|
|
27
|
+
"// set .name for anonymous default exports per ES spec",
|
|
28
|
+
"// skipped when the property is non-configurable (pre-ES2015 engines),",
|
|
29
|
+
"// where Object.defineProperty would throw",
|
|
30
|
+
`${fn} = ${runtimeTemplate.basicFunction("x", [
|
|
31
|
+
'var descriptor = Object.getOwnPropertyDescriptor(x, "name");',
|
|
32
|
+
'if (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, "name", { value: "default", configurable: true });'
|
|
33
|
+
])};`
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
module.exports = SetAnonymousDefaultNameRuntimeModule;
|
|
@@ -13,6 +13,9 @@ const StartupEntrypointRuntimeModule = require("./StartupEntrypointRuntimeModule
|
|
|
13
13
|
/** @typedef {import("../Compiler")} Compiler */
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
+
* Options that describe which chunk loading backend should receive startup
|
|
17
|
+
* dependency handling and whether the runtime should wait for those chunks
|
|
18
|
+
* asynchronously.
|
|
16
19
|
* @typedef {object} Options
|
|
17
20
|
* @property {ChunkLoadingType} chunkLoading
|
|
18
21
|
* @property {boolean=} asyncChunkLoading
|
|
@@ -20,8 +23,14 @@ const StartupEntrypointRuntimeModule = require("./StartupEntrypointRuntimeModule
|
|
|
20
23
|
|
|
21
24
|
const PLUGIN_NAME = "StartupChunkDependenciesPlugin";
|
|
22
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Adds runtime modules that delay entry startup until entry-dependent chunks
|
|
28
|
+
* required by the selected chunk loading strategy have been loaded.
|
|
29
|
+
*/
|
|
23
30
|
class StartupChunkDependenciesPlugin {
|
|
24
31
|
/**
|
|
32
|
+
* Configures which chunk loading implementation this plugin should enhance
|
|
33
|
+
* and whether startup waits should use promises or synchronous ensures.
|
|
25
34
|
* @param {Options} options options
|
|
26
35
|
*/
|
|
27
36
|
constructor(options) {
|
|
@@ -35,7 +44,8 @@ class StartupChunkDependenciesPlugin {
|
|
|
35
44
|
}
|
|
36
45
|
|
|
37
46
|
/**
|
|
38
|
-
*
|
|
47
|
+
* Registers compilation hooks that attach the startup dependency runtime
|
|
48
|
+
* modules to entry chunks using the configured chunk loading mechanism.
|
|
39
49
|
* @param {Compiler} compiler the compiler instance
|
|
40
50
|
* @returns {void}
|
|
41
51
|
*/
|
|
@@ -43,6 +53,8 @@ class StartupChunkDependenciesPlugin {
|
|
|
43
53
|
compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
|
|
44
54
|
const globalChunkLoading = compilation.outputOptions.chunkLoading;
|
|
45
55
|
/**
|
|
56
|
+
* Determines whether a chunk uses the chunk loading backend that this
|
|
57
|
+
* plugin is responsible for augmenting.
|
|
46
58
|
* @param {Chunk} chunk chunk to check
|
|
47
59
|
* @returns {boolean} true, when the plugin is enabled for the chunk
|
|
48
60
|
*/
|
|
@@ -24,6 +24,7 @@ class StartupChunkDependenciesRuntimeModule extends RuntimeModule {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
+
* Generates runtime code for this runtime module.
|
|
27
28
|
* @returns {string | null} runtime code
|
|
28
29
|
*/
|
|
29
30
|
generate() {
|
|
@@ -35,7 +36,7 @@ class StartupChunkDependenciesRuntimeModule extends RuntimeModule {
|
|
|
35
36
|
const compilation = /** @type {Compilation} */ (this.compilation);
|
|
36
37
|
const { runtimeTemplate } = compilation;
|
|
37
38
|
return Template.asString([
|
|
38
|
-
|
|
39
|
+
`${runtimeTemplate.renderConst()} next = ${RuntimeGlobals.startup};`,
|
|
39
40
|
`${RuntimeGlobals.startup} = ${runtimeTemplate.basicFunction(
|
|
40
41
|
"",
|
|
41
42
|
!this.asyncChunkLoading
|
|
@@ -20,16 +20,18 @@ class StartupEntrypointRuntimeModule extends RuntimeModule {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
+
* Generates runtime code for this runtime module.
|
|
23
24
|
* @returns {string | null} runtime code
|
|
24
25
|
*/
|
|
25
26
|
generate() {
|
|
26
27
|
const compilation = /** @type {Compilation} */ (this.compilation);
|
|
27
28
|
const { runtimeTemplate } = compilation;
|
|
29
|
+
const cst = runtimeTemplate.renderConst();
|
|
28
30
|
return `${
|
|
29
31
|
RuntimeGlobals.startupEntrypoint
|
|
30
32
|
} = ${runtimeTemplate.basicFunction("result, chunkIds, fn", [
|
|
31
33
|
"// arguments: chunkIds, moduleId are deprecated",
|
|
32
|
-
|
|
34
|
+
`${cst} moduleId = chunkIds;`,
|
|
33
35
|
`if(!fn) chunkIds = result, fn = ${runtimeTemplate.returningFunction(
|
|
34
36
|
`${RuntimeGlobals.require}(${RuntimeGlobals.entryModuleId} = moduleId)`
|
|
35
37
|
)};`,
|
|
@@ -38,13 +40,13 @@ class StartupEntrypointRuntimeModule extends RuntimeModule {
|
|
|
38
40
|
`return Promise.all(chunkIds.map(${RuntimeGlobals.ensureChunk}, ${
|
|
39
41
|
RuntimeGlobals.require
|
|
40
42
|
})).then(${runtimeTemplate.basicFunction("", [
|
|
41
|
-
|
|
43
|
+
`${cst} r = fn();`,
|
|
42
44
|
"return r === undefined ? result : r;"
|
|
43
45
|
])})`
|
|
44
46
|
]
|
|
45
47
|
: [
|
|
46
48
|
`chunkIds.map(${RuntimeGlobals.ensureChunk}, ${RuntimeGlobals.require})`,
|
|
47
|
-
|
|
49
|
+
`${cst} r = fn();`,
|
|
48
50
|
"return r === undefined ? result : r;"
|
|
49
51
|
])
|
|
50
52
|
])}`;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
|
+
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
|
9
|
+
|
|
10
|
+
/** @typedef {import("../Compilation")} Compilation */
|
|
11
|
+
|
|
12
|
+
class WorkerRuntimeModule extends HelperRuntimeModule {
|
|
13
|
+
constructor() {
|
|
14
|
+
super("worker");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Generates runtime code for this runtime module.
|
|
19
|
+
* @returns {string | null} runtime code
|
|
20
|
+
*/
|
|
21
|
+
generate() {
|
|
22
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
|
23
|
+
const { runtimeTemplate } = compilation;
|
|
24
|
+
// prefer a global `Worker` when present (web, Bun, polyfills), else `worker_threads.Worker`
|
|
25
|
+
const nodeWorker = runtimeTemplate.getBuiltinModule(
|
|
26
|
+
runtimeTemplate.renderNodePrefixForCoreModule("worker_threads"),
|
|
27
|
+
".Worker"
|
|
28
|
+
);
|
|
29
|
+
return `${RuntimeGlobals.worker} = typeof Worker !== "undefined" ? Worker : ${nodeWorker};`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
module.exports = WorkerRuntimeModule;
|
|
@@ -14,7 +14,7 @@ const PLUGIN_NAME = "DataUriPlugin";
|
|
|
14
14
|
|
|
15
15
|
class DataUriPlugin {
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
18
18
|
* @param {Compiler} compiler the compiler instance
|
|
19
19
|
* @returns {void}
|
|
20
20
|
*/
|
|
@@ -24,7 +24,7 @@ class DataUriPlugin {
|
|
|
24
24
|
(compilation, { normalModuleFactory }) => {
|
|
25
25
|
normalModuleFactory.hooks.resolveForScheme
|
|
26
26
|
.for("data")
|
|
27
|
-
.tap(PLUGIN_NAME, (resourceData) => {
|
|
27
|
+
.tap(PLUGIN_NAME, (resourceData, resolveData) => {
|
|
28
28
|
const match = URIRegEx.exec(resourceData.resource);
|
|
29
29
|
if (match) {
|
|
30
30
|
resourceData.data.mimetype = match[1] || "";
|
|
@@ -34,6 +34,18 @@ class DataUriPlugin {
|
|
|
34
34
|
);
|
|
35
35
|
resourceData.data.encodedContent = match[4] || "";
|
|
36
36
|
}
|
|
37
|
+
// Inherit the issuer's resolution context so any nested
|
|
38
|
+
// dependencies discovered while parsing the data URI's body
|
|
39
|
+
// (e.g. `url(...)` / `@import` inside an inline CSS data
|
|
40
|
+
// URI) resolve relative to where the URI was referenced
|
|
41
|
+
// from, instead of against the synthetic `data:.../` path
|
|
42
|
+
// that `getContext("data:…")` would otherwise infer.
|
|
43
|
+
if (
|
|
44
|
+
resourceData.context === undefined &&
|
|
45
|
+
resolveData.context !== undefined
|
|
46
|
+
) {
|
|
47
|
+
resourceData.context = resolveData.context;
|
|
48
|
+
}
|
|
37
49
|
});
|
|
38
50
|
|
|
39
51
|
NormalModule.getCompilationHooks(compilation)
|
|
@@ -29,6 +29,7 @@ const memoize = require("../util/memoize");
|
|
|
29
29
|
/** @typedef {import("../Module").BuildInfo} BuildInfo */
|
|
30
30
|
/** @typedef {import("../NormalModuleFactory").ResourceDataWithData} ResourceDataWithData */
|
|
31
31
|
/** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
|
|
32
|
+
/** @typedef {import("../NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
|
|
32
33
|
|
|
33
34
|
const getHttp = memoize(() => require("http"));
|
|
34
35
|
const getHttps = memoize(() => require("https"));
|
|
@@ -38,11 +39,13 @@ const MAX_REDIRECTS = 5;
|
|
|
38
39
|
/** @typedef {(url: URL, requestOptions: RequestOptions, callback: (incomingMessage: IncomingMessage) => void) => EventEmitter} Fetch */
|
|
39
40
|
|
|
40
41
|
/**
|
|
42
|
+
* Defines the events map type used by this module.
|
|
41
43
|
* @typedef {object} EventsMap
|
|
42
44
|
* @property {[Error]} error
|
|
43
45
|
*/
|
|
44
46
|
|
|
45
47
|
/**
|
|
48
|
+
* Returns fn.
|
|
46
49
|
* @param {typeof import("http") | typeof import("https")} request request
|
|
47
50
|
* @param {string | URL | undefined} proxy proxy
|
|
48
51
|
* @returns {Fetch} fn
|
|
@@ -52,6 +55,7 @@ const proxyFetch = (request, proxy) => (url, options, callback) => {
|
|
|
52
55
|
const eventEmitter = new EventEmitter();
|
|
53
56
|
|
|
54
57
|
/**
|
|
58
|
+
* Processes the provided socket.
|
|
55
59
|
* @param {Socket=} socket socket
|
|
56
60
|
* @returns {void}
|
|
57
61
|
*/
|
|
@@ -105,6 +109,7 @@ const proxyFetch = (request, proxy) => (url, options, callback) => {
|
|
|
105
109
|
let inProgressWrite;
|
|
106
110
|
|
|
107
111
|
/**
|
|
112
|
+
* Returns safe path.
|
|
108
113
|
* @param {string} str path
|
|
109
114
|
* @returns {string} safe path
|
|
110
115
|
*/
|
|
@@ -112,6 +117,7 @@ const toSafePath = (str) =>
|
|
|
112
117
|
str.replace(/^[^a-z0-9]+|[^a-z0-9]+$/gi, "").replace(/[^a-z0-9._-]+/gi, "_");
|
|
113
118
|
|
|
114
119
|
/**
|
|
120
|
+
* Returns integrity.
|
|
115
121
|
* @param {Buffer} content content
|
|
116
122
|
* @returns {string} integrity
|
|
117
123
|
*/
|
|
@@ -123,6 +129,7 @@ const computeIntegrity = (content) => {
|
|
|
123
129
|
};
|
|
124
130
|
|
|
125
131
|
/**
|
|
132
|
+
* Returns true, if integrity matches.
|
|
126
133
|
* @param {Buffer} content content
|
|
127
134
|
* @param {string} integrity integrity
|
|
128
135
|
* @returns {boolean} true, if integrity matches
|
|
@@ -133,6 +140,7 @@ const verifyIntegrity = (content, integrity) => {
|
|
|
133
140
|
};
|
|
134
141
|
|
|
135
142
|
/**
|
|
143
|
+
* Parses key value pairs.
|
|
136
144
|
* @param {string} str input
|
|
137
145
|
* @returns {Record<string, string>} parsed
|
|
138
146
|
*/
|
|
@@ -155,6 +163,7 @@ const parseKeyValuePairs = (str) => {
|
|
|
155
163
|
};
|
|
156
164
|
|
|
157
165
|
/**
|
|
166
|
+
* Parses cache control.
|
|
158
167
|
* @param {string | undefined} cacheControl Cache-Control header
|
|
159
168
|
* @param {number} requestTime timestamp of request
|
|
160
169
|
* @returns {{ storeCache: boolean, storeLock: boolean, validUntil: number }} Logic for storing in cache and lockfile cache
|
|
@@ -182,6 +191,7 @@ const parseCacheControl = (cacheControl, requestTime) => {
|
|
|
182
191
|
};
|
|
183
192
|
|
|
184
193
|
/**
|
|
194
|
+
* Defines the lockfile entry type used by this module.
|
|
185
195
|
* @typedef {object} LockfileEntry
|
|
186
196
|
* @property {string} resolved
|
|
187
197
|
* @property {string} integrity
|
|
@@ -189,6 +199,7 @@ const parseCacheControl = (cacheControl, requestTime) => {
|
|
|
189
199
|
*/
|
|
190
200
|
|
|
191
201
|
/**
|
|
202
|
+
* Are lockfile entries equal.
|
|
192
203
|
* @param {LockfileEntry} a first lockfile entry
|
|
193
204
|
* @param {LockfileEntry} b second lockfile entry
|
|
194
205
|
* @returns {boolean} true when equal, otherwise false
|
|
@@ -199,6 +210,7 @@ const areLockfileEntriesEqual = (a, b) =>
|
|
|
199
210
|
a.contentType === b.contentType;
|
|
200
211
|
|
|
201
212
|
/**
|
|
213
|
+
* Returns , integrity: ${string}, contentType: ${string}`} stringified entry.
|
|
202
214
|
* @param {LockfileEntry} entry lockfile entry
|
|
203
215
|
* @returns {`resolved: ${string}, integrity: ${string}, contentType: ${string}`} stringified entry
|
|
204
216
|
*/
|
|
@@ -221,6 +233,36 @@ const sanitizeUrlForError = (href) => {
|
|
|
221
233
|
}
|
|
222
234
|
};
|
|
223
235
|
|
|
236
|
+
/**
|
|
237
|
+
* Splits lockfile content containing git merge conflict markers (2-way or
|
|
238
|
+
* diff3) into its two sides so each can be parsed as valid JSON on its own.
|
|
239
|
+
* @param {string} content lockfile content with conflict markers
|
|
240
|
+
* @returns {[string, string]} the "ours" and "theirs" variants
|
|
241
|
+
*/
|
|
242
|
+
const splitMergeConflicts = (content) => {
|
|
243
|
+
/** @type {string[]} */
|
|
244
|
+
const ours = [];
|
|
245
|
+
/** @type {string[]} */
|
|
246
|
+
const theirs = [];
|
|
247
|
+
// 0 = shared, 1 = ours, 2 = theirs, 3 = common ancestor (diff3, dropped)
|
|
248
|
+
let side = 0;
|
|
249
|
+
for (const line of content.split(/\r?\n/)) {
|
|
250
|
+
if (line.startsWith("<<<<<<<")) {
|
|
251
|
+
side = 1;
|
|
252
|
+
} else if (line.startsWith("|||||||")) {
|
|
253
|
+
side = 3;
|
|
254
|
+
} else if (line.startsWith("=======")) {
|
|
255
|
+
side = 2;
|
|
256
|
+
} else if (line.startsWith(">>>>>>>")) {
|
|
257
|
+
side = 0;
|
|
258
|
+
} else {
|
|
259
|
+
if (side === 0 || side === 1) ours.push(line);
|
|
260
|
+
if (side === 0 || side === 2) theirs.push(line);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return [ours.join("\n"), theirs.join("\n")];
|
|
264
|
+
};
|
|
265
|
+
|
|
224
266
|
class Lockfile {
|
|
225
267
|
constructor() {
|
|
226
268
|
/** @type {number} */
|
|
@@ -230,11 +272,21 @@ class Lockfile {
|
|
|
230
272
|
}
|
|
231
273
|
|
|
232
274
|
/**
|
|
275
|
+
* Parses the provided source and updates the parser state.
|
|
233
276
|
* @param {string} content content of the lockfile
|
|
234
277
|
* @returns {Lockfile} lockfile
|
|
235
278
|
*/
|
|
236
279
|
static parse(content) {
|
|
237
|
-
//
|
|
280
|
+
// A git merge conflict leaves `<<<<<<<`/`=======`/`>>>>>>>` markers; parse
|
|
281
|
+
// each side and union the entries, since lockfile changes only add keys.
|
|
282
|
+
if (content.includes("<<<<<<<")) {
|
|
283
|
+
const [ours, theirs] = splitMergeConflicts(content);
|
|
284
|
+
const lockfile = Lockfile.parse(ours);
|
|
285
|
+
for (const [key, entry] of Lockfile.parse(theirs).entries) {
|
|
286
|
+
if (!lockfile.entries.has(key)) lockfile.entries.set(key, entry);
|
|
287
|
+
}
|
|
288
|
+
return lockfile;
|
|
289
|
+
}
|
|
238
290
|
const data = JSON.parse(content);
|
|
239
291
|
if (data.version !== 1) {
|
|
240
292
|
throw new Error(`Unsupported lockfile version ${data.version}`);
|
|
@@ -257,6 +309,7 @@ class Lockfile {
|
|
|
257
309
|
}
|
|
258
310
|
|
|
259
311
|
/**
|
|
312
|
+
* Returns a string representation.
|
|
260
313
|
* @returns {string} stringified lockfile
|
|
261
314
|
*/
|
|
262
315
|
toString() {
|
|
@@ -281,16 +334,19 @@ class Lockfile {
|
|
|
281
334
|
}
|
|
282
335
|
|
|
283
336
|
/**
|
|
337
|
+
* Defines the fn without key callback type used by this module.
|
|
284
338
|
* @template R
|
|
285
339
|
* @typedef {(err: Error | null, result?: R) => void} FnWithoutKeyCallback
|
|
286
340
|
*/
|
|
287
341
|
|
|
288
342
|
/**
|
|
343
|
+
* Defines the fn without key type used by this module.
|
|
289
344
|
* @template R
|
|
290
345
|
* @typedef {(callback: FnWithoutKeyCallback<R>) => void} FnWithoutKey
|
|
291
346
|
*/
|
|
292
347
|
|
|
293
348
|
/**
|
|
349
|
+
* Caches d without key.
|
|
294
350
|
* @template R
|
|
295
351
|
* @param {FnWithoutKey<R>} fn function
|
|
296
352
|
* @returns {FnWithoutKey<R>} cached function
|
|
@@ -324,17 +380,20 @@ const cachedWithoutKey = (fn) => {
|
|
|
324
380
|
};
|
|
325
381
|
|
|
326
382
|
/**
|
|
383
|
+
* Defines the fn with key callback type used by this module.
|
|
327
384
|
* @template R
|
|
328
385
|
* @typedef {(err: Error | null, result?: R) => void} FnWithKeyCallback
|
|
329
386
|
*/
|
|
330
387
|
|
|
331
388
|
/**
|
|
389
|
+
* Defines the fn with key type used by this module.
|
|
332
390
|
* @template T
|
|
333
391
|
* @template R
|
|
334
392
|
* @typedef {(item: T, callback: FnWithKeyCallback<R>) => void} FnWithKey
|
|
335
393
|
*/
|
|
336
394
|
|
|
337
395
|
/**
|
|
396
|
+
* Returns } cached function.
|
|
338
397
|
* @template T
|
|
339
398
|
* @template R
|
|
340
399
|
* @param {FnWithKey<T, R>} fn function
|
|
@@ -343,12 +402,14 @@ const cachedWithoutKey = (fn) => {
|
|
|
343
402
|
*/
|
|
344
403
|
const cachedWithKey = (fn, forceFn = fn) => {
|
|
345
404
|
/**
|
|
405
|
+
* Defines the cache entry type used by this module.
|
|
346
406
|
* @template R
|
|
347
407
|
* @typedef {{ result?: R, error?: Error, callbacks?: FnWithKeyCallback<R>[], force?: true }} CacheEntry
|
|
348
408
|
*/
|
|
349
409
|
/** @type {Map<T, CacheEntry<R>>} */
|
|
350
410
|
const cache = new Map();
|
|
351
411
|
/**
|
|
412
|
+
* Processes the provided arg.
|
|
352
413
|
* @param {T} arg arg
|
|
353
414
|
* @param {FnWithKeyCallback<R>} callback callback
|
|
354
415
|
* @returns {void}
|
|
@@ -381,6 +442,7 @@ const cachedWithKey = (fn, forceFn = fn) => {
|
|
|
381
442
|
});
|
|
382
443
|
};
|
|
383
444
|
/**
|
|
445
|
+
* Processes the provided arg.
|
|
384
446
|
* @param {T} arg arg
|
|
385
447
|
* @param {FnWithKeyCallback<R>} callback callback
|
|
386
448
|
* @returns {void}
|
|
@@ -417,12 +479,14 @@ const cachedWithKey = (fn, forceFn = fn) => {
|
|
|
417
479
|
};
|
|
418
480
|
|
|
419
481
|
/**
|
|
482
|
+
* Defines the lockfile cache type used by this module.
|
|
420
483
|
* @typedef {object} LockfileCache
|
|
421
484
|
* @property {Lockfile} lockfile lockfile
|
|
422
485
|
* @property {Snapshot} snapshot snapshot
|
|
423
486
|
*/
|
|
424
487
|
|
|
425
488
|
/**
|
|
489
|
+
* Defines the resolve content result type used by this module.
|
|
426
490
|
* @typedef {object} ResolveContentResult
|
|
427
491
|
* @property {LockfileEntry} entry lockfile entry
|
|
428
492
|
* @property {Buffer} content content
|
|
@@ -440,6 +504,7 @@ const PLUGIN_NAME = "HttpUriPlugin";
|
|
|
440
504
|
|
|
441
505
|
class HttpUriPlugin {
|
|
442
506
|
/**
|
|
507
|
+
* Creates an instance of HttpUriPlugin.
|
|
443
508
|
* @param {HttpUriPluginOptions} options options
|
|
444
509
|
*/
|
|
445
510
|
constructor(options) {
|
|
@@ -448,7 +513,7 @@ class HttpUriPlugin {
|
|
|
448
513
|
}
|
|
449
514
|
|
|
450
515
|
/**
|
|
451
|
-
*
|
|
516
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
452
517
|
* @param {Compiler} compiler the compiler instance
|
|
453
518
|
* @returns {void}
|
|
454
519
|
*/
|
|
@@ -519,6 +584,7 @@ class HttpUriPlugin {
|
|
|
519
584
|
/** @type {Map<string, string>} */
|
|
520
585
|
const cacheKeyCache = new Map();
|
|
521
586
|
/**
|
|
587
|
+
* Returns the key.
|
|
522
588
|
* @param {string} url the url
|
|
523
589
|
* @returns {string} the key
|
|
524
590
|
*/
|
|
@@ -531,6 +597,7 @@ class HttpUriPlugin {
|
|
|
531
597
|
};
|
|
532
598
|
|
|
533
599
|
/**
|
|
600
|
+
* Returns the key.
|
|
534
601
|
* @param {string} url the url
|
|
535
602
|
* @returns {string} the key
|
|
536
603
|
*/
|
|
@@ -552,6 +619,7 @@ class HttpUriPlugin {
|
|
|
552
619
|
|
|
553
620
|
const getLockfile = cachedWithoutKey(
|
|
554
621
|
/**
|
|
622
|
+
* Handles the callback logic for this hook.
|
|
555
623
|
* @param {(err: Error | null, lockfile?: Lockfile) => void} callback callback
|
|
556
624
|
* @returns {void}
|
|
557
625
|
*/
|
|
@@ -604,6 +672,7 @@ class HttpUriPlugin {
|
|
|
604
672
|
let lockfileUpdates;
|
|
605
673
|
|
|
606
674
|
/**
|
|
675
|
+
* Stores the provided lockfile.
|
|
607
676
|
* @param {Lockfile} lockfile lockfile instance
|
|
608
677
|
* @param {string} url url to store
|
|
609
678
|
* @param {LockfileEntry | "ignore" | "no-cache"} entry lockfile entry
|
|
@@ -643,6 +712,7 @@ class HttpUriPlugin {
|
|
|
643
712
|
};
|
|
644
713
|
|
|
645
714
|
/**
|
|
715
|
+
* Stores the provided lockfile.
|
|
646
716
|
* @param {Lockfile} lockfile lockfile
|
|
647
717
|
* @param {string} url url
|
|
648
718
|
* @param {ResolveContentResult} result result
|
|
@@ -672,6 +742,7 @@ class HttpUriPlugin {
|
|
|
672
742
|
|
|
673
743
|
for (const { scheme, fetch } of schemes) {
|
|
674
744
|
/**
|
|
745
|
+
* Validate redirect location.
|
|
675
746
|
* @param {string} location Location header value (relative or absolute)
|
|
676
747
|
* @param {string} base current absolute URL
|
|
677
748
|
* @returns {string} absolute, validated redirect target
|
|
@@ -702,6 +773,7 @@ class HttpUriPlugin {
|
|
|
702
773
|
return nextUrl.href;
|
|
703
774
|
};
|
|
704
775
|
/**
|
|
776
|
+
* Processes the provided url.
|
|
705
777
|
* @param {string} url URL
|
|
706
778
|
* @param {string | null} integrity integrity
|
|
707
779
|
* @param {(err: Error | null, resolveContentResult?: ResolveContentResult) => void} callback callback
|
|
@@ -714,6 +786,7 @@ class HttpUriPlugin {
|
|
|
714
786
|
redirectCount = 0
|
|
715
787
|
) => {
|
|
716
788
|
/**
|
|
789
|
+
* Processes the provided err.
|
|
717
790
|
* @param {Error | null} err error
|
|
718
791
|
* @param {FetchResult=} _result fetch result
|
|
719
792
|
* @returns {void}
|
|
@@ -772,6 +845,7 @@ class HttpUriPlugin {
|
|
|
772
845
|
};
|
|
773
846
|
|
|
774
847
|
/**
|
|
848
|
+
* Processes the provided url.
|
|
775
849
|
* @param {string} url URL
|
|
776
850
|
* @param {FetchResult | RedirectFetchResult | undefined} cachedResult result from cache
|
|
777
851
|
* @param {(err: Error | null, fetchResult?: FetchResult) => void} callback callback
|
|
@@ -798,6 +872,7 @@ class HttpUriPlugin {
|
|
|
798
872
|
requestTime
|
|
799
873
|
);
|
|
800
874
|
/**
|
|
875
|
+
* Processes the provided partial result.
|
|
801
876
|
* @param {Partial<Pick<FetchResultMeta, "fresh">> & (Pick<RedirectFetchResult, "location"> | Pick<ContentFetchResult, "content" | "entry">)} partialResult result
|
|
802
877
|
* @returns {void}
|
|
803
878
|
*/
|
|
@@ -914,6 +989,7 @@ class HttpUriPlugin {
|
|
|
914
989
|
stream.on(
|
|
915
990
|
"data",
|
|
916
991
|
/**
|
|
992
|
+
* Handles the callback logic for this hook.
|
|
917
993
|
* @param {Buffer} chunk chunk
|
|
918
994
|
*/
|
|
919
995
|
(chunk) => {
|
|
@@ -957,6 +1033,7 @@ class HttpUriPlugin {
|
|
|
957
1033
|
|
|
958
1034
|
const fetchContent = cachedWithKey(
|
|
959
1035
|
/**
|
|
1036
|
+
* Handles the callback logic for this hook.
|
|
960
1037
|
* @param {string} url URL
|
|
961
1038
|
* @param {(err: Error | null, result?: FetchResult) => void} callback callback
|
|
962
1039
|
* @returns {void}
|
|
@@ -975,6 +1052,7 @@ class HttpUriPlugin {
|
|
|
975
1052
|
);
|
|
976
1053
|
|
|
977
1054
|
/**
|
|
1055
|
+
* Checks whether this http uri plugin is allowed.
|
|
978
1056
|
* @param {string} uri uri
|
|
979
1057
|
* @returns {boolean} true when allowed, otherwise false
|
|
980
1058
|
*/
|
|
@@ -1013,6 +1091,7 @@ class HttpUriPlugin {
|
|
|
1013
1091
|
|
|
1014
1092
|
const getInfo = cachedWithKey(
|
|
1015
1093
|
/**
|
|
1094
|
+
* Processes the provided url.
|
|
1016
1095
|
* @param {string} url the url
|
|
1017
1096
|
* @param {(err: Error | null, info?: Info) => void} callback callback
|
|
1018
1097
|
* @returns {void}
|
|
@@ -1085,6 +1164,7 @@ Remove this line from the lockfile to force upgrading.`
|
|
|
1085
1164
|
}
|
|
1086
1165
|
let entry = entryOrString;
|
|
1087
1166
|
/**
|
|
1167
|
+
* Processes the provided locked content.
|
|
1088
1168
|
* @param {Buffer=} lockedContent locked content
|
|
1089
1169
|
*/
|
|
1090
1170
|
const doFetch = (lockedContent) => {
|
|
@@ -1165,6 +1245,7 @@ Remove this line from the lockfile to force upgrading.`
|
|
|
1165
1245
|
}
|
|
1166
1246
|
const content = /** @type {Buffer} */ (result);
|
|
1167
1247
|
/**
|
|
1248
|
+
* Continue with cached content.
|
|
1168
1249
|
* @param {Buffer | undefined} _result result
|
|
1169
1250
|
* @returns {void}
|
|
1170
1251
|
*/
|
|
@@ -1262,6 +1343,7 @@ Run build with un-frozen lockfile to automatically fix lockfile.`
|
|
|
1262
1343
|
);
|
|
1263
1344
|
|
|
1264
1345
|
/**
|
|
1346
|
+
* Respond with url module.
|
|
1265
1347
|
* @param {URL} url url
|
|
1266
1348
|
* @param {ResourceDataWithData} resourceData resource data
|
|
1267
1349
|
* @param {(err: Error | null, result: true | void) => void} callback callback
|
|
@@ -1315,7 +1397,7 @@ Run build with un-frozen lockfile to automatically fix lockfile.`
|
|
|
1315
1397
|
if (err) return callback(err);
|
|
1316
1398
|
const result = /** @type {Info} */ (_result);
|
|
1317
1399
|
if (module) {
|
|
1318
|
-
/** @type {
|
|
1400
|
+
/** @type {NormalModuleBuildInfo} */
|
|
1319
1401
|
(module.buildInfo).resourceIntegrity = result.entry.integrity;
|
|
1320
1402
|
}
|
|
1321
1403
|
callback(null, result.content);
|
|
@@ -1328,7 +1410,7 @@ Run build with un-frozen lockfile to automatically fix lockfile.`
|
|
|
1328
1410
|
const result = /** @type {Info} */ (_result);
|
|
1329
1411
|
if (
|
|
1330
1412
|
result.entry.integrity !==
|
|
1331
|
-
/** @type {
|
|
1413
|
+
/** @type {NormalModuleBuildInfo} */
|
|
1332
1414
|
(module.buildInfo).resourceIntegrity
|
|
1333
1415
|
) {
|
|
1334
1416
|
return callback(null, true);
|
|
@@ -5,10 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const { getContext } = require("loader-runner");
|
|
9
|
-
|
|
10
|
-
const ModuleNotFoundError = require("../ModuleNotFoundError");
|
|
11
8
|
const NormalModule = require("../NormalModule");
|
|
9
|
+
const ModuleNotFoundError = require("../errors/ModuleNotFoundError");
|
|
10
|
+
const { getContext } = require("../loaders/LoaderRunner");
|
|
12
11
|
const { isAbsolute, join } = require("../util/fs");
|
|
13
12
|
const { parseResourceWithoutFragment } = require("../util/identifier");
|
|
14
13
|
|
|
@@ -17,6 +16,7 @@ const DEFAULT_SCHEME = "virtual";
|
|
|
17
16
|
const PLUGIN_NAME = "VirtualUrlPlugin";
|
|
18
17
|
|
|
19
18
|
/**
|
|
19
|
+
* Defines the compiler type used by this module.
|
|
20
20
|
* @typedef {import("../Compiler")} Compiler
|
|
21
21
|
* @typedef {import("../../declarations/plugins/schemes/VirtualUrlPlugin").VirtualModule} VirtualModuleConfig
|
|
22
22
|
* @typedef {import("../../declarations/plugins/schemes/VirtualUrlPlugin").VirtualModuleContent} VirtualModuleInput
|
|
@@ -28,6 +28,7 @@ const PLUGIN_NAME = "VirtualUrlPlugin";
|
|
|
28
28
|
/** @typedef {{ [key: string]: VirtualModuleInput }} VirtualModules */
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
|
+
* Defines the loader context type used by this module.
|
|
31
32
|
* @template T
|
|
32
33
|
* @typedef {import("../../declarations/LoaderContext").LoaderContext<T>} LoaderContext
|
|
33
34
|
*/
|
|
@@ -103,6 +104,7 @@ function toCacheKey(id, scheme) {
|
|
|
103
104
|
|
|
104
105
|
class VirtualUrlPlugin {
|
|
105
106
|
/**
|
|
107
|
+
* Creates an instance of VirtualUrlPlugin.
|
|
106
108
|
* @param {VirtualModules} modules The virtual modules
|
|
107
109
|
* @param {Omit<VirtualUrlOptions, "modules"> | string=} schemeOrOptions The URL scheme to use
|
|
108
110
|
*/
|
|
@@ -124,7 +126,7 @@ class VirtualUrlPlugin {
|
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
/**
|
|
127
|
-
*
|
|
129
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
128
130
|
* @param {Compiler} compiler the compiler instance
|
|
129
131
|
* @returns {void}
|
|
130
132
|
*/
|
|
@@ -156,6 +158,7 @@ class VirtualUrlPlugin {
|
|
|
156
158
|
(path, data) => {
|
|
157
159
|
if (data.filename && this.modules[data.filename]) {
|
|
158
160
|
/**
|
|
161
|
+
* Returns safe path.
|
|
159
162
|
* @param {string} str path
|
|
160
163
|
* @returns {string} safe path
|
|
161
164
|
*/
|
|
@@ -261,6 +264,7 @@ class VirtualUrlPlugin {
|
|
|
261
264
|
}
|
|
262
265
|
|
|
263
266
|
/**
|
|
267
|
+
* Finds virtual module config by id.
|
|
264
268
|
* @param {string} id The module id
|
|
265
269
|
* @returns {VirtualModuleConfig} The virtual module config
|
|
266
270
|
*/
|