@depup/webpack 5.106.1-depup.0 → 5.109.0-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -11
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +141 -9
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +23 -26
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +54 -37
- package/lib/Compilation.js +635 -107
- package/lib/Compiler.js +93 -31
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +498 -127
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +399 -108
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +376 -78
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +575 -149
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +92 -6
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +15 -0
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +5 -2
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +485 -181
- package/lib/NormalModuleFactory.js +148 -29
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +104 -26
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +29 -3
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +43 -7
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +591 -41
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/ModuleFederationPlugin.js +12 -26
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +534 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +156 -77
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +356 -204
- package/lib/css/CssParser.js +3443 -1953
- package/lib/css/syntax.js +4058 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +138 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +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 +32 -2
- 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 +253 -37
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +59 -3
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +426 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +71 -49
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +34 -8
- package/lib/html/HtmlGenerator.js +1470 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1111 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9020 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +25 -2
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +579 -183
- package/lib/javascript/JavascriptParser.js +1289 -462
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +4380 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +23 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +585 -116
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +159 -34
- package/lib/optimize/RealContentHashPlugin.js +125 -50
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +54 -6
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +663 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +552 -463
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +50 -3
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +94 -12
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
- package/lib/stats/StatsFactory.js +39 -18
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +97 -6
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1117 -79
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +8608 -1159
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const NormalModule = require("../NormalModule");
|
|
9
|
+
const { markNotCacheable } = require("../loaders/LoaderRunner");
|
|
9
10
|
const LazySet = require("../util/LazySet");
|
|
10
11
|
const LoaderDependency = require("./LoaderDependency");
|
|
11
12
|
const LoaderImportDependency = require("./LoaderImportDependency");
|
|
@@ -19,6 +20,7 @@ const LoaderImportDependency = require("./LoaderImportDependency");
|
|
|
19
20
|
/** @typedef {import("../Module").FileSystemDependencies} FileSystemDependencies */
|
|
20
21
|
|
|
21
22
|
/**
|
|
23
|
+
* Defines the import module callback callback.
|
|
22
24
|
* @callback ImportModuleCallback
|
|
23
25
|
* @param {(Error | null)=} err error object
|
|
24
26
|
* @param {ExecuteModuleExports=} exports exports of the evaluated module
|
|
@@ -26,6 +28,7 @@ const LoaderImportDependency = require("./LoaderImportDependency");
|
|
|
26
28
|
*/
|
|
27
29
|
|
|
28
30
|
/**
|
|
31
|
+
* Defines the import module options type used by this module.
|
|
29
32
|
* @typedef {object} ImportModuleOptions
|
|
30
33
|
* @property {string=} layer the target layer
|
|
31
34
|
* @property {string=} publicPath the target public path
|
|
@@ -36,7 +39,7 @@ const PLUGIN_NAME = "LoaderPlugin";
|
|
|
36
39
|
|
|
37
40
|
class LoaderPlugin {
|
|
38
41
|
/**
|
|
39
|
-
*
|
|
42
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
40
43
|
* @param {Compiler} compiler the compiler instance
|
|
41
44
|
* @returns {void}
|
|
42
45
|
*/
|
|
@@ -162,6 +165,7 @@ class LoaderPlugin {
|
|
|
162
165
|
};
|
|
163
166
|
|
|
164
167
|
/**
|
|
168
|
+
* Processes the provided request.
|
|
165
169
|
* @param {string} request the request string to load the module from
|
|
166
170
|
* @param {ImportModuleOptions} options options
|
|
167
171
|
* @param {ImportModuleCallback} callback callback returning the exports
|
|
@@ -234,6 +238,7 @@ class LoaderPlugin {
|
|
|
234
238
|
missingDependencies,
|
|
235
239
|
buildDependencies,
|
|
236
240
|
cacheable,
|
|
241
|
+
notCacheableReasons,
|
|
237
242
|
assets,
|
|
238
243
|
exports
|
|
239
244
|
} = /** @type {ExecuteModuleResult} */ (result);
|
|
@@ -249,7 +254,9 @@ class LoaderPlugin {
|
|
|
249
254
|
for (const d of buildDependencies) {
|
|
250
255
|
loaderContext.addBuildDependency(d);
|
|
251
256
|
}
|
|
252
|
-
if (cacheable === false)
|
|
257
|
+
if (cacheable === false) {
|
|
258
|
+
markNotCacheable(loaderContext, notCacheableReasons);
|
|
259
|
+
}
|
|
253
260
|
for (const [name, { source, info }] of assets) {
|
|
254
261
|
const buildInfo =
|
|
255
262
|
/** @type {BuildInfo} */
|
|
@@ -7,17 +7,21 @@
|
|
|
7
7
|
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
|
|
10
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
11
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
10
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, number, boolean]>} ObjectDeserializerContext */
|
|
11
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, number, boolean]>} ObjectSerializerContext */
|
|
12
12
|
|
|
13
13
|
class LocalModule {
|
|
14
14
|
/**
|
|
15
|
+
* Creates an instance of LocalModule.
|
|
15
16
|
* @param {string} name name
|
|
16
17
|
* @param {number} idx index
|
|
17
18
|
*/
|
|
18
19
|
constructor(name, idx) {
|
|
20
|
+
/** @type {string} */
|
|
19
21
|
this.name = name;
|
|
22
|
+
/** @type {number} */
|
|
20
23
|
this.idx = idx;
|
|
24
|
+
/** @type {boolean} */
|
|
21
25
|
this.used = false;
|
|
22
26
|
}
|
|
23
27
|
|
|
@@ -26,6 +30,7 @@ class LocalModule {
|
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
/**
|
|
33
|
+
* Returns variable name.
|
|
29
34
|
* @returns {string} variable name
|
|
30
35
|
*/
|
|
31
36
|
variableName() {
|
|
@@ -33,25 +38,23 @@ class LocalModule {
|
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
/**
|
|
41
|
+
* Serializes this instance into the provided serializer context.
|
|
36
42
|
* @param {ObjectSerializerContext} context context
|
|
37
43
|
*/
|
|
38
44
|
serialize(context) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
write(this.name);
|
|
42
|
-
write(this.idx);
|
|
43
|
-
write(this.used);
|
|
45
|
+
context.write(this.name).write(this.idx).write(this.used);
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
/**
|
|
49
|
+
* Restores this instance from the provided deserializer context.
|
|
47
50
|
* @param {ObjectDeserializerContext} context context
|
|
48
51
|
*/
|
|
49
52
|
deserialize(context) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.
|
|
53
|
-
|
|
54
|
-
this.used = read();
|
|
53
|
+
this.name = context.read();
|
|
54
|
+
const c1 = context.rest;
|
|
55
|
+
this.idx = c1.read();
|
|
56
|
+
const c2 = c1.rest;
|
|
57
|
+
this.used = c2.read();
|
|
55
58
|
}
|
|
56
59
|
}
|
|
57
60
|
|
|
@@ -12,12 +12,13 @@ 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<[LocalModule, Range | undefined, boolean]>} ObjectDeserializerContext */
|
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[LocalModule, Range | undefined, boolean]>} ObjectSerializerContext */
|
|
17
17
|
/** @typedef {import("./LocalModule")} LocalModule */
|
|
18
18
|
|
|
19
19
|
class LocalModuleDependency extends NullDependency {
|
|
20
20
|
/**
|
|
21
|
+
* Creates an instance of LocalModuleDependency.
|
|
21
22
|
* @param {LocalModule} localModule local module
|
|
22
23
|
* @param {Range | undefined} range range
|
|
23
24
|
* @param {boolean} callNew true, when the local module should be called with new
|
|
@@ -25,35 +26,35 @@ class LocalModuleDependency extends NullDependency {
|
|
|
25
26
|
constructor(localModule, range, callNew) {
|
|
26
27
|
super();
|
|
27
28
|
|
|
29
|
+
/** @type {LocalModule} */
|
|
28
30
|
this.localModule = localModule;
|
|
29
31
|
this.range = range;
|
|
32
|
+
/** @type {boolean} */
|
|
30
33
|
this.callNew = callNew;
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
/**
|
|
37
|
+
* Serializes this instance into the provided serializer context.
|
|
34
38
|
* @param {ObjectSerializerContext} context context
|
|
35
39
|
*/
|
|
36
40
|
serialize(context) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
write(this.localModule);
|
|
40
|
-
write(this.range);
|
|
41
|
-
write(this.callNew);
|
|
41
|
+
context.write(this.localModule).write(this.range).write(this.callNew);
|
|
42
42
|
|
|
43
43
|
super.serialize(context);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
|
+
* Restores this instance from the provided deserializer context.
|
|
47
48
|
* @param {ObjectDeserializerContext} context context
|
|
48
49
|
*/
|
|
49
50
|
deserialize(context) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.
|
|
53
|
-
|
|
54
|
-
this.callNew = read();
|
|
51
|
+
this.localModule = context.read();
|
|
52
|
+
const c1 = context.rest;
|
|
53
|
+
this.range = c1.read();
|
|
54
|
+
const c2 = c1.rest;
|
|
55
|
+
this.callNew = c2.read();
|
|
55
56
|
|
|
56
|
-
super.deserialize(
|
|
57
|
+
super.deserialize(c2.rest);
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
|
|
@@ -66,6 +67,7 @@ LocalModuleDependency.Template = class LocalModuleDependencyTemplate extends (
|
|
|
66
67
|
NullDependency.Template
|
|
67
68
|
) {
|
|
68
69
|
/**
|
|
70
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
69
71
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
70
72
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
71
73
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -10,6 +10,7 @@ const LocalModule = require("./LocalModule");
|
|
|
10
10
|
/** @typedef {import("../javascript/JavascriptParser").JavascriptParserState} JavascriptParserState */
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
+
* Returns resolved module.
|
|
13
14
|
* @param {string} parent parent module
|
|
14
15
|
* @param {string} mod module to resolve
|
|
15
16
|
* @returns {string} resolved module
|
|
@@ -34,6 +35,7 @@ const lookup = (parent, mod) => {
|
|
|
34
35
|
};
|
|
35
36
|
|
|
36
37
|
/**
|
|
38
|
+
* Returns local module.
|
|
37
39
|
* @param {JavascriptParserState} state parser state
|
|
38
40
|
* @param {string} name name
|
|
39
41
|
* @returns {LocalModule} local module
|
|
@@ -48,6 +50,7 @@ module.exports.addLocalModule = (state, name) => {
|
|
|
48
50
|
};
|
|
49
51
|
|
|
50
52
|
/**
|
|
53
|
+
* Returns local module or null.
|
|
51
54
|
* @param {JavascriptParserState} state parser state
|
|
52
55
|
* @param {string} name name
|
|
53
56
|
* @param {string=} namedModule named module
|
|
@@ -16,25 +16,29 @@ const NullDependency = require("./NullDependency");
|
|
|
16
16
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
17
17
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
18
18
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
19
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
20
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
19
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, boolean]>} ObjectDeserializerContext */
|
|
20
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, boolean]>} ObjectSerializerContext */
|
|
21
21
|
/** @typedef {import("../util/Hash")} Hash */
|
|
22
22
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
23
23
|
|
|
24
24
|
class ModuleDecoratorDependency extends NullDependency {
|
|
25
25
|
/**
|
|
26
|
+
* Creates an instance of ModuleDecoratorDependency.
|
|
26
27
|
* @param {string} decorator the decorator requirement
|
|
27
28
|
* @param {boolean} allowExportsAccess allow to access exports from module
|
|
28
29
|
*/
|
|
29
30
|
constructor(decorator, allowExportsAccess) {
|
|
30
31
|
super();
|
|
32
|
+
/** @type {string} */
|
|
31
33
|
this.decorator = decorator;
|
|
34
|
+
/** @type {boolean} */
|
|
32
35
|
this.allowExportsAccess = allowExportsAccess;
|
|
33
36
|
/** @type {undefined | string} */
|
|
34
37
|
this._hashUpdate = undefined;
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
/**
|
|
41
|
+
* Returns a display name for the type of dependency.
|
|
38
42
|
* @returns {string} a display name for the type of dependency
|
|
39
43
|
*/
|
|
40
44
|
get type() {
|
|
@@ -46,6 +50,7 @@ class ModuleDecoratorDependency extends NullDependency {
|
|
|
46
50
|
}
|
|
47
51
|
|
|
48
52
|
/**
|
|
53
|
+
* Returns an identifier to merge equal requests.
|
|
49
54
|
* @returns {string | null} an identifier to merge equal requests
|
|
50
55
|
*/
|
|
51
56
|
getResourceIdentifier() {
|
|
@@ -65,7 +70,7 @@ class ModuleDecoratorDependency extends NullDependency {
|
|
|
65
70
|
}
|
|
66
71
|
|
|
67
72
|
/**
|
|
68
|
-
*
|
|
73
|
+
* Updates the hash with the data contributed by this instance.
|
|
69
74
|
* @param {Hash} hash hash to be updated
|
|
70
75
|
* @param {UpdateHashContext} context context
|
|
71
76
|
* @returns {void}
|
|
@@ -78,23 +83,23 @@ class ModuleDecoratorDependency extends NullDependency {
|
|
|
78
83
|
}
|
|
79
84
|
|
|
80
85
|
/**
|
|
86
|
+
* Serializes this instance into the provided serializer context.
|
|
81
87
|
* @param {ObjectSerializerContext} context context
|
|
82
88
|
*/
|
|
83
89
|
serialize(context) {
|
|
84
|
-
|
|
85
|
-
write(this.decorator);
|
|
86
|
-
write(this.allowExportsAccess);
|
|
90
|
+
context.write(this.decorator).write(this.allowExportsAccess);
|
|
87
91
|
super.serialize(context);
|
|
88
92
|
}
|
|
89
93
|
|
|
90
94
|
/**
|
|
95
|
+
* Restores this instance from the provided deserializer context.
|
|
91
96
|
* @param {ObjectDeserializerContext} context context
|
|
92
97
|
*/
|
|
93
98
|
deserialize(context) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
this.allowExportsAccess = read();
|
|
97
|
-
super.deserialize(
|
|
99
|
+
this.decorator = context.read();
|
|
100
|
+
const c1 = context.rest;
|
|
101
|
+
this.allowExportsAccess = c1.read();
|
|
102
|
+
super.deserialize(c1.rest);
|
|
98
103
|
}
|
|
99
104
|
}
|
|
100
105
|
|
|
@@ -107,6 +112,7 @@ ModuleDecoratorDependency.Template = class ModuleDecoratorDependencyTemplate ext
|
|
|
107
112
|
NullDependency.Template
|
|
108
113
|
) {
|
|
109
114
|
/**
|
|
115
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
110
116
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
111
117
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
112
118
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -17,21 +17,28 @@ const DependencyTemplate = require("../DependencyTemplate");
|
|
|
17
17
|
|
|
18
18
|
class ModuleDependency extends Dependency {
|
|
19
19
|
/**
|
|
20
|
+
* Creates an instance of ModuleDependency.
|
|
20
21
|
* @param {string} request request path which needs resolving
|
|
21
22
|
* @param {number=} sourceOrder source order
|
|
22
23
|
*/
|
|
23
24
|
constructor(request, sourceOrder) {
|
|
24
25
|
super();
|
|
26
|
+
/** @type {string} */
|
|
25
27
|
this.request = request;
|
|
28
|
+
/** @type {string} */
|
|
26
29
|
this.userRequest = request;
|
|
30
|
+
/** @type {number | undefined} */
|
|
27
31
|
this.sourceOrder = sourceOrder;
|
|
28
32
|
/** @type {Range | undefined} */
|
|
29
33
|
this.range = undefined;
|
|
30
34
|
/** @type {undefined | string} */
|
|
31
35
|
this._context = undefined;
|
|
36
|
+
/** @type {boolean} */
|
|
37
|
+
this.weak = false;
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
/**
|
|
41
|
+
* Returns a request context.
|
|
35
42
|
* @returns {string | undefined} a request context
|
|
36
43
|
*/
|
|
37
44
|
getContext() {
|
|
@@ -39,6 +46,7 @@ class ModuleDependency extends Dependency {
|
|
|
39
46
|
}
|
|
40
47
|
|
|
41
48
|
/**
|
|
49
|
+
* Returns an identifier to merge equal requests.
|
|
42
50
|
* @returns {string | null} an identifier to merge equal requests
|
|
43
51
|
*/
|
|
44
52
|
getResourceIdentifier() {
|
|
@@ -46,6 +54,7 @@ class ModuleDependency extends Dependency {
|
|
|
46
54
|
}
|
|
47
55
|
|
|
48
56
|
/**
|
|
57
|
+
* Could affect referencing module.
|
|
49
58
|
* @returns {boolean | TRANSITIVE} true, when changes to the referenced module could affect the referencing module; TRANSITIVE, when changes to the referenced module could affect referencing modules of the referencing module
|
|
50
59
|
*/
|
|
51
60
|
couldAffectReferencingModule() {
|
|
@@ -53,6 +62,7 @@ class ModuleDependency extends Dependency {
|
|
|
53
62
|
}
|
|
54
63
|
|
|
55
64
|
/**
|
|
65
|
+
* Creates an ignored module.
|
|
56
66
|
* @param {string} context context directory
|
|
57
67
|
* @returns {Module} ignored module
|
|
58
68
|
*/
|
|
@@ -69,6 +79,7 @@ class ModuleDependency extends Dependency {
|
|
|
69
79
|
}
|
|
70
80
|
|
|
71
81
|
/**
|
|
82
|
+
* Serializes this instance into the provided serializer context.
|
|
72
83
|
* @param {ObjectSerializerContext} context context
|
|
73
84
|
*/
|
|
74
85
|
serialize(context) {
|
|
@@ -78,10 +89,12 @@ class ModuleDependency extends Dependency {
|
|
|
78
89
|
write(this._context);
|
|
79
90
|
write(this.range);
|
|
80
91
|
write(this.sourceOrder);
|
|
92
|
+
write(this.weak);
|
|
81
93
|
super.serialize(context);
|
|
82
94
|
}
|
|
83
95
|
|
|
84
96
|
/**
|
|
97
|
+
* Restores this instance from the provided deserializer context.
|
|
85
98
|
* @param {ObjectDeserializerContext} context context
|
|
86
99
|
*/
|
|
87
100
|
deserialize(context) {
|
|
@@ -91,6 +104,7 @@ class ModuleDependency extends Dependency {
|
|
|
91
104
|
this._context = read();
|
|
92
105
|
this.range = read();
|
|
93
106
|
this.sourceOrder = read();
|
|
107
|
+
this.weak = read();
|
|
94
108
|
super.deserialize(context);
|
|
95
109
|
}
|
|
96
110
|
}
|
|
@@ -14,6 +14,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
14
14
|
|
|
15
15
|
class ModuleDependencyTemplateAsId extends ModuleDependency.Template {
|
|
16
16
|
/**
|
|
17
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
17
18
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
18
19
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
19
20
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -13,6 +13,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
13
13
|
|
|
14
14
|
class ModuleDependencyTemplateAsRequireId extends ModuleDependency.Template {
|
|
15
15
|
/**
|
|
16
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
16
17
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
17
18
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
18
19
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -13,12 +13,14 @@ const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
|
|
|
13
13
|
|
|
14
14
|
class ModuleHotAcceptDependency extends ModuleDependency {
|
|
15
15
|
/**
|
|
16
|
+
* Creates an instance of ModuleHotAcceptDependency.
|
|
16
17
|
* @param {string} request the request string
|
|
17
18
|
* @param {Range} range location in source code
|
|
18
19
|
*/
|
|
19
20
|
constructor(request, range) {
|
|
20
21
|
super(request, Infinity);
|
|
21
22
|
this.range = range;
|
|
23
|
+
/** @type {boolean} */
|
|
22
24
|
this.weak = true;
|
|
23
25
|
}
|
|
24
26
|
|
|
@@ -13,6 +13,7 @@ const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
|
|
|
13
13
|
|
|
14
14
|
class ModuleHotDeclineDependency extends ModuleDependency {
|
|
15
15
|
/**
|
|
16
|
+
* Creates an instance of ModuleHotDeclineDependency.
|
|
16
17
|
* @param {string} request the request string
|
|
17
18
|
* @param {Range} range location in source code
|
|
18
19
|
*/
|
|
@@ -20,6 +21,7 @@ class ModuleHotDeclineDependency extends ModuleDependency {
|
|
|
20
21
|
super(request);
|
|
21
22
|
|
|
22
23
|
this.range = range;
|
|
24
|
+
/** @type {boolean} */
|
|
23
25
|
this.weak = true;
|
|
24
26
|
}
|
|
25
27
|
|
|
@@ -12,44 +12,51 @@ const NullDependency = require("./NullDependency");
|
|
|
12
12
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
13
13
|
/** @typedef {import("../Dependency")} Dependency */
|
|
14
14
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
15
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
16
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, string[], string | undefined]>} ObjectSerializerContext */
|
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string[], string | undefined]>} ObjectDeserializerContext */
|
|
17
17
|
/**
|
|
18
18
|
* A dependency that adds an init fragment to the module
|
|
19
19
|
*/
|
|
20
20
|
class ModuleInitFragmentDependency extends NullDependency {
|
|
21
21
|
/**
|
|
22
|
+
* Creates an instance of ModuleInitFragmentDependency.
|
|
22
23
|
* @param {string} initCode the initialization code
|
|
23
24
|
* @param {string[]} runtimeRequirements runtime requirements
|
|
24
25
|
* @param {string=} key unique key to avoid emitting the same initialization code twice
|
|
25
26
|
*/
|
|
26
27
|
constructor(initCode, runtimeRequirements, key) {
|
|
27
28
|
super();
|
|
29
|
+
/** @type {string} */
|
|
28
30
|
this.initCode = initCode;
|
|
31
|
+
/** @type {string[]} */
|
|
29
32
|
this.runtimeRequirements = runtimeRequirements;
|
|
33
|
+
/** @type {string | undefined} */
|
|
30
34
|
this.key = key;
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
/**
|
|
38
|
+
* Serializes this instance into the provided serializer context.
|
|
34
39
|
* @param {ObjectSerializerContext} context context
|
|
35
40
|
*/
|
|
36
41
|
serialize(context) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
context
|
|
43
|
+
.write(this.initCode)
|
|
44
|
+
.write(this.runtimeRequirements)
|
|
45
|
+
.write(this.key);
|
|
41
46
|
super.serialize(context);
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
/**
|
|
50
|
+
* Restores this instance from the provided deserializer context.
|
|
45
51
|
* @param {ObjectDeserializerContext} context context
|
|
46
52
|
*/
|
|
47
53
|
deserialize(context) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
this.runtimeRequirements = read();
|
|
51
|
-
|
|
52
|
-
|
|
54
|
+
this.initCode = context.read();
|
|
55
|
+
const c1 = context.rest;
|
|
56
|
+
this.runtimeRequirements = c1.read();
|
|
57
|
+
const c2 = c1.rest;
|
|
58
|
+
this.key = c2.read();
|
|
59
|
+
super.deserialize(c2.rest);
|
|
53
60
|
}
|
|
54
61
|
}
|
|
55
62
|
|
|
@@ -62,6 +69,7 @@ ModuleInitFragmentDependency.Template = class ModuleInitFragmentDependencyTempla
|
|
|
62
69
|
NullDependency.Template
|
|
63
70
|
) {
|
|
64
71
|
/**
|
|
72
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
65
73
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
66
74
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
67
75
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -20,6 +20,7 @@ class NullDependency extends Dependency {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
+
* Could affect referencing module.
|
|
23
24
|
* @returns {boolean | TRANSITIVE} true, when changes to the referenced module could affect the referencing module; TRANSITIVE, when changes to the referenced module could affect referencing modules of the referencing module
|
|
24
25
|
*/
|
|
25
26
|
couldAffectReferencingModule() {
|
|
@@ -31,6 +32,7 @@ NullDependency.Template = class NullDependencyTemplate extends (
|
|
|
31
32
|
DependencyTemplate
|
|
32
33
|
) {
|
|
33
34
|
/**
|
|
35
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
34
36
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
35
37
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
36
38
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
const Dependency = require("../Dependency");
|
|
9
9
|
const InitFragment = require("../InitFragment");
|
|
10
|
+
const Template = require("../Template");
|
|
11
|
+
const { InlinedUsedName } = require("../optimize/InlineExports");
|
|
10
12
|
const makeSerializable = require("../util/makeSerializable");
|
|
13
|
+
const { propertyAccess } = require("../util/property");
|
|
11
14
|
const ModuleDependency = require("./ModuleDependency");
|
|
12
15
|
|
|
13
16
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
@@ -18,22 +21,14 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
18
21
|
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
|
19
22
|
/** @typedef {import("../ExportsInfo").ExportInfoName} ExportInfoName */
|
|
20
23
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
21
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
22
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
24
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, ExportInfoName[]]>} ObjectDeserializerContext */
|
|
25
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, ExportInfoName[]]>} ObjectSerializerContext */
|
|
23
26
|
/** @typedef {import("../util/Hash")} Hash */
|
|
24
27
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
25
28
|
|
|
26
|
-
/**
|
|
27
|
-
* @param {string[] | null} path the property path array
|
|
28
|
-
* @returns {string} the converted path
|
|
29
|
-
*/
|
|
30
|
-
const pathToString = (path) =>
|
|
31
|
-
path !== null && path.length > 0
|
|
32
|
-
? path.map((part) => `[${JSON.stringify(part)}]`).join("")
|
|
33
|
-
: "";
|
|
34
|
-
|
|
35
29
|
class ProvidedDependency extends ModuleDependency {
|
|
36
30
|
/**
|
|
31
|
+
* Creates an instance of ProvidedDependency.
|
|
37
32
|
* @param {string} request request
|
|
38
33
|
* @param {string} identifier identifier
|
|
39
34
|
* @param {ExportInfoName[]} ids ids
|
|
@@ -41,7 +36,9 @@ class ProvidedDependency extends ModuleDependency {
|
|
|
41
36
|
*/
|
|
42
37
|
constructor(request, identifier, ids, range) {
|
|
43
38
|
super(request);
|
|
39
|
+
/** @type {string} */
|
|
44
40
|
this.identifier = identifier;
|
|
41
|
+
/** @type {string[]} */
|
|
45
42
|
this.ids = ids;
|
|
46
43
|
this.range = range;
|
|
47
44
|
/** @type {undefined | string} */
|
|
@@ -69,7 +66,7 @@ class ProvidedDependency extends ModuleDependency {
|
|
|
69
66
|
}
|
|
70
67
|
|
|
71
68
|
/**
|
|
72
|
-
*
|
|
69
|
+
* Updates the hash with the data contributed by this instance.
|
|
73
70
|
* @param {Hash} hash hash to be updated
|
|
74
71
|
* @param {UpdateHashContext} context context
|
|
75
72
|
* @returns {void}
|
|
@@ -82,23 +79,23 @@ class ProvidedDependency extends ModuleDependency {
|
|
|
82
79
|
}
|
|
83
80
|
|
|
84
81
|
/**
|
|
82
|
+
* Serializes this instance into the provided serializer context.
|
|
85
83
|
* @param {ObjectSerializerContext} context context
|
|
86
84
|
*/
|
|
87
85
|
serialize(context) {
|
|
88
|
-
|
|
89
|
-
write(this.identifier);
|
|
90
|
-
write(this.ids);
|
|
86
|
+
context.write(this.identifier).write(this.ids);
|
|
91
87
|
super.serialize(context);
|
|
92
88
|
}
|
|
93
89
|
|
|
94
90
|
/**
|
|
91
|
+
* Restores this instance from the provided deserializer context.
|
|
95
92
|
* @param {ObjectDeserializerContext} context context
|
|
96
93
|
*/
|
|
97
94
|
deserialize(context) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
this.ids = read();
|
|
101
|
-
super.deserialize(
|
|
95
|
+
this.identifier = context.read();
|
|
96
|
+
const c1 = context.rest;
|
|
97
|
+
this.ids = c1.read();
|
|
98
|
+
super.deserialize(c1.rest);
|
|
102
99
|
}
|
|
103
100
|
}
|
|
104
101
|
|
|
@@ -109,6 +106,7 @@ makeSerializable(
|
|
|
109
106
|
|
|
110
107
|
class ProvidedDependencyTemplate extends ModuleDependency.Template {
|
|
111
108
|
/**
|
|
109
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
112
110
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
113
111
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
114
112
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -132,16 +130,27 @@ class ProvidedDependencyTemplate extends ModuleDependency.Template {
|
|
|
132
130
|
(moduleGraph.getConnection(dep));
|
|
133
131
|
const exportsInfo = moduleGraph.getExportsInfo(connection.module);
|
|
134
132
|
const usedName = exportsInfo.getUsedName(dep.ids, runtime);
|
|
133
|
+
|
|
134
|
+
const moduleRaw = runtimeTemplate.moduleRaw({
|
|
135
|
+
module: moduleGraph.getModule(dep),
|
|
136
|
+
chunkGraph,
|
|
137
|
+
request: dep.request,
|
|
138
|
+
runtimeRequirements
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
const provided = !usedName
|
|
142
|
+
? moduleRaw
|
|
143
|
+
: usedName instanceof InlinedUsedName
|
|
144
|
+
? `(${moduleRaw}, ${usedName.render(
|
|
145
|
+
Template.toNormalComment(
|
|
146
|
+
`inlined export ${propertyAccess(dep.ids)}`
|
|
147
|
+
)
|
|
148
|
+
)})`
|
|
149
|
+
: `${moduleRaw}${propertyAccess(/** @type {string[]} */ (usedName), 0)}`;
|
|
150
|
+
|
|
135
151
|
initFragments.push(
|
|
136
152
|
new InitFragment(
|
|
137
|
-
`/* provided dependency */ var ${
|
|
138
|
-
dep.identifier
|
|
139
|
-
} = ${runtimeTemplate.moduleExports({
|
|
140
|
-
module: moduleGraph.getModule(dep),
|
|
141
|
-
chunkGraph,
|
|
142
|
-
request: dep.request,
|
|
143
|
-
runtimeRequirements
|
|
144
|
-
})}${pathToString(/** @type {string[] | null} */ (usedName))};\n`,
|
|
153
|
+
`/* provided dependency */ var ${dep.identifier} = ${provided};\n`,
|
|
145
154
|
InitFragment.STAGE_PROVIDES,
|
|
146
155
|
1,
|
|
147
156
|
`provided ${dep.identifier}`
|