@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
|
@@ -10,19 +10,22 @@ const NullDependency = require("./NullDependency");
|
|
|
10
10
|
|
|
11
11
|
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
|
|
12
12
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
13
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
14
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
15
|
-
|
|
16
13
|
/** @typedef {string[] | true} Exports */
|
|
17
14
|
|
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Exports, boolean]>} ObjectDeserializerContext */
|
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Exports, boolean]>} ObjectSerializerContext */
|
|
17
|
+
|
|
18
18
|
class StaticExportsDependency extends NullDependency {
|
|
19
19
|
/**
|
|
20
|
+
* Creates an instance of StaticExportsDependency.
|
|
20
21
|
* @param {Exports} exports export names
|
|
21
22
|
* @param {boolean} canMangle true, if mangling exports names is allowed
|
|
22
23
|
*/
|
|
23
24
|
constructor(exports, canMangle) {
|
|
24
25
|
super();
|
|
26
|
+
/** @type {Exports} */
|
|
25
27
|
this.exports = exports;
|
|
28
|
+
/** @type {boolean} */
|
|
26
29
|
this.canMangle = canMangle;
|
|
27
30
|
}
|
|
28
31
|
|
|
@@ -44,23 +47,23 @@ class StaticExportsDependency extends NullDependency {
|
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
/**
|
|
50
|
+
* Serializes this instance into the provided serializer context.
|
|
47
51
|
* @param {ObjectSerializerContext} context context
|
|
48
52
|
*/
|
|
49
53
|
serialize(context) {
|
|
50
|
-
|
|
51
|
-
write(this.exports);
|
|
52
|
-
write(this.canMangle);
|
|
54
|
+
context.write(this.exports).write(this.canMangle);
|
|
53
55
|
super.serialize(context);
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
/**
|
|
59
|
+
* Restores this instance from the provided deserializer context.
|
|
57
60
|
* @param {ObjectDeserializerContext} context context
|
|
58
61
|
*/
|
|
59
62
|
deserialize(context) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
this.canMangle = read();
|
|
63
|
-
super.deserialize(
|
|
63
|
+
this.exports = context.read();
|
|
64
|
+
const c1 = context.rest;
|
|
65
|
+
this.canMangle = c1.read();
|
|
66
|
+
super.deserialize(c1.rest);
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
|
|
@@ -10,7 +10,7 @@ const {
|
|
|
10
10
|
JAVASCRIPT_MODULE_TYPE_DYNAMIC
|
|
11
11
|
} = require("../ModuleTypeConstants");
|
|
12
12
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
13
|
-
const WebpackError = require("../WebpackError");
|
|
13
|
+
const WebpackError = require("../errors/WebpackError");
|
|
14
14
|
const {
|
|
15
15
|
evaluateToString,
|
|
16
16
|
expressionIsUnsupported,
|
|
@@ -30,7 +30,7 @@ const PLUGIN_NAME = "SystemPlugin";
|
|
|
30
30
|
|
|
31
31
|
class SystemPlugin {
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
34
34
|
* @param {Compiler} compiler the compiler instance
|
|
35
35
|
* @returns {void}
|
|
36
36
|
*/
|
|
@@ -51,6 +51,7 @@ class SystemPlugin {
|
|
|
51
51
|
});
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
|
+
* Handles the hook callback for this code path.
|
|
54
55
|
* @param {Parser} parser parser parser
|
|
55
56
|
* @param {JavascriptParserOptions} parserOptions parserOptions
|
|
56
57
|
* @returns {void}
|
|
@@ -61,6 +62,7 @@ class SystemPlugin {
|
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
/**
|
|
65
|
+
* Sets not supported.
|
|
64
66
|
* @param {string} name name
|
|
65
67
|
*/
|
|
66
68
|
const setNotSupported = (name) => {
|
|
@@ -107,16 +109,14 @@ class SystemPlugin {
|
|
|
107
109
|
/** @type {Range} */ (expr.range),
|
|
108
110
|
[RuntimeGlobals.system]
|
|
109
111
|
);
|
|
110
|
-
dep.loc =
|
|
112
|
+
dep.loc = parser.getLocation(expr);
|
|
111
113
|
parser.state.module.addPresentationalDependency(dep);
|
|
112
114
|
return true;
|
|
113
115
|
});
|
|
114
116
|
|
|
115
117
|
parser.hooks.call.for("System.import").tap(PLUGIN_NAME, (expr) => {
|
|
116
118
|
parser.state.module.addWarning(
|
|
117
|
-
new SystemImportDeprecationWarning(
|
|
118
|
-
/** @type {DependencyLocation} */ (expr.loc)
|
|
119
|
-
)
|
|
119
|
+
new SystemImportDeprecationWarning(parser.getLocation(expr))
|
|
120
120
|
);
|
|
121
121
|
|
|
122
122
|
return parser.hooks.importCall.call({
|
|
@@ -144,6 +144,7 @@ class SystemPlugin {
|
|
|
144
144
|
|
|
145
145
|
class SystemImportDeprecationWarning extends WebpackError {
|
|
146
146
|
/**
|
|
147
|
+
* Creates an instance of SystemImportDeprecationWarning.
|
|
147
148
|
* @param {DependencyLocation} loc location
|
|
148
149
|
*/
|
|
149
150
|
constructor(loc) {
|
|
@@ -152,8 +153,10 @@ class SystemImportDeprecationWarning extends WebpackError {
|
|
|
152
153
|
"For more info visit https://webpack.js.org/guides/code-splitting/"
|
|
153
154
|
);
|
|
154
155
|
|
|
156
|
+
/** @type {string} */
|
|
155
157
|
this.name = "SystemImportDeprecationWarning";
|
|
156
158
|
|
|
159
|
+
/** @type {DependencyLocation} */
|
|
157
160
|
this.loc = loc;
|
|
158
161
|
}
|
|
159
162
|
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
const isGeneratorLowered = require("../async-modules/isGeneratorLowered");
|
|
8
|
+
const makeSerializable = require("../util/makeSerializable");
|
|
9
|
+
const NullDependency = require("./NullDependency");
|
|
10
|
+
|
|
11
|
+
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
12
|
+
/** @typedef {import("../Dependency")} Dependency */
|
|
13
|
+
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
14
|
+
/** @typedef {import("../Module")} Module */
|
|
15
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
17
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Marks a top-level `await` expression so it can be rewritten to `(yield …)`
|
|
21
|
+
* when the module is lowered to a generator (target without `async`/`await`).
|
|
22
|
+
*/
|
|
23
|
+
class TopLevelAwaitDependency extends NullDependency {
|
|
24
|
+
/**
|
|
25
|
+
* @param {Range} range range of the whole `await` expression
|
|
26
|
+
* @param {Range} argumentRange range of the awaited argument
|
|
27
|
+
*/
|
|
28
|
+
constructor(range, argumentRange) {
|
|
29
|
+
super();
|
|
30
|
+
/** @type {Range} */
|
|
31
|
+
this.range = range;
|
|
32
|
+
/** @type {Range} */
|
|
33
|
+
this.argumentRange = argumentRange;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Serializes this instance into the provided serializer context.
|
|
38
|
+
* @param {ObjectSerializerContext} context context
|
|
39
|
+
*/
|
|
40
|
+
serialize(context) {
|
|
41
|
+
const { write } = context;
|
|
42
|
+
write(this.range);
|
|
43
|
+
write(this.argumentRange);
|
|
44
|
+
super.serialize(context);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Restores this instance from the provided deserializer context.
|
|
49
|
+
* @param {ObjectDeserializerContext} context context
|
|
50
|
+
*/
|
|
51
|
+
deserialize(context) {
|
|
52
|
+
const { read } = context;
|
|
53
|
+
this.range = read();
|
|
54
|
+
this.argumentRange = read();
|
|
55
|
+
super.deserialize(context);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
makeSerializable(
|
|
60
|
+
TopLevelAwaitDependency,
|
|
61
|
+
"webpack/lib/dependencies/TopLevelAwaitDependency"
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
TopLevelAwaitDependency.Template = class TopLevelAwaitDependencyTemplate extends (
|
|
65
|
+
NullDependency.Template
|
|
66
|
+
) {
|
|
67
|
+
/**
|
|
68
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
69
|
+
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
70
|
+
* @param {ReplaceSource} source the current replace source which can be modified
|
|
71
|
+
* @param {DependencyTemplateContext} templateContext the context object
|
|
72
|
+
* @returns {void}
|
|
73
|
+
*/
|
|
74
|
+
apply(dependency, source, { module, moduleGraph, runtimeTemplate }) {
|
|
75
|
+
// Only rewrite when the body is a generator (no `async`/`await`, but
|
|
76
|
+
// generators). `await` and `yield` differ in precedence, so wrap the
|
|
77
|
+
// whole expression: `await X` -> `(yield X)`.
|
|
78
|
+
if (
|
|
79
|
+
!isGeneratorLowered(
|
|
80
|
+
/** @type {Module} */ (module),
|
|
81
|
+
moduleGraph,
|
|
82
|
+
runtimeTemplate
|
|
83
|
+
)
|
|
84
|
+
) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const dep = /** @type {TopLevelAwaitDependency} */ (dependency);
|
|
88
|
+
source.replace(dep.range[0], dep.argumentRange[0] - 1, "(yield ");
|
|
89
|
+
source.insert(dep.argumentRange[1], ")");
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
module.exports = TopLevelAwaitDependency;
|
|
@@ -11,13 +11,14 @@ const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTempl
|
|
|
11
11
|
|
|
12
12
|
/** @typedef {import("../ContextModule").ContextOptions} ContextOptions */
|
|
13
13
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
14
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
15
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
14
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range]>} ObjectDeserializerContext */
|
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Range]>} ObjectSerializerContext */
|
|
16
16
|
|
|
17
17
|
/** @typedef {ContextOptions & { request: string }} ContextDependencyOptions */
|
|
18
18
|
|
|
19
19
|
class URLContextDependency extends ContextDependency {
|
|
20
20
|
/**
|
|
21
|
+
* Creates an instance of URLContextDependency.
|
|
21
22
|
* @param {ContextDependencyOptions} options options
|
|
22
23
|
* @param {Range} range range
|
|
23
24
|
* @param {Range} valueRange value range
|
|
@@ -37,21 +38,21 @@ class URLContextDependency extends ContextDependency {
|
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
/**
|
|
41
|
+
* Serializes this instance into the provided serializer context.
|
|
40
42
|
* @param {ObjectSerializerContext} context context
|
|
41
43
|
*/
|
|
42
44
|
serialize(context) {
|
|
43
|
-
|
|
44
|
-
write(this.valueRange);
|
|
45
|
+
context.write(this.valueRange);
|
|
45
46
|
super.serialize(context);
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
/**
|
|
50
|
+
* Restores this instance from the provided deserializer context.
|
|
49
51
|
* @param {ObjectDeserializerContext} context context
|
|
50
52
|
*/
|
|
51
53
|
deserialize(context) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
super.deserialize(context);
|
|
54
|
+
this.valueRange = context.read();
|
|
55
|
+
super.deserialize(context.rest);
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
|
|
@@ -5,16 +5,23 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const {
|
|
9
|
+
ASSET_URL_TYPE,
|
|
10
|
+
JAVASCRIPT_TYPE
|
|
11
|
+
} = require("../ModuleSourceTypeConstants");
|
|
8
12
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
9
13
|
const RawDataUrlModule = require("../asset/RawDataUrlModule");
|
|
10
14
|
const {
|
|
11
15
|
getDependencyUsedByExportsCondition
|
|
12
16
|
} = require("../optimize/InnerGraph");
|
|
17
|
+
const { toJsStringLiteral } = require("../util/identifier");
|
|
13
18
|
const makeSerializable = require("../util/makeSerializable");
|
|
14
19
|
const memoize = require("../util/memoize");
|
|
15
20
|
const ModuleDependency = require("./ModuleDependency");
|
|
16
21
|
|
|
17
22
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
23
|
+
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
|
24
|
+
/** @typedef {import("../Compilation")} Compilation */
|
|
18
25
|
/** @typedef {import("../Dependency")} Dependency */
|
|
19
26
|
/** @typedef {import("../Dependency").GetConditionFn} GetConditionFn */
|
|
20
27
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
@@ -22,15 +29,74 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
22
29
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
23
30
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
24
31
|
/** @typedef {import("../optimize/InnerGraph").UsedByExports} UsedByExports */
|
|
25
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
26
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
32
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, boolean, UsedByExports | undefined, true | undefined, true | undefined, ("high" | "low" | "auto" | undefined), string | undefined, string | undefined, string | undefined]>} ObjectDeserializerContext */
|
|
33
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, boolean, UsedByExports | undefined, true | undefined, true | undefined, ("high" | "low" | "auto" | undefined), string | undefined, string | undefined, string | undefined]>} ObjectSerializerContext */
|
|
27
34
|
|
|
28
35
|
const getIgnoredRawDataUrlModule = memoize(
|
|
29
36
|
() => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)")
|
|
30
37
|
);
|
|
31
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Resolves the static literal specifier (already quoted) for `new URL(<here>, import.meta.url)`,
|
|
41
|
+
* or `null` when the asset url can't be determined statically (e.g. a runtime/dynamic publicPath).
|
|
42
|
+
* @param {URLDependency} dep the dependency
|
|
43
|
+
* @param {DependencyTemplateContext} templateContext the template context
|
|
44
|
+
* @returns {string | null} a JS string literal, or `null` to fall back to the runtime form
|
|
45
|
+
*/
|
|
46
|
+
const getAnalyzableUrlSpecifier = (dep, templateContext) => {
|
|
47
|
+
const {
|
|
48
|
+
module: consumingModule,
|
|
49
|
+
moduleGraph,
|
|
50
|
+
chunkGraph,
|
|
51
|
+
runtime,
|
|
52
|
+
codeGenerationResults,
|
|
53
|
+
runtimeTemplate
|
|
54
|
+
} = templateContext;
|
|
55
|
+
const assetModule = moduleGraph.getModule(dep);
|
|
56
|
+
if (!assetModule || !codeGenerationResults.has(assetModule, runtime)) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
const urlData = codeGenerationResults.getData(assetModule, runtime, "url");
|
|
60
|
+
if (!urlData) return null;
|
|
61
|
+
|
|
62
|
+
const jsUrl = urlData[JAVASCRIPT_TYPE];
|
|
63
|
+
if (typeof jsUrl === "string") {
|
|
64
|
+
// The asset concatenates the runtime publicPath; rebuild a literal from the
|
|
65
|
+
// resolved filename. The base is the consuming chunk (`import.meta.url`).
|
|
66
|
+
if (jsUrl.includes(RuntimeGlobals.require)) {
|
|
67
|
+
const filename = codeGenerationResults.getData(
|
|
68
|
+
assetModule,
|
|
69
|
+
runtime,
|
|
70
|
+
"filename"
|
|
71
|
+
);
|
|
72
|
+
if (typeof filename !== "string") return null;
|
|
73
|
+
const { publicPath } = runtimeTemplate.outputOptions;
|
|
74
|
+
if (publicPath === "auto") {
|
|
75
|
+
const undo = runtimeTemplate._getModuleUndoPath(
|
|
76
|
+
consumingModule,
|
|
77
|
+
chunkGraph
|
|
78
|
+
);
|
|
79
|
+
return undo === null ? null : toJsStringLiteral(undo + filename);
|
|
80
|
+
}
|
|
81
|
+
if (typeof publicPath === "string" && !publicPath.includes("[")) {
|
|
82
|
+
return toJsStringLiteral(publicPath + filename);
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
// An already-quoted literal (generator `publicPath` / data: url) is used as-is;
|
|
87
|
+
// a raw value (external asset) is normalized to a quoted string.
|
|
88
|
+
return jsUrl.startsWith('"') ? jsUrl : toJsStringLiteral(jsUrl);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Wrapper dropped: the asset is consumed as `asset-url` (absolute publicPath),
|
|
92
|
+
// so its resolved url is already a chunk-independent literal.
|
|
93
|
+
const assetUrl = urlData[ASSET_URL_TYPE];
|
|
94
|
+
return typeof assetUrl === "string" ? toJsStringLiteral(assetUrl) : null;
|
|
95
|
+
};
|
|
96
|
+
|
|
32
97
|
class URLDependency extends ModuleDependency {
|
|
33
98
|
/**
|
|
99
|
+
* Creates an instance of URLDependency.
|
|
34
100
|
* @param {string} request request
|
|
35
101
|
* @param {Range} range range of the arguments of new URL( |> ... <| )
|
|
36
102
|
* @param {Range} outerRange range of the full |> new URL(...) <|
|
|
@@ -40,9 +106,22 @@ class URLDependency extends ModuleDependency {
|
|
|
40
106
|
super(request);
|
|
41
107
|
this.range = range;
|
|
42
108
|
this.outerRange = outerRange;
|
|
109
|
+
/** @type {boolean} */
|
|
43
110
|
this.relative = relative || false;
|
|
44
111
|
/** @type {UsedByExports | undefined} */
|
|
45
112
|
this.usedByExports = undefined;
|
|
113
|
+
/** @type {true | undefined} */
|
|
114
|
+
this.prefetch = undefined;
|
|
115
|
+
/** @type {true | undefined} */
|
|
116
|
+
this.preload = undefined;
|
|
117
|
+
/** @type {"high" | "low" | "auto" | undefined} */
|
|
118
|
+
this.fetchPriority = undefined;
|
|
119
|
+
/** @type {string | undefined} */
|
|
120
|
+
this.asAttribute = undefined;
|
|
121
|
+
/** @type {string | undefined} */
|
|
122
|
+
this.typeAttribute = undefined;
|
|
123
|
+
/** @type {string | undefined} */
|
|
124
|
+
this.mediaAttribute = undefined;
|
|
46
125
|
}
|
|
47
126
|
|
|
48
127
|
get type() {
|
|
@@ -54,18 +133,16 @@ class URLDependency extends ModuleDependency {
|
|
|
54
133
|
}
|
|
55
134
|
|
|
56
135
|
/**
|
|
136
|
+
* Returns function to determine if the connection is active.
|
|
57
137
|
* @param {ModuleGraph} moduleGraph module graph
|
|
58
138
|
* @returns {null | false | GetConditionFn} function to determine if the connection is active
|
|
59
139
|
*/
|
|
60
140
|
getCondition(moduleGraph) {
|
|
61
|
-
return getDependencyUsedByExportsCondition(
|
|
62
|
-
this,
|
|
63
|
-
this.usedByExports,
|
|
64
|
-
moduleGraph
|
|
65
|
-
);
|
|
141
|
+
return getDependencyUsedByExportsCondition(this, moduleGraph);
|
|
66
142
|
}
|
|
67
143
|
|
|
68
144
|
/**
|
|
145
|
+
* Creates an ignored module.
|
|
69
146
|
* @param {string} context context directory
|
|
70
147
|
* @returns {Module} ignored module
|
|
71
148
|
*/
|
|
@@ -74,25 +151,46 @@ class URLDependency extends ModuleDependency {
|
|
|
74
151
|
}
|
|
75
152
|
|
|
76
153
|
/**
|
|
154
|
+
* Serializes this instance into the provided serializer context.
|
|
77
155
|
* @param {ObjectSerializerContext} context context
|
|
78
156
|
*/
|
|
79
157
|
serialize(context) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
158
|
+
context
|
|
159
|
+
.write(this.outerRange)
|
|
160
|
+
.write(this.relative)
|
|
161
|
+
.write(this.usedByExports)
|
|
162
|
+
.write(this.prefetch)
|
|
163
|
+
.write(this.preload)
|
|
164
|
+
.write(this.fetchPriority)
|
|
165
|
+
.write(this.asAttribute)
|
|
166
|
+
.write(this.typeAttribute)
|
|
167
|
+
.write(this.mediaAttribute);
|
|
84
168
|
super.serialize(context);
|
|
85
169
|
}
|
|
86
170
|
|
|
87
171
|
/**
|
|
172
|
+
* Restores this instance from the provided deserializer context.
|
|
88
173
|
* @param {ObjectDeserializerContext} context context
|
|
89
174
|
*/
|
|
90
175
|
deserialize(context) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
this.relative = read();
|
|
94
|
-
|
|
95
|
-
|
|
176
|
+
this.outerRange = context.read();
|
|
177
|
+
const c1 = context.rest;
|
|
178
|
+
this.relative = c1.read();
|
|
179
|
+
const c2 = c1.rest;
|
|
180
|
+
this.usedByExports = c2.read();
|
|
181
|
+
const c3 = c2.rest;
|
|
182
|
+
this.prefetch = c3.read();
|
|
183
|
+
const c4 = c3.rest;
|
|
184
|
+
this.preload = c4.read();
|
|
185
|
+
const c5 = c4.rest;
|
|
186
|
+
this.fetchPriority = c5.read();
|
|
187
|
+
const c6 = c5.rest;
|
|
188
|
+
this.asAttribute = c6.read();
|
|
189
|
+
const c7 = c6.rest;
|
|
190
|
+
this.typeAttribute = c7.read();
|
|
191
|
+
const c8 = c7.rest;
|
|
192
|
+
this.mediaAttribute = c8.read();
|
|
193
|
+
super.deserialize(c8.rest);
|
|
96
194
|
}
|
|
97
195
|
}
|
|
98
196
|
|
|
@@ -100,6 +198,7 @@ URLDependency.Template = class URLDependencyTemplate extends (
|
|
|
100
198
|
ModuleDependency.Template
|
|
101
199
|
) {
|
|
102
200
|
/**
|
|
201
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
103
202
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
104
203
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
105
204
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -125,36 +224,61 @@ URLDependency.Template = class URLDependencyTemplate extends (
|
|
|
125
224
|
return;
|
|
126
225
|
}
|
|
127
226
|
|
|
227
|
+
// For ESM module output, emit the analyzable `new URL("./asset", import.meta.url)`
|
|
228
|
+
// form (literal specifier, no runtime helpers) so other bundlers and webpack itself
|
|
229
|
+
// can statically follow the asset. `url: "relative"` and prefetch/preload hints
|
|
230
|
+
// (which need the runtime asset reference) keep the runtime form.
|
|
231
|
+
if (
|
|
232
|
+
!dep.relative &&
|
|
233
|
+
!dep.prefetch &&
|
|
234
|
+
!dep.preload &&
|
|
235
|
+
runtimeTemplate.supportsAnalyzableEsm()
|
|
236
|
+
) {
|
|
237
|
+
const specifier = getAnalyzableUrlSpecifier(dep, templateContext);
|
|
238
|
+
if (specifier !== null) {
|
|
239
|
+
source.replace(
|
|
240
|
+
dep.range[0],
|
|
241
|
+
dep.range[1] - 1,
|
|
242
|
+
`/* asset import */ ${specifier}, ${runtimeTemplate.outputOptions.importMetaName}.url`
|
|
243
|
+
);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
128
248
|
runtimeRequirements.add(RuntimeGlobals.require);
|
|
129
249
|
|
|
250
|
+
const module = moduleGraph.getModule(dep);
|
|
251
|
+
const moduleRaw = runtimeTemplate.moduleRaw({
|
|
252
|
+
chunkGraph,
|
|
253
|
+
module,
|
|
254
|
+
request: dep.request,
|
|
255
|
+
runtimeRequirements,
|
|
256
|
+
weak: false
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
// Resource hints fire eagerly at chunk startup via the marker
|
|
260
|
+
// requirement / `StartupAssetHintRuntimeModule`; the call site stays
|
|
261
|
+
// a plain URL expression, so the browser is already prefetching by
|
|
262
|
+
// the time user code reaches this line.
|
|
263
|
+
if (dep.prefetch || dep.preload) {
|
|
264
|
+
runtimeRequirements.add(RuntimeGlobals.startupAssetHints);
|
|
265
|
+
if (dep.prefetch) runtimeRequirements.add(RuntimeGlobals.prefetchAsset);
|
|
266
|
+
if (dep.preload) runtimeRequirements.add(RuntimeGlobals.preloadAsset);
|
|
267
|
+
}
|
|
268
|
+
|
|
130
269
|
if (dep.relative) {
|
|
131
270
|
runtimeRequirements.add(RuntimeGlobals.relativeUrl);
|
|
132
271
|
source.replace(
|
|
133
272
|
dep.outerRange[0],
|
|
134
273
|
dep.outerRange[1] - 1,
|
|
135
|
-
`/* asset import */ new ${
|
|
136
|
-
RuntimeGlobals.relativeUrl
|
|
137
|
-
}(${runtimeTemplate.moduleRaw({
|
|
138
|
-
chunkGraph,
|
|
139
|
-
module: moduleGraph.getModule(dep),
|
|
140
|
-
request: dep.request,
|
|
141
|
-
runtimeRequirements,
|
|
142
|
-
weak: false
|
|
143
|
-
})})`
|
|
274
|
+
`/* asset import */ new ${RuntimeGlobals.relativeUrl}(${moduleRaw})`
|
|
144
275
|
);
|
|
145
276
|
} else {
|
|
146
277
|
runtimeRequirements.add(RuntimeGlobals.baseURI);
|
|
147
|
-
|
|
148
278
|
source.replace(
|
|
149
279
|
dep.range[0],
|
|
150
280
|
dep.range[1] - 1,
|
|
151
|
-
`/* asset import */ ${
|
|
152
|
-
chunkGraph,
|
|
153
|
-
module: moduleGraph.getModule(dep),
|
|
154
|
-
request: dep.request,
|
|
155
|
-
runtimeRequirements,
|
|
156
|
-
weak: false
|
|
157
|
-
})}, ${RuntimeGlobals.baseURI}`
|
|
281
|
+
`/* asset import */ ${moduleRaw}, ${RuntimeGlobals.baseURI}`
|
|
158
282
|
);
|
|
159
283
|
}
|
|
160
284
|
}
|
|
@@ -22,6 +22,7 @@ const PLUGIN_NAME = "URLPlugin";
|
|
|
22
22
|
|
|
23
23
|
class URLPlugin {
|
|
24
24
|
/**
|
|
25
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
25
26
|
* @param {Compiler} compiler compiler
|
|
26
27
|
*/
|
|
27
28
|
apply(compiler) {
|
|
@@ -43,6 +44,7 @@ class URLPlugin {
|
|
|
43
44
|
);
|
|
44
45
|
|
|
45
46
|
/**
|
|
47
|
+
* Handles the hook callback for this code path.
|
|
46
48
|
* @param {JavascriptParser} parser parser parser
|
|
47
49
|
* @param {JavascriptParserOptions} parserOptions parserOptions
|
|
48
50
|
* @returns {void}
|
|
@@ -12,43 +12,41 @@ const NullDependency = require("./NullDependency");
|
|
|
12
12
|
/** @typedef {import("../Dependency")} Dependency */
|
|
13
13
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
14
14
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
15
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
16
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, Range]>} ObjectDeserializerContext */
|
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, Range]>} ObjectSerializerContext */
|
|
17
17
|
|
|
18
18
|
class UnsupportedDependency extends NullDependency {
|
|
19
19
|
/**
|
|
20
|
+
* Creates an instance of UnsupportedDependency.
|
|
20
21
|
* @param {string} request the request string
|
|
21
22
|
* @param {Range} range location in source code
|
|
22
23
|
*/
|
|
23
24
|
constructor(request, range) {
|
|
24
25
|
super();
|
|
25
26
|
|
|
27
|
+
/** @type {string} */
|
|
26
28
|
this.request = request;
|
|
27
29
|
this.range = range;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
/**
|
|
33
|
+
* Serializes this instance into the provided serializer context.
|
|
31
34
|
* @param {ObjectSerializerContext} context context
|
|
32
35
|
*/
|
|
33
36
|
serialize(context) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
write(this.request);
|
|
37
|
-
write(this.range);
|
|
38
|
-
|
|
37
|
+
context.write(this.request).write(this.range);
|
|
39
38
|
super.serialize(context);
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
/**
|
|
42
|
+
* Restores this instance from the provided deserializer context.
|
|
43
43
|
* @param {ObjectDeserializerContext} context context
|
|
44
44
|
*/
|
|
45
45
|
deserialize(context) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
super.deserialize(context);
|
|
46
|
+
this.request = context.read();
|
|
47
|
+
const c1 = context.rest;
|
|
48
|
+
this.range = c1.read();
|
|
49
|
+
super.deserialize(c1.rest);
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
|
|
@@ -61,6 +59,7 @@ UnsupportedDependency.Template = class UnsupportedDependencyTemplate extends (
|
|
|
61
59
|
NullDependency.Template
|
|
62
60
|
) {
|
|
63
61
|
/**
|
|
62
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
64
63
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
65
64
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
66
65
|
* @param {DependencyTemplateContext} templateContext the context object
|