@depup/webpack 5.106.0-depup.0 → 5.109.0-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -11
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +141 -9
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +23 -26
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +54 -37
- package/lib/Compilation.js +635 -107
- package/lib/Compiler.js +93 -31
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +498 -127
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +399 -108
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +376 -78
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +575 -149
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +92 -6
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +15 -0
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -60
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +5 -2
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +485 -181
- package/lib/NormalModuleFactory.js +148 -29
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +104 -26
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +29 -3
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +43 -7
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +591 -41
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/ModuleFederationPlugin.js +12 -26
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +534 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +156 -77
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +356 -204
- package/lib/css/CssParser.js +3452 -1950
- package/lib/css/syntax.js +4058 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +138 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +682 -368
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +32 -2
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +140 -46
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +253 -37
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +59 -3
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +426 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +71 -49
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +34 -8
- package/lib/html/HtmlGenerator.js +1470 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1111 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9020 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +25 -2
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +579 -183
- package/lib/javascript/JavascriptParser.js +1289 -462
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +4380 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +23 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +585 -116
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +159 -34
- package/lib/optimize/RealContentHashPlugin.js +125 -50
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +54 -6
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +663 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +552 -463
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +50 -3
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +94 -12
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
- package/lib/stats/StatsFactory.js +39 -18
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +97 -6
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1117 -79
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +8608 -1159
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/lib/ContextModule.js
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
|
|
8
8
|
const { OriginalSource, RawSource } = require("webpack-sources");
|
|
9
9
|
const AsyncDependenciesBlock = require("./AsyncDependenciesBlock");
|
|
10
|
-
const { makeWebpackError } = require("./HookWebpackError");
|
|
11
10
|
const Module = require("./Module");
|
|
12
11
|
const {
|
|
13
12
|
JAVASCRIPT_TYPE,
|
|
@@ -16,11 +15,12 @@ const {
|
|
|
16
15
|
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
|
|
17
16
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
18
17
|
const Template = require("./Template");
|
|
19
|
-
const WebpackError = require("./WebpackError");
|
|
20
18
|
const {
|
|
21
19
|
getOutgoingAsyncModules
|
|
22
20
|
} = require("./async-modules/AsyncModuleHelpers");
|
|
23
21
|
const { ImportPhase, ImportPhaseUtils } = require("./dependencies/ImportPhase");
|
|
22
|
+
const { makeWebpackError } = require("./errors/HookWebpackError");
|
|
23
|
+
const WebpackError = require("./errors/WebpackError");
|
|
24
24
|
const {
|
|
25
25
|
compareLocations,
|
|
26
26
|
compareModulesById,
|
|
@@ -34,6 +34,7 @@ const {
|
|
|
34
34
|
parseResource
|
|
35
35
|
} = require("./util/identifier");
|
|
36
36
|
const makeSerializable = require("./util/makeSerializable");
|
|
37
|
+
const { propertyAccess } = require("./util/property");
|
|
37
38
|
|
|
38
39
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
39
40
|
/** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
|
|
@@ -48,6 +49,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
48
49
|
/** @typedef {import("./Dependency")} Dependency */
|
|
49
50
|
/** @typedef {import("./Dependency").RawReferencedExports} RawReferencedExports */
|
|
50
51
|
/** @typedef {import("./Generator").SourceTypes} SourceTypes */
|
|
52
|
+
/** @typedef {import("./FileSystemInfo").Snapshot} Snapshot */
|
|
51
53
|
/** @typedef {import("./Module").BuildCallback} BuildCallback */
|
|
52
54
|
/** @typedef {import("./Module").BuildInfo} BuildInfo */
|
|
53
55
|
/** @typedef {import("./Module").FileSystemDependencies} FileSystemDependencies */
|
|
@@ -65,8 +67,8 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
65
67
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
|
66
68
|
/** @typedef {import("./dependencies/ContextElementDependency")} ContextElementDependency */
|
|
67
69
|
/** @typedef {import("./javascript/JavascriptParser").ImportAttributes} ImportAttributes */
|
|
68
|
-
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
69
|
-
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
70
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext<[string, boolean]>} ObjectDeserializerContext */
|
|
71
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext<[string, boolean]>} ObjectSerializerContext */
|
|
70
72
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
|
71
73
|
/** @typedef {import("./dependencies/ImportPhase").ImportPhaseType} ImportPhaseType */
|
|
72
74
|
|
|
@@ -89,6 +91,11 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
89
91
|
* @property {string | null=} layer
|
|
90
92
|
* @property {ImportAttributes=} attributes
|
|
91
93
|
* @property {ImportPhaseType=} phase
|
|
94
|
+
* @property {string[]=} patterns glob patterns for import.meta.glob
|
|
95
|
+
* @property {string=} requestContext importer context for import.meta.glob
|
|
96
|
+
* @property {string=} importName import selection for import.meta.glob
|
|
97
|
+
* @property {boolean=} exhaustive exhaustive mode for import.meta.glob
|
|
98
|
+
* @property {boolean=} caseSensitive case-sensitive matching for import.meta.glob
|
|
92
99
|
*/
|
|
93
100
|
|
|
94
101
|
/**
|
|
@@ -121,6 +128,14 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
121
128
|
/** @typedef {Record<string, ModuleId>} UserRequestMap */
|
|
122
129
|
/** @typedef {Record<ModuleId, ModuleId[]>} UserRequestsMap */
|
|
123
130
|
|
|
131
|
+
/**
|
|
132
|
+
* Defines the build info properties specific to context modules.
|
|
133
|
+
* @typedef {object} KnownContextModuleBuildInfo
|
|
134
|
+
* @property {(Snapshot | null)=} snapshot
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
/** @typedef {BuildInfo & KnownContextModuleBuildInfo} ContextModuleBuildInfo */
|
|
138
|
+
|
|
124
139
|
class ContextModule extends Module {
|
|
125
140
|
/**
|
|
126
141
|
* @param {ResolveDependencies} resolveDependencies function to get dependencies in this context
|
|
@@ -156,10 +171,15 @@ class ContextModule extends Module {
|
|
|
156
171
|
};
|
|
157
172
|
}
|
|
158
173
|
|
|
174
|
+
// Redeclared with the context module specific shape
|
|
175
|
+
/** @type {ContextModuleBuildInfo | undefined} */
|
|
176
|
+
this.buildInfo = undefined;
|
|
177
|
+
|
|
159
178
|
// Info from Factory
|
|
160
179
|
/** @type {ResolveDependencies | undefined} */
|
|
161
180
|
this.resolveDependencies = resolveDependencies;
|
|
162
181
|
if (options && options.resolveOptions !== undefined) {
|
|
182
|
+
/** @type {ResolveOptions | undefined} */
|
|
163
183
|
this.resolveOptions = options.resolveOptions;
|
|
164
184
|
}
|
|
165
185
|
|
|
@@ -167,11 +187,14 @@ class ContextModule extends Module {
|
|
|
167
187
|
throw new Error("options.mode is a required option");
|
|
168
188
|
}
|
|
169
189
|
|
|
190
|
+
/** @type {string} */
|
|
170
191
|
this._identifier = this._createIdentifier();
|
|
192
|
+
/** @type {boolean} */
|
|
171
193
|
this._forceBuild = true;
|
|
172
194
|
}
|
|
173
195
|
|
|
174
196
|
/**
|
|
197
|
+
* Returns the source types this module can generate.
|
|
175
198
|
* @returns {SourceTypes} types available (do not mutate)
|
|
176
199
|
*/
|
|
177
200
|
getSourceTypes() {
|
|
@@ -209,7 +232,14 @@ class ContextModule extends Module {
|
|
|
209
232
|
const str = stripSlash
|
|
210
233
|
? regexString.source + regexString.flags
|
|
211
234
|
: `${regexString}`;
|
|
212
|
-
|
|
235
|
+
// Escape chars that are structural in the identifier/source-name URL
|
|
236
|
+
// (`!`/`|` separators, `?` query, `#` fragment) so a regex like
|
|
237
|
+
// `(?:a|b)` isn't misread and truncated when it becomes a source name.
|
|
238
|
+
return str
|
|
239
|
+
.replace(/!/g, "%21")
|
|
240
|
+
.replace(/\|/g, "%7C")
|
|
241
|
+
.replace(/\?/g, "%3F")
|
|
242
|
+
.replace(/#/g, "%23");
|
|
213
243
|
}
|
|
214
244
|
|
|
215
245
|
_createIdentifier() {
|
|
@@ -236,6 +266,11 @@ class ContextModule extends Module {
|
|
|
236
266
|
}
|
|
237
267
|
if (this.options.regExp) {
|
|
238
268
|
identifier += `|${this._prettyRegExp(this.options.regExp, false)}`;
|
|
269
|
+
} else if (this.options.patterns) {
|
|
270
|
+
identifier += `|patterns: ${this.options.patterns.join(", ")}`;
|
|
271
|
+
}
|
|
272
|
+
if (this.options.requestContext) {
|
|
273
|
+
identifier += `|requestContext: ${this.options.requestContext}`;
|
|
239
274
|
}
|
|
240
275
|
if (this.options.include) {
|
|
241
276
|
identifier += `|include: ${this._prettyRegExp(
|
|
@@ -254,6 +289,15 @@ class ContextModule extends Module {
|
|
|
254
289
|
this.options.referencedExports
|
|
255
290
|
)}`;
|
|
256
291
|
}
|
|
292
|
+
if (this.options.importName) {
|
|
293
|
+
identifier += `|import: ${this.options.importName}`;
|
|
294
|
+
}
|
|
295
|
+
if (this.options.exhaustive) {
|
|
296
|
+
identifier += "|exhaustive";
|
|
297
|
+
}
|
|
298
|
+
if (this.options.caseSensitive === false) {
|
|
299
|
+
identifier += "|case-insensitive";
|
|
300
|
+
}
|
|
257
301
|
if (this.options.chunkName) {
|
|
258
302
|
identifier += `|chunkName: ${this.options.chunkName}`;
|
|
259
303
|
}
|
|
@@ -280,6 +324,7 @@ class ContextModule extends Module {
|
|
|
280
324
|
}
|
|
281
325
|
|
|
282
326
|
/**
|
|
327
|
+
* Returns the unique identifier used to reference this module.
|
|
283
328
|
* @returns {string} a unique identifier of the module
|
|
284
329
|
*/
|
|
285
330
|
identifier() {
|
|
@@ -287,6 +332,7 @@ class ContextModule extends Module {
|
|
|
287
332
|
}
|
|
288
333
|
|
|
289
334
|
/**
|
|
335
|
+
* Returns a human-readable identifier for this module.
|
|
290
336
|
* @param {RequestShortener} requestShortener the request shortener
|
|
291
337
|
* @returns {string} a user readable identifier of the module
|
|
292
338
|
*/
|
|
@@ -320,6 +366,17 @@ class ContextModule extends Module {
|
|
|
320
366
|
}
|
|
321
367
|
if (this.options.regExp) {
|
|
322
368
|
identifier += ` ${this._prettyRegExp(this.options.regExp)}`;
|
|
369
|
+
} else if (this.options.patterns) {
|
|
370
|
+
identifier += ` patterns: ${this.options.patterns.join(", ")}`;
|
|
371
|
+
}
|
|
372
|
+
if (this.options.requestContext) {
|
|
373
|
+
identifier += ` requestContext: ${this.options.requestContext}`;
|
|
374
|
+
}
|
|
375
|
+
if (this.options.exhaustive) {
|
|
376
|
+
identifier += " exhaustive";
|
|
377
|
+
}
|
|
378
|
+
if (this.options.caseSensitive === false) {
|
|
379
|
+
identifier += " case-insensitive";
|
|
323
380
|
}
|
|
324
381
|
if (this.options.include) {
|
|
325
382
|
identifier += ` include: ${this._prettyRegExp(this.options.include)}`;
|
|
@@ -353,6 +410,7 @@ class ContextModule extends Module {
|
|
|
353
410
|
}
|
|
354
411
|
|
|
355
412
|
/**
|
|
413
|
+
* Gets the library identifier.
|
|
356
414
|
* @param {LibIdentOptions} options options
|
|
357
415
|
* @returns {LibIdent | null} an identifier for library inclusion
|
|
358
416
|
*/
|
|
@@ -398,6 +456,17 @@ class ContextModule extends Module {
|
|
|
398
456
|
}
|
|
399
457
|
if (this.options.regExp) {
|
|
400
458
|
identifier += ` ${this._prettyRegExp(this.options.regExp)}`;
|
|
459
|
+
} else if (this.options.patterns) {
|
|
460
|
+
identifier += ` patterns: ${this.options.patterns.join(", ")}`;
|
|
461
|
+
}
|
|
462
|
+
if (this.options.requestContext) {
|
|
463
|
+
identifier += ` requestContext: ${this.options.requestContext}`;
|
|
464
|
+
}
|
|
465
|
+
if (this.options.exhaustive) {
|
|
466
|
+
identifier += " exhaustive";
|
|
467
|
+
}
|
|
468
|
+
if (this.options.caseSensitive === false) {
|
|
469
|
+
identifier += " case-insensitive";
|
|
401
470
|
}
|
|
402
471
|
if (this.options.include) {
|
|
403
472
|
identifier += ` include: ${this._prettyRegExp(this.options.include)}`;
|
|
@@ -415,6 +484,7 @@ class ContextModule extends Module {
|
|
|
415
484
|
}
|
|
416
485
|
|
|
417
486
|
/**
|
|
487
|
+
* Invalidates the cached state associated with this value.
|
|
418
488
|
* @returns {void}
|
|
419
489
|
*/
|
|
420
490
|
invalidateBuild() {
|
|
@@ -422,6 +492,7 @@ class ContextModule extends Module {
|
|
|
422
492
|
}
|
|
423
493
|
|
|
424
494
|
/**
|
|
495
|
+
* Checks whether the module needs to be rebuilt for the current build state.
|
|
425
496
|
* @param {NeedBuildContext} context context info
|
|
426
497
|
* @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
|
|
427
498
|
* @returns {void}
|
|
@@ -430,7 +501,7 @@ class ContextModule extends Module {
|
|
|
430
501
|
// build if enforced
|
|
431
502
|
if (this._forceBuild) return callback(null, true);
|
|
432
503
|
|
|
433
|
-
const buildInfo = /** @type {
|
|
504
|
+
const buildInfo = /** @type {ContextModuleBuildInfo} */ (this.buildInfo);
|
|
434
505
|
|
|
435
506
|
// always build when we have no snapshot and context
|
|
436
507
|
if (!buildInfo.snapshot) {
|
|
@@ -443,6 +514,7 @@ class ContextModule extends Module {
|
|
|
443
514
|
}
|
|
444
515
|
|
|
445
516
|
/**
|
|
517
|
+
* Builds the module using the provided compilation context.
|
|
446
518
|
* @param {WebpackOptions} options webpack options
|
|
447
519
|
* @param {Compilation} compilation the compilation
|
|
448
520
|
* @param {ResolverWithOptions} resolver the resolver
|
|
@@ -457,9 +529,18 @@ class ContextModule extends Module {
|
|
|
457
529
|
exportsType: "default",
|
|
458
530
|
defaultObject: "redirect-warn"
|
|
459
531
|
};
|
|
532
|
+
|
|
533
|
+
// Respect the global module parser `overrideStrict` option
|
|
534
|
+
const overrideStrict =
|
|
535
|
+
options.module.parser &&
|
|
536
|
+
options.module.parser.javascript &&
|
|
537
|
+
options.module.parser.javascript.overrideStrict;
|
|
538
|
+
|
|
460
539
|
this.buildInfo = {
|
|
540
|
+
strict: overrideStrict ? overrideStrict === "strict" : undefined,
|
|
461
541
|
snapshot: undefined
|
|
462
542
|
};
|
|
543
|
+
|
|
463
544
|
this.dependencies.length = 0;
|
|
464
545
|
this.blocks.length = 0;
|
|
465
546
|
const startTime = Date.now();
|
|
@@ -576,6 +657,7 @@ class ContextModule extends Module {
|
|
|
576
657
|
}
|
|
577
658
|
|
|
578
659
|
/**
|
|
660
|
+
* Adds the provided file dependencies to the module.
|
|
579
661
|
* @param {FileSystemDependencies} fileDependencies set where file dependencies are added to
|
|
580
662
|
* @param {FileSystemDependencies} contextDependencies set where context dependencies are added to
|
|
581
663
|
* @param {FileSystemDependencies} missingDependencies set where missing dependencies are added to
|
|
@@ -701,11 +783,13 @@ class ContextModule extends Module {
|
|
|
701
783
|
|
|
702
784
|
/**
|
|
703
785
|
* @param {FakeMap | FakeMapType} fakeMap fake map
|
|
786
|
+
* @param {RuntimeTemplate=} runtimeTemplate the runtime template
|
|
704
787
|
* @returns {string} fake map init statement
|
|
705
788
|
*/
|
|
706
|
-
getFakeMapInitStatement(fakeMap) {
|
|
789
|
+
getFakeMapInitStatement(fakeMap, runtimeTemplate) {
|
|
790
|
+
const decl = runtimeTemplate ? runtimeTemplate.renderConst() : "var";
|
|
707
791
|
return typeof fakeMap === "object"
|
|
708
|
-
?
|
|
792
|
+
? `${decl} fakeMap = ${JSON.stringify(fakeMap, null, "\t")};`
|
|
709
793
|
: "";
|
|
710
794
|
}
|
|
711
795
|
|
|
@@ -743,11 +827,13 @@ class ContextModule extends Module {
|
|
|
743
827
|
|
|
744
828
|
/**
|
|
745
829
|
* @param {false | UserRequestsMap} asyncDepsMap fake map
|
|
830
|
+
* @param {RuntimeTemplate=} runtimeTemplate the runtime template
|
|
746
831
|
* @returns {string} async deps map init statement
|
|
747
832
|
*/
|
|
748
|
-
getModuleDeferredAsyncDepsMapInitStatement(asyncDepsMap) {
|
|
833
|
+
getModuleDeferredAsyncDepsMapInitStatement(asyncDepsMap, runtimeTemplate) {
|
|
834
|
+
const decl = runtimeTemplate ? runtimeTemplate.renderConst() : "var";
|
|
749
835
|
return typeof asyncDepsMap === "object"
|
|
750
|
-
?
|
|
836
|
+
? `${decl} asyncDepsMap = ${JSON.stringify(asyncDepsMap, null, "\t")};`
|
|
751
837
|
: "";
|
|
752
838
|
}
|
|
753
839
|
|
|
@@ -797,23 +883,25 @@ class ContextModule extends Module {
|
|
|
797
883
|
* @param {Dependency[]} dependencies dependencies
|
|
798
884
|
* @param {ModuleId} id module id
|
|
799
885
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
886
|
+
* @param {RuntimeTemplate=} runtimeTemplate the runtime template
|
|
800
887
|
* @returns {string} source code
|
|
801
888
|
*/
|
|
802
|
-
getSyncSource(dependencies, id, chunkGraph) {
|
|
889
|
+
getSyncSource(dependencies, id, chunkGraph, runtimeTemplate) {
|
|
803
890
|
const map = this.getUserRequestMap(dependencies, chunkGraph);
|
|
804
891
|
const fakeMap = this.getFakeMap(dependencies, chunkGraph);
|
|
805
892
|
const returnModuleObject = this.getReturnModuleObjectSource(fakeMap);
|
|
893
|
+
const cst = runtimeTemplate ? runtimeTemplate.renderConst() : "var";
|
|
806
894
|
|
|
807
|
-
return
|
|
808
|
-
${this.getFakeMapInitStatement(fakeMap)}
|
|
895
|
+
return `${cst} map = ${JSON.stringify(map, null, "\t")};
|
|
896
|
+
${this.getFakeMapInitStatement(fakeMap, runtimeTemplate)}
|
|
809
897
|
|
|
810
898
|
function webpackContext(req) {
|
|
811
|
-
|
|
899
|
+
${cst} id = webpackContextResolve(req);
|
|
812
900
|
return ${returnModuleObject};
|
|
813
901
|
}
|
|
814
902
|
function webpackContextResolve(req) {
|
|
815
903
|
if(!${RuntimeGlobals.hasOwnProperty}(map, req)) {
|
|
816
|
-
|
|
904
|
+
${cst} e = new Error("Cannot find module '" + req + "'");
|
|
817
905
|
e.code = 'MODULE_NOT_FOUND';
|
|
818
906
|
throw e;
|
|
819
907
|
}
|
|
@@ -831,20 +919,22 @@ webpackContext.id = ${JSON.stringify(id)};`;
|
|
|
831
919
|
* @param {Dependency[]} dependencies dependencies
|
|
832
920
|
* @param {ModuleId} id module id
|
|
833
921
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
922
|
+
* @param {RuntimeTemplate=} runtimeTemplate the runtime template
|
|
834
923
|
* @returns {string} source code
|
|
835
924
|
*/
|
|
836
|
-
getWeakSyncSource(dependencies, id, chunkGraph) {
|
|
925
|
+
getWeakSyncSource(dependencies, id, chunkGraph, runtimeTemplate) {
|
|
837
926
|
const map = this.getUserRequestMap(dependencies, chunkGraph);
|
|
838
927
|
const fakeMap = this.getFakeMap(dependencies, chunkGraph);
|
|
839
928
|
const returnModuleObject = this.getReturnModuleObjectSource(fakeMap);
|
|
929
|
+
const cst = runtimeTemplate ? runtimeTemplate.renderConst() : "var";
|
|
840
930
|
|
|
841
|
-
return
|
|
842
|
-
${this.getFakeMapInitStatement(fakeMap)}
|
|
931
|
+
return `${cst} map = ${JSON.stringify(map, null, "\t")};
|
|
932
|
+
${this.getFakeMapInitStatement(fakeMap, runtimeTemplate)}
|
|
843
933
|
|
|
844
934
|
function webpackContext(req) {
|
|
845
|
-
|
|
935
|
+
${cst} id = webpackContextResolve(req);
|
|
846
936
|
if(!${RuntimeGlobals.moduleFactories}[id]) {
|
|
847
|
-
|
|
937
|
+
${cst} e = new Error("Module '" + req + "' ('" + id + "') is not available (weak dependency)");
|
|
848
938
|
e.code = 'MODULE_NOT_FOUND';
|
|
849
939
|
throw e;
|
|
850
940
|
}
|
|
@@ -852,7 +942,7 @@ function webpackContext(req) {
|
|
|
852
942
|
}
|
|
853
943
|
function webpackContextResolve(req) {
|
|
854
944
|
if(!${RuntimeGlobals.hasOwnProperty}(map, req)) {
|
|
855
|
-
|
|
945
|
+
${cst} e = new Error("Cannot find module '" + req + "'");
|
|
856
946
|
e.code = 'MODULE_NOT_FOUND';
|
|
857
947
|
throw e;
|
|
858
948
|
}
|
|
@@ -886,10 +976,11 @@ module.exports = webpackContext;`;
|
|
|
886
976
|
true,
|
|
887
977
|
asyncDepsMap ? "asyncDepsMap[id]" : undefined
|
|
888
978
|
);
|
|
979
|
+
const cst = runtimeTemplate.renderConst();
|
|
889
980
|
|
|
890
|
-
return
|
|
891
|
-
${this.getFakeMapInitStatement(fakeMap)}
|
|
892
|
-
${this.getModuleDeferredAsyncDepsMapInitStatement(asyncDepsMap)}
|
|
981
|
+
return `${cst} map = ${JSON.stringify(map, null, "\t")};
|
|
982
|
+
${this.getFakeMapInitStatement(fakeMap, runtimeTemplate)}
|
|
983
|
+
${this.getModuleDeferredAsyncDepsMapInitStatement(asyncDepsMap, runtimeTemplate)}
|
|
893
984
|
|
|
894
985
|
function webpackAsyncContext(req) {
|
|
895
986
|
return webpackAsyncContextResolve(req).then(${runtimeTemplate.basicFunction(
|
|
@@ -897,7 +988,7 @@ function webpackAsyncContext(req) {
|
|
|
897
988
|
[
|
|
898
989
|
`if(!${RuntimeGlobals.moduleFactories}[id]) {`,
|
|
899
990
|
Template.indent([
|
|
900
|
-
|
|
991
|
+
`${cst} e = new Error("Module '" + req + "' ('" + id + "') is not available (weak dependency)");`,
|
|
901
992
|
"e.code = 'MODULE_NOT_FOUND';",
|
|
902
993
|
"throw e;"
|
|
903
994
|
]),
|
|
@@ -912,7 +1003,7 @@ function webpackAsyncContextResolve(req) {
|
|
|
912
1003
|
return Promise.resolve().then(${runtimeTemplate.basicFunction("", [
|
|
913
1004
|
`if(!${RuntimeGlobals.hasOwnProperty}(map, req)) {`,
|
|
914
1005
|
Template.indent([
|
|
915
|
-
|
|
1006
|
+
`${cst} e = new Error("Cannot find module '" + req + "'");`,
|
|
916
1007
|
"e.code = 'MODULE_NOT_FOUND';",
|
|
917
1008
|
"throw e;"
|
|
918
1009
|
]),
|
|
@@ -952,9 +1043,10 @@ module.exports = webpackAsyncContext;`;
|
|
|
952
1043
|
"id"
|
|
953
1044
|
);
|
|
954
1045
|
|
|
955
|
-
|
|
956
|
-
${
|
|
957
|
-
${this.
|
|
1046
|
+
const cst = runtimeTemplate.renderConst();
|
|
1047
|
+
return `${cst} map = ${JSON.stringify(map, null, "\t")};
|
|
1048
|
+
${this.getFakeMapInitStatement(fakeMap, runtimeTemplate)}
|
|
1049
|
+
${this.getModuleDeferredAsyncDepsMapInitStatement(asyncDepsMap, runtimeTemplate)}
|
|
958
1050
|
|
|
959
1051
|
function webpackAsyncContext(req) {
|
|
960
1052
|
return webpackAsyncContextResolve(req).then(${thenFunction});
|
|
@@ -965,7 +1057,7 @@ function webpackAsyncContextResolve(req) {
|
|
|
965
1057
|
return Promise.resolve().then(${runtimeTemplate.basicFunction("", [
|
|
966
1058
|
`if(!${RuntimeGlobals.hasOwnProperty}(map, req)) {`,
|
|
967
1059
|
Template.indent([
|
|
968
|
-
|
|
1060
|
+
`${cst} e = new Error("Cannot find module '" + req + "'");`,
|
|
969
1061
|
"e.code = 'MODULE_NOT_FOUND';",
|
|
970
1062
|
"throw e;"
|
|
971
1063
|
]),
|
|
@@ -1019,9 +1111,10 @@ module.exports = webpackAsyncContext;`;
|
|
|
1019
1111
|
"id"
|
|
1020
1112
|
);
|
|
1021
1113
|
|
|
1022
|
-
|
|
1023
|
-
${
|
|
1024
|
-
${this.
|
|
1114
|
+
const cst = runtimeTemplate.renderConst();
|
|
1115
|
+
return `${cst} map = ${JSON.stringify(map, null, "\t")};
|
|
1116
|
+
${this.getFakeMapInitStatement(fakeMap, runtimeTemplate)}
|
|
1117
|
+
${this.getModuleDeferredAsyncDepsMapInitStatement(asyncDepsMap, runtimeTemplate)}
|
|
1025
1118
|
|
|
1026
1119
|
function webpackAsyncContext(req) {
|
|
1027
1120
|
return webpackAsyncContextResolve(req).then(${thenFunction});
|
|
@@ -1030,7 +1123,7 @@ function webpackAsyncContextResolve(req) {
|
|
|
1030
1123
|
return ${promise}.then(${runtimeTemplate.basicFunction("", [
|
|
1031
1124
|
`if(!${RuntimeGlobals.hasOwnProperty}(map, req)) {`,
|
|
1032
1125
|
Template.indent([
|
|
1033
|
-
|
|
1126
|
+
`${cst} e = new Error("Cannot find module '" + req + "'");`,
|
|
1034
1127
|
"e.code = 'MODULE_NOT_FOUND';",
|
|
1035
1128
|
"throw e;"
|
|
1036
1129
|
]),
|
|
@@ -1140,7 +1233,8 @@ module.exports = webpackAsyncContext;`;
|
|
|
1140
1233
|
}
|
|
1141
1234
|
|
|
1142
1235
|
const chunksPosition = hasFakeMap ? 2 : 1;
|
|
1143
|
-
|
|
1236
|
+
// No chunks slot is pushed when `hasNoChunk`, so `asyncDeps` sits at `chunksPosition`.
|
|
1237
|
+
const asyncDepsPosition = hasNoChunk ? chunksPosition : chunksPosition + 1;
|
|
1144
1238
|
const requestPrefix = hasNoChunk
|
|
1145
1239
|
? "Promise.resolve()"
|
|
1146
1240
|
: hasMultipleOrNoChunks
|
|
@@ -1153,6 +1247,7 @@ module.exports = webpackAsyncContext;`;
|
|
|
1153
1247
|
shortMode ? "invalid" : "ids[1]"
|
|
1154
1248
|
);
|
|
1155
1249
|
|
|
1250
|
+
const cst = runtimeTemplate.renderConst();
|
|
1156
1251
|
const webpackAsyncContext =
|
|
1157
1252
|
requestPrefix === "Promise.resolve()"
|
|
1158
1253
|
? `
|
|
@@ -1160,12 +1255,12 @@ function webpackAsyncContext(req) {
|
|
|
1160
1255
|
return Promise.resolve().then(${runtimeTemplate.basicFunction("", [
|
|
1161
1256
|
`if(!${RuntimeGlobals.hasOwnProperty}(map, req)) {`,
|
|
1162
1257
|
Template.indent([
|
|
1163
|
-
|
|
1258
|
+
`${cst} e = new Error("Cannot find module '" + req + "'");`,
|
|
1164
1259
|
"e.code = 'MODULE_NOT_FOUND';",
|
|
1165
1260
|
"throw e;"
|
|
1166
1261
|
]),
|
|
1167
1262
|
"}",
|
|
1168
|
-
shortMode ?
|
|
1263
|
+
shortMode ? `${cst} id = map[req];` : `${cst} ids = map[req], id = ids[0];`,
|
|
1169
1264
|
`return ${returnModuleObject};`
|
|
1170
1265
|
])});
|
|
1171
1266
|
}`
|
|
@@ -1173,7 +1268,7 @@ function webpackAsyncContext(req) {
|
|
|
1173
1268
|
try {
|
|
1174
1269
|
if(!${RuntimeGlobals.hasOwnProperty}(map, req)) {
|
|
1175
1270
|
return Promise.resolve().then(${runtimeTemplate.basicFunction("", [
|
|
1176
|
-
|
|
1271
|
+
`${cst} e = new Error("Cannot find module '" + req + "'");`,
|
|
1177
1272
|
"e.code = 'MODULE_NOT_FOUND';",
|
|
1178
1273
|
"throw e;"
|
|
1179
1274
|
])});
|
|
@@ -1182,11 +1277,11 @@ function webpackAsyncContext(req) {
|
|
|
1182
1277
|
return Promise.reject(err);
|
|
1183
1278
|
}
|
|
1184
1279
|
|
|
1185
|
-
|
|
1280
|
+
${cst} ids = map[req], id = ids[0];
|
|
1186
1281
|
return ${requestPrefix}.then(${runtimeTemplate.returningFunction(returnModuleObject)});
|
|
1187
1282
|
}`;
|
|
1188
1283
|
|
|
1189
|
-
return
|
|
1284
|
+
return `${cst} map = ${JSON.stringify(map, null, "\t")};
|
|
1190
1285
|
${webpackAsyncContext}
|
|
1191
1286
|
webpackAsyncContext.keys = ${runtimeTemplate.returningFunction(
|
|
1192
1287
|
"Object.keys(map)"
|
|
@@ -1202,7 +1297,7 @@ module.exports = webpackAsyncContext;`;
|
|
|
1202
1297
|
*/
|
|
1203
1298
|
getSourceForEmptyContext(id, runtimeTemplate) {
|
|
1204
1299
|
return `function webpackEmptyContext(req) {
|
|
1205
|
-
|
|
1300
|
+
${runtimeTemplate.renderConst()} e = new Error("Cannot find module '" + req + "'");
|
|
1206
1301
|
e.code = 'MODULE_NOT_FOUND';
|
|
1207
1302
|
throw e;
|
|
1208
1303
|
}
|
|
@@ -1222,7 +1317,7 @@ module.exports = webpackEmptyContext;`;
|
|
|
1222
1317
|
// Here Promise.resolve().then() is used instead of new Promise() to prevent
|
|
1223
1318
|
// uncaught exception popping up in devtools
|
|
1224
1319
|
return Promise.resolve().then(${runtimeTemplate.basicFunction("", [
|
|
1225
|
-
|
|
1320
|
+
`${runtimeTemplate.renderConst()} e = new Error("Cannot find module '" + req + "'");`,
|
|
1226
1321
|
"e.code = 'MODULE_NOT_FOUND';",
|
|
1227
1322
|
"throw e;"
|
|
1228
1323
|
])});
|
|
@@ -1233,13 +1328,196 @@ webpackEmptyAsyncContext.id = ${JSON.stringify(id)};
|
|
|
1233
1328
|
module.exports = webpackEmptyAsyncContext;`;
|
|
1234
1329
|
}
|
|
1235
1330
|
|
|
1331
|
+
/**
|
|
1332
|
+
* @returns {string | undefined} import property access
|
|
1333
|
+
*/
|
|
1334
|
+
getImportPropertyAccess() {
|
|
1335
|
+
const importName = this.options.importName;
|
|
1336
|
+
if (!importName || importName === "*") return;
|
|
1337
|
+
return propertyAccess([importName]);
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
/**
|
|
1341
|
+
* @param {number} index index
|
|
1342
|
+
* @param {string} userRequest user request
|
|
1343
|
+
* @param {string} value value expression
|
|
1344
|
+
* @param {string[]} entries entries
|
|
1345
|
+
* @returns {void}
|
|
1346
|
+
*/
|
|
1347
|
+
appendGlobMapEntry(index, userRequest, value, entries) {
|
|
1348
|
+
entries.push(`\n ${JSON.stringify(userRequest)}: ${value}`);
|
|
1349
|
+
}
|
|
1350
|
+
|
|
1351
|
+
/**
|
|
1352
|
+
* @param {string} entries entries
|
|
1353
|
+
* @returns {string} object export source
|
|
1354
|
+
*/
|
|
1355
|
+
getGlobObjectExportSource(entries) {
|
|
1356
|
+
return `\nmodule.exports = {${entries}\n};\n`;
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1359
|
+
/**
|
|
1360
|
+
* @returns {string} empty object export source
|
|
1361
|
+
*/
|
|
1362
|
+
getEmptyObjectExportSource() {
|
|
1363
|
+
return "\nmodule.exports = {};\n";
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
/**
|
|
1367
|
+
* @param {AsyncDependenciesBlock[]} blocks blocks
|
|
1368
|
+
* @param {ImportPhaseType} phase import phase
|
|
1369
|
+
* @param {object} context context
|
|
1370
|
+
* @param {RuntimeTemplate} context.runtimeTemplate runtime template
|
|
1371
|
+
* @param {ChunkGraph} context.chunkGraph chunk graph
|
|
1372
|
+
* @param {RuntimeRequirements=} context.runtimeRequirements runtime requirements
|
|
1373
|
+
* @returns {string} glob lazy source
|
|
1374
|
+
*/
|
|
1375
|
+
getGlobLazySource(
|
|
1376
|
+
blocks,
|
|
1377
|
+
phase,
|
|
1378
|
+
{ runtimeTemplate, chunkGraph, runtimeRequirements }
|
|
1379
|
+
) {
|
|
1380
|
+
if (!blocks || blocks.length === 0) {
|
|
1381
|
+
return this.getEmptyObjectExportSource();
|
|
1382
|
+
}
|
|
1383
|
+
const moduleGraph = chunkGraph.moduleGraph;
|
|
1384
|
+
const globImportAccess = this.getImportPropertyAccess();
|
|
1385
|
+
/** @type {RuntimeRequirements} */
|
|
1386
|
+
const localRuntimeRequirements = runtimeRequirements || new Set();
|
|
1387
|
+
/** @type {{ userRequest: string, block: AsyncDependenciesBlock, dependency: ContextElementDependency }[]} */
|
|
1388
|
+
const blockInfo = blocks
|
|
1389
|
+
.map((block) => {
|
|
1390
|
+
const dependency =
|
|
1391
|
+
/** @type {ContextElementDependency} */
|
|
1392
|
+
(block.dependencies[0]);
|
|
1393
|
+
return {
|
|
1394
|
+
userRequest: dependency.userRequest,
|
|
1395
|
+
block,
|
|
1396
|
+
dependency
|
|
1397
|
+
};
|
|
1398
|
+
})
|
|
1399
|
+
.sort((a, b) =>
|
|
1400
|
+
a.userRequest < b.userRequest
|
|
1401
|
+
? -1
|
|
1402
|
+
: a.userRequest > b.userRequest
|
|
1403
|
+
? 1
|
|
1404
|
+
: 0
|
|
1405
|
+
);
|
|
1406
|
+
/** @type {string[]} */
|
|
1407
|
+
const entries = [];
|
|
1408
|
+
for (let i = 0; i < blockInfo.length; i++) {
|
|
1409
|
+
const info = blockInfo[i];
|
|
1410
|
+
let importPromise = runtimeTemplate.moduleNamespacePromise({
|
|
1411
|
+
chunkGraph,
|
|
1412
|
+
block: info.block,
|
|
1413
|
+
module: /** @type {Module} */ (moduleGraph.getModule(info.dependency)),
|
|
1414
|
+
request: info.userRequest,
|
|
1415
|
+
message: "import.meta.glob",
|
|
1416
|
+
strict: this.options.namespaceObject === "strict",
|
|
1417
|
+
dependency: info.dependency,
|
|
1418
|
+
runtimeRequirements: localRuntimeRequirements
|
|
1419
|
+
});
|
|
1420
|
+
if (globImportAccess) {
|
|
1421
|
+
importPromise = `${importPromise}.then(function(m) { return m${globImportAccess}; })`;
|
|
1422
|
+
}
|
|
1423
|
+
this.appendGlobMapEntry(
|
|
1424
|
+
i,
|
|
1425
|
+
info.userRequest,
|
|
1426
|
+
`function() { return ${importPromise}; }`,
|
|
1427
|
+
entries
|
|
1428
|
+
);
|
|
1429
|
+
}
|
|
1430
|
+
return this.getGlobObjectExportSource(entries.join(","));
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
/**
|
|
1434
|
+
* @param {Dependency[]} dependencies dependencies
|
|
1435
|
+
* @param {ChunkGraph} chunkGraph chunk graph
|
|
1436
|
+
* @param {RuntimeTemplate} runtimeTemplate runtime template
|
|
1437
|
+
* @returns {string} glob sync source
|
|
1438
|
+
*/
|
|
1439
|
+
getGlobSyncSource(dependencies, chunkGraph, runtimeTemplate) {
|
|
1440
|
+
if (!dependencies || dependencies.length === 0) {
|
|
1441
|
+
return this.getEmptyObjectExportSource();
|
|
1442
|
+
}
|
|
1443
|
+
const moduleGraph = chunkGraph.moduleGraph;
|
|
1444
|
+
const fakeMap = this.getFakeMap(dependencies, chunkGraph);
|
|
1445
|
+
const returnModuleObject = this.getReturnModuleObjectSource(fakeMap);
|
|
1446
|
+
const globImportAccess = this.getImportPropertyAccess();
|
|
1447
|
+
const sortedDependencies =
|
|
1448
|
+
/** @type {import("./dependencies/ContextElementDependency")[]} */
|
|
1449
|
+
(dependencies).sort((a, b) =>
|
|
1450
|
+
a.userRequest < b.userRequest
|
|
1451
|
+
? -1
|
|
1452
|
+
: a.userRequest > b.userRequest
|
|
1453
|
+
? 1
|
|
1454
|
+
: 0
|
|
1455
|
+
);
|
|
1456
|
+
/** @type {string[]} */
|
|
1457
|
+
const entries = [];
|
|
1458
|
+
let index = 0;
|
|
1459
|
+
for (const dep of sortedDependencies) {
|
|
1460
|
+
const module = moduleGraph.getModule(dep);
|
|
1461
|
+
let moduleExpr;
|
|
1462
|
+
if (module) {
|
|
1463
|
+
const moduleId = chunkGraph.getModuleId(module);
|
|
1464
|
+
moduleExpr = `(function() { var id = ${JSON.stringify(moduleId)}; return ${returnModuleObject}; })()`;
|
|
1465
|
+
if (globImportAccess) {
|
|
1466
|
+
moduleExpr += globImportAccess;
|
|
1467
|
+
}
|
|
1468
|
+
} else {
|
|
1469
|
+
moduleExpr = `undefined /* ${JSON.stringify(dep.userRequest)} */`;
|
|
1470
|
+
}
|
|
1471
|
+
this.appendGlobMapEntry(index++, dep.userRequest, moduleExpr, entries);
|
|
1472
|
+
}
|
|
1473
|
+
const fakeMapInit = this.getFakeMapInitStatement(fakeMap, runtimeTemplate);
|
|
1474
|
+
return `${fakeMapInit}\n${this.getGlobObjectExportSource(entries.join(","))}`;
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1236
1477
|
/**
|
|
1237
1478
|
* @param {string} asyncMode module mode
|
|
1238
1479
|
* @param {ImportPhaseType} phase import phase
|
|
1239
1480
|
* @param {CodeGenerationContext} context context info
|
|
1240
1481
|
* @returns {string} the source code
|
|
1241
1482
|
*/
|
|
1242
|
-
|
|
1483
|
+
getGlobSourceString(asyncMode, phase, context) {
|
|
1484
|
+
if (asyncMode === "lazy") {
|
|
1485
|
+
if (this.blocks && this.blocks.length > 0) {
|
|
1486
|
+
return this.getGlobLazySource(this.blocks, phase, context);
|
|
1487
|
+
}
|
|
1488
|
+
return this.getEmptyObjectExportSource();
|
|
1489
|
+
}
|
|
1490
|
+
if (this.dependencies && this.dependencies.length > 0) {
|
|
1491
|
+
return this.getGlobSyncSource(
|
|
1492
|
+
this.dependencies,
|
|
1493
|
+
context.chunkGraph,
|
|
1494
|
+
context.runtimeTemplate
|
|
1495
|
+
);
|
|
1496
|
+
}
|
|
1497
|
+
return this.getEmptyObjectExportSource();
|
|
1498
|
+
}
|
|
1499
|
+
|
|
1500
|
+
/**
|
|
1501
|
+
* @param {string} asyncMode module mode
|
|
1502
|
+
* @param {ImportPhaseType} phase import phase
|
|
1503
|
+
* @param {CodeGenerationContext & { runtimeRequirements?: RuntimeRequirements }} context context info
|
|
1504
|
+
* @returns {string} the source code
|
|
1505
|
+
*/
|
|
1506
|
+
getSourceString(asyncMode, phase, context) {
|
|
1507
|
+
if (this.options.patterns) {
|
|
1508
|
+
return this.getGlobSourceString(asyncMode, phase, context);
|
|
1509
|
+
}
|
|
1510
|
+
return this.getContextSourceString(asyncMode, phase, context);
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1513
|
+
/**
|
|
1514
|
+
* @param {string} asyncMode module mode
|
|
1515
|
+
* @param {ImportPhaseType} phase import phase
|
|
1516
|
+
* @param {CodeGenerationContext & { runtimeRequirements?: RuntimeRequirements }} context context info
|
|
1517
|
+
* @returns {string} the source code
|
|
1518
|
+
*/
|
|
1519
|
+
getContextSourceString(asyncMode, phase, context) {
|
|
1520
|
+
const { runtimeTemplate, chunkGraph } = context;
|
|
1243
1521
|
const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(this));
|
|
1244
1522
|
if (asyncMode === "lazy") {
|
|
1245
1523
|
if (this.blocks && this.blocks.length > 0) {
|
|
@@ -1283,10 +1561,20 @@ module.exports = webpackEmptyAsyncContext;`;
|
|
|
1283
1561
|
this.dependencies &&
|
|
1284
1562
|
this.dependencies.length > 0
|
|
1285
1563
|
) {
|
|
1286
|
-
return this.getWeakSyncSource(
|
|
1564
|
+
return this.getWeakSyncSource(
|
|
1565
|
+
this.dependencies,
|
|
1566
|
+
id,
|
|
1567
|
+
chunkGraph,
|
|
1568
|
+
runtimeTemplate
|
|
1569
|
+
);
|
|
1287
1570
|
}
|
|
1288
1571
|
if (this.dependencies && this.dependencies.length > 0) {
|
|
1289
|
-
return this.getSyncSource(
|
|
1572
|
+
return this.getSyncSource(
|
|
1573
|
+
this.dependencies,
|
|
1574
|
+
id,
|
|
1575
|
+
chunkGraph,
|
|
1576
|
+
runtimeTemplate
|
|
1577
|
+
);
|
|
1290
1578
|
}
|
|
1291
1579
|
return this.getSourceForEmptyContext(id, runtimeTemplate);
|
|
1292
1580
|
}
|
|
@@ -1311,12 +1599,15 @@ module.exports = webpackEmptyAsyncContext;`;
|
|
|
1311
1599
|
}
|
|
1312
1600
|
|
|
1313
1601
|
/**
|
|
1602
|
+
* Generates code and runtime requirements for this module.
|
|
1314
1603
|
* @param {CodeGenerationContext} context context for code generation
|
|
1315
1604
|
* @returns {CodeGenerationResult} result
|
|
1316
1605
|
*/
|
|
1317
1606
|
codeGeneration(context) {
|
|
1318
1607
|
const { chunkGraph, compilation } = context;
|
|
1319
1608
|
|
|
1609
|
+
/** @type {RuntimeRequirements} */
|
|
1610
|
+
const set = new Set();
|
|
1320
1611
|
/** @type {Sources} */
|
|
1321
1612
|
const sources = new Map();
|
|
1322
1613
|
sources.set(
|
|
@@ -1325,13 +1616,11 @@ module.exports = webpackEmptyAsyncContext;`;
|
|
|
1325
1616
|
this.getSourceString(
|
|
1326
1617
|
this.options.mode,
|
|
1327
1618
|
this.options.phase || ImportPhase.Evaluation,
|
|
1328
|
-
context
|
|
1619
|
+
{ ...context, runtimeRequirements: set }
|
|
1329
1620
|
),
|
|
1330
1621
|
compilation
|
|
1331
1622
|
)
|
|
1332
1623
|
);
|
|
1333
|
-
/** @type {RuntimeRequirements} */
|
|
1334
|
-
const set = new Set();
|
|
1335
1624
|
const allDeps =
|
|
1336
1625
|
this.dependencies.length > 0
|
|
1337
1626
|
? /** @type {ContextElementDependency[]} */ [...this.dependencies]
|
|
@@ -1370,6 +1659,7 @@ module.exports = webpackEmptyAsyncContext;`;
|
|
|
1370
1659
|
}
|
|
1371
1660
|
|
|
1372
1661
|
/**
|
|
1662
|
+
* Returns the estimated size for the requested source type.
|
|
1373
1663
|
* @param {string=} type the source type for which the size should be estimated
|
|
1374
1664
|
* @returns {number} the estimated size of the module (must be non-zero)
|
|
1375
1665
|
*/
|
|
@@ -1386,23 +1676,23 @@ module.exports = webpackEmptyAsyncContext;`;
|
|
|
1386
1676
|
}
|
|
1387
1677
|
|
|
1388
1678
|
/**
|
|
1679
|
+
* Serializes this instance into the provided serializer context.
|
|
1389
1680
|
* @param {ObjectSerializerContext} context context
|
|
1390
1681
|
*/
|
|
1391
1682
|
serialize(context) {
|
|
1392
|
-
|
|
1393
|
-
write(this._identifier);
|
|
1394
|
-
write(this._forceBuild);
|
|
1683
|
+
context.write(this._identifier).write(this._forceBuild);
|
|
1395
1684
|
super.serialize(context);
|
|
1396
1685
|
}
|
|
1397
1686
|
|
|
1398
1687
|
/**
|
|
1688
|
+
* Restores this instance from the provided deserializer context.
|
|
1399
1689
|
* @param {ObjectDeserializerContext} context context
|
|
1400
1690
|
*/
|
|
1401
1691
|
deserialize(context) {
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
this._forceBuild = read();
|
|
1405
|
-
super.deserialize(
|
|
1692
|
+
this._identifier = context.read();
|
|
1693
|
+
const c1 = context.rest;
|
|
1694
|
+
this._forceBuild = c1.read();
|
|
1695
|
+
super.deserialize(c1.rest);
|
|
1406
1696
|
}
|
|
1407
1697
|
}
|
|
1408
1698
|
|