@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
|
@@ -27,12 +27,13 @@ const ProvideForSharedDependency = require("./ProvideForSharedDependency");
|
|
|
27
27
|
/** @typedef {import("../Module").CodeGenerationResultData} CodeGenerationResultData */
|
|
28
28
|
/** @typedef {import("../RequestShortener")} RequestShortener */
|
|
29
29
|
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
|
30
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
31
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
30
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string, string | false, string, boolean]>} ObjectDeserializerContext */
|
|
31
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, string, string | false, string, boolean]>} ObjectSerializerContext */
|
|
32
32
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
|
33
33
|
|
|
34
34
|
class ProvideSharedModule extends Module {
|
|
35
35
|
/**
|
|
36
|
+
* Creates an instance of ProvideSharedModule.
|
|
36
37
|
* @param {string} shareScope shared scope name
|
|
37
38
|
* @param {string} name shared key
|
|
38
39
|
* @param {string | false} version version
|
|
@@ -41,21 +42,28 @@ class ProvideSharedModule extends Module {
|
|
|
41
42
|
*/
|
|
42
43
|
constructor(shareScope, name, version, request, eager) {
|
|
43
44
|
super(WEBPACK_MODULE_TYPE_PROVIDE);
|
|
45
|
+
/** @type {string} */
|
|
44
46
|
this._shareScope = shareScope;
|
|
47
|
+
/** @type {string} */
|
|
45
48
|
this._name = name;
|
|
49
|
+
/** @type {string | false} */
|
|
46
50
|
this._version = version;
|
|
51
|
+
/** @type {string} */
|
|
47
52
|
this._request = request;
|
|
53
|
+
/** @type {boolean} */
|
|
48
54
|
this._eager = eager;
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
/**
|
|
58
|
+
* Returns the unique identifier used to reference this module.
|
|
52
59
|
* @returns {string} a unique identifier of the module
|
|
53
60
|
*/
|
|
54
61
|
identifier() {
|
|
55
|
-
return `provide module (${this._shareScope}) ${this._name}@${this._version}
|
|
62
|
+
return `provide module (${this._shareScope}) ${this._name}@${this._version}|${this._request}`;
|
|
56
63
|
}
|
|
57
64
|
|
|
58
65
|
/**
|
|
66
|
+
* Returns a human-readable identifier for this module.
|
|
59
67
|
* @param {RequestShortener} requestShortener the request shortener
|
|
60
68
|
* @returns {string} a user readable identifier of the module
|
|
61
69
|
*/
|
|
@@ -66,6 +74,7 @@ class ProvideSharedModule extends Module {
|
|
|
66
74
|
}
|
|
67
75
|
|
|
68
76
|
/**
|
|
77
|
+
* Gets the library identifier.
|
|
69
78
|
* @param {LibIdentOptions} options options
|
|
70
79
|
* @returns {LibIdent | null} an identifier for library inclusion
|
|
71
80
|
*/
|
|
@@ -76,6 +85,7 @@ class ProvideSharedModule extends Module {
|
|
|
76
85
|
}
|
|
77
86
|
|
|
78
87
|
/**
|
|
88
|
+
* Checks whether the module needs to be rebuilt for the current build state.
|
|
79
89
|
* @param {NeedBuildContext} context context info
|
|
80
90
|
* @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
|
|
81
91
|
* @returns {void}
|
|
@@ -85,6 +95,7 @@ class ProvideSharedModule extends Module {
|
|
|
85
95
|
}
|
|
86
96
|
|
|
87
97
|
/**
|
|
98
|
+
* Builds the module using the provided compilation context.
|
|
88
99
|
* @param {WebpackOptions} options webpack options
|
|
89
100
|
* @param {Compilation} compilation the compilation
|
|
90
101
|
* @param {ResolverWithOptions} resolver the resolver
|
|
@@ -112,6 +123,7 @@ class ProvideSharedModule extends Module {
|
|
|
112
123
|
}
|
|
113
124
|
|
|
114
125
|
/**
|
|
126
|
+
* Returns the estimated size for the requested source type.
|
|
115
127
|
* @param {string=} type the source type for which the size should be estimated
|
|
116
128
|
* @returns {number} the estimated size of the module (must be non-zero)
|
|
117
129
|
*/
|
|
@@ -120,6 +132,7 @@ class ProvideSharedModule extends Module {
|
|
|
120
132
|
}
|
|
121
133
|
|
|
122
134
|
/**
|
|
135
|
+
* Returns the source types this module can generate.
|
|
123
136
|
* @returns {SourceTypes} types available (do not mutate)
|
|
124
137
|
*/
|
|
125
138
|
getSourceTypes() {
|
|
@@ -127,6 +140,7 @@ class ProvideSharedModule extends Module {
|
|
|
127
140
|
}
|
|
128
141
|
|
|
129
142
|
/**
|
|
143
|
+
* Generates code and runtime requirements for this module.
|
|
130
144
|
* @param {CodeGenerationContext} context context for code generation
|
|
131
145
|
* @returns {CodeGenerationResult} result
|
|
132
146
|
*/
|
|
@@ -164,26 +178,42 @@ class ProvideSharedModule extends Module {
|
|
|
164
178
|
}
|
|
165
179
|
|
|
166
180
|
/**
|
|
181
|
+
* Serializes this instance into the provided serializer context.
|
|
167
182
|
* @param {ObjectSerializerContext} context context
|
|
168
183
|
*/
|
|
169
184
|
serialize(context) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
185
|
+
context
|
|
186
|
+
.write(this._shareScope)
|
|
187
|
+
.write(this._name)
|
|
188
|
+
.write(this._version)
|
|
189
|
+
.write(this._request)
|
|
190
|
+
.write(this._eager);
|
|
176
191
|
super.serialize(context);
|
|
177
192
|
}
|
|
178
193
|
|
|
179
194
|
/**
|
|
195
|
+
* Restores this instance from the provided deserializer context.
|
|
180
196
|
* @param {ObjectDeserializerContext} context context
|
|
181
197
|
* @returns {ProvideSharedModule} deserialize fallback dependency
|
|
182
198
|
*/
|
|
183
199
|
static deserialize(context) {
|
|
184
|
-
const
|
|
185
|
-
const
|
|
186
|
-
|
|
200
|
+
const shareScope = context.read();
|
|
201
|
+
const c1 = context.rest;
|
|
202
|
+
const name = c1.read();
|
|
203
|
+
const c2 = c1.rest;
|
|
204
|
+
const version = c2.read();
|
|
205
|
+
const c3 = c2.rest;
|
|
206
|
+
const request = c3.read();
|
|
207
|
+
const c4 = c3.rest;
|
|
208
|
+
const eager = c4.read();
|
|
209
|
+
const obj = new ProvideSharedModule(
|
|
210
|
+
shareScope,
|
|
211
|
+
name,
|
|
212
|
+
version,
|
|
213
|
+
request,
|
|
214
|
+
eager
|
|
215
|
+
);
|
|
216
|
+
obj.deserialize(c4.rest);
|
|
187
217
|
return obj;
|
|
188
218
|
}
|
|
189
219
|
}
|
|
@@ -14,6 +14,7 @@ const ProvideSharedModule = require("./ProvideSharedModule");
|
|
|
14
14
|
|
|
15
15
|
class ProvideSharedModuleFactory extends ModuleFactory {
|
|
16
16
|
/**
|
|
17
|
+
* Processes the provided data.
|
|
17
18
|
* @param {ModuleFactoryCreateData} data data object
|
|
18
19
|
* @param {ModuleFactoryCallback} callback callback
|
|
19
20
|
* @returns {void}
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const WebpackError = require("../WebpackError");
|
|
9
8
|
const { parseOptions } = require("../container/options");
|
|
9
|
+
const WebpackError = require("../errors/WebpackError");
|
|
10
|
+
const { ABSOLUTE_PATH_REGEXP } = require("../util/identifier");
|
|
10
11
|
const ProvideForSharedDependency = require("./ProvideForSharedDependency");
|
|
11
12
|
const ProvideSharedDependency = require("./ProvideSharedDependency");
|
|
12
13
|
const ProvideSharedModuleFactory = require("./ProvideSharedModuleFactory");
|
|
@@ -17,6 +18,7 @@ const ProvideSharedModuleFactory = require("./ProvideSharedModuleFactory");
|
|
|
17
18
|
/** @typedef {import("../NormalModuleFactory").NormalModuleCreateData} NormalModuleCreateData */
|
|
18
19
|
|
|
19
20
|
/**
|
|
21
|
+
* Defines the provide options type used by this module.
|
|
20
22
|
* @typedef {object} ProvideOptions
|
|
21
23
|
* @property {string} shareKey
|
|
22
24
|
* @property {string} shareScope
|
|
@@ -30,14 +32,16 @@ const PLUGIN_NAME = "ProvideSharedPlugin";
|
|
|
30
32
|
|
|
31
33
|
class ProvideSharedPlugin {
|
|
32
34
|
/**
|
|
35
|
+
* Creates an instance of ProvideSharedPlugin.
|
|
33
36
|
* @param {ProvideSharedPluginOptions} options options
|
|
34
37
|
*/
|
|
35
38
|
constructor(options) {
|
|
39
|
+
/** @type {ProvideSharedPluginOptions} */
|
|
36
40
|
this.options = options;
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
/**
|
|
40
|
-
*
|
|
44
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
41
45
|
* @param {Compiler} compiler the compiler instance
|
|
42
46
|
* @returns {void}
|
|
43
47
|
*/
|
|
@@ -98,13 +102,13 @@ class ProvideSharedPlugin {
|
|
|
98
102
|
/** @type {Map<string, ProvideOptions>} */
|
|
99
103
|
const prefixMatchProvides = new Map();
|
|
100
104
|
for (const [request, config] of provides) {
|
|
101
|
-
if (
|
|
105
|
+
if (/^\.\.?(?:\/|$)/.test(request)) {
|
|
102
106
|
// relative request
|
|
103
107
|
resolvedProvideMap.set(request, {
|
|
104
108
|
config,
|
|
105
109
|
version: config.version
|
|
106
110
|
});
|
|
107
|
-
} else if (
|
|
111
|
+
} else if (ABSOLUTE_PATH_REGEXP.test(request)) {
|
|
108
112
|
// absolute path
|
|
109
113
|
resolvedProvideMap.set(request, {
|
|
110
114
|
config,
|
|
@@ -120,6 +124,7 @@ class ProvideSharedPlugin {
|
|
|
120
124
|
}
|
|
121
125
|
compilationData.set(compilation, resolvedProvideMap);
|
|
122
126
|
/**
|
|
127
|
+
* Provide shared module.
|
|
123
128
|
* @param {string} key key
|
|
124
129
|
* @param {ProvideOptions} config config
|
|
125
130
|
* @param {NormalModuleCreateData["resource"]} resource resource
|
|
@@ -166,7 +171,7 @@ class ProvideSharedPlugin {
|
|
|
166
171
|
normalModuleFactory.hooks.module.tap(
|
|
167
172
|
PLUGIN_NAME,
|
|
168
173
|
(module, { resource, resourceResolveData }, resolveData) => {
|
|
169
|
-
if (resolvedProvideMap.has(
|
|
174
|
+
if (resolvedProvideMap.has(resource)) {
|
|
170
175
|
return module;
|
|
171
176
|
}
|
|
172
177
|
const { request } = resolveData;
|
|
@@ -176,7 +181,7 @@ class ProvideSharedPlugin {
|
|
|
176
181
|
provideSharedModule(
|
|
177
182
|
request,
|
|
178
183
|
config,
|
|
179
|
-
|
|
184
|
+
resource,
|
|
180
185
|
resourceResolveData
|
|
181
186
|
);
|
|
182
187
|
resolveData.cacheable = false;
|
|
@@ -186,12 +191,12 @@ class ProvideSharedPlugin {
|
|
|
186
191
|
if (request.startsWith(prefix)) {
|
|
187
192
|
const remainder = request.slice(prefix.length);
|
|
188
193
|
provideSharedModule(
|
|
189
|
-
|
|
194
|
+
resource,
|
|
190
195
|
{
|
|
191
196
|
...config,
|
|
192
197
|
shareKey: config.shareKey + remainder
|
|
193
198
|
},
|
|
194
|
-
|
|
199
|
+
resource,
|
|
195
200
|
resourceResolveData
|
|
196
201
|
);
|
|
197
202
|
resolveData.cacheable = false;
|
|
@@ -18,6 +18,7 @@ const { isRequiredVersion } = require("./utils");
|
|
|
18
18
|
|
|
19
19
|
class SharePlugin {
|
|
20
20
|
/**
|
|
21
|
+
* Creates an instance of SharePlugin.
|
|
21
22
|
* @param {SharePluginOptions} options options
|
|
22
23
|
*/
|
|
23
24
|
constructor(options) {
|
|
@@ -66,13 +67,16 @@ class SharePlugin {
|
|
|
66
67
|
eager: options.eager
|
|
67
68
|
}
|
|
68
69
|
}));
|
|
70
|
+
/** @type {string | undefined} */
|
|
69
71
|
this._shareScope = options.shareScope;
|
|
72
|
+
/** @type {Record<string, ConsumesConfig>[]} */
|
|
70
73
|
this._consumes = consumes;
|
|
74
|
+
/** @type {Record<string, ProvidesConfig>[]} */
|
|
71
75
|
this._provides = provides;
|
|
72
76
|
}
|
|
73
77
|
|
|
74
78
|
/**
|
|
75
|
-
*
|
|
79
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
76
80
|
* @param {Compiler} compiler the compiler instance
|
|
77
81
|
* @returns {void}
|
|
78
82
|
*/
|
|
@@ -24,6 +24,7 @@ class ShareRuntimeModule extends RuntimeModule {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
+
* Generates runtime code for this runtime module.
|
|
27
28
|
* @returns {string | null} runtime code
|
|
28
29
|
*/
|
|
29
30
|
generate() {
|
|
@@ -68,16 +69,18 @@ class ShareRuntimeModule extends RuntimeModule {
|
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
}
|
|
72
|
+
const cst = runtimeTemplate.renderConst();
|
|
73
|
+
const lt = runtimeTemplate.renderLet();
|
|
71
74
|
return Template.asString([
|
|
72
75
|
`${RuntimeGlobals.shareScopeMap} = {};`,
|
|
73
|
-
|
|
74
|
-
|
|
76
|
+
`${cst} initPromises = {};`,
|
|
77
|
+
`${cst} initTokens = {};`,
|
|
75
78
|
`${RuntimeGlobals.initializeSharing} = ${runtimeTemplate.basicFunction(
|
|
76
79
|
"name, initScope",
|
|
77
80
|
[
|
|
78
81
|
"if(!initScope) initScope = [];",
|
|
79
82
|
"// handling circular init calls",
|
|
80
|
-
|
|
83
|
+
`${lt} initToken = initTokens[name];`,
|
|
81
84
|
"if(!initToken) initToken = initTokens[name] = {};",
|
|
82
85
|
"if(initScope.indexOf(initToken) >= 0) return;",
|
|
83
86
|
"initScope.push(initToken);",
|
|
@@ -86,43 +89,43 @@ class ShareRuntimeModule extends RuntimeModule {
|
|
|
86
89
|
"// creates a new share scope if needed",
|
|
87
90
|
`if(!${RuntimeGlobals.hasOwnProperty}(${RuntimeGlobals.shareScopeMap}, name)) ${RuntimeGlobals.shareScopeMap}[name] = {};`,
|
|
88
91
|
"// runs all init snippets from all modules reachable",
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
`${cst} scope = ${RuntimeGlobals.shareScopeMap}[name];`,
|
|
93
|
+
`${cst} warn = ${
|
|
91
94
|
ignoreBrowserWarnings
|
|
92
95
|
? runtimeTemplate.basicFunction("", "")
|
|
93
96
|
: runtimeTemplate.basicFunction("msg", [
|
|
94
97
|
'if (typeof console !== "undefined" && console.warn) console.warn(msg);'
|
|
95
98
|
])
|
|
96
99
|
};`,
|
|
97
|
-
|
|
98
|
-
|
|
100
|
+
`${cst} uniqueName = ${JSON.stringify(uniqueName || undefined)};`,
|
|
101
|
+
`${cst} register = ${runtimeTemplate.basicFunction(
|
|
99
102
|
"name, version, factory, eager",
|
|
100
103
|
[
|
|
101
|
-
|
|
102
|
-
|
|
104
|
+
`${cst} versions = ${runtimeTemplate.assignOr("scope[name]", "{}")};`,
|
|
105
|
+
`${cst} activeVersion = versions[version];`,
|
|
103
106
|
"if(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };"
|
|
104
107
|
]
|
|
105
108
|
)};`,
|
|
106
|
-
|
|
107
|
-
|
|
109
|
+
`${cst} initExternal = ${runtimeTemplate.basicFunction("id", [
|
|
110
|
+
`${cst} handleError = ${runtimeTemplate.expressionFunction(
|
|
108
111
|
'warn("Initialization of sharing external failed: " + err)',
|
|
109
112
|
"err"
|
|
110
113
|
)};`,
|
|
111
114
|
"try {",
|
|
112
115
|
Template.indent([
|
|
113
|
-
|
|
116
|
+
`${cst} module = ${RuntimeGlobals.require}(id);`,
|
|
114
117
|
"if(!module) return;",
|
|
115
|
-
|
|
118
|
+
`${cst} initFn = ${runtimeTemplate.returningFunction(
|
|
116
119
|
`module && module.init && module.init(${RuntimeGlobals.shareScopeMap}[name], initScope)`,
|
|
117
120
|
"module"
|
|
118
121
|
)}`,
|
|
119
122
|
"if(module.then) return promises.push(module.then(initFn, handleError));",
|
|
120
|
-
|
|
121
|
-
|
|
123
|
+
`${cst} initResult = initFn(module);`,
|
|
124
|
+
`if(${runtimeTemplate.optionalChaining("initResult", "then")}) return promises.push(initResult['catch'](handleError));`
|
|
122
125
|
]),
|
|
123
126
|
"} catch(err) { handleError(err); }"
|
|
124
127
|
])}`,
|
|
125
|
-
|
|
128
|
+
`${cst} promises = [];`,
|
|
126
129
|
"switch(name) {",
|
|
127
130
|
...[...initCodePerScope]
|
|
128
131
|
.sort(([a], [b]) => compareStrings(a, b))
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const ModuleNotFoundError = require("../ModuleNotFoundError");
|
|
8
|
+
const ModuleNotFoundError = require("../errors/ModuleNotFoundError");
|
|
9
9
|
const LazySet = require("../util/LazySet");
|
|
10
|
+
const { ABSOLUTE_PATH_REGEXP } = require("../util/identifier");
|
|
10
11
|
|
|
11
12
|
/** @typedef {import("enhanced-resolve").ResolveContext} ResolveContext */
|
|
12
13
|
/** @typedef {import("../Compilation")} Compilation */
|
|
@@ -14,11 +15,13 @@ const LazySet = require("../util/LazySet");
|
|
|
14
15
|
/** @typedef {import("../ResolverFactory").ResolveOptionsWithDependencyType} ResolveOptionsWithDependencyType */
|
|
15
16
|
|
|
16
17
|
/**
|
|
18
|
+
* Defines the matched configs item type used by this module.
|
|
17
19
|
* @template T
|
|
18
20
|
* @typedef {Map<string, T>} MatchedConfigsItem
|
|
19
21
|
*/
|
|
20
22
|
|
|
21
23
|
/**
|
|
24
|
+
* Defines the matched configs type used by this module.
|
|
22
25
|
* @template T
|
|
23
26
|
* @typedef {object} MatchedConfigs
|
|
24
27
|
* @property {MatchedConfigsItem<T>} resolved
|
|
@@ -30,6 +33,7 @@ const LazySet = require("../util/LazySet");
|
|
|
30
33
|
const RESOLVE_OPTIONS = { dependencyType: "esm" };
|
|
31
34
|
|
|
32
35
|
/**
|
|
36
|
+
* Returns resolved matchers.
|
|
33
37
|
* @template T
|
|
34
38
|
* @param {Compilation} compilation the compilation
|
|
35
39
|
* @param {[string, T][]} configs to be processed configs
|
|
@@ -77,7 +81,7 @@ module.exports.resolveMatchedConfigs = (compilation, configs) => {
|
|
|
77
81
|
}
|
|
78
82
|
);
|
|
79
83
|
});
|
|
80
|
-
} else if (
|
|
84
|
+
} else if (ABSOLUTE_PATH_REGEXP.test(request)) {
|
|
81
85
|
// absolute path
|
|
82
86
|
resolved.set(request, config);
|
|
83
87
|
} else if (request.endsWith("/")) {
|
package/lib/sharing/utils.js
CHANGED
|
@@ -28,7 +28,7 @@ const RE_CUSTOM_PROTOCOL = /^(?:(?:git\+)?(?:ssh|https?|file)|git):\/\//i;
|
|
|
28
28
|
const RE_URL_HASH_VERSION = /#(?:semver:)?(.+)/;
|
|
29
29
|
|
|
30
30
|
// Simple hostname validate
|
|
31
|
-
const RE_HOSTNAME = /^(?:[^/.]+(?:\.[
|
|
31
|
+
const RE_HOSTNAME = /^(?:[^/.]+(?:\.[^/.]+)+|localhost)$/;
|
|
32
32
|
|
|
33
33
|
// For hostname with colon. eg: ssh://user@github.com:foo/bar
|
|
34
34
|
const RE_HOSTNAME_WITH_COLON =
|
|
@@ -55,6 +55,7 @@ const DEF_GIT_PROTOCOL = "git+ssh://";
|
|
|
55
55
|
// thanks to https://github.com/npm/hosted-git-info/blob/latest/git-host-info.js
|
|
56
56
|
const extractCommithashByDomain = {
|
|
57
57
|
/**
|
|
58
|
+
* Returns hash.
|
|
58
59
|
* @param {string} pathname pathname
|
|
59
60
|
* @param {string} hash hash
|
|
60
61
|
* @returns {string | undefined} hash
|
|
@@ -78,6 +79,7 @@ const extractCommithashByDomain = {
|
|
|
78
79
|
return commithash;
|
|
79
80
|
},
|
|
80
81
|
/**
|
|
82
|
+
* Returns hash.
|
|
81
83
|
* @param {string} pathname pathname
|
|
82
84
|
* @param {string} hash hash
|
|
83
85
|
* @returns {string | undefined} hash
|
|
@@ -102,6 +104,7 @@ const extractCommithashByDomain = {
|
|
|
102
104
|
return hash;
|
|
103
105
|
},
|
|
104
106
|
/**
|
|
107
|
+
* Returns hash.
|
|
105
108
|
* @param {string} pathname pathname
|
|
106
109
|
* @param {string} hash hash
|
|
107
110
|
* @returns {string | undefined} hash
|
|
@@ -123,6 +126,7 @@ const extractCommithashByDomain = {
|
|
|
123
126
|
return hash;
|
|
124
127
|
},
|
|
125
128
|
/**
|
|
129
|
+
* Returns hash.
|
|
126
130
|
* @param {string} pathname pathname
|
|
127
131
|
* @param {string} hash hash
|
|
128
132
|
* @returns {string | undefined} hash
|
|
@@ -291,6 +295,7 @@ function getGitUrlVersion(gitUrl) {
|
|
|
291
295
|
/** @typedef {{ data: JsonObject, path: string }} DescriptionFile */
|
|
292
296
|
|
|
293
297
|
/**
|
|
298
|
+
* Gets description file.
|
|
294
299
|
* @param {InputFileSystem} fs file system
|
|
295
300
|
* @param {string} directory directory to start looking into
|
|
296
301
|
* @param {string[]} descriptionFiles possible description filenames
|
|
@@ -361,6 +366,7 @@ const getDescriptionFile = (
|
|
|
361
366
|
module.exports.getDescriptionFile = getDescriptionFile;
|
|
362
367
|
|
|
363
368
|
/**
|
|
369
|
+
* Gets required version from description file.
|
|
364
370
|
* @param {JsonObject} data description file data i.e.: package.json
|
|
365
371
|
* @param {string} packageName name of the dependency
|
|
366
372
|
* @returns {string | undefined} normalized version
|
|
@@ -393,6 +399,7 @@ module.exports.getRequiredVersionFromDescriptionFile =
|
|
|
393
399
|
getRequiredVersionFromDescriptionFile;
|
|
394
400
|
|
|
395
401
|
/**
|
|
402
|
+
* Checks whether this object is required version.
|
|
396
403
|
* @param {string} str maybe required version
|
|
397
404
|
* @returns {boolean} true, if it looks like a version
|
|
398
405
|
*/
|
|
@@ -403,6 +410,7 @@ function isRequiredVersion(str) {
|
|
|
403
410
|
module.exports.isRequiredVersion = isRequiredVersion;
|
|
404
411
|
|
|
405
412
|
/**
|
|
413
|
+
* Normalizes version.
|
|
406
414
|
* @see https://docs.npmjs.com/cli/v7/configuring-npm/package-json#urls-as-dependencies
|
|
407
415
|
* @param {string} versionDesc version to be normalized
|
|
408
416
|
* @returns {string} normalized version
|