@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.
Files changed (669) hide show
  1. package/README.md +9 -11
  2. package/bin/webpack.js +12 -0
  3. package/changes.json +16 -24
  4. package/hot/dev-server.js +2 -0
  5. package/lib/APIPlugin.js +60 -35
  6. package/lib/AsyncDependenciesBlock.js +3 -0
  7. package/lib/AutomaticPrefetchPlugin.js +6 -1
  8. package/lib/BannerPlugin.js +13 -5
  9. package/lib/Cache.js +27 -5
  10. package/lib/CacheFacade.js +41 -0
  11. package/lib/Chunk.js +71 -25
  12. package/lib/ChunkGraph.js +153 -19
  13. package/lib/ChunkGroup.js +115 -28
  14. package/lib/ChunkTemplate.js +9 -0
  15. package/lib/CircularModulesPlugin.js +190 -0
  16. package/lib/CleanPlugin.js +27 -28
  17. package/lib/CodeGenerationResults.js +19 -0
  18. package/lib/CompatibilityPlugin.js +85 -37
  19. package/lib/Compilation.js +656 -112
  20. package/lib/Compiler.js +109 -35
  21. package/lib/ConcatenationScope.js +34 -4
  22. package/lib/ConditionalInitFragment.js +6 -0
  23. package/lib/ConstPlugin.js +15 -12
  24. package/lib/ContextExclusionPlugin.js +3 -1
  25. package/lib/ContextModule.js +345 -55
  26. package/lib/ContextModuleFactory.js +193 -51
  27. package/lib/ContextReplacementPlugin.js +8 -1
  28. package/lib/DefinePlugin.js +537 -139
  29. package/lib/DependenciesBlock.js +6 -1
  30. package/lib/Dependency.js +159 -11
  31. package/lib/DependencyTemplate.js +7 -1
  32. package/lib/DependencyTemplates.js +4 -0
  33. package/lib/DotenvPlugin.js +3 -0
  34. package/lib/DynamicEntryPlugin.js +3 -1
  35. package/lib/EntryOptionPlugin.js +42 -2
  36. package/lib/EntryPlugin.js +4 -1
  37. package/lib/Entrypoint.js +5 -1
  38. package/lib/EnvironmentPlugin.js +3 -2
  39. package/lib/ErrorHelpers.js +7 -0
  40. package/lib/EvalDevToolModulePlugin.js +3 -1
  41. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  42. package/lib/ExportsInfo.js +421 -113
  43. package/lib/ExportsInfoApiPlugin.js +4 -3
  44. package/lib/ExternalModule.js +381 -80
  45. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  46. package/lib/ExternalsPlugin.js +3 -1
  47. package/lib/FileSystemInfo.js +701 -175
  48. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  49. package/lib/FlagDependencyExportsPlugin.js +82 -9
  50. package/lib/FlagDependencyUsagePlugin.js +115 -8
  51. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  52. package/lib/Generator.js +24 -3
  53. package/lib/HotModuleReplacementPlugin.js +110 -44
  54. package/lib/IgnorePlugin.js +5 -2
  55. package/lib/IgnoreWarningsPlugin.js +2 -1
  56. package/lib/InitFragment.js +33 -30
  57. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  58. package/lib/LazyBarrel.js +389 -0
  59. package/lib/LibraryTemplatePlugin.js +2 -1
  60. package/lib/LoaderOptionsPlugin.js +3 -1
  61. package/lib/LoaderTargetPlugin.js +3 -1
  62. package/lib/MainTemplate.js +15 -0
  63. package/lib/ManifestPlugin.js +9 -2
  64. package/lib/Module.js +121 -57
  65. package/lib/ModuleFactory.js +6 -1
  66. package/lib/ModuleFilenameHelpers.js +18 -4
  67. package/lib/ModuleGraph.js +69 -2
  68. package/lib/ModuleGraphConnection.js +9 -0
  69. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  70. package/lib/ModuleNotFoundError.js +3 -83
  71. package/lib/ModuleProfile.js +27 -1
  72. package/lib/ModuleSourceTypeConstants.js +52 -19
  73. package/lib/ModuleTemplate.js +10 -0
  74. package/lib/ModuleTypeConstants.js +20 -4
  75. package/lib/MultiCompiler.js +59 -4
  76. package/lib/MultiStats.js +9 -0
  77. package/lib/MultiWatching.js +6 -0
  78. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  79. package/lib/NodeStuffPlugin.js +78 -46
  80. package/lib/NormalModule.js +519 -206
  81. package/lib/NormalModuleFactory.js +156 -31
  82. package/lib/NormalModuleReplacementPlugin.js +3 -1
  83. package/lib/NullFactory.js +1 -0
  84. package/lib/OptionsApply.js +1 -0
  85. package/lib/Parser.js +3 -1
  86. package/lib/PlatformPlugin.js +2 -1
  87. package/lib/PrefetchPlugin.js +4 -1
  88. package/lib/ProgressPlugin.js +351 -161
  89. package/lib/ProvidePlugin.js +6 -3
  90. package/lib/RawModule.js +32 -16
  91. package/lib/RecordIdsPlugin.js +9 -0
  92. package/lib/RequestShortener.js +8 -0
  93. package/lib/ResolverFactory.js +5 -0
  94. package/lib/RuntimeGlobals.js +58 -5
  95. package/lib/RuntimeModule.js +22 -7
  96. package/lib/RuntimePlugin.js +123 -118
  97. package/lib/RuntimeTemplate.js +616 -37
  98. package/lib/SelfModuleFactory.js +3 -0
  99. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  100. package/lib/SourceMapDevToolPlugin.js +341 -63
  101. package/lib/Stats.js +6 -0
  102. package/lib/Template.js +52 -6
  103. package/lib/TemplatedPathPlugin.js +505 -138
  104. package/lib/UseStrictPlugin.js +3 -2
  105. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  106. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  107. package/lib/WarnNoModeSetPlugin.js +18 -2
  108. package/lib/WatchIgnorePlugin.js +5 -1
  109. package/lib/Watching.js +25 -3
  110. package/lib/WebpackError.js +3 -74
  111. package/lib/WebpackIsIncludedPlugin.js +4 -2
  112. package/lib/WebpackOptionsApply.js +88 -25
  113. package/lib/WebpackOptionsDefaulter.js +1 -0
  114. package/lib/asset/AssetBytesGenerator.js +28 -10
  115. package/lib/asset/AssetBytesParser.js +1 -0
  116. package/lib/asset/AssetGenerator.js +199 -60
  117. package/lib/asset/AssetModule.js +47 -0
  118. package/lib/asset/AssetModulesPlugin.js +115 -24
  119. package/lib/asset/AssetParser.js +4 -2
  120. package/lib/asset/AssetSourceGenerator.js +26 -8
  121. package/lib/asset/AssetSourceParser.js +1 -0
  122. package/lib/asset/RawDataUrlModule.js +23 -13
  123. package/lib/asset/WebManifestGenerator.js +164 -0
  124. package/lib/asset/WebManifestParser.js +130 -0
  125. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  126. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  127. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  128. package/lib/async-modules/isGeneratorLowered.js +26 -0
  129. package/lib/buildChunkGraph.js +107 -15
  130. package/lib/bun/BunTargetPlugin.js +42 -0
  131. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  132. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  133. package/lib/cache/IdleFileCachePlugin.js +6 -1
  134. package/lib/cache/MemoryCachePlugin.js +1 -1
  135. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  136. package/lib/cache/PackFileCacheStrategy.js +302 -12
  137. package/lib/cache/ResolverCachePlugin.js +12 -1
  138. package/lib/cache/getLazyHashedEtag.js +13 -2
  139. package/lib/cache/mergeEtags.js +4 -0
  140. package/lib/cli.js +142 -20
  141. package/lib/config/browserslistTargetHandler.js +141 -0
  142. package/lib/config/defaults.js +612 -43
  143. package/lib/config/defineConfig.js +31 -0
  144. package/lib/config/normalization.js +46 -1
  145. package/lib/config/target.js +200 -2
  146. package/lib/container/ContainerEntryDependency.js +2 -0
  147. package/lib/container/ContainerEntryModule.js +27 -14
  148. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  149. package/lib/container/ContainerExposedDependency.js +6 -2
  150. package/lib/container/ContainerPlugin.js +2 -1
  151. package/lib/container/ContainerReferencePlugin.js +3 -2
  152. package/lib/container/FallbackDependency.js +9 -7
  153. package/lib/container/FallbackItemDependency.js +1 -0
  154. package/lib/container/FallbackModule.js +22 -9
  155. package/lib/container/FallbackModuleFactory.js +1 -0
  156. package/lib/container/HoistContainerReferencesPlugin.js +47 -55
  157. package/lib/container/ModuleFederationPlugin.js +21 -29
  158. package/lib/container/RemoteModule.js +33 -10
  159. package/lib/container/RemoteRuntimeModule.js +15 -12
  160. package/lib/container/RemoteToExternalDependency.js +1 -0
  161. package/lib/container/options.js +7 -0
  162. package/lib/css/CssGenerator.js +540 -272
  163. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  164. package/lib/css/CssLoadingRuntimeModule.js +173 -81
  165. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  166. package/lib/css/CssModulesPlugin.js +371 -208
  167. package/lib/css/CssParser.js +3538 -1963
  168. package/lib/css/syntax.js +4155 -0
  169. package/lib/debug/ProfilingPlugin.js +33 -2
  170. package/lib/deno/DenoTargetPlugin.js +41 -0
  171. package/lib/dependencies/AMDDefineDependency.js +29 -17
  172. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  173. package/lib/dependencies/AMDPlugin.js +6 -3
  174. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  175. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  176. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  177. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  178. package/lib/dependencies/AMDRequireDependency.js +28 -20
  179. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  180. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  181. package/lib/dependencies/CachedConstDependency.js +9 -1
  182. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  183. package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
  184. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  185. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  186. package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
  187. package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
  188. package/lib/dependencies/CommonJsPlugin.js +7 -4
  189. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  190. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  191. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  192. package/lib/dependencies/ConstDependency.js +22 -12
  193. package/lib/dependencies/ContextDependency.js +13 -2
  194. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  195. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  196. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  197. package/lib/dependencies/ContextElementDependency.js +27 -14
  198. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  199. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  200. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  201. package/lib/dependencies/CssIcssExportDependency.js +681 -367
  202. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  203. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  204. package/lib/dependencies/CssImportDependency.js +37 -1
  205. package/lib/dependencies/CssUrlDependency.js +87 -14
  206. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  207. package/lib/dependencies/DllEntryDependency.js +12 -13
  208. package/lib/dependencies/DynamicExports.js +5 -0
  209. package/lib/dependencies/EntryDependency.js +1 -0
  210. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  211. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  212. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  213. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  214. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  215. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  216. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  217. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  218. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  219. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
  220. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  221. package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
  222. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
  224. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  226. package/lib/dependencies/HarmonyExports.js +6 -1
  227. package/lib/dependencies/HarmonyImportDependency.js +60 -4
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  229. package/lib/dependencies/HarmonyImportGuard.js +427 -0
  230. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  231. package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
  232. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  233. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  234. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  235. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  236. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  237. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  238. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  239. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  240. package/lib/dependencies/ImportContextDependency.js +9 -9
  241. package/lib/dependencies/ImportDependency.js +92 -3
  242. package/lib/dependencies/ImportEagerDependency.js +2 -0
  243. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  244. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  245. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  246. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  247. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  248. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  249. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  250. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  251. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  252. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  253. package/lib/dependencies/ImportParserPlugin.js +114 -27
  254. package/lib/dependencies/ImportPhase.js +17 -11
  255. package/lib/dependencies/ImportPlugin.js +2 -1
  256. package/lib/dependencies/ImportWeakDependency.js +3 -0
  257. package/lib/dependencies/JsonExportsDependency.js +15 -10
  258. package/lib/dependencies/LoaderDependency.js +2 -0
  259. package/lib/dependencies/LoaderImportDependency.js +3 -0
  260. package/lib/dependencies/LoaderPlugin.js +9 -2
  261. package/lib/dependencies/LocalModule.js +15 -12
  262. package/lib/dependencies/LocalModuleDependency.js +15 -13
  263. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  264. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  265. package/lib/dependencies/ModuleDependency.js +14 -0
  266. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  267. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  268. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  269. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  270. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  271. package/lib/dependencies/NullDependency.js +2 -0
  272. package/lib/dependencies/PrefetchDependency.js +1 -0
  273. package/lib/dependencies/ProvidedDependency.js +36 -27
  274. package/lib/dependencies/PureExpressionDependency.js +14 -10
  275. package/lib/dependencies/RequireContextDependency.js +1 -0
  276. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  277. package/lib/dependencies/RequireContextPlugin.js +2 -1
  278. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  279. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  280. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  281. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  282. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  283. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  284. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  285. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  286. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  287. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  288. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  289. package/lib/dependencies/RequireResolveDependency.js +2 -0
  290. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  291. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  292. package/lib/dependencies/StaticExportsDependency.js +13 -10
  293. package/lib/dependencies/SystemPlugin.js +9 -6
  294. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  295. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  296. package/lib/dependencies/URLContextDependency.js +8 -7
  297. package/lib/dependencies/URLDependency.js +157 -33
  298. package/lib/dependencies/URLPlugin.js +2 -0
  299. package/lib/dependencies/UnsupportedDependency.js +12 -13
  300. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  301. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  302. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  303. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  304. package/lib/dependencies/WorkerDependency.js +111 -27
  305. package/lib/dependencies/WorkletDependency.js +278 -0
  306. package/lib/dependencies/getFunctionExpression.js +1 -0
  307. package/lib/dependencies/processExportInfo.js +14 -11
  308. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  309. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  310. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  311. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  312. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  313. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  314. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  315. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  316. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  317. package/lib/electron/ElectronTargetPlugin.js +24 -5
  318. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  319. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  320. package/lib/errors/BuildCycleError.js +1 -1
  321. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  322. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  323. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  324. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  325. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  326. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  327. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  328. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  329. package/lib/errors/JSONParseError.js +115 -0
  330. package/lib/errors/LoaderLoadingError.js +20 -0
  331. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  332. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  333. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  334. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  335. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  336. package/lib/errors/ModuleNotFoundError.js +94 -0
  337. package/lib/errors/ModuleParseError.js +141 -0
  338. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  339. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  340. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  341. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  342. package/lib/errors/NonErrorEmittedError.js +30 -0
  343. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  344. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  345. package/lib/errors/WebpackError.js +84 -0
  346. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  347. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  348. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  349. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
  350. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  351. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  352. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  353. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  354. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  355. package/lib/hmr/lazyCompilationBackend.js +53 -12
  356. package/lib/html/HtmlGenerator.js +1490 -0
  357. package/lib/html/HtmlModule.js +41 -0
  358. package/lib/html/HtmlModulesPlugin.js +1129 -0
  359. package/lib/html/HtmlParser.js +1970 -0
  360. package/lib/html/favicon.svg +1 -0
  361. package/lib/html/syntax.js +9106 -0
  362. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  363. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  364. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  365. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  366. package/lib/ids/IdHelpers.js +49 -12
  367. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  368. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  369. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  370. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  371. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  372. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  373. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  374. package/lib/index.js +66 -15
  375. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  376. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  377. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  378. package/lib/javascript/ChunkHelpers.js +1 -0
  379. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  380. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  381. package/lib/javascript/JavascriptGenerator.js +213 -51
  382. package/lib/javascript/JavascriptModule.js +54 -0
  383. package/lib/javascript/JavascriptModulesPlugin.js +628 -198
  384. package/lib/javascript/JavascriptParser.js +1334 -471
  385. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  386. package/lib/javascript/StartupHelpers.js +5 -0
  387. package/lib/javascript/syntax.js +5037 -0
  388. package/lib/json/JsonData.js +5 -0
  389. package/lib/json/JsonGenerator.js +21 -0
  390. package/lib/json/JsonModule.js +40 -0
  391. package/lib/json/JsonModulesPlugin.js +8 -1
  392. package/lib/json/JsonParser.js +18 -27
  393. package/lib/library/AbstractLibraryPlugin.js +17 -2
  394. package/lib/library/AmdLibraryPlugin.js +8 -0
  395. package/lib/library/AssignLibraryPlugin.js +21 -3
  396. package/lib/library/EnableLibraryPlugin.js +8 -2
  397. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  398. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  399. package/lib/library/JsonpLibraryPlugin.js +8 -0
  400. package/lib/library/ModuleLibraryPlugin.js +154 -7
  401. package/lib/library/SystemLibraryPlugin.js +11 -3
  402. package/lib/library/UmdLibraryPlugin.js +16 -0
  403. package/lib/loaders/LoaderRunner.js +714 -0
  404. package/lib/loaders/loadLoader.js +100 -0
  405. package/lib/logging/Logger.js +17 -0
  406. package/lib/logging/createConsoleLogger.js +7 -0
  407. package/lib/logging/runtime.js +2 -0
  408. package/lib/logging/truncateArgs.js +2 -0
  409. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  410. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  411. package/lib/node/NodeSourcePlugin.js +1 -1
  412. package/lib/node/NodeTargetPlugin.js +4 -63
  413. package/lib/node/NodeTemplatePlugin.js +3 -1
  414. package/lib/node/NodeWatchFileSystem.js +40 -22
  415. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  416. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
  417. package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
  418. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  419. package/lib/node/nodeBuiltins.js +80 -0
  420. package/lib/node/nodeConsole.js +116 -64
  421. package/lib/optimize/AggressiveMergingPlugin.js +22 -16
  422. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  423. package/lib/optimize/ConcatenatedModule.js +603 -130
  424. package/lib/optimize/ConstExportsPlugin.js +211 -0
  425. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  426. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  427. package/lib/optimize/InlineExports.js +178 -0
  428. package/lib/optimize/InnerGraph.js +374 -262
  429. package/lib/optimize/InnerGraphPlugin.js +246 -117
  430. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  431. package/lib/optimize/MangleExportsPlugin.js +5 -1
  432. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  433. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  434. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  435. package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
  436. package/lib/optimize/RealContentHashPlugin.js +130 -52
  437. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  438. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  439. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  440. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  441. package/lib/optimize/SplitChunksPlugin.js +200 -50
  442. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  443. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  444. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  445. package/lib/performance/SizeLimitsPlugin.js +8 -2
  446. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  448. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  449. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  450. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  451. package/lib/prefetch/ResourceHintPlugin.js +687 -0
  452. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  453. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  454. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  455. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  456. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  457. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  458. package/lib/rules/RuleSetCompiler.js +132 -0
  459. package/lib/rules/UseEffectRulePlugin.js +10 -3
  460. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  461. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  462. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  463. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  464. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  465. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  466. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  467. package/lib/runtime/CompatRuntimeModule.js +2 -0
  468. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  469. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  470. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  471. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  472. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  473. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  474. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  475. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  476. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  477. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  478. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  479. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  480. package/lib/runtime/HelperRuntimeModule.js +5 -0
  481. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  482. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  483. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  484. package/lib/runtime/NonceRuntimeModule.js +1 -0
  485. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  486. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  487. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  488. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  489. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  490. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  491. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  492. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  493. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  494. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  495. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  496. package/lib/schemes/DataUriPlugin.js +14 -2
  497. package/lib/schemes/FileUriPlugin.js +1 -1
  498. package/lib/schemes/HttpUriPlugin.js +86 -4
  499. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  500. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  501. package/lib/serialization/ArraySerializer.js +6 -8
  502. package/lib/serialization/BinaryMiddleware.js +427 -1006
  503. package/lib/serialization/DateObjectSerializer.js +4 -2
  504. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  505. package/lib/serialization/FileMiddleware.js +345 -59
  506. package/lib/serialization/MapObjectSerializer.js +7 -9
  507. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  508. package/lib/serialization/ObjectMiddleware.js +73 -13
  509. package/lib/serialization/PlainObjectSerializer.js +16 -8
  510. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  511. package/lib/serialization/Serializer.js +6 -0
  512. package/lib/serialization/SerializerMiddleware.js +14 -2
  513. package/lib/serialization/SetObjectSerializer.js +6 -8
  514. package/lib/serialization/SingleItemMiddleware.js +3 -0
  515. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  516. package/lib/sharing/ConsumeSharedModule.js +21 -7
  517. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  518. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  519. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  520. package/lib/sharing/ProvideSharedDependency.js +34 -15
  521. package/lib/sharing/ProvideSharedModule.js +42 -12
  522. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  523. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  524. package/lib/sharing/SharePlugin.js +5 -1
  525. package/lib/sharing/ShareRuntimeModule.js +19 -16
  526. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  527. package/lib/sharing/utils.js +9 -1
  528. package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
  529. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  530. package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
  531. package/lib/stats/StatsFactory.js +70 -27
  532. package/lib/stats/StatsPrinter.js +16 -2
  533. package/lib/typescript/TypeScriptPlugin.js +210 -0
  534. package/lib/url/URLParserPlugin.js +111 -23
  535. package/lib/util/ArrayHelpers.js +1 -0
  536. package/lib/util/ArrayQueue.js +10 -5
  537. package/lib/util/AsyncQueue.js +154 -74
  538. package/lib/util/Hash.js +2 -2
  539. package/lib/util/IterableHelpers.js +3 -0
  540. package/lib/util/LazyBucketSortedSet.js +26 -0
  541. package/lib/util/LazySet.js +45 -4
  542. package/lib/util/LocConverter.js +64 -0
  543. package/lib/util/ParallelismFactorCalculator.js +1 -0
  544. package/lib/util/Queue.js +6 -3
  545. package/lib/util/Semaphore.js +15 -1
  546. package/lib/util/SetHelpers.js +4 -1
  547. package/lib/util/SortableSet.js +7 -1
  548. package/lib/util/SourceProcessor.js +119 -0
  549. package/lib/util/StackedCacheMap.js +20 -3
  550. package/lib/util/StackedMap.js +162 -43
  551. package/lib/util/StringXor.js +1 -1
  552. package/lib/util/TupleQueue.js +7 -3
  553. package/lib/util/TupleSet.js +14 -0
  554. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  555. package/lib/util/WeakTupleMap.js +60 -1
  556. package/lib/util/binarySearchBounds.js +3 -2
  557. package/lib/util/chainedImports.js +3 -3
  558. package/lib/util/cleverMerge.js +19 -2
  559. package/lib/util/comparators.js +35 -4
  560. package/lib/util/compileBooleanMatcher.js +9 -0
  561. package/lib/util/concatenate.js +80 -24
  562. package/lib/util/conventions.js +46 -1
  563. package/lib/util/createHash.js +0 -1
  564. package/lib/util/createHooksRegistry.js +43 -0
  565. package/lib/util/createMappings.js +118 -0
  566. package/lib/util/dataURL.js +3 -2
  567. package/lib/util/deprecation.js +19 -0
  568. package/lib/util/deterministicGrouping.js +46 -17
  569. package/lib/util/extractSourceMap.js +2 -1
  570. package/lib/util/extractUrlAndGlobal.js +1 -0
  571. package/lib/util/findGraphRoots.js +7 -0
  572. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  573. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  574. package/lib/util/fs.js +87 -14
  575. package/lib/util/generateDebugId.js +1 -0
  576. package/lib/util/globUtils.js +710 -0
  577. package/lib/util/hash/BatchedHash.js +1 -0
  578. package/lib/util/hash/BulkUpdateHash.js +1 -0
  579. package/lib/util/hash/DebugHash.js +1 -0
  580. package/lib/util/hash/hash-digest.js +32 -15
  581. package/lib/util/hash/md4.js +1 -1
  582. package/lib/util/hash/wasm-hash.js +5 -0
  583. package/lib/util/hash/xxhash64.js +1 -1
  584. package/lib/util/identifier.js +118 -7
  585. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  586. package/lib/util/internalSerializables.js +102 -60
  587. package/lib/util/magicComment.js +149 -7
  588. package/lib/util/makeSerializable.js +7 -0
  589. package/lib/util/memoize.js +2 -0
  590. package/lib/util/mimeTypes.js +176 -0
  591. package/lib/util/nonNumericOnlyHash.js +31 -1
  592. package/lib/util/numberHash.js +2 -2
  593. package/lib/util/parseJson.js +41 -0
  594. package/lib/util/processAsyncTree.js +8 -0
  595. package/lib/util/property.js +9 -2
  596. package/lib/util/publicPathPlaceholder.js +64 -0
  597. package/lib/util/registerExternalSerializer.js +24 -4
  598. package/lib/util/removeBOM.js +1 -0
  599. package/lib/util/runtime.js +32 -0
  600. package/lib/util/semver.js +15 -0
  601. package/lib/util/serialization.js +2 -0
  602. package/lib/util/smartGrouping.js +8 -0
  603. package/lib/util/source.js +23 -0
  604. package/lib/util/topologicalSort.js +69 -0
  605. package/lib/validateSchema.js +1 -0
  606. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  607. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  608. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  609. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  610. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  611. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  612. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  613. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  614. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  615. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  616. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  617. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  618. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  619. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  620. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  621. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  622. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  623. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  624. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  625. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  626. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  627. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  628. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  629. package/lib/web/JsonpTemplatePlugin.js +2 -1
  630. package/lib/webpack.js +78 -1
  631. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  632. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  633. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  634. package/module.d.ts +21 -0
  635. package/package.json +79 -77
  636. package/schemas/WebpackOptions.check.js +1 -1
  637. package/schemas/WebpackOptions.json +1173 -80
  638. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  639. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  640. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  641. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  642. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  643. package/schemas/plugins/HtmlParserOptions.json +3 -0
  644. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  645. package/schemas/plugins/ProgressPlugin.json +38 -0
  646. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  647. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  648. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  649. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  650. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  652. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  653. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  654. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  655. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  656. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  657. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  658. package/types.d.ts +11053 -3019
  659. package/lib/CaseSensitiveModulesWarning.js +0 -72
  660. package/lib/GraphHelpers.js +0 -46
  661. package/lib/ModuleParseError.js +0 -125
  662. package/lib/NoModeWarning.js +0 -23
  663. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  664. package/lib/css/walkCssTokens.js +0 -1843
  665. package/lib/util/AppendOnlyStackedSet.js +0 -78
  666. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  668. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  669. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -21,25 +21,30 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
21
21
  /** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
22
22
  /** @typedef {import("../javascript/JavascriptModulesPlugin").StartupRenderContext} StartupRenderContext */
23
23
  /**
24
+ * Defines the shared type used by this module.
24
25
  * @template T
25
26
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
26
27
  */
27
28
 
28
29
  /**
30
+ * Defines the export property library plugin parsed type used by this module.
29
31
  * @typedef {object} ExportPropertyLibraryPluginParsed
30
32
  * @property {LibraryExport=} export
31
33
  */
32
34
 
33
35
  /**
36
+ * Defines the export property library plugin options type used by this module.
34
37
  * @typedef {object} ExportPropertyLibraryPluginOptions
35
38
  * @property {LibraryType} type
36
39
  */
37
40
  /**
41
+ * Represents the export property library plugin runtime component.
38
42
  * @typedef {ExportPropertyLibraryPluginParsed} T
39
43
  * @extends {AbstractLibraryPlugin<ExportPropertyLibraryPluginParsed>}
40
44
  */
41
45
  class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
42
46
  /**
47
+ * Creates an instance of ExportPropertyLibraryPlugin.
43
48
  * @param {ExportPropertyLibraryPluginOptions} options options
44
49
  */
45
50
  constructor({ type }) {
@@ -50,6 +55,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
50
55
  }
51
56
 
52
57
  /**
58
+ * Returns preprocess as needed by overriding.
53
59
  * @param {LibraryOptions} library normalized library option
54
60
  * @returns {T} preprocess as needed by overriding
55
61
  */
@@ -60,6 +66,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
60
66
  }
61
67
 
62
68
  /**
69
+ * Finish entry module.
63
70
  * @param {Module} module the exporting entry module
64
71
  * @param {string} entryName the name of the entrypoint
65
72
  * @param {LibraryContext<T>} libraryContext context
@@ -78,6 +85,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
78
85
  );
79
86
  exportsInfo.setUsed(UsageState.Used, runtime);
80
87
  exportsInfo.canMangleUse = false;
88
+ exportsInfo.canInlineUse = false;
81
89
  } else {
82
90
  const exportsInfo = moduleGraph.getExportsInfo(module);
83
91
  exportsInfo.setUsedInUnknownWay(runtime);
@@ -86,6 +94,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
86
94
  }
87
95
 
88
96
  /**
97
+ * Processes the provided chunk.
89
98
  * @param {Chunk} chunk the chunk
90
99
  * @param {RuntimeRequirements} set runtime requirements
91
100
  * @param {LibraryContext<T>} libraryContext context
@@ -96,6 +105,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
96
105
  }
97
106
 
98
107
  /**
108
+ * Renders source with library export.
99
109
  * @param {Source} source source
100
110
  * @param {Module} module module
101
111
  * @param {StartupRenderContext} renderContext render context
@@ -5,13 +5,14 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const WebpackError = require("./WebpackError");
8
+ const WebpackError = require("../errors/WebpackError");
9
9
 
10
10
  class FalseIIFEUmdWarning extends WebpackError {
11
11
  constructor() {
12
12
  super();
13
13
  /** @type {string} */
14
14
  this.name = "FalseIIFEUmdWarning";
15
+ /** @type {string} */
15
16
  this.message =
16
17
  "Configuration:\nSetting 'output.iife' to 'false' is incompatible with 'output.library.type' set to 'umd'. This configuration may cause unexpected behavior, as UMD libraries are expected to use an IIFE (Immediately Invoked Function Expression) to support various module formats. Consider setting 'output.iife' to 'true' or choosing a different 'library.type' to ensure compatibility.\nLearn more: https://webpack.js.org/configuration/output/";
17
18
  }
@@ -17,26 +17,31 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
17
17
  /** @typedef {import("../util/Hash")} Hash */
18
18
 
19
19
  /**
20
+ * Defines the shared type used by this module.
20
21
  * @template T
21
22
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
22
23
  */
23
24
 
24
25
  /**
26
+ * Defines the jsonp library plugin options type used by this module.
25
27
  * @typedef {object} JsonpLibraryPluginOptions
26
28
  * @property {LibraryType} type
27
29
  */
28
30
 
29
31
  /**
32
+ * Defines the jsonp library plugin parsed type used by this module.
30
33
  * @typedef {object} JsonpLibraryPluginParsed
31
34
  * @property {string} name
32
35
  */
33
36
 
34
37
  /**
38
+ * Represents the jsonp library plugin runtime component.
35
39
  * @typedef {JsonpLibraryPluginParsed} T
36
40
  * @extends {AbstractLibraryPlugin<JsonpLibraryPluginParsed>}
37
41
  */
38
42
  class JsonpLibraryPlugin extends AbstractLibraryPlugin {
39
43
  /**
44
+ * Creates an instance of JsonpLibraryPlugin.
40
45
  * @param {JsonpLibraryPluginOptions} options the plugin options
41
46
  */
42
47
  constructor(options) {
@@ -47,6 +52,7 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin {
47
52
  }
48
53
 
49
54
  /**
55
+ * Returns preprocess as needed by overriding.
50
56
  * @param {LibraryOptions} library normalized library option
51
57
  * @returns {T} preprocess as needed by overriding
52
58
  */
@@ -64,6 +70,7 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin {
64
70
  }
65
71
 
66
72
  /**
73
+ * Returns source with library export.
67
74
  * @param {Source} source source
68
75
  * @param {RenderContext} renderContext render context
69
76
  * @param {LibraryContext<T>} libraryContext context
@@ -77,6 +84,7 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin {
77
84
  }
78
85
 
79
86
  /**
87
+ * Processes the provided chunk.
80
88
  * @param {Chunk} chunk the chunk
81
89
  * @param {Hash} hash hash
82
90
  * @param {ChunkHashContext} chunkHashContext chunk hash context
@@ -11,7 +11,10 @@ const ExternalModule = require("../ExternalModule");
11
11
  const RuntimeGlobals = require("../RuntimeGlobals");
12
12
  const Template = require("../Template");
13
13
  const HarmonyExportImportedSpecifierDependency = require("../dependencies/HarmonyExportImportedSpecifierDependency");
14
+ const HarmonyExportSpecifierDependency = require("../dependencies/HarmonyExportSpecifierDependency");
15
+ const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin");
14
16
  const ConcatenatedModule = require("../optimize/ConcatenatedModule");
17
+ const { InlinedUsedName } = require("../optimize/InlineExports");
15
18
  const { propertyAccess } = require("../util/property");
16
19
  const { getEntryRuntime, getRuntimeKey } = require("../util/runtime");
17
20
  const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
@@ -30,18 +33,22 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
30
33
  /** @typedef {import("../javascript/JavascriptModulesPlugin").ModuleRenderContext} ModuleRenderContext */
31
34
  /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
32
35
  /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
36
+ /** @typedef {import("../javascript/JavascriptModule").JavascriptModuleBuildMeta} JavascriptModuleBuildMeta */
33
37
 
34
38
  /**
39
+ * Defines the shared type used by this module.
35
40
  * @template T
36
41
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
37
42
  */
38
43
 
39
44
  /**
45
+ * Defines the module library plugin options type used by this module.
40
46
  * @typedef {object} ModuleLibraryPluginOptions
41
47
  * @property {LibraryType} type
42
48
  */
43
49
 
44
50
  /**
51
+ * Defines the module library plugin parsed type used by this module.
45
52
  * @typedef {object} ModuleLibraryPluginParsed
46
53
  * @property {string} name
47
54
  * @property {LibraryExport=} export
@@ -50,11 +57,13 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
50
57
  const PLUGIN_NAME = "ModuleLibraryPlugin";
51
58
 
52
59
  /**
60
+ * Represents the module library plugin runtime component.
53
61
  * @typedef {ModuleLibraryPluginParsed} T
54
62
  * @extends {AbstractLibraryPlugin<ModuleLibraryPluginParsed>}
55
63
  */
56
64
  class ModuleLibraryPlugin extends AbstractLibraryPlugin {
57
65
  /**
66
+ * Creates an instance of ModuleLibraryPlugin.
58
67
  * @param {ModuleLibraryPluginOptions} options the plugin options
59
68
  */
60
69
  constructor(options) {
@@ -65,7 +74,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
65
74
  }
66
75
 
67
76
  /**
68
- * Apply the plugin
77
+ * Applies the plugin by registering its hooks on the compiler.
69
78
  * @param {Compiler} compiler the compiler instance
70
79
  * @returns {void}
71
80
  */
@@ -75,6 +84,8 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
75
84
  compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
76
85
  const { onDemandExportsGeneration } =
77
86
  ConcatenatedModule.getCompilationHooks(compilation);
87
+ const javascriptHooks =
88
+ JavascriptModulesPlugin.getCompilationHooks(compilation);
78
89
  onDemandExportsGeneration.tap(
79
90
  PLUGIN_NAME,
80
91
  (module, runtimes, source, finalName) => {
@@ -100,10 +111,88 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
100
111
  return true;
101
112
  }
102
113
  );
114
+
115
+ // `ModuleLibraryPlugin` stashes the on-demand exports source via
116
+ // `onDemandExportsGeneration` and only re-emits it when the
117
+ // module is wrapped in an IIFE/factory. When the entry is
118
+ // inlined directly, the stashed source — and the
119
+ // `definePropertyGetters` / `requireScope` runtime helpers it
120
+ // pulled in — never make it into the output. Drop those helpers
121
+ // from the chunk's set so the bundle stays clean.
122
+ compilation.hooks.additionalChunkRuntimeRequirements.tap(
123
+ PLUGIN_NAME,
124
+ (chunk, set, { chunkGraph, codeGenerationResults }) => {
125
+ if (!set.has(RuntimeGlobals.definePropertyGetters)) return;
126
+ if (chunkGraph.getNumberOfEntryModules(chunk) !== 1) return;
127
+ if (chunkGraph.hasChunkEntryDependentChunks(chunk)) return;
128
+ if (
129
+ set.has(RuntimeGlobals.moduleFactories) ||
130
+ set.has(RuntimeGlobals.moduleCache) ||
131
+ set.has(RuntimeGlobals.interceptModuleExecution) ||
132
+ set.has(RuntimeGlobals.module) ||
133
+ set.has(RuntimeGlobals.thisAsExports)
134
+ ) {
135
+ return;
136
+ }
137
+ if (javascriptHooks.inlineInRuntimeBailout.isUsed()) return;
138
+
139
+ const [module] = chunkGraph.getChunkEntryModulesIterable(chunk);
140
+ const exportsSourceByRuntime =
141
+ module.buildMeta && module.buildMeta.exportsSourceByRuntime;
142
+ if (
143
+ !exportsSourceByRuntime ||
144
+ !exportsSourceByRuntime.has(getRuntimeKey(chunk.runtime))
145
+ ) {
146
+ return;
147
+ }
148
+ const codeGenResult = codeGenerationResults.get(
149
+ module,
150
+ chunk.runtime
151
+ );
152
+ const jsSource =
153
+ codeGenResult && codeGenResult.sources.get("javascript");
154
+ if (
155
+ jsSource &&
156
+ String(jsSource.source()).includes(`${RuntimeGlobals.require}.`)
157
+ ) {
158
+ return;
159
+ }
160
+
161
+ // Check whether any other module in the chunk still needs
162
+ // the helpers we want to remove.
163
+ let otherNeedsDefine = false;
164
+ let otherNeedsExports = false;
165
+ let otherNeedsRequireScope = false;
166
+ for (const m of chunkGraph.getChunkModulesIterable(chunk)) {
167
+ if (m === module) continue;
168
+ const requirements = chunkGraph.getModuleRuntimeRequirements(
169
+ m,
170
+ chunk.runtime
171
+ );
172
+ if (!requirements) continue;
173
+ if (requirements.has(RuntimeGlobals.definePropertyGetters)) {
174
+ otherNeedsDefine = true;
175
+ }
176
+ if (requirements.has(RuntimeGlobals.exports)) {
177
+ otherNeedsExports = true;
178
+ }
179
+ if (requirements.has(RuntimeGlobals.requireScope)) {
180
+ otherNeedsRequireScope = true;
181
+ }
182
+ if (otherNeedsDefine) break;
183
+ }
184
+
185
+ if (otherNeedsDefine) return;
186
+ set.delete(RuntimeGlobals.definePropertyGetters);
187
+ if (!otherNeedsExports) set.delete(RuntimeGlobals.exports);
188
+ if (!otherNeedsRequireScope) set.delete(RuntimeGlobals.requireScope);
189
+ }
190
+ );
103
191
  });
104
192
  }
105
193
 
106
194
  /**
195
+ * Finish entry module.
107
196
  * @param {Module} module the exporting entry module
108
197
  * @param {string} entryName the name of the entrypoint
109
198
  * @param {LibraryContext<T>} libraryContext context
@@ -122,24 +211,31 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
122
211
  );
123
212
  exportsInfo.setUsed(UsageState.Used, runtime);
124
213
  exportsInfo.canMangleUse = false;
214
+ exportsInfo.canInlineUse = false;
125
215
  } else {
126
216
  const exportsInfo = moduleGraph.getExportsInfo(module);
127
217
 
128
218
  if (
129
219
  // If the entry module is commonjs, its exports cannot be mangled
130
- (module.buildMeta && module.buildMeta.treatAsCommonJs) ||
220
+ (module.buildMeta &&
221
+ /** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
222
+ .treatAsCommonJs) ||
131
223
  // The entry module provides unknown exports
132
224
  exportsInfo._otherExportsInfo.provided === null
133
225
  ) {
134
226
  exportsInfo.setUsedInUnknownWay(runtime);
135
227
  } else {
136
228
  exportsInfo.setAllKnownExportsUsed(runtime);
229
+ for (const exportInfo of exportsInfo.ownedExports) {
230
+ exportInfo.canInlineUse = false;
231
+ }
137
232
  }
138
233
  }
139
234
  moduleGraph.addExtraReason(module, "used as library export");
140
235
  }
141
236
 
142
237
  /**
238
+ * Returns preprocess as needed by overriding.
143
239
  * @param {LibraryOptions} library normalized library option
144
240
  * @returns {T} preprocess as needed by overriding
145
241
  */
@@ -158,6 +254,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
158
254
  }
159
255
 
160
256
  /**
257
+ * Analyze unknown provided exports.
161
258
  * @param {Source} source source
162
259
  * @param {Module} module module
163
260
  * @param {ModuleGraph} moduleGraph moduleGraph
@@ -177,10 +274,11 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
177
274
  const result = new ConcatSource(source);
178
275
  /** @type {Set<string>} */
179
276
  const moduleRequests = new Set();
180
- /** @type {Map<string, string>} */
277
+ /** @type {Map<string, string | InlinedUsedName>} */
181
278
  const unknownProvidedExports = new Map();
182
279
 
183
280
  /**
281
+ * Resolves dynamic star reexport.
184
282
  * @param {Module} module the module
185
283
  * @param {boolean} isDynamicReexport if module is dynamic reexported
186
284
  */
@@ -218,7 +316,9 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
218
316
  continue;
219
317
  }
220
318
  const originalName = exportInfo.name;
221
- const usedName = exportInfo.getUsedName(originalName, runtime);
319
+ const usedName =
320
+ /** @type {string | InlinedUsedName | false} */
321
+ (exportInfo.getUsedName(originalName, runtime));
222
322
 
223
323
  if (!alreadyRenderedExports.has(originalName) && usedName) {
224
324
  unknownProvidedExports.set(originalName, usedName);
@@ -238,7 +338,13 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
238
338
  for (const [origin, used] of unknownProvidedExports) {
239
339
  exports.push([
240
340
  origin,
241
- `${RuntimeGlobals.exports}${propertyAccess([used])}`
341
+ used instanceof InlinedUsedName
342
+ ? used.render(
343
+ Template.toNormalComment(
344
+ `inlined export ${propertyAccess([origin])}`
345
+ )
346
+ )
347
+ : `${RuntimeGlobals.exports}${propertyAccess([used])}`
242
348
  ]);
243
349
  }
244
350
 
@@ -246,6 +352,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
246
352
  }
247
353
 
248
354
  /**
355
+ * Renders source with library export.
249
356
  * @param {Source} source source
250
357
  * @param {Module} module module
251
358
  * @param {StartupRenderContext} renderContext render context
@@ -295,9 +402,38 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
295
402
  const isAsync = moduleGraph.isAsync(module);
296
403
 
297
404
  const treatAsCommonJs =
298
- module.buildMeta && module.buildMeta.treatAsCommonJs;
405
+ module.buildMeta &&
406
+ /** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
407
+ .treatAsCommonJs;
299
408
  const skipRenderDefaultExport = Boolean(treatAsCommonJs);
300
409
 
410
+ // A single (non-concatenated) inlined entry is rendered at the top
411
+ // level, so its own declarations are top-level bindings we can export
412
+ // directly — keeping ESM live bindings instead of snapshotting
413
+ // `__webpack_exports__.x` into a `const`. Concatenated entries already
414
+ // get direct bindings via `definitions` above.
415
+ /** @type {Map<string, string> | undefined} */
416
+ let directBindings;
417
+ if (isInlinedEntryWithoutIIFE && !treatAsCommonJs) {
418
+ const { data } = codeGenerationResults.get(module, chunk.runtime);
419
+ const topLevelDeclarations =
420
+ (data && data.get("topLevelDeclarations")) ||
421
+ (module.buildInfo && module.buildInfo.topLevelDeclarations);
422
+ if (topLevelDeclarations) {
423
+ for (const dep of module.dependencies) {
424
+ if (
425
+ dep instanceof HarmonyExportSpecifierDependency &&
426
+ topLevelDeclarations.has(dep.id)
427
+ ) {
428
+ (directBindings || (directBindings = new Map())).set(
429
+ dep.name,
430
+ dep.id
431
+ );
432
+ }
433
+ }
434
+ }
435
+ }
436
+
301
437
  const moduleExportsInfo = moduleGraph.getExportsInfo(module);
302
438
 
303
439
  // Define ESM compatibility flag will rely on `__webpack_exports__`
@@ -340,16 +476,26 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
340
476
  }
341
477
  }
342
478
 
479
+ // The exports of entry module are never inlined
343
480
  const usedName =
344
481
  /** @type {string} */
345
482
  (exportInfo.getUsedName(originalName, chunk.runtime));
346
483
  /** @type {string | undefined} */
347
484
  const definition = definitions[usedName];
348
485
  /** @type {string | undefined} */
486
+ const directLocal =
487
+ definition === undefined && directBindings
488
+ ? directBindings.get(originalName)
489
+ : undefined;
490
+ /** @type {string | undefined} */
349
491
  let finalName;
350
492
 
351
493
  if (definition) {
352
494
  finalName = definition;
495
+ } else if (directLocal !== undefined) {
496
+ // Live binding to the inlined entry's own top-level declaration
497
+ finalName = directLocal;
498
+ needExportsDeclaration = true;
353
499
  } else {
354
500
  // Fallback to `__webpack_exports__` property access
355
501
  // when no direct export binding was found
@@ -389,7 +535,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
389
535
  }
390
536
  } else {
391
537
  shortHandedExports.push(
392
- definition && finalName === originalName
538
+ finalName === originalName
393
539
  ? finalName
394
540
  : `${finalName} as ${originalName}`
395
541
  );
@@ -431,6 +577,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
431
577
  }
432
578
 
433
579
  /**
580
+ * Renders module content.
434
581
  * @param {Source} source source
435
582
  * @param {Module} module module
436
583
  * @param {ModuleRenderContext} renderContext render context
@@ -21,26 +21,31 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
21
21
  /** @typedef {import("../javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
22
22
  /** @typedef {import("../util/Hash")} Hash */
23
23
  /**
24
+ * Defines the shared type used by this module.
24
25
  * @template T
25
26
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
26
27
  */
27
28
 
28
29
  /**
30
+ * Defines the system library plugin options type used by this module.
29
31
  * @typedef {object} SystemLibraryPluginOptions
30
32
  * @property {LibraryType} type
31
33
  */
32
34
 
33
35
  /**
36
+ * Defines the system library plugin parsed type used by this module.
34
37
  * @typedef {object} SystemLibraryPluginParsed
35
38
  * @property {string} name
36
39
  */
37
40
 
38
41
  /**
42
+ * Represents the system library plugin runtime component.
39
43
  * @typedef {SystemLibraryPluginParsed} T
40
44
  * @extends {AbstractLibraryPlugin<SystemLibraryPluginParsed>}
41
45
  */
42
46
  class SystemLibraryPlugin extends AbstractLibraryPlugin {
43
47
  /**
48
+ * Creates an instance of SystemLibraryPlugin.
44
49
  * @param {SystemLibraryPluginOptions} options the plugin options
45
50
  */
46
51
  constructor(options) {
@@ -51,6 +56,7 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
51
56
  }
52
57
 
53
58
  /**
59
+ * Returns preprocess as needed by overriding.
54
60
  * @param {LibraryOptions} library normalized library option
55
61
  * @returns {T} preprocess as needed by overriding
56
62
  */
@@ -68,6 +74,7 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
68
74
  }
69
75
 
70
76
  /**
77
+ * Returns source with library export.
71
78
  * @param {Source} source source
72
79
  * @param {RenderContext} renderContext render context
73
80
  * @param {LibraryContext<T>} libraryContext context
@@ -134,9 +141,9 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
134
141
  /** @type {ExportInfoName[]} */
135
142
  const handledNames = [];
136
143
  for (const exportInfo of exportsInfo.orderedExports) {
137
- const used = exportInfo.getUsedName(
138
- undefined,
139
- chunk.runtime
144
+ // The exports of `ExternalModule` are never inlined
145
+ const used = /** @type {string | false} */ (
146
+ exportInfo.getUsedName(undefined, chunk.runtime)
140
147
  );
141
148
  if (used) {
142
149
  if (otherUnused || used !== exportInfo.name) {
@@ -239,6 +246,7 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
239
246
  }
240
247
 
241
248
  /**
249
+ * Processes the provided chunk.
242
250
  * @param {Chunk} chunk the chunk
243
251
  * @param {Hash} hash hash
244
252
  * @param {ChunkHashContext} chunkHashContext chunk hash context
@@ -20,11 +20,13 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
20
20
  /** @typedef {import("../ExternalModule").RequestRecord} RequestRecord */
21
21
 
22
22
  /**
23
+ * Defines the shared type used by this module.
23
24
  * @template T
24
25
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
25
26
  */
26
27
 
27
28
  /**
29
+ * Accessor to object access.
28
30
  * @param {string[]} accessor the accessor to convert to path
29
31
  * @returns {string} the path
30
32
  */
@@ -34,6 +36,7 @@ const accessorToObjectAccess = (accessor) =>
34
36
  /** @typedef {string | string[]} Accessor */
35
37
 
36
38
  /**
39
+ * Returns the path.
37
40
  * @param {string | undefined} base the path prefix
38
41
  * @param {Accessor} accessor the accessor
39
42
  * @param {string=} joinWith the element separator
@@ -56,12 +59,14 @@ const accessorAccess = (base, accessor, joinWith = ", ") => {
56
59
  };
57
60
 
58
61
  /**
62
+ * Defines the umd library plugin options type used by this module.
59
63
  * @typedef {object} UmdLibraryPluginOptions
60
64
  * @property {LibraryType} type
61
65
  * @property {boolean=} optionalAmdExternalAsGlobal
62
66
  */
63
67
 
64
68
  /**
69
+ * Defines the umd library plugin parsed type used by this module.
65
70
  * @typedef {object} UmdLibraryPluginParsed
66
71
  * @property {string | string[] | undefined} name
67
72
  * @property {LibraryCustomUmdObject} names
@@ -70,11 +75,13 @@ const accessorAccess = (base, accessor, joinWith = ", ") => {
70
75
  */
71
76
 
72
77
  /**
78
+ * Represents the umd library plugin runtime component.
73
79
  * @typedef {UmdLibraryPluginParsed} T
74
80
  * @extends {AbstractLibraryPlugin<UmdLibraryPluginParsed>}
75
81
  */
76
82
  class UmdLibraryPlugin extends AbstractLibraryPlugin {
77
83
  /**
84
+ * Creates an instance of UmdLibraryPlugin.
78
85
  * @param {UmdLibraryPluginOptions} options the plugin option
79
86
  */
80
87
  constructor(options) {
@@ -88,6 +95,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
88
95
  }
89
96
 
90
97
  /**
98
+ * Returns preprocess as needed by overriding.
91
99
  * @param {LibraryOptions} library normalized library option
92
100
  * @returns {T} preprocess as needed by overriding
93
101
  */
@@ -117,6 +125,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
117
125
  }
118
126
 
119
127
  /**
128
+ * Returns source with library export.
120
129
  * @param {Source} source source
121
130
  * @param {RenderContext} renderContext render context
122
131
  * @param {LibraryContext<T>} libraryContext context
@@ -153,6 +162,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
153
162
  }
154
163
 
155
164
  /**
165
+ * Returns the replaced keys.
156
166
  * @param {string} str the string to replace
157
167
  * @returns {string} the replaced keys
158
168
  */
@@ -162,6 +172,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
162
172
  });
163
173
 
164
174
  /**
175
+ * Externals deps array.
165
176
  * @param {ExternalModule[]} modules external modules
166
177
  * @returns {string} result
167
178
  */
@@ -180,6 +191,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
180
191
  )}]`;
181
192
 
182
193
  /**
194
+ * Externals root array.
183
195
  * @param {ExternalModule[]} modules external modules
184
196
  * @returns {string} result
185
197
  */
@@ -201,6 +213,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
201
213
  );
202
214
 
203
215
  /**
216
+ * Externals require array.
204
217
  * @param {string} type the type
205
218
  * @returns {string} external require array
206
219
  */
@@ -233,6 +246,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
233
246
  );
234
247
 
235
248
  /**
249
+ * Externals arguments.
236
250
  * @param {ExternalModule[]} modules external modules
237
251
  * @returns {string} arguments
238
252
  */
@@ -247,6 +261,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
247
261
  .join(", ");
248
262
 
249
263
  /**
264
+ * Returns stringified library name.
250
265
  * @param {Accessor} library library name
251
266
  * @returns {string} stringified library name
252
267
  */
@@ -279,6 +294,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
279
294
  const { auxiliaryComment, namedDefine, names } = options;
280
295
 
281
296
  /**
297
+ * Gets auxiliary comment.
282
298
  * @param {keyof LibraryCustomUmdCommentObject} type type
283
299
  * @returns {string} comment
284
300
  */