webpack 5.106.1 → 5.107.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 (600) hide show
  1. package/README.md +2 -2
  2. package/lib/APIPlugin.js +4 -2
  3. package/lib/AsyncDependenciesBlock.js +3 -0
  4. package/lib/AutomaticPrefetchPlugin.js +6 -1
  5. package/lib/BannerPlugin.js +10 -1
  6. package/lib/Cache.js +27 -5
  7. package/lib/CacheFacade.js +26 -0
  8. package/lib/Chunk.js +46 -0
  9. package/lib/ChunkGraph.js +111 -0
  10. package/lib/ChunkGroup.js +57 -13
  11. package/lib/ChunkTemplate.js +9 -0
  12. package/lib/CleanPlugin.js +14 -1
  13. package/lib/CodeGenerationResults.js +19 -0
  14. package/lib/CompatibilityPlugin.js +23 -8
  15. package/lib/Compilation.js +161 -27
  16. package/lib/Compiler.js +41 -17
  17. package/lib/ConcatenationScope.js +24 -1
  18. package/lib/ConditionalInitFragment.js +6 -0
  19. package/lib/ConstPlugin.js +4 -1
  20. package/lib/ContextExclusionPlugin.js +2 -1
  21. package/lib/ContextModule.js +14 -2
  22. package/lib/ContextModuleFactory.js +10 -0
  23. package/lib/ContextReplacementPlugin.js +4 -1
  24. package/lib/DefinePlugin.js +22 -9
  25. package/lib/DependenciesBlock.js +6 -1
  26. package/lib/Dependency.js +48 -4
  27. package/lib/DependencyTemplate.js +7 -1
  28. package/lib/DependencyTemplates.js +4 -0
  29. package/lib/DotenvPlugin.js +3 -0
  30. package/lib/DynamicEntryPlugin.js +3 -1
  31. package/lib/EntryOptionPlugin.js +3 -0
  32. package/lib/EntryPlugin.js +2 -1
  33. package/lib/Entrypoint.js +4 -0
  34. package/lib/EnvironmentPlugin.js +3 -2
  35. package/lib/ErrorHelpers.js +7 -0
  36. package/lib/EvalDevToolModulePlugin.js +3 -1
  37. package/lib/EvalSourceMapDevToolPlugin.js +11 -10
  38. package/lib/ExportsInfo.js +56 -2
  39. package/lib/ExportsInfoApiPlugin.js +2 -1
  40. package/lib/ExternalModule.js +114 -15
  41. package/lib/ExternalModuleFactoryPlugin.js +15 -0
  42. package/lib/ExternalsPlugin.js +2 -1
  43. package/lib/FileSystemInfo.js +291 -71
  44. package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
  45. package/lib/FlagDependencyExportsPlugin.js +4 -1
  46. package/lib/FlagDependencyUsagePlugin.js +5 -1
  47. package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
  48. package/lib/Generator.js +16 -3
  49. package/lib/HotModuleReplacementPlugin.js +35 -9
  50. package/lib/IgnorePlugin.js +4 -2
  51. package/lib/IgnoreWarningsPlugin.js +2 -1
  52. package/lib/InitFragment.js +10 -0
  53. package/lib/JavascriptMetaInfoPlugin.js +2 -1
  54. package/lib/LibraryTemplatePlugin.js +2 -1
  55. package/lib/LoaderOptionsPlugin.js +3 -1
  56. package/lib/LoaderTargetPlugin.js +2 -1
  57. package/lib/MainTemplate.js +15 -0
  58. package/lib/ManifestPlugin.js +9 -2
  59. package/lib/Module.js +101 -19
  60. package/lib/ModuleFactory.js +6 -1
  61. package/lib/ModuleFilenameHelpers.js +3 -0
  62. package/lib/ModuleGraph.js +66 -0
  63. package/lib/ModuleGraphConnection.js +9 -0
  64. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  65. package/lib/ModuleSourceTypeConstants.js +32 -1
  66. package/lib/ModuleTemplate.js +8 -0
  67. package/lib/ModuleTypeConstants.js +12 -3
  68. package/lib/MultiCompiler.js +30 -2
  69. package/lib/MultiStats.js +8 -0
  70. package/lib/MultiWatching.js +3 -0
  71. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  72. package/lib/NodeStuffPlugin.js +11 -2
  73. package/lib/NormalModule.js +43 -33
  74. package/lib/NormalModuleFactory.js +35 -2
  75. package/lib/NormalModuleReplacementPlugin.js +1 -1
  76. package/lib/NullFactory.js +1 -0
  77. package/lib/OptionsApply.js +1 -0
  78. package/lib/Parser.js +3 -1
  79. package/lib/PlatformPlugin.js +2 -1
  80. package/lib/PrefetchPlugin.js +2 -1
  81. package/lib/ProgressPlugin.js +158 -68
  82. package/lib/ProvidePlugin.js +3 -1
  83. package/lib/RawModule.js +12 -0
  84. package/lib/RecordIdsPlugin.js +8 -0
  85. package/lib/RequestShortener.js +8 -0
  86. package/lib/ResolverFactory.js +5 -0
  87. package/lib/RuntimeGlobals.js +6 -5
  88. package/lib/RuntimeModule.js +22 -7
  89. package/lib/RuntimePlugin.js +13 -0
  90. package/lib/RuntimeTemplate.js +35 -1
  91. package/lib/SelfModuleFactory.js +2 -0
  92. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  93. package/lib/SourceMapDevToolPlugin.js +3 -1
  94. package/lib/Stats.js +5 -0
  95. package/lib/Template.js +20 -0
  96. package/lib/TemplatedPathPlugin.js +10 -3
  97. package/lib/UseStrictPlugin.js +2 -1
  98. package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
  99. package/lib/WarnDeprecatedOptionPlugin.js +2 -2
  100. package/lib/WarnNoModeSetPlugin.js +17 -2
  101. package/lib/WatchIgnorePlugin.js +4 -1
  102. package/lib/Watching.js +16 -3
  103. package/lib/WebpackError.js +3 -74
  104. package/lib/WebpackIsIncludedPlugin.js +3 -1
  105. package/lib/WebpackOptionsApply.js +14 -1
  106. package/lib/WebpackOptionsDefaulter.js +1 -0
  107. package/lib/asset/AssetBytesGenerator.js +12 -2
  108. package/lib/asset/AssetBytesParser.js +1 -0
  109. package/lib/asset/AssetGenerator.js +42 -10
  110. package/lib/asset/AssetModulesPlugin.js +7 -2
  111. package/lib/asset/AssetParser.js +2 -0
  112. package/lib/asset/AssetSourceGenerator.js +12 -2
  113. package/lib/asset/AssetSourceParser.js +1 -0
  114. package/lib/asset/RawDataUrlModule.js +11 -0
  115. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  116. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
  117. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  118. package/lib/buildChunkGraph.js +19 -6
  119. package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
  120. package/lib/cache/AddManagedPathsPlugin.js +2 -1
  121. package/lib/cache/IdleFileCachePlugin.js +2 -1
  122. package/lib/cache/MemoryCachePlugin.js +1 -1
  123. package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
  124. package/lib/cache/PackFileCacheStrategy.js +33 -4
  125. package/lib/cache/ResolverCachePlugin.js +10 -1
  126. package/lib/cache/getLazyHashedEtag.js +4 -0
  127. package/lib/cache/mergeEtags.js +2 -0
  128. package/lib/cli.js +33 -1
  129. package/lib/config/browserslistTargetHandler.js +2 -0
  130. package/lib/config/defaults.js +232 -12
  131. package/lib/config/normalization.js +15 -1
  132. package/lib/config/target.js +11 -0
  133. package/lib/container/ContainerEntryDependency.js +2 -0
  134. package/lib/container/ContainerEntryModule.js +12 -0
  135. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  136. package/lib/container/ContainerExposedDependency.js +4 -0
  137. package/lib/container/ContainerPlugin.js +2 -1
  138. package/lib/container/ContainerReferencePlugin.js +2 -1
  139. package/lib/container/FallbackDependency.js +4 -0
  140. package/lib/container/FallbackItemDependency.js +1 -0
  141. package/lib/container/FallbackModule.js +12 -0
  142. package/lib/container/FallbackModuleFactory.js +1 -0
  143. package/lib/container/ModuleFederationPlugin.js +3 -1
  144. package/lib/container/RemoteModule.js +13 -0
  145. package/lib/container/RemoteRuntimeModule.js +1 -0
  146. package/lib/container/RemoteToExternalDependency.js +1 -0
  147. package/lib/container/options.js +7 -0
  148. package/lib/css/CssGenerator.js +336 -100
  149. package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
  150. package/lib/css/CssLoadingRuntimeModule.js +23 -4
  151. package/lib/{CssModule.js → css/CssModule.js} +21 -15
  152. package/lib/css/CssModulesPlugin.js +235 -89
  153. package/lib/css/CssParser.js +616 -261
  154. package/lib/css/walkCssTokens.js +179 -2
  155. package/lib/debug/ProfilingPlugin.js +19 -1
  156. package/lib/dependencies/AMDDefineDependency.js +7 -0
  157. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
  158. package/lib/dependencies/AMDPlugin.js +4 -1
  159. package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
  160. package/lib/dependencies/AMDRequireContextDependency.js +3 -0
  161. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  162. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +14 -1
  163. package/lib/dependencies/AMDRequireDependency.js +4 -0
  164. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  165. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  166. package/lib/dependencies/CachedConstDependency.js +6 -1
  167. package/lib/dependencies/CommonJsDependencyHelpers.js +64 -0
  168. package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
  169. package/lib/dependencies/CommonJsExportsDependency.js +4 -0
  170. package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
  171. package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
  172. package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
  173. package/lib/dependencies/CommonJsPlugin.js +4 -1
  174. package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
  175. package/lib/dependencies/CommonJsRequireDependency.js +70 -4
  176. package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
  177. package/lib/dependencies/ConstDependency.js +6 -1
  178. package/lib/dependencies/ContextDependency.js +9 -2
  179. package/lib/dependencies/ContextDependencyHelpers.js +4 -1
  180. package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
  181. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  182. package/lib/dependencies/ContextElementDependency.js +4 -0
  183. package/lib/dependencies/CreateRequireParserPlugin.js +7 -1
  184. package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
  185. package/lib/dependencies/CriticalDependencyWarning.js +2 -1
  186. package/lib/dependencies/CssIcssExportDependency.js +339 -66
  187. package/lib/dependencies/CssIcssImportDependency.js +53 -8
  188. package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
  189. package/lib/dependencies/CssImportDependency.js +12 -0
  190. package/lib/dependencies/CssUrlDependency.js +32 -0
  191. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  192. package/lib/dependencies/DllEntryDependency.js +3 -0
  193. package/lib/dependencies/DynamicExports.js +5 -0
  194. package/lib/dependencies/EntryDependency.js +1 -0
  195. package/lib/dependencies/ExportsInfoDependency.js +6 -0
  196. package/lib/dependencies/ExternalModuleDependency.js +5 -0
  197. package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
  198. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
  199. package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
  200. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
  201. package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
  202. package/lib/dependencies/HarmonyDetectionParserPlugin.js +4 -1
  203. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
  204. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
  205. package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
  206. package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
  207. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
  208. package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
  209. package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
  210. package/lib/dependencies/HarmonyExports.js +2 -0
  211. package/lib/dependencies/HarmonyImportDependency.js +21 -2
  212. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
  213. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
  214. package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
  215. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
  216. package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
  217. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
  218. package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
  219. package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
  220. package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
  221. package/lib/dependencies/HtmlSourceDependency.js +127 -0
  222. package/lib/dependencies/ImportContextDependency.js +4 -0
  223. package/lib/dependencies/ImportDependency.js +5 -0
  224. package/lib/dependencies/ImportEagerDependency.js +2 -0
  225. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  226. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -1
  227. package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
  228. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
  229. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
  230. package/lib/dependencies/ImportMetaPlugin.js +6 -0
  231. package/lib/dependencies/ImportParserPlugin.js +9 -2
  232. package/lib/dependencies/ImportPhase.js +7 -3
  233. package/lib/dependencies/ImportPlugin.js +2 -1
  234. package/lib/dependencies/ImportWeakDependency.js +2 -0
  235. package/lib/dependencies/JsonExportsDependency.js +6 -1
  236. package/lib/dependencies/LoaderDependency.js +2 -0
  237. package/lib/dependencies/LoaderImportDependency.js +2 -0
  238. package/lib/dependencies/LoaderPlugin.js +4 -1
  239. package/lib/dependencies/LocalModule.js +4 -0
  240. package/lib/dependencies/LocalModuleDependency.js +4 -0
  241. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  242. package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
  243. package/lib/dependencies/ModuleDependency.js +7 -0
  244. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  245. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  246. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
  247. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
  248. package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
  249. package/lib/dependencies/NullDependency.js +2 -0
  250. package/lib/dependencies/PrefetchDependency.js +1 -0
  251. package/lib/dependencies/ProvidedDependency.js +6 -1
  252. package/lib/dependencies/PureExpressionDependency.js +7 -1
  253. package/lib/dependencies/RequireContextDependency.js +1 -0
  254. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
  255. package/lib/dependencies/RequireContextPlugin.js +2 -1
  256. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  257. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
  258. package/lib/dependencies/RequireEnsureDependency.js +4 -0
  259. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  260. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  261. package/lib/dependencies/RequireHeaderDependency.js +4 -0
  262. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  263. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +4 -1
  264. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  265. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  266. package/lib/dependencies/RequireResolveContextDependency.js +3 -0
  267. package/lib/dependencies/RequireResolveDependency.js +1 -0
  268. package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
  269. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
  270. package/lib/dependencies/StaticExportsDependency.js +3 -0
  271. package/lib/dependencies/SystemPlugin.js +5 -2
  272. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  273. package/lib/dependencies/URLContextDependency.js +3 -0
  274. package/lib/dependencies/URLDependency.js +6 -0
  275. package/lib/dependencies/URLPlugin.js +2 -0
  276. package/lib/dependencies/UnsupportedDependency.js +4 -0
  277. package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
  278. package/lib/dependencies/WebAssemblyImportDependency.js +5 -2
  279. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
  280. package/lib/dependencies/WorkerDependency.js +6 -1
  281. package/lib/dependencies/WorkerPlugin.js +11 -3
  282. package/lib/dependencies/getFunctionExpression.js +1 -0
  283. package/lib/dependencies/processExportInfo.js +1 -0
  284. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
  285. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
  286. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
  287. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
  288. package/lib/{DllModule.js → dll/DllModule.js} +35 -24
  289. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  290. package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
  291. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
  292. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
  293. package/lib/electron/ElectronTargetPlugin.js +2 -1
  294. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  295. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  296. package/lib/errors/BuildCycleError.js +1 -1
  297. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  298. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  299. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  300. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
  301. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
  302. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
  303. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
  304. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
  305. package/lib/errors/JSONParseError.js +114 -0
  306. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
  307. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
  308. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
  309. package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
  310. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
  311. package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
  312. package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
  313. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
  314. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
  315. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
  316. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
  317. package/lib/errors/NonErrorEmittedError.js +28 -0
  318. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -2
  319. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  320. package/lib/errors/WebpackError.js +84 -0
  321. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  322. package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
  323. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
  324. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
  325. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  326. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  327. package/lib/hmr/LazyCompilationPlugin.js +20 -1
  328. package/lib/hmr/lazyCompilationBackend.js +2 -0
  329. package/lib/html/HtmlGenerator.js +379 -0
  330. package/lib/html/HtmlModulesPlugin.js +433 -0
  331. package/lib/html/HtmlParser.js +1489 -0
  332. package/lib/html/walkHtmlTokens.js +2733 -0
  333. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  334. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  335. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  336. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  337. package/lib/ids/IdHelpers.js +22 -1
  338. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  339. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  340. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  341. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  342. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  343. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  344. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  345. package/lib/index.js +39 -15
  346. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
  347. package/lib/javascript/BasicEvaluatedExpression.js +4 -2
  348. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  349. package/lib/javascript/ChunkHelpers.js +1 -0
  350. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  351. package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
  352. package/lib/javascript/JavascriptGenerator.js +10 -0
  353. package/lib/javascript/JavascriptModulesPlugin.js +112 -9
  354. package/lib/javascript/JavascriptParser.js +360 -16
  355. package/lib/javascript/JavascriptParserHelpers.js +7 -1
  356. package/lib/javascript/StartupHelpers.js +5 -0
  357. package/lib/json/JsonData.js +5 -0
  358. package/lib/json/JsonGenerator.js +21 -0
  359. package/lib/json/JsonModulesPlugin.js +1 -1
  360. package/lib/json/JsonParser.js +14 -25
  361. package/lib/library/AbstractLibraryPlugin.js +17 -2
  362. package/lib/library/AmdLibraryPlugin.js +8 -0
  363. package/lib/library/AssignLibraryPlugin.js +16 -0
  364. package/lib/library/EnableLibraryPlugin.js +8 -2
  365. package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
  366. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
  367. package/lib/library/JsonpLibraryPlugin.js +8 -0
  368. package/lib/library/ModuleLibraryPlugin.js +86 -1
  369. package/lib/library/SystemLibraryPlugin.js +8 -0
  370. package/lib/library/UmdLibraryPlugin.js +16 -0
  371. package/lib/logging/Logger.js +17 -0
  372. package/lib/logging/createConsoleLogger.js +7 -0
  373. package/lib/logging/runtime.js +2 -0
  374. package/lib/logging/truncateArgs.js +2 -0
  375. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  376. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  377. package/lib/node/NodeSourcePlugin.js +1 -1
  378. package/lib/node/NodeTargetPlugin.js +2 -1
  379. package/lib/node/NodeTemplatePlugin.js +3 -1
  380. package/lib/node/NodeWatchFileSystem.js +2 -0
  381. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
  382. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
  383. package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
  384. package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
  385. package/lib/node/nodeConsole.js +116 -64
  386. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  387. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  388. package/lib/optimize/ConcatenatedModule.js +62 -6
  389. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  390. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
  391. package/lib/optimize/InnerGraph.js +16 -1
  392. package/lib/optimize/InnerGraphPlugin.js +14 -2
  393. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  394. package/lib/optimize/MangleExportsPlugin.js +5 -1
  395. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  396. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  397. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  398. package/lib/optimize/ModuleConcatenationPlugin.js +36 -8
  399. package/lib/optimize/RealContentHashPlugin.js +104 -26
  400. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  401. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  402. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  403. package/lib/optimize/SideEffectsFlagPlugin.js +118 -4
  404. package/lib/optimize/SplitChunksPlugin.js +50 -2
  405. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  406. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  407. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  408. package/lib/performance/SizeLimitsPlugin.js +8 -2
  409. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  410. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
  411. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  412. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  413. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
  414. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  415. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  416. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  417. package/lib/rules/RuleSetCompiler.js +18 -0
  418. package/lib/rules/UseEffectRulePlugin.js +10 -3
  419. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
  420. package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
  421. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  422. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  423. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
  424. package/lib/runtime/CompatRuntimeModule.js +2 -0
  425. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
  426. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  427. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  428. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
  429. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  430. package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
  431. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  432. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  433. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
  434. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  435. package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
  436. package/lib/runtime/HelperRuntimeModule.js +5 -0
  437. package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
  438. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +121 -13
  439. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
  440. package/lib/runtime/NonceRuntimeModule.js +1 -0
  441. package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
  442. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  443. package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
  444. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  445. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
  446. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  447. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
  448. package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
  449. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  450. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  451. package/lib/schemes/DataUriPlugin.js +14 -2
  452. package/lib/schemes/FileUriPlugin.js +1 -1
  453. package/lib/schemes/HttpUriPlugin.js +43 -1
  454. package/lib/schemes/VirtualUrlPlugin.js +7 -2
  455. package/lib/serialization/AggregateErrorSerializer.js +2 -0
  456. package/lib/serialization/ArraySerializer.js +2 -0
  457. package/lib/serialization/BinaryMiddleware.js +20 -1
  458. package/lib/serialization/DateObjectSerializer.js +2 -0
  459. package/lib/serialization/ErrorObjectSerializer.js +3 -0
  460. package/lib/serialization/FileMiddleware.js +21 -0
  461. package/lib/serialization/MapObjectSerializer.js +2 -0
  462. package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
  463. package/lib/serialization/ObjectMiddleware.js +23 -0
  464. package/lib/serialization/PlainObjectSerializer.js +7 -0
  465. package/lib/serialization/RegExpObjectSerializer.js +2 -0
  466. package/lib/serialization/Serializer.js +5 -0
  467. package/lib/serialization/SerializerMiddleware.js +14 -2
  468. package/lib/serialization/SetObjectSerializer.js +2 -0
  469. package/lib/serialization/SingleItemMiddleware.js +3 -0
  470. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  471. package/lib/sharing/ConsumeSharedModule.js +15 -0
  472. package/lib/sharing/ConsumeSharedPlugin.js +8 -3
  473. package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
  474. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  475. package/lib/sharing/ProvideSharedDependency.js +4 -0
  476. package/lib/sharing/ProvideSharedModule.js +12 -1
  477. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  478. package/lib/sharing/ProvideSharedPlugin.js +5 -2
  479. package/lib/sharing/SharePlugin.js +2 -1
  480. package/lib/sharing/ShareRuntimeModule.js +1 -0
  481. package/lib/sharing/resolveMatchedConfigs.js +4 -1
  482. package/lib/sharing/utils.js +8 -0
  483. package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
  484. package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
  485. package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
  486. package/lib/stats/StatsFactory.js +13 -1
  487. package/lib/stats/StatsPrinter.js +7 -0
  488. package/lib/typescript/TypeScriptPlugin.js +210 -0
  489. package/lib/url/URLParserPlugin.js +8 -2
  490. package/lib/util/AppendOnlyStackedSet.js +15 -0
  491. package/lib/util/ArrayHelpers.js +1 -0
  492. package/lib/util/ArrayQueue.js +10 -5
  493. package/lib/util/AsyncQueue.js +22 -2
  494. package/lib/util/Hash.js +2 -2
  495. package/lib/util/IterableHelpers.js +3 -0
  496. package/lib/util/LazyBucketSortedSet.js +21 -0
  497. package/lib/util/LazySet.js +39 -0
  498. package/lib/util/LocConverter.js +53 -0
  499. package/lib/util/ParallelismFactorCalculator.js +1 -0
  500. package/lib/util/Queue.js +6 -3
  501. package/lib/util/Semaphore.js +14 -1
  502. package/lib/util/SetHelpers.js +3 -0
  503. package/lib/util/SortableSet.js +7 -1
  504. package/lib/util/StackedCacheMap.js +20 -3
  505. package/lib/util/StackedMap.js +45 -0
  506. package/lib/util/StringXor.js +1 -1
  507. package/lib/util/TupleQueue.js +7 -3
  508. package/lib/util/TupleSet.js +13 -0
  509. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  510. package/lib/util/WeakTupleMap.js +33 -0
  511. package/lib/util/binarySearchBounds.js +1 -0
  512. package/lib/util/cleverMerge.js +19 -2
  513. package/lib/util/comparators.js +34 -3
  514. package/lib/util/compileBooleanMatcher.js +9 -0
  515. package/lib/util/concatenate.js +9 -3
  516. package/lib/util/conventions.js +46 -1
  517. package/lib/util/createMappings.js +118 -0
  518. package/lib/util/dataURL.js +1 -0
  519. package/lib/util/deprecation.js +19 -0
  520. package/lib/util/deterministicGrouping.js +20 -0
  521. package/lib/util/extractSourceMap.js +1 -0
  522. package/lib/util/extractUrlAndGlobal.js +1 -0
  523. package/lib/util/findGraphRoots.js +5 -0
  524. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  525. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
  526. package/lib/util/fs.js +71 -8
  527. package/lib/util/generateDebugId.js +1 -0
  528. package/lib/util/hash/BatchedHash.js +1 -0
  529. package/lib/util/hash/BulkUpdateHash.js +1 -0
  530. package/lib/util/hash/hash-digest.js +8 -0
  531. package/lib/util/hash/md4.js +1 -1
  532. package/lib/util/hash/wasm-hash.js +5 -0
  533. package/lib/util/hash/xxhash64.js +1 -1
  534. package/lib/util/identifier.js +67 -0
  535. package/lib/util/internalSerializables.js +35 -19
  536. package/lib/util/magicComment.js +10 -6
  537. package/lib/util/makeSerializable.js +6 -0
  538. package/lib/util/memoize.js +2 -0
  539. package/lib/util/mimeTypes.js +176 -0
  540. package/lib/util/nonNumericOnlyHash.js +1 -0
  541. package/lib/util/parseJson.js +41 -0
  542. package/lib/util/processAsyncTree.js +8 -0
  543. package/lib/util/property.js +1 -0
  544. package/lib/util/registerExternalSerializer.js +20 -0
  545. package/lib/util/removeBOM.js +1 -0
  546. package/lib/util/runtime.js +32 -0
  547. package/lib/util/semver.js +15 -0
  548. package/lib/util/serialization.js +2 -0
  549. package/lib/util/smartGrouping.js +8 -0
  550. package/lib/util/source.js +23 -0
  551. package/lib/util/topologicalSort.js +69 -0
  552. package/lib/validateSchema.js +1 -0
  553. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  554. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
  555. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
  556. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  557. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
  558. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +12 -3
  559. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
  560. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
  561. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
  562. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
  563. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
  564. package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
  565. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
  566. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  567. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
  568. package/lib/wasm-sync/WebAssemblyParser.js +2 -0
  569. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  570. package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
  571. package/lib/web/FetchCompileWasmPlugin.js +13 -1
  572. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  573. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
  574. package/lib/web/JsonpTemplatePlugin.js +2 -1
  575. package/lib/webpack.js +13 -1
  576. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  577. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
  578. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  579. package/package.json +31 -31
  580. package/schemas/WebpackOptions.check.js +1 -1
  581. package/schemas/WebpackOptions.json +161 -57
  582. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  583. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  584. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  585. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  586. package/schemas/plugins/ProgressPlugin.json +22 -0
  587. package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
  588. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  589. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  590. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  591. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  592. package/types.d.ts +5325 -353
  593. package/lib/CaseSensitiveModulesWarning.js +0 -72
  594. package/lib/GraphHelpers.js +0 -46
  595. package/lib/NoModeWarning.js +0 -23
  596. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  597. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  598. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  599. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  600. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -14,6 +14,7 @@ const { getEntryRuntime, mergeRuntimeOwned } = require("./util/runtime");
14
14
  const PLUGIN_NAME = "FlagAllModulesAsUsedPlugin";
15
15
  class FlagAllModulesAsUsedPlugin {
16
16
  /**
17
+ * Creates an instance of FlagAllModulesAsUsedPlugin.
17
18
  * @param {string} explanation explanation
18
19
  */
19
20
  constructor(explanation) {
@@ -21,7 +22,7 @@ class FlagAllModulesAsUsedPlugin {
21
22
  }
22
23
 
23
24
  /**
24
- * Apply the plugin
25
+ * Applies the plugin by registering its hooks on the compiler.
25
26
  * @param {Compiler} compiler the compiler instance
26
27
  * @returns {void}
27
28
  */
@@ -24,7 +24,7 @@ const PLUGIN_LOGGER_NAME = `webpack.${PLUGIN_NAME}`;
24
24
 
25
25
  class FlagDependencyExportsPlugin {
26
26
  /**
27
- * Apply the plugin
27
+ * Applies the plugin by registering its hooks on the compiler.
28
28
  * @param {Compiler} compiler the compiler instance
29
29
  * @returns {void}
30
30
  */
@@ -129,6 +129,7 @@ class FlagDependencyExportsPlugin {
129
129
  let changed = false;
130
130
 
131
131
  /**
132
+ * Process dependencies block.
132
133
  * @param {DependenciesBlock} depBlock the dependencies block
133
134
  * @returns {void}
134
135
  */
@@ -142,6 +143,7 @@ class FlagDependencyExportsPlugin {
142
143
  };
143
144
 
144
145
  /**
146
+ * Process dependency.
145
147
  * @param {Dependency} dep the dependency
146
148
  * @returns {void}
147
149
  */
@@ -152,6 +154,7 @@ class FlagDependencyExportsPlugin {
152
154
  };
153
155
 
154
156
  /**
157
+ * Process exports spec.
155
158
  * @param {Dependency} dep dependency
156
159
  * @param {ExportsSpec} exportDesc info
157
160
  * @returns {void}
@@ -28,6 +28,7 @@ const PLUGIN_LOGGER_NAME = `webpack.${PLUGIN_NAME}`;
28
28
 
29
29
  class FlagDependencyUsagePlugin {
30
30
  /**
31
+ * Creates an instance of FlagDependencyUsagePlugin.
31
32
  * @param {boolean} global do a global analysis instead of per runtime
32
33
  */
33
34
  constructor(global) {
@@ -36,7 +37,7 @@ class FlagDependencyUsagePlugin {
36
37
  }
37
38
 
38
39
  /**
39
- * Apply the plugin
40
+ * Applies the plugin by registering its hooks on the compiler.
40
41
  * @param {Compiler} compiler the compiler instance
41
42
  * @returns {void}
42
43
  */
@@ -60,6 +61,7 @@ class FlagDependencyUsagePlugin {
60
61
  const queue = new TupleQueue();
61
62
 
62
63
  /**
64
+ * Process referenced module.
63
65
  * @param {Module} module module to process
64
66
  * @param {ReferencedExports} usedExports list of used exports
65
67
  * @param {RuntimeSpec} runtime part of which runtime
@@ -163,6 +165,7 @@ class FlagDependencyUsagePlugin {
163
165
  };
164
166
 
165
167
  /**
168
+ * Processes the provided module.
166
169
  * @param {DependenciesBlock} module the module
167
170
  * @param {RuntimeSpec} runtime part of which runtime
168
171
  * @param {boolean} forceSideEffects always apply side effects
@@ -294,6 +297,7 @@ class FlagDependencyUsagePlugin {
294
297
  logger.time("trace exports usage in graph");
295
298
 
296
299
  /**
300
+ * Process entry dependency.
297
301
  * @param {Dependency} dep dependency
298
302
  * @param {RuntimeSpec} runtime runtime
299
303
  */
@@ -13,6 +13,7 @@ const PLUGIN_NAME = "FlagEntryExportAsUsedPlugin";
13
13
 
14
14
  class FlagEntryExportAsUsedPlugin {
15
15
  /**
16
+ * Creates an instance of FlagEntryExportAsUsedPlugin.
16
17
  * @param {boolean} nsObjectUsed true, if the ns object is used
17
18
  * @param {string} explanation explanation for the reason
18
19
  */
@@ -22,7 +23,7 @@ class FlagEntryExportAsUsedPlugin {
22
23
  }
23
24
 
24
25
  /**
25
- * Apply the plugin
26
+ * Applies the plugin by registering its hooks on the compiler.
26
27
  * @param {Compiler} compiler the compiler instance
27
28
  * @returns {void}
28
29
  */
package/lib/Generator.js CHANGED
@@ -24,6 +24,7 @@ const { JAVASCRIPT_TYPE } = require("./ModuleSourceTypeConstants");
24
24
  /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
25
25
 
26
26
  /**
27
+ * Defines the generate context type used by this module.
27
28
  * @typedef {object} GenerateContext
28
29
  * @property {DependencyTemplates} dependencyTemplates mapping from dependencies to templates
29
30
  * @property {RuntimeTemplate} runtimeTemplate the runtime template
@@ -38,6 +39,7 @@ const { JAVASCRIPT_TYPE } = require("./ModuleSourceTypeConstants");
38
39
  */
39
40
 
40
41
  /**
42
+ * Defines the generate error fn callback.
41
43
  * @callback GenerateErrorFn
42
44
  * @param {Error} error the error
43
45
  * @param {NormalModule} module module for which the code should be generated
@@ -46,6 +48,7 @@ const { JAVASCRIPT_TYPE } = require("./ModuleSourceTypeConstants");
46
48
  */
47
49
 
48
50
  /**
51
+ * Represents the generator runtime component.
49
52
  * @typedef {object} UpdateHashContext
50
53
  * @property {NormalModule} module the module
51
54
  * @property {ChunkGraph} chunkGraph
@@ -55,6 +58,7 @@ const { JAVASCRIPT_TYPE } = require("./ModuleSourceTypeConstants");
55
58
 
56
59
  class Generator {
57
60
  /**
61
+ * Returns generator by type.
58
62
  * @param {{ [key in SourceType]?: Generator }} map map of types
59
63
  * @returns {ByTypeGenerator} generator by type
60
64
  */
@@ -64,31 +68,34 @@ class Generator {
64
68
 
65
69
  /* istanbul ignore next */
66
70
  /**
71
+ * Returns the source types available for this module.
67
72
  * @abstract
68
73
  * @param {NormalModule} module fresh module
69
74
  * @returns {SourceTypes} available types (do not mutate)
70
75
  */
71
76
  getTypes(module) {
72
- const AbstractMethodError = require("./AbstractMethodError");
77
+ const AbstractMethodError = require("./errors/AbstractMethodError");
73
78
 
74
79
  throw new AbstractMethodError();
75
80
  }
76
81
 
77
82
  /* istanbul ignore next */
78
83
  /**
84
+ * Returns the estimated size for the requested source type.
79
85
  * @abstract
80
86
  * @param {NormalModule} module the module
81
87
  * @param {SourceType=} type source type
82
88
  * @returns {number} estimate size of the module
83
89
  */
84
90
  getSize(module, type) {
85
- const AbstractMethodError = require("./AbstractMethodError");
91
+ const AbstractMethodError = require("./errors/AbstractMethodError");
86
92
 
87
93
  throw new AbstractMethodError();
88
94
  }
89
95
 
90
96
  /* istanbul ignore next */
91
97
  /**
98
+ * Generates generated code for this runtime module.
92
99
  * @abstract
93
100
  * @param {NormalModule} module module for which the code should be generated
94
101
  * @param {GenerateContext} generateContext context for generate
@@ -98,12 +105,13 @@ class Generator {
98
105
  module,
99
106
  { dependencyTemplates, runtimeTemplate, moduleGraph, type }
100
107
  ) {
101
- const AbstractMethodError = require("./AbstractMethodError");
108
+ const AbstractMethodError = require("./errors/AbstractMethodError");
102
109
 
103
110
  throw new AbstractMethodError();
104
111
  }
105
112
 
106
113
  /**
114
+ * Returns the reason this module cannot be concatenated, when one exists.
107
115
  * @param {NormalModule} module module for which the bailout reason should be determined
108
116
  * @param {ConcatenationBailoutReasonContext} context context
109
117
  * @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
@@ -113,6 +121,7 @@ class Generator {
113
121
  }
114
122
 
115
123
  /**
124
+ * Updates the hash with the data contributed by this instance.
116
125
  * @param {Hash} hash hash that will be modified
117
126
  * @param {UpdateHashContext} updateHashContext context for updating hash
118
127
  */
@@ -141,6 +150,7 @@ function generateError(error, module, generateContext) {
141
150
 
142
151
  class ByTypeGenerator extends Generator {
143
152
  /**
153
+ * Creates an instance of ByTypeGenerator.
144
154
  * @param {{ [key in SourceType]?: Generator }} map map of types
145
155
  */
146
156
  constructor(map) {
@@ -152,6 +162,7 @@ class ByTypeGenerator extends Generator {
152
162
  }
153
163
 
154
164
  /**
165
+ * Returns the source types available for this module.
155
166
  * @param {NormalModule} module fresh module
156
167
  * @returns {SourceTypes} available types (do not mutate)
157
168
  */
@@ -160,6 +171,7 @@ class ByTypeGenerator extends Generator {
160
171
  }
161
172
 
162
173
  /**
174
+ * Returns the estimated size for the requested source type.
163
175
  * @param {NormalModule} module the module
164
176
  * @param {SourceType=} type source type
165
177
  * @returns {number} estimate size of the module
@@ -171,6 +183,7 @@ class ByTypeGenerator extends Generator {
171
183
  }
172
184
 
173
185
  /**
186
+ * Generates generated code for this runtime module.
174
187
  * @param {NormalModule} module module for which the code should be generated
175
188
  * @param {GenerateContext} generateContext context for generate
176
189
  * @returns {Source | null} generated code
@@ -18,18 +18,19 @@ const {
18
18
  } = require("./ModuleTypeConstants");
19
19
  const NormalModule = require("./NormalModule");
20
20
  const RuntimeGlobals = require("./RuntimeGlobals");
21
- const WebpackError = require("./WebpackError");
22
21
  const { chunkHasCss } = require("./css/CssModulesPlugin");
23
22
  const ConstDependency = require("./dependencies/ConstDependency");
24
23
  const ImportMetaHotAcceptDependency = require("./dependencies/ImportMetaHotAcceptDependency");
25
24
  const ImportMetaHotDeclineDependency = require("./dependencies/ImportMetaHotDeclineDependency");
26
25
  const ModuleHotAcceptDependency = require("./dependencies/ModuleHotAcceptDependency");
27
26
  const ModuleHotDeclineDependency = require("./dependencies/ModuleHotDeclineDependency");
27
+ const WebpackError = require("./errors/WebpackError");
28
28
  const HotModuleReplacementRuntimeModule = require("./hmr/HotModuleReplacementRuntimeModule");
29
29
  const JavascriptParser = require("./javascript/JavascriptParser");
30
30
  const {
31
31
  evaluateToIdentifier
32
32
  } = require("./javascript/JavascriptParserHelpers");
33
+ const ConcatenatedModule = require("./optimize/ConcatenatedModule");
33
34
  const { find, isSubset } = require("./util/SetHelpers");
34
35
  const TupleSet = require("./util/TupleSet");
35
36
  const { compareModulesById } = require("./util/comparators");
@@ -63,6 +64,7 @@ const {
63
64
  /** @typedef {string[]} Requests */
64
65
 
65
66
  /**
67
+ * Defines the hmr javascript parser hooks type used by this module.
66
68
  * @typedef {object} HMRJavascriptParserHooks
67
69
  * @property {SyncBailHook<[Expression | SpreadElement, Requests], void>} hotAcceptCallback
68
70
  * @property {SyncBailHook<[CallExpression, Requests], void>} hotAcceptWithoutCallback
@@ -88,6 +90,7 @@ const PLUGIN_NAME = "HotModuleReplacementPlugin";
88
90
 
89
91
  class HotModuleReplacementPlugin {
90
92
  /**
93
+ * Returns the attached hooks.
91
94
  * @param {JavascriptParser} parser the parser
92
95
  * @returns {HMRJavascriptParserHooks} the attached hooks
93
96
  */
@@ -109,7 +112,7 @@ class HotModuleReplacementPlugin {
109
112
  }
110
113
 
111
114
  /**
112
- * Apply the plugin
115
+ * Applies the plugin by registering its hooks on the compiler.
113
116
  * @param {Compiler} compiler the compiler instance
114
117
  * @returns {void}
115
118
  */
@@ -121,6 +124,7 @@ class HotModuleReplacementPlugin {
121
124
  const runtimeRequirements = [RuntimeGlobals.module];
122
125
 
123
126
  /**
127
+ * Creates an accept handler.
124
128
  * @param {JavascriptParser} parser the parser
125
129
  * @param {typeof ModuleHotAcceptDependency} ParamDependency dependency
126
130
  * @returns {(expr: CallExpression) => boolean | undefined} callback
@@ -187,6 +191,7 @@ class HotModuleReplacementPlugin {
187
191
  };
188
192
 
189
193
  /**
194
+ * Creates a decline handler.
190
195
  * @param {JavascriptParser} parser the parser
191
196
  * @param {typeof ModuleHotDeclineDependency} ParamDependency dependency
192
197
  * @returns {(expr: CallExpression) => boolean | undefined} callback
@@ -228,6 +233,7 @@ class HotModuleReplacementPlugin {
228
233
  };
229
234
 
230
235
  /**
236
+ * Creates a hmr expression handler.
231
237
  * @param {JavascriptParser} parser the parser
232
238
  * @returns {(expr: Expression) => boolean | undefined} callback
233
239
  */
@@ -246,6 +252,7 @@ class HotModuleReplacementPlugin {
246
252
  };
247
253
 
248
254
  /**
255
+ * Processes the provided parser.
249
256
  * @param {JavascriptParser} parser the parser
250
257
  * @returns {void}
251
258
  */
@@ -281,6 +288,7 @@ class HotModuleReplacementPlugin {
281
288
  };
282
289
 
283
290
  /**
291
+ * Apply import meta hot.
284
292
  * @param {JavascriptParser} parser the parser
285
293
  * @returns {void}
286
294
  */
@@ -382,13 +390,30 @@ class HotModuleReplacementPlugin {
382
390
  for (const chunk of compilation.chunks) {
383
391
  const chunkId = /** @type {ChunkId} */ (chunk.id);
384
392
 
385
- records.chunkModuleIds[chunkId] = Array.from(
386
- chunkGraph.getOrderedChunkModulesIterable(
387
- chunk,
388
- compareModulesById(chunkGraph)
389
- ),
390
- (m) => /** @type {ModuleId} */ (chunkGraph.getModuleId(m))
391
- );
393
+ /** @type {ModuleId[]} */
394
+ const moduleIds = [];
395
+ for (const m of chunkGraph.getOrderedChunkModulesIterable(
396
+ chunk,
397
+ compareModulesById(chunkGraph)
398
+ )) {
399
+ moduleIds.push(
400
+ /** @type {ModuleId} */ (chunkGraph.getModuleId(m))
401
+ );
402
+ if (m instanceof ConcatenatedModule && m.modules) {
403
+ for (const innerModule of m.modules) {
404
+ if (
405
+ innerModule.buildMeta &&
406
+ innerModule.buildMeta.needIdInConcatenation
407
+ ) {
408
+ const innerId = chunkGraph.getModuleId(innerModule);
409
+ if (innerId !== null) {
410
+ moduleIds.push(innerId);
411
+ }
412
+ }
413
+ }
414
+ }
415
+ }
416
+ records.chunkModuleIds[chunkId] = moduleIds;
392
417
  }
393
418
  });
394
419
  /** @type {TupleSet<Module, Chunk>} */
@@ -402,6 +427,7 @@ class HotModuleReplacementPlugin {
402
427
  const records = /** @type {Records} */ (compilation.records);
403
428
  for (const chunk of compilation.chunks) {
404
429
  /**
430
+ * Returns module hash.
405
431
  * @param {Module} module module
406
432
  * @returns {string} module hash
407
433
  */
@@ -19,6 +19,7 @@ const PLUGIN_NAME = "IgnorePlugin";
19
19
 
20
20
  class IgnorePlugin {
21
21
  /**
22
+ * Creates an instance of IgnorePlugin.
22
23
  * @param {IgnorePluginOptions} options IgnorePlugin options
23
24
  */
24
25
  constructor(options) {
@@ -58,14 +59,15 @@ class IgnorePlugin {
58
59
  }
59
60
 
60
61
  /**
61
- * Apply the plugin
62
+ * Applies the plugin by registering its hooks on the compiler.
62
63
  * @param {Compiler} compiler the compiler instance
63
64
  * @returns {void}
64
65
  */
65
66
  apply(compiler) {
66
67
  compiler.hooks.validate.tap(PLUGIN_NAME, () => {
67
68
  compiler.validate(
68
- require("../schemas/plugins/IgnorePlugin.json"),
69
+ /** @type {EXPECTED_ANY} */
70
+ (require("../schemas/plugins/IgnorePlugin.json")),
69
71
  this.options,
70
72
  {
71
73
  name: "Ignore Plugin",
@@ -14,6 +14,7 @@ const PLUGIN_NAME = "IgnoreWarningsPlugin";
14
14
 
15
15
  class IgnoreWarningsPlugin {
16
16
  /**
17
+ * Creates an instance of IgnoreWarningsPlugin.
17
18
  * @param {IgnoreFn[]} ignoreWarnings conditions to ignore warnings
18
19
  */
19
20
  constructor(ignoreWarnings) {
@@ -22,7 +23,7 @@ class IgnoreWarningsPlugin {
22
23
  }
23
24
 
24
25
  /**
25
- * Apply the plugin
26
+ * Applies the plugin by registering its hooks on the compiler.
26
27
  * @param {Compiler} compiler the compiler instance
27
28
  * @returns {void}
28
29
  */
@@ -16,6 +16,7 @@ const makeSerializable = require("./util/makeSerializable");
16
16
  /** @typedef {string} InitFragmentKey */
17
17
 
18
18
  /**
19
+ * Defines the maybe mergeable init fragment type used by this module.
19
20
  * @template GenerateContext
20
21
  * @typedef {object} MaybeMergeableInitFragment
21
22
  * @property {InitFragmentKey=} key
@@ -28,6 +29,7 @@ const makeSerializable = require("./util/makeSerializable");
28
29
  */
29
30
 
30
31
  /**
32
+ * Extract fragment index.
31
33
  * @template T
32
34
  * @param {T} fragment the init fragment
33
35
  * @param {number} index index
@@ -36,6 +38,7 @@ const makeSerializable = require("./util/makeSerializable");
36
38
  const extractFragmentIndex = (fragment, index) => [fragment, index];
37
39
 
38
40
  /**
41
+ * Sorts fragment with index.
39
42
  * @template T
40
43
  * @param {[MaybeMergeableInitFragment<T>, number]} a first pair
41
44
  * @param {[MaybeMergeableInitFragment<T>, number]} b second pair
@@ -50,11 +53,13 @@ const sortFragmentWithIndex = ([a, i], [b, j]) => {
50
53
  };
51
54
 
52
55
  /**
56
+ * Represents InitFragment.
53
57
  * @template GenerateContext
54
58
  * @implements {MaybeMergeableInitFragment<GenerateContext>}
55
59
  */
56
60
  class InitFragment {
57
61
  /**
62
+ * Creates an instance of InitFragment.
58
63
  * @param {string | Source | undefined} content the source code that will be included as initialization code
59
64
  * @param {number} stage category of initialization code (contribute to order)
60
65
  * @param {number} position position in the category (contribute to order)
@@ -70,6 +75,7 @@ class InitFragment {
70
75
  }
71
76
 
72
77
  /**
78
+ * Returns the source code that will be included as initialization code.
73
79
  * @param {GenerateContext} context context
74
80
  * @returns {string | Source | undefined} the source code that will be included as initialization code
75
81
  */
@@ -78,6 +84,7 @@ class InitFragment {
78
84
  }
79
85
 
80
86
  /**
87
+ * Returns the source code that will be included at the end of the module.
81
88
  * @param {GenerateContext} context context
82
89
  * @returns {string | Source | undefined} the source code that will be included at the end of the module
83
90
  */
@@ -86,6 +93,7 @@ class InitFragment {
86
93
  }
87
94
 
88
95
  /**
96
+ * Adds the provided source to the init fragment.
89
97
  * @template Context
90
98
  * @param {Source} source sources
91
99
  * @param {MaybeMergeableInitFragment<Context>[]} initFragments init fragments
@@ -165,6 +173,7 @@ class InitFragment {
165
173
  }
166
174
 
167
175
  /**
176
+ * Serializes this instance into the provided serializer context.
168
177
  * @param {ObjectSerializerContext} context context
169
178
  */
170
179
  serialize(context) {
@@ -178,6 +187,7 @@ class InitFragment {
178
187
  }
179
188
 
180
189
  /**
190
+ * Restores this instance from the provided deserializer context.
181
191
  * @param {ObjectDeserializerContext} context context
182
192
  */
183
193
  deserialize(context) {
@@ -20,7 +20,7 @@ const PLUGIN_NAME = "JavascriptMetaInfoPlugin";
20
20
 
21
21
  class JavascriptMetaInfoPlugin {
22
22
  /**
23
- * Apply the plugin
23
+ * Applies the plugin by registering its hooks on the compiler.
24
24
  * @param {Compiler} compiler the compiler instance
25
25
  * @returns {void}
26
26
  */
@@ -29,6 +29,7 @@ class JavascriptMetaInfoPlugin {
29
29
  PLUGIN_NAME,
30
30
  (compilation, { normalModuleFactory }) => {
31
31
  /**
32
+ * Handles the hook callback for this code path.
32
33
  * @param {JavascriptParser} parser the parser
33
34
  * @returns {void}
34
35
  */
@@ -17,6 +17,7 @@ const EnableLibraryPlugin = require("./library/EnableLibraryPlugin");
17
17
  // TODO webpack 6 remove
18
18
  class LibraryTemplatePlugin {
19
19
  /**
20
+ * Creates an instance of LibraryTemplatePlugin.
20
21
  * @param {LibraryName} name name of library
21
22
  * @param {LibraryType} target type of library
22
23
  * @param {UmdNamedDefine} umdNamedDefine setting this to true will name the UMD module
@@ -34,7 +35,7 @@ class LibraryTemplatePlugin {
34
35
  }
35
36
 
36
37
  /**
37
- * Apply the plugin
38
+ * Applies the plugin by registering its hooks on the compiler.
38
39
  * @param {Compiler} compiler the compiler instance
39
40
  * @returns {void}
40
41
  */
@@ -13,6 +13,7 @@ const NormalModule = require("./NormalModule");
13
13
  /** @typedef {import("./ModuleFilenameHelpers").MatchObject} MatchObject */
14
14
 
15
15
  /**
16
+ * Defines the loader context type used by this module.
16
17
  * @template T
17
18
  * @typedef {import("../declarations/LoaderContext").LoaderContext<T>} LoaderContext
18
19
  */
@@ -21,6 +22,7 @@ const PLUGIN_NAME = "LoaderOptionsPlugin";
21
22
 
22
23
  class LoaderOptionsPlugin {
23
24
  /**
25
+ * Creates an instance of LoaderOptionsPlugin.
24
26
  * @param {LoaderOptionsPluginOptions & MatchObject} options options object
25
27
  */
26
28
  constructor(options = {}) {
@@ -34,7 +36,7 @@ class LoaderOptionsPlugin {
34
36
  }
35
37
 
36
38
  /**
37
- * Apply the plugin
39
+ * Applies the plugin by registering its hooks on the compiler.
38
40
  * @param {Compiler} compiler the compiler instance
39
41
  * @returns {void}
40
42
  */
@@ -13,6 +13,7 @@ const PLUGIN_NAME = "LoaderTargetPlugin";
13
13
 
14
14
  class LoaderTargetPlugin {
15
15
  /**
16
+ * Creates an instance of LoaderTargetPlugin.
16
17
  * @param {string} target the target
17
18
  */
18
19
  constructor(target) {
@@ -20,7 +21,7 @@ class LoaderTargetPlugin {
20
21
  }
21
22
 
22
23
  /**
23
- * Apply the plugin
24
+ * Applies the plugin by registering its hooks on the compiler.
24
25
  * @param {Compiler} compiler the compiler instance
25
26
  * @returns {void}
26
27
  */
@@ -26,6 +26,7 @@ const memoize = require("./util/memoize");
26
26
  /** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */
27
27
  /** @typedef {import("./TemplatedPathPlugin").PathData} PathData */
28
28
  /**
29
+ * Defines the if set type used by this module.
29
30
  * @template T
30
31
  * @typedef {import("tapable").IfSet<T>} IfSet
31
32
  */
@@ -43,6 +44,7 @@ const getLoadScriptRuntimeModule = memoize(() =>
43
44
  // TODO webpack 6 remove this class
44
45
  class MainTemplate {
45
46
  /**
47
+ * Creates an instance of MainTemplate.
46
48
  * @param {OutputOptions} outputOptions output options for the MainTemplate
47
49
  * @param {Compilation} compilation the compilation
48
50
  */
@@ -53,6 +55,7 @@ class MainTemplate {
53
55
  renderManifest: {
54
56
  tap: util.deprecate(
55
57
  /**
58
+ * Handles the callback logic for this hook.
56
59
  * @template AdditionalOptions
57
60
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
58
61
  * @param {(renderManifestEntries: RenderManifestEntry[], renderManifestOptions: RenderManifestOptions) => RenderManifestEntry[]} fn fn
@@ -87,6 +90,7 @@ class MainTemplate {
87
90
  require: {
88
91
  tap: util.deprecate(
89
92
  /**
93
+ * Handles the callback logic for this hook.
90
94
  * @template AdditionalOptions
91
95
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
92
96
  * @param {(value: string, renderBootstrapContext: RenderBootstrapContext) => string} fn fn
@@ -124,6 +128,7 @@ class MainTemplate {
124
128
  render: {
125
129
  tap: util.deprecate(
126
130
  /**
131
+ * Handles the callback logic for this hook.
127
132
  * @template AdditionalOptions
128
133
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
129
134
  * @param {(source: Source, chunk: Chunk, hash: string | undefined, moduleTemplate: ModuleTemplate, dependencyTemplates: DependencyTemplates) => Source} fn fn
@@ -156,6 +161,7 @@ class MainTemplate {
156
161
  renderWithEntry: {
157
162
  tap: util.deprecate(
158
163
  /**
164
+ * Handles the callback logic for this hook.
159
165
  * @template AdditionalOptions
160
166
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
161
167
  * @param {(source: Source, chunk: Chunk, hash: string | undefined) => Source} fn fn
@@ -182,6 +188,7 @@ class MainTemplate {
182
188
  assetPath: {
183
189
  tap: util.deprecate(
184
190
  /**
191
+ * Handles the callback logic for this hook.
185
192
  * @template AdditionalOptions
186
193
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
187
194
  * @param {(value: string, path: PathData, assetInfo: AssetInfo | undefined) => string} fn fn
@@ -194,6 +201,7 @@ class MainTemplate {
194
201
  ),
195
202
  call: util.deprecate(
196
203
  /**
204
+ * Handles the call callback for this hook.
197
205
  * @param {TemplatePath} filename used to get asset path with hash
198
206
  * @param {PathData} options context data
199
207
  * @returns {string} interpolated path
@@ -206,6 +214,7 @@ class MainTemplate {
206
214
  hash: {
207
215
  tap: util.deprecate(
208
216
  /**
217
+ * Handles the callback logic for this hook.
209
218
  * @template AdditionalOptions
210
219
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
211
220
  * @param {(hash: Hash) => void} fn fn
@@ -220,6 +229,7 @@ class MainTemplate {
220
229
  hashForChunk: {
221
230
  tap: util.deprecate(
222
231
  /**
232
+ * Handles the callback logic for this hook.
223
233
  * @template AdditionalOptions
224
234
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
225
235
  * @param {(hash: Hash, chunk: Chunk) => void} fn fn
@@ -295,6 +305,7 @@ class MainTemplate {
295
305
 
296
306
  this.renderCurrentHashCode = util.deprecate(
297
307
  /**
308
+ * Handles the require ensure callback for this hook.
298
309
  * @deprecated
299
310
  * @param {string} hash the hash
300
311
  * @param {number=} length length of the hash
@@ -314,6 +325,7 @@ class MainTemplate {
314
325
 
315
326
  this.getPublicPath = util.deprecate(
316
327
  /**
328
+ * Handles the callback logic for this hook.
317
329
  * @param {PathData} options context data
318
330
  * @returns {string} interpolated path
319
331
  */ (options) =>
@@ -324,6 +336,7 @@ class MainTemplate {
324
336
 
325
337
  this.getAssetPath = util.deprecate(
326
338
  /**
339
+ * Handles the callback logic for this hook.
327
340
  * @param {TemplatePath} path used to get asset path with hash
328
341
  * @param {PathData} options context data
329
342
  * @returns {string} interpolated path
@@ -335,6 +348,7 @@ class MainTemplate {
335
348
 
336
349
  this.getAssetPathWithInfo = util.deprecate(
337
350
  /**
351
+ * Handles the callback logic for this hook.
338
352
  * @param {TemplatePath} path used to get asset path with hash
339
353
  * @param {PathData} options context data
340
354
  * @returns {InterpolatedPathAndAssetInfo} interpolated path and asset info
@@ -357,6 +371,7 @@ Object.defineProperty(MainTemplate.prototype, "requireFn", {
357
371
  Object.defineProperty(MainTemplate.prototype, "outputOptions", {
358
372
  get: util.deprecate(
359
373
  /**
374
+ * Returns output options.
360
375
  * @this {MainTemplate}
361
376
  * @returns {OutputOptions} output options
362
377
  */