@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
package/lib/json/JsonData.js
CHANGED
|
@@ -14,6 +14,7 @@ const { register } = require("../util/serialization");
|
|
|
14
14
|
|
|
15
15
|
class JsonData {
|
|
16
16
|
/**
|
|
17
|
+
* Creates an instance of JsonData.
|
|
17
18
|
* @param {Buffer | JsonValue} data JSON data
|
|
18
19
|
*/
|
|
19
20
|
constructor(data) {
|
|
@@ -29,6 +30,7 @@ class JsonData {
|
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
/**
|
|
33
|
+
* Returns raw JSON data.
|
|
32
34
|
* @returns {JsonValue | undefined} Raw JSON data
|
|
33
35
|
*/
|
|
34
36
|
get() {
|
|
@@ -39,6 +41,7 @@ class JsonData {
|
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
/**
|
|
44
|
+
* Updates the hash with the data contributed by this instance.
|
|
42
45
|
* @param {Hash} hash hash to be updated
|
|
43
46
|
* @returns {void} the updated hash
|
|
44
47
|
*/
|
|
@@ -53,6 +56,7 @@ class JsonData {
|
|
|
53
56
|
|
|
54
57
|
register(JsonData, "webpack/lib/json/JsonData", null, {
|
|
55
58
|
/**
|
|
59
|
+
* Serializes this instance into the provided serializer context.
|
|
56
60
|
* @param {JsonData} obj JSONData object
|
|
57
61
|
* @param {ObjectSerializerContext} context context
|
|
58
62
|
*/
|
|
@@ -63,6 +67,7 @@ register(JsonData, "webpack/lib/json/JsonData", null, {
|
|
|
63
67
|
write(obj._buffer);
|
|
64
68
|
},
|
|
65
69
|
/**
|
|
70
|
+
* Restores this instance from the provided deserializer context.
|
|
66
71
|
* @param {ObjectDeserializerContext} context context
|
|
67
72
|
* @returns {JsonData} deserialized JSON data
|
|
68
73
|
*/
|
|
@@ -16,6 +16,8 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
16
16
|
/** @typedef {import("../../declarations/WebpackOptions").JsonGeneratorOptions} JsonGeneratorOptions */
|
|
17
17
|
/** @typedef {import("../ExportsInfo")} ExportsInfo */
|
|
18
18
|
/** @typedef {import("../Generator").GenerateContext} GenerateContext */
|
|
19
|
+
/** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */
|
|
20
|
+
/** @typedef {import("../util/Hash")} Hash */
|
|
19
21
|
/** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */
|
|
20
22
|
/** @typedef {import("../Module").SourceType} SourceType */
|
|
21
23
|
/** @typedef {import("../Module").SourceTypes} SourceTypes */
|
|
@@ -26,6 +28,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
26
28
|
/** @typedef {import("../util/fs").JsonValue} JsonValue */
|
|
27
29
|
|
|
28
30
|
/**
|
|
31
|
+
* Returns stringified data.
|
|
29
32
|
* @param {JsonValue} data Raw JSON data
|
|
30
33
|
* @returns {undefined | string} stringified data
|
|
31
34
|
*/
|
|
@@ -41,6 +44,7 @@ const stringifySafe = (data) => {
|
|
|
41
44
|
};
|
|
42
45
|
|
|
43
46
|
/**
|
|
47
|
+
* Creates an object for exports info.
|
|
44
48
|
* @param {JsonObject | JsonArray} data Raw JSON data (always an object or array)
|
|
45
49
|
* @param {ExportsInfo} exportsInfo exports info
|
|
46
50
|
* @param {RuntimeSpec} runtime the runtime
|
|
@@ -121,6 +125,7 @@ const createObjectForExportsInfo = (data, exportsInfo, runtime) => {
|
|
|
121
125
|
|
|
122
126
|
class JsonGenerator extends Generator {
|
|
123
127
|
/**
|
|
128
|
+
* Creates an instance of JsonGenerator.
|
|
124
129
|
* @param {JsonGeneratorOptions} options options
|
|
125
130
|
*/
|
|
126
131
|
constructor(options) {
|
|
@@ -130,6 +135,7 @@ class JsonGenerator extends Generator {
|
|
|
130
135
|
}
|
|
131
136
|
|
|
132
137
|
/**
|
|
138
|
+
* Returns the source types available for this module.
|
|
133
139
|
* @param {NormalModule} module fresh module
|
|
134
140
|
* @returns {SourceTypes} available types (do not mutate)
|
|
135
141
|
*/
|
|
@@ -138,6 +144,7 @@ class JsonGenerator extends Generator {
|
|
|
138
144
|
}
|
|
139
145
|
|
|
140
146
|
/**
|
|
147
|
+
* Returns the estimated size for the requested source type.
|
|
141
148
|
* @param {NormalModule} module the module
|
|
142
149
|
* @param {SourceType=} type source type
|
|
143
150
|
* @returns {number} estimate size of the module
|
|
@@ -153,6 +160,7 @@ class JsonGenerator extends Generator {
|
|
|
153
160
|
}
|
|
154
161
|
|
|
155
162
|
/**
|
|
163
|
+
* Returns the reason this module cannot be concatenated, when one exists.
|
|
156
164
|
* @param {NormalModule} module module for which the bailout reason should be determined
|
|
157
165
|
* @param {ConcatenationBailoutReasonContext} context context
|
|
158
166
|
* @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
|
|
@@ -162,6 +170,7 @@ class JsonGenerator extends Generator {
|
|
|
162
170
|
}
|
|
163
171
|
|
|
164
172
|
/**
|
|
173
|
+
* Generates generated code for this runtime module.
|
|
165
174
|
* @param {NormalModule} module module for which the code should be generated
|
|
166
175
|
* @param {GenerateContext} generateContext context for generate
|
|
167
176
|
* @returns {Source | null} generated code
|
|
@@ -221,6 +230,7 @@ class JsonGenerator extends Generator {
|
|
|
221
230
|
}
|
|
222
231
|
|
|
223
232
|
/**
|
|
233
|
+
* Generates fallback output for the provided error condition.
|
|
224
234
|
* @param {Error} error the error
|
|
225
235
|
* @param {NormalModule} module module for which the code should be generated
|
|
226
236
|
* @param {GenerateContext} generateContext context for generate
|
|
@@ -229,6 +239,17 @@ class JsonGenerator extends Generator {
|
|
|
229
239
|
generateError(error, module, generateContext) {
|
|
230
240
|
return new RawSource(`throw new Error(${JSON.stringify(error.message)});`);
|
|
231
241
|
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Updates the hash with the data contributed by this instance.
|
|
245
|
+
* @param {Hash} hash hash that will be modified
|
|
246
|
+
* @param {UpdateHashContext} updateHashContext context for updating hash
|
|
247
|
+
*/
|
|
248
|
+
updateHash(hash, updateHashContext) {
|
|
249
|
+
if (this.options.JSONParse) {
|
|
250
|
+
hash.update("json-parse");
|
|
251
|
+
}
|
|
252
|
+
}
|
|
232
253
|
}
|
|
233
254
|
|
|
234
255
|
module.exports = JsonGenerator;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
const NormalModule = require("../NormalModule");
|
|
8
|
+
const makeSerializable = require("../util/makeSerializable");
|
|
9
|
+
|
|
10
|
+
/** @typedef {import("../NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
|
|
11
|
+
/** @typedef {import("../NormalModule").NormalModuleCreateData} NormalModuleCreateData */
|
|
12
|
+
/** @typedef {import("./JsonData")} JsonData */
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Defines the build info properties specific to json modules.
|
|
16
|
+
* @typedef {object} KnownJsonModuleBuildInfo
|
|
17
|
+
* @property {JsonData=} jsonData
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/** @typedef {NormalModuleBuildInfo & KnownJsonModuleBuildInfo} JsonModuleBuildInfo */
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Module class for `json` modules. JSON-specific properties should live here instead of `NormalModule`.
|
|
24
|
+
*/
|
|
25
|
+
class JsonModule extends NormalModule {
|
|
26
|
+
/**
|
|
27
|
+
* @param {NormalModuleCreateData} options options object
|
|
28
|
+
*/
|
|
29
|
+
constructor(options) {
|
|
30
|
+
super(options);
|
|
31
|
+
|
|
32
|
+
// Redeclared with the json specific shape
|
|
33
|
+
/** @type {JsonModuleBuildInfo | undefined} */
|
|
34
|
+
this.buildInfo = undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
makeSerializable(JsonModule, "webpack/lib/json/JsonModule");
|
|
39
|
+
|
|
40
|
+
module.exports = JsonModule;
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
const { JSON_MODULE_TYPE } = require("../ModuleTypeConstants");
|
|
9
9
|
const JsonGenerator = require("./JsonGenerator");
|
|
10
|
+
const JsonModule = require("./JsonModule");
|
|
10
11
|
const JsonParser = require("./JsonParser");
|
|
11
12
|
|
|
12
13
|
/** @typedef {import("../Compiler")} Compiler */
|
|
@@ -19,7 +20,7 @@ const PLUGIN_NAME = "JsonModulesPlugin";
|
|
|
19
20
|
*/
|
|
20
21
|
class JsonModulesPlugin {
|
|
21
22
|
/**
|
|
22
|
-
*
|
|
23
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
23
24
|
* @param {Compiler} compiler the compiler instance
|
|
24
25
|
* @returns {void}
|
|
25
26
|
*/
|
|
@@ -27,6 +28,12 @@ class JsonModulesPlugin {
|
|
|
27
28
|
compiler.hooks.compilation.tap(
|
|
28
29
|
PLUGIN_NAME,
|
|
29
30
|
(compilation, { normalModuleFactory }) => {
|
|
31
|
+
normalModuleFactory.hooks.createModuleClass
|
|
32
|
+
.for(JSON_MODULE_TYPE)
|
|
33
|
+
.tap(
|
|
34
|
+
PLUGIN_NAME,
|
|
35
|
+
(createData, _resolveData) => new JsonModule(createData)
|
|
36
|
+
);
|
|
30
37
|
normalModuleFactory.hooks.createParser
|
|
31
38
|
.for(JSON_MODULE_TYPE)
|
|
32
39
|
.tap(PLUGIN_NAME, (parserOptions) => {
|
package/lib/json/JsonParser.js
CHANGED
|
@@ -7,37 +7,37 @@
|
|
|
7
7
|
|
|
8
8
|
const Parser = require("../Parser");
|
|
9
9
|
const JsonExportsDependency = require("../dependencies/JsonExportsDependency");
|
|
10
|
-
const
|
|
10
|
+
const parseJson = require("../util/parseJson");
|
|
11
11
|
const JsonData = require("./JsonData");
|
|
12
12
|
|
|
13
|
-
/** @typedef {import("../../declarations/
|
|
14
|
-
/** @typedef {import("
|
|
13
|
+
/** @typedef {import("../../declarations/WebpackOptions").JsonParserOptions} JsonParserOptions */
|
|
14
|
+
/** @typedef {import("./JsonModule").JsonModuleBuildInfo} JsonModuleBuildInfo */
|
|
15
15
|
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
|
16
16
|
/** @typedef {import("../Parser").ParserState} ParserState */
|
|
17
17
|
/** @typedef {import("../Parser").PreparsedAst} PreparsedAst */
|
|
18
18
|
/** @typedef {import("../util/fs").JsonValue} JsonValue */
|
|
19
19
|
|
|
20
|
+
/** @typedef {(input: string) => Buffer | JsonValue} ParseFn */
|
|
21
|
+
|
|
20
22
|
/**
|
|
23
|
+
* Defines the function returning type used by this module.
|
|
21
24
|
* @template T
|
|
22
25
|
* @typedef {import("../util/memoize").FunctionReturning<T>} FunctionReturning
|
|
23
26
|
*/
|
|
24
27
|
|
|
25
|
-
/** @typedef {(input: string) => Buffer | JsonValue} ParseFn */
|
|
26
|
-
|
|
27
|
-
/** @type {FunctionReturning<ParseFn>} */
|
|
28
|
-
const getParseJson = memoize(() => require("json-parse-even-better-errors"));
|
|
29
|
-
|
|
30
28
|
class JsonParser extends Parser {
|
|
31
29
|
/**
|
|
32
|
-
*
|
|
30
|
+
* Creates an instance of JsonParser.
|
|
31
|
+
* @param {JsonParserOptions} options parser options
|
|
33
32
|
*/
|
|
34
33
|
constructor(options = {}) {
|
|
35
34
|
super();
|
|
36
|
-
/** @type {
|
|
35
|
+
/** @type {JsonParserOptions} */
|
|
37
36
|
this.options = options;
|
|
38
37
|
}
|
|
39
38
|
|
|
40
39
|
/**
|
|
40
|
+
* Parses the provided source and updates the parser state.
|
|
41
41
|
* @param {string | Buffer | PreparsedAst} source the source to parse
|
|
42
42
|
* @param {ParserState} state the parser state
|
|
43
43
|
* @returns {ParserState} the parser state
|
|
@@ -47,26 +47,17 @@ class JsonParser extends Parser {
|
|
|
47
47
|
source = source.toString("utf8");
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
/** @type {ParseFn} */
|
|
51
50
|
const parseFn =
|
|
52
|
-
typeof this.options.parse === "function"
|
|
53
|
-
? this.options.parse
|
|
54
|
-
: getParseJson();
|
|
51
|
+
typeof this.options.parse === "function" ? this.options.parse : parseJson;
|
|
55
52
|
/** @type {Buffer | JsonValue | undefined} */
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
? source
|
|
61
|
-
: parseFn(source[0] === "\uFEFF" ? source.slice(1) : source);
|
|
62
|
-
} catch (err) {
|
|
63
|
-
throw new Error(
|
|
64
|
-
`Cannot parse JSON: ${/** @type {Error} */ (err).message}`,
|
|
65
|
-
{ cause: err }
|
|
66
|
-
);
|
|
67
|
-
}
|
|
53
|
+
const data =
|
|
54
|
+
typeof source === "object"
|
|
55
|
+
? source
|
|
56
|
+
: parseFn(source[0] === "\uFEFF" ? source.slice(1) : source);
|
|
68
57
|
const jsonData = new JsonData(/** @type {Buffer | JsonValue} */ (data));
|
|
69
|
-
const buildInfo = /** @type {
|
|
58
|
+
const buildInfo = /** @type {JsonModuleBuildInfo} */ (
|
|
59
|
+
state.module.buildInfo
|
|
60
|
+
);
|
|
70
61
|
buildInfo.jsonData = jsonData;
|
|
71
62
|
buildInfo.strict = true;
|
|
72
63
|
const buildMeta = /** @type {BuildMeta} */ (state.module.buildMeta);
|
|
@@ -27,6 +27,7 @@ const COMMON_LIBRARY_NAME_MESSAGE =
|
|
|
27
27
|
"Common configuration options that specific library names are 'output.library[.name]', 'entry.xyz.library[.name]', 'ModuleFederationPlugin.name' and 'ModuleFederationPlugin.library[.name]'.";
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
+
* Defines the library context type used by this module.
|
|
30
31
|
* @template T
|
|
31
32
|
* @typedef {object} LibraryContext
|
|
32
33
|
* @property {Compilation} compilation
|
|
@@ -35,16 +36,19 @@ const COMMON_LIBRARY_NAME_MESSAGE =
|
|
|
35
36
|
*/
|
|
36
37
|
|
|
37
38
|
/**
|
|
39
|
+
* Defines the abstract library plugin options type used by this module.
|
|
38
40
|
* @typedef {object} AbstractLibraryPluginOptions
|
|
39
41
|
* @property {string} pluginName name of the plugin
|
|
40
42
|
* @property {LibraryType} type used library type
|
|
41
43
|
*/
|
|
42
44
|
|
|
43
45
|
/**
|
|
46
|
+
* Represents AbstractLibraryPlugin.
|
|
44
47
|
* @template T
|
|
45
48
|
*/
|
|
46
49
|
class AbstractLibraryPlugin {
|
|
47
50
|
/**
|
|
51
|
+
* Creates an instance of AbstractLibraryPlugin.
|
|
48
52
|
* @param {AbstractLibraryPluginOptions} options options
|
|
49
53
|
*/
|
|
50
54
|
constructor({ pluginName, type }) {
|
|
@@ -57,7 +61,7 @@ class AbstractLibraryPlugin {
|
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
/**
|
|
60
|
-
*
|
|
64
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
61
65
|
* @param {Compiler} compiler the compiler instance
|
|
62
66
|
* @returns {void}
|
|
63
67
|
*/
|
|
@@ -97,6 +101,7 @@ class AbstractLibraryPlugin {
|
|
|
97
101
|
);
|
|
98
102
|
|
|
99
103
|
/**
|
|
104
|
+
* Gets options for chunk.
|
|
100
105
|
* @param {Chunk} chunk chunk
|
|
101
106
|
* @returns {T | false} options for the chunk
|
|
102
107
|
*/
|
|
@@ -222,6 +227,7 @@ class AbstractLibraryPlugin {
|
|
|
222
227
|
}
|
|
223
228
|
|
|
224
229
|
/**
|
|
230
|
+
* Parse options cached.
|
|
225
231
|
* @param {LibraryOptions=} library normalized library option
|
|
226
232
|
* @returns {T | false} preprocess as needed by overriding
|
|
227
233
|
*/
|
|
@@ -237,17 +243,19 @@ class AbstractLibraryPlugin {
|
|
|
237
243
|
|
|
238
244
|
/* istanbul ignore next */
|
|
239
245
|
/**
|
|
246
|
+
* Returns preprocess as needed by overriding.
|
|
240
247
|
* @abstract
|
|
241
248
|
* @param {LibraryOptions} library normalized library option
|
|
242
249
|
* @returns {T} preprocess as needed by overriding
|
|
243
250
|
*/
|
|
244
251
|
parseOptions(library) {
|
|
245
|
-
const AbstractMethodError = require("../AbstractMethodError");
|
|
252
|
+
const AbstractMethodError = require("../errors/AbstractMethodError");
|
|
246
253
|
|
|
247
254
|
throw new AbstractMethodError();
|
|
248
255
|
}
|
|
249
256
|
|
|
250
257
|
/**
|
|
258
|
+
* Finish entry module.
|
|
251
259
|
* @param {Module} module the exporting entry module
|
|
252
260
|
* @param {string} entryName the name of the entrypoint
|
|
253
261
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -256,6 +264,7 @@ class AbstractLibraryPlugin {
|
|
|
256
264
|
finishEntryModule(module, entryName, libraryContext) {}
|
|
257
265
|
|
|
258
266
|
/**
|
|
267
|
+
* Embed in runtime bailout.
|
|
259
268
|
* @param {Module} module the exporting entry module
|
|
260
269
|
* @param {RenderContext} renderContext render context
|
|
261
270
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -266,6 +275,7 @@ class AbstractLibraryPlugin {
|
|
|
266
275
|
}
|
|
267
276
|
|
|
268
277
|
/**
|
|
278
|
+
* Strict runtime bailout.
|
|
269
279
|
* @param {RenderContext} renderContext render context
|
|
270
280
|
* @param {LibraryContext<T>} libraryContext context
|
|
271
281
|
* @returns {string | undefined} bailout reason
|
|
@@ -275,6 +285,7 @@ class AbstractLibraryPlugin {
|
|
|
275
285
|
}
|
|
276
286
|
|
|
277
287
|
/**
|
|
288
|
+
* Processes the provided chunk.
|
|
278
289
|
* @param {Chunk} chunk the chunk
|
|
279
290
|
* @param {RuntimeRequirements} set runtime requirements
|
|
280
291
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -287,6 +298,7 @@ class AbstractLibraryPlugin {
|
|
|
287
298
|
}
|
|
288
299
|
|
|
289
300
|
/**
|
|
301
|
+
* Returns source with library export.
|
|
290
302
|
* @param {Source} source source
|
|
291
303
|
* @param {RenderContext} renderContext render context
|
|
292
304
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -297,6 +309,7 @@ class AbstractLibraryPlugin {
|
|
|
297
309
|
}
|
|
298
310
|
|
|
299
311
|
/**
|
|
312
|
+
* Renders source with library export.
|
|
300
313
|
* @param {Source} source source
|
|
301
314
|
* @param {Module} module module
|
|
302
315
|
* @param {StartupRenderContext} renderContext render context
|
|
@@ -308,6 +321,7 @@ class AbstractLibraryPlugin {
|
|
|
308
321
|
}
|
|
309
322
|
|
|
310
323
|
/**
|
|
324
|
+
* Renders module content.
|
|
311
325
|
* @param {Source} source source
|
|
312
326
|
* @param {Module} module module
|
|
313
327
|
* @param {ModuleRenderContext} renderContext render context
|
|
@@ -319,6 +333,7 @@ class AbstractLibraryPlugin {
|
|
|
319
333
|
}
|
|
320
334
|
|
|
321
335
|
/**
|
|
336
|
+
* Processes the provided chunk.
|
|
322
337
|
* @param {Chunk} chunk the chunk
|
|
323
338
|
* @param {Hash} hash hash
|
|
324
339
|
* @param {ChunkHashContext} chunkHashContext chunk hash context
|
|
@@ -18,28 +18,33 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
|
18
18
|
/** @typedef {import("../javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
|
|
19
19
|
/** @typedef {import("../util/Hash")} Hash */
|
|
20
20
|
/**
|
|
21
|
+
* Defines the shared type used by this module.
|
|
21
22
|
* @template T
|
|
22
23
|
* @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
|
|
23
24
|
*/
|
|
24
25
|
|
|
25
26
|
/**
|
|
27
|
+
* Defines the amd library plugin options type used by this module.
|
|
26
28
|
* @typedef {object} AmdLibraryPluginOptions
|
|
27
29
|
* @property {LibraryType} type
|
|
28
30
|
* @property {boolean=} requireAsWrapper
|
|
29
31
|
*/
|
|
30
32
|
|
|
31
33
|
/**
|
|
34
|
+
* Defines the amd library plugin parsed type used by this module.
|
|
32
35
|
* @typedef {object} AmdLibraryPluginParsed
|
|
33
36
|
* @property {string} name
|
|
34
37
|
* @property {string} amdContainer
|
|
35
38
|
*/
|
|
36
39
|
|
|
37
40
|
/**
|
|
41
|
+
* Represents the amd library plugin runtime component.
|
|
38
42
|
* @typedef {AmdLibraryPluginParsed} T
|
|
39
43
|
* @extends {AbstractLibraryPlugin<AmdLibraryPluginParsed>}
|
|
40
44
|
*/
|
|
41
45
|
class AmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
42
46
|
/**
|
|
47
|
+
* Creates an instance of AmdLibraryPlugin.
|
|
43
48
|
* @param {AmdLibraryPluginOptions} options the plugin options
|
|
44
49
|
*/
|
|
45
50
|
constructor(options) {
|
|
@@ -52,6 +57,7 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
52
57
|
}
|
|
53
58
|
|
|
54
59
|
/**
|
|
60
|
+
* Returns preprocess as needed by overriding.
|
|
55
61
|
* @param {LibraryOptions} library normalized library option
|
|
56
62
|
* @returns {T} preprocess as needed by overriding
|
|
57
63
|
*/
|
|
@@ -74,6 +80,7 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
74
80
|
}
|
|
75
81
|
|
|
76
82
|
/**
|
|
83
|
+
* Returns source with library export.
|
|
77
84
|
* @param {Source} source source
|
|
78
85
|
* @param {RenderContext} renderContext render context
|
|
79
86
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -155,6 +162,7 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
155
162
|
}
|
|
156
163
|
|
|
157
164
|
/**
|
|
165
|
+
* Processes the provided chunk.
|
|
158
166
|
* @param {Chunk} chunk the chunk
|
|
159
167
|
* @param {Hash} hash hash
|
|
160
168
|
* @param {ChunkHashContext} chunkHashContext chunk hash context
|
|
@@ -28,6 +28,7 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
|
28
28
|
/** @typedef {import("../util/Hash")} Hash */
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
|
+
* Defines the shared type used by this module.
|
|
31
32
|
* @template T
|
|
32
33
|
* @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
|
|
33
34
|
*/
|
|
@@ -46,6 +47,7 @@ const isNameValid = (name) =>
|
|
|
46
47
|
!KEYWORD_REGEX.test(name) && IDENTIFIER_REGEX.test(name);
|
|
47
48
|
|
|
48
49
|
/**
|
|
50
|
+
* Returns code to access the accessor while initializing.
|
|
49
51
|
* @param {string[]} accessor variable plus properties
|
|
50
52
|
* @param {number} existingLength items of accessor that are existing already
|
|
51
53
|
* @param {boolean=} initLast if the last property should also be initialized to an object
|
|
@@ -99,6 +101,7 @@ const accessWithInit = (accessor, existingLength, initLast = false) => {
|
|
|
99
101
|
/** @typedef {string[] | "global"} LibraryPrefix */
|
|
100
102
|
|
|
101
103
|
/**
|
|
104
|
+
* Defines the assign library plugin options type used by this module.
|
|
102
105
|
* @typedef {object} AssignLibraryPluginOptions
|
|
103
106
|
* @property {LibraryType} type
|
|
104
107
|
* @property {LibraryPrefix} prefix name prefix
|
|
@@ -110,17 +113,20 @@ const accessWithInit = (accessor, existingLength, initLast = false) => {
|
|
|
110
113
|
/** @typedef {string | string[]} LibraryName */
|
|
111
114
|
|
|
112
115
|
/**
|
|
116
|
+
* Defines the assign library plugin parsed type used by this module.
|
|
113
117
|
* @typedef {object} AssignLibraryPluginParsed
|
|
114
118
|
* @property {LibraryName} name
|
|
115
119
|
* @property {LibraryExport=} export
|
|
116
120
|
*/
|
|
117
121
|
|
|
118
122
|
/**
|
|
123
|
+
* Represents the assign library plugin runtime component.
|
|
119
124
|
* @typedef {AssignLibraryPluginParsed} T
|
|
120
125
|
* @extends {AbstractLibraryPlugin<AssignLibraryPluginParsed>}
|
|
121
126
|
*/
|
|
122
127
|
class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
123
128
|
/**
|
|
129
|
+
* Creates an instance of AssignLibraryPlugin.
|
|
124
130
|
* @param {AssignLibraryPluginOptions} options the plugin options
|
|
125
131
|
*/
|
|
126
132
|
constructor(options) {
|
|
@@ -139,6 +145,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
139
145
|
}
|
|
140
146
|
|
|
141
147
|
/**
|
|
148
|
+
* Returns preprocess as needed by overriding.
|
|
142
149
|
* @param {LibraryOptions} library normalized library option
|
|
143
150
|
* @returns {T} preprocess as needed by overriding
|
|
144
151
|
*/
|
|
@@ -163,6 +170,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
163
170
|
}
|
|
164
171
|
|
|
165
172
|
/**
|
|
173
|
+
* Finish entry module.
|
|
166
174
|
* @param {Module} module the exporting entry module
|
|
167
175
|
* @param {string} entryName the name of the entrypoint
|
|
168
176
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -181,6 +189,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
181
189
|
);
|
|
182
190
|
exportsInfo.setUsed(UsageState.Used, runtime);
|
|
183
191
|
exportsInfo.canMangleUse = false;
|
|
192
|
+
exportsInfo.canInlineUse = false;
|
|
184
193
|
} else {
|
|
185
194
|
const exportsInfo = moduleGraph.getExportsInfo(module);
|
|
186
195
|
exportsInfo.setUsedInUnknownWay(runtime);
|
|
@@ -189,6 +198,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
189
198
|
}
|
|
190
199
|
|
|
191
200
|
/**
|
|
201
|
+
* Returns the prefix.
|
|
192
202
|
* @param {Compilation} compilation the compilation
|
|
193
203
|
* @returns {LibraryPrefix} the prefix
|
|
194
204
|
*/
|
|
@@ -199,6 +209,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
199
209
|
}
|
|
200
210
|
|
|
201
211
|
/**
|
|
212
|
+
* Get resolved full name.
|
|
202
213
|
* @param {AssignLibraryPluginParsed} options the library options
|
|
203
214
|
* @param {Chunk} chunk the chunk
|
|
204
215
|
* @param {Compilation} compilation the compilation
|
|
@@ -220,6 +231,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
220
231
|
}
|
|
221
232
|
|
|
222
233
|
/**
|
|
234
|
+
* Returns source with library export.
|
|
223
235
|
* @param {Source} source source
|
|
224
236
|
* @param {RenderContext} renderContext render context
|
|
225
237
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -248,6 +260,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
248
260
|
}
|
|
249
261
|
|
|
250
262
|
/**
|
|
263
|
+
* Embed in runtime bailout.
|
|
251
264
|
* @param {Module} module the exporting entry module
|
|
252
265
|
* @param {RenderContext} renderContext render context
|
|
253
266
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -277,6 +290,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
277
290
|
}
|
|
278
291
|
|
|
279
292
|
/**
|
|
293
|
+
* Strict runtime bailout.
|
|
280
294
|
* @param {RenderContext} renderContext render context
|
|
281
295
|
* @param {LibraryContext<T>} libraryContext context
|
|
282
296
|
* @returns {string | undefined} bailout reason
|
|
@@ -294,6 +308,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
294
308
|
}
|
|
295
309
|
|
|
296
310
|
/**
|
|
311
|
+
* Renders source with library export.
|
|
297
312
|
* @param {Source} source source
|
|
298
313
|
* @param {Module} module module
|
|
299
314
|
* @param {StartupRenderContext} renderContext render context
|
|
@@ -317,6 +332,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
317
332
|
Array.isArray(options.export) ? options.export : [options.export]
|
|
318
333
|
)
|
|
319
334
|
: "";
|
|
335
|
+
const cst = compilation.runtimeTemplate.renderConst();
|
|
320
336
|
const result = new ConcatSource(source);
|
|
321
337
|
if (staticExports) {
|
|
322
338
|
const exportsInfo = moduleGraph.getExportsInfo(module);
|
|
@@ -346,7 +362,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
346
362
|
let exports = RuntimeGlobals.exports;
|
|
347
363
|
if (exportAccess) {
|
|
348
364
|
result.add(
|
|
349
|
-
|
|
365
|
+
`${cst} __webpack_exports_export__ = ${RuntimeGlobals.exports}${exportAccess};\n`
|
|
350
366
|
);
|
|
351
367
|
|
|
352
368
|
exports = "__webpack_exports_export__";
|
|
@@ -372,7 +388,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
372
388
|
);
|
|
373
389
|
} else if (options.name ? this.named === "copy" : this.unnamed === "copy") {
|
|
374
390
|
result.add(
|
|
375
|
-
|
|
391
|
+
`${cst} __webpack_export_target__ = ${accessWithInit(
|
|
376
392
|
fullNameResolved,
|
|
377
393
|
this._getPrefix(compilation).length,
|
|
378
394
|
true
|
|
@@ -382,7 +398,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
382
398
|
let exports = RuntimeGlobals.exports;
|
|
383
399
|
if (exportAccess) {
|
|
384
400
|
result.add(
|
|
385
|
-
|
|
401
|
+
`${cst} __webpack_exports_export__ = ${RuntimeGlobals.exports}${exportAccess};\n`
|
|
386
402
|
);
|
|
387
403
|
|
|
388
404
|
exports = "__webpack_exports_export__";
|
|
@@ -406,6 +422,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
406
422
|
}
|
|
407
423
|
|
|
408
424
|
/**
|
|
425
|
+
* Processes the provided chunk.
|
|
409
426
|
* @param {Chunk} chunk the chunk
|
|
410
427
|
* @param {RuntimeRequirements} set runtime requirements
|
|
411
428
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -416,6 +433,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
416
433
|
}
|
|
417
434
|
|
|
418
435
|
/**
|
|
436
|
+
* Processes the provided chunk.
|
|
419
437
|
* @param {Chunk} chunk the chunk
|
|
420
438
|
* @param {Hash} hash hash
|
|
421
439
|
* @param {ChunkHashContext} chunkHashContext chunk hash context
|
|
@@ -14,11 +14,13 @@
|
|
|
14
14
|
const enabledTypes = new WeakMap();
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
+
* Defines the enable library plugin options type used by this module.
|
|
17
18
|
* @typedef {object} EnableLibraryPluginOptions
|
|
18
19
|
* @property {() => void=} additionalApply function that runs when applying the current plugin.
|
|
19
20
|
*/
|
|
20
21
|
|
|
21
22
|
/**
|
|
23
|
+
* Returns enabled types.
|
|
22
24
|
* @param {Compiler} compiler the compiler instance
|
|
23
25
|
* @returns {LibraryTypes} enabled types
|
|
24
26
|
*/
|
|
@@ -34,6 +36,7 @@ const getEnabledTypes = (compiler) => {
|
|
|
34
36
|
|
|
35
37
|
class EnableLibraryPlugin {
|
|
36
38
|
/**
|
|
39
|
+
* Creates an instance of EnableLibraryPlugin.
|
|
37
40
|
* @param {LibraryType} type library type that should be available
|
|
38
41
|
* @param {EnableLibraryPluginOptions} options options of EnableLibraryPlugin
|
|
39
42
|
*/
|
|
@@ -45,6 +48,7 @@ class EnableLibraryPlugin {
|
|
|
45
48
|
}
|
|
46
49
|
|
|
47
50
|
/**
|
|
51
|
+
* Updates enabled using the provided compiler.
|
|
48
52
|
* @param {Compiler} compiler the compiler instance
|
|
49
53
|
* @param {LibraryType} type type of library
|
|
50
54
|
* @returns {void}
|
|
@@ -54,6 +58,7 @@ class EnableLibraryPlugin {
|
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
/**
|
|
61
|
+
* Checks enabled.
|
|
57
62
|
* @param {Compiler} compiler the compiler instance
|
|
58
63
|
* @param {LibraryType} type type of library
|
|
59
64
|
* @returns {void}
|
|
@@ -71,7 +76,7 @@ class EnableLibraryPlugin {
|
|
|
71
76
|
}
|
|
72
77
|
|
|
73
78
|
/**
|
|
74
|
-
*
|
|
79
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
75
80
|
* @param {Compiler} compiler the compiler instance
|
|
76
81
|
* @returns {void}
|
|
77
82
|
*/
|
|
@@ -237,13 +242,14 @@ class EnableLibraryPlugin {
|
|
|
237
242
|
|
|
238
243
|
class WarnFalseIifeUmdPlugin {
|
|
239
244
|
/**
|
|
245
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
240
246
|
* @param {Compiler} compiler the compiler instance
|
|
241
247
|
*/
|
|
242
248
|
apply(compiler) {
|
|
243
249
|
compiler.hooks.thisCompilation.tap(
|
|
244
250
|
"WarnFalseIifeUmdPlugin",
|
|
245
251
|
(compilation) => {
|
|
246
|
-
const FalseIIFEUmdWarning = require("
|
|
252
|
+
const FalseIIFEUmdWarning = require("./FalseIIFEUmdWarning");
|
|
247
253
|
|
|
248
254
|
compilation.warnings.push(new FalseIIFEUmdWarning());
|
|
249
255
|
}
|