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
@@ -20,6 +20,7 @@ const PLUGIN_NAME = "ContextReplacementPlugin";
20
20
 
21
21
  class ContextReplacementPlugin {
22
22
  /**
23
+ * Creates an instance of ContextReplacementPlugin.
23
24
  * @param {RegExp} resourceRegExp A regular expression that determines which files will be selected
24
25
  * @param {(string | ((context: BeforeContextResolveData | AfterContextResolveData) => void) | RegExp | boolean)=} newContentResource A new resource to replace the match
25
26
  * @param {(boolean | NewContentCreateContextMap | RegExp)=} newContentRecursive If true, all subdirectories are searched for matches
@@ -44,6 +45,7 @@ class ContextReplacementPlugin {
44
45
  ) {
45
46
  this.newContentResource = newContentResource;
46
47
  /**
48
+ * Stores new content create context map.
47
49
  * @param {InputFileSystem} fs input file system
48
50
  * @param {(err: null | Error, newContentRecursive: NewContentCreateContextMap) => void} callback callback
49
51
  */
@@ -87,7 +89,7 @@ class ContextReplacementPlugin {
87
89
  }
88
90
 
89
91
  /**
90
- * Apply the plugin
92
+ * Applies the plugin by registering its hooks on the compiler.
91
93
  * @param {Compiler} compiler the compiler instance
92
94
  * @returns {void}
93
95
  */
@@ -202,6 +204,7 @@ class ContextReplacementPlugin {
202
204
  }
203
205
 
204
206
  /**
207
+ * Creates a resolve dependencies from context map.
205
208
  * @param {(fs: InputFileSystem, callback: (err: null | Error, map: NewContentCreateContextMap) => void) => void} createContextMap create context map function
206
209
  * @returns {(fs: InputFileSystem, options: ContextModuleOptions, callback: (err: null | Error, dependencies?: ContextElementDependency[]) => void) => void} resolve resolve dependencies from context map function
207
210
  */
@@ -12,8 +12,8 @@ const {
12
12
  JAVASCRIPT_MODULE_TYPE_ESM
13
13
  } = require("./ModuleTypeConstants");
14
14
  const RuntimeGlobals = require("./RuntimeGlobals");
15
- const WebpackError = require("./WebpackError");
16
15
  const ConstDependency = require("./dependencies/ConstDependency");
16
+ const WebpackError = require("./errors/WebpackError");
17
17
  const BasicEvaluatedExpression = require("./javascript/BasicEvaluatedExpression");
18
18
  const { VariableInfo } = require("./javascript/JavascriptParser");
19
19
  const {
@@ -39,6 +39,7 @@ const createHash = require("./util/createHash");
39
39
  /** @typedef {RecursiveArrayOrRecord<CodeValuePrimitive | RuntimeValue>} CodeValue */
40
40
 
41
41
  /**
42
+ * Defines the runtime value options type used by this module.
42
43
  * @typedef {object} RuntimeValueOptions
43
44
  * @property {string[]=} fileDependencies
44
45
  * @property {string[]=} contextDependencies
@@ -51,6 +52,7 @@ const createHash = require("./util/createHash");
51
52
 
52
53
  class RuntimeValue {
53
54
  /**
55
+ * Creates an instance of RuntimeValue.
54
56
  * @param {GeneratorFn} fn generator function
55
57
  * @param {true | string[] | RuntimeValueOptions=} options options
56
58
  */
@@ -71,6 +73,7 @@ class RuntimeValue {
71
73
  }
72
74
 
73
75
  /**
76
+ * Returns code.
74
77
  * @param {JavascriptParser} parser the parser
75
78
  * @param {ValueCacheVersions} valueCacheVersions valueCacheVersions
76
79
  * @param {string} key the defined key
@@ -128,6 +131,7 @@ class RuntimeValue {
128
131
  }
129
132
 
130
133
  /**
134
+ * Returns used keys.
131
135
  * @param {DestructuringAssignmentProperties | undefined} properties properties
132
136
  * @returns {Set<string> | undefined} used keys
133
137
  */
@@ -140,6 +144,7 @@ function getObjKeys(properties) {
140
144
  /** @typedef {boolean | undefined | null} AsiSafe */
141
145
 
142
146
  /**
147
+ * Returns code converted to string that evaluates.
143
148
  * @param {EXPECTED_ANY[] | { [k: string]: EXPECTED_ANY }} obj obj
144
149
  * @param {JavascriptParser} parser Parser
145
150
  * @param {ValueCacheVersions} valueCacheVersions valueCacheVersions
@@ -287,6 +292,7 @@ const toCode = (
287
292
  };
288
293
 
289
294
  /**
295
+ * Returns result.
290
296
  * @param {CodeValue} code code
291
297
  * @returns {string | undefined} result
292
298
  */
@@ -313,7 +319,7 @@ const toCacheVersion = (code) => {
313
319
  const items = Object.keys(code).map((key) => ({
314
320
  key,
315
321
  value: toCacheVersion(
316
- /** @type {Record<string, EXPECTED_ANY>} */
322
+ /** @type {Record<string, CodeValue>} */
317
323
  (code)[key]
318
324
  )
319
325
  }));
@@ -336,6 +342,7 @@ const WEBPACK_REQUIRE_FUNCTION_REGEXP = new RegExp(
336
342
  const WEBPACK_REQUIRE_IDENTIFIER_REGEXP = new RegExp(RuntimeGlobals.require);
337
343
 
338
344
  /**
345
+ * Defines the define plugin hooks type used by this module.
339
346
  * @typedef {object} DefinePluginHooks
340
347
  * @property {SyncWaterfallHook<[Record<string, CodeValue>]>} definitions
341
348
  */
@@ -347,6 +354,7 @@ const compilationHooksMap = new WeakMap();
347
354
 
348
355
  class DefinePlugin {
349
356
  /**
357
+ * Returns the attached hooks.
350
358
  * @param {Compilation} compilation the compilation
351
359
  * @returns {DefinePluginHooks} the attached hooks
352
360
  */
@@ -371,6 +379,7 @@ class DefinePlugin {
371
379
  }
372
380
 
373
381
  /**
382
+ * Returns runtime value.
374
383
  * @param {GeneratorFn} fn generator function
375
384
  * @param {true | string[] | RuntimeValueOptions=} options options
376
385
  * @returns {RuntimeValue} runtime value
@@ -380,7 +389,7 @@ class DefinePlugin {
380
389
  }
381
390
 
382
391
  /**
383
- * Apply the plugin
392
+ * Applies the plugin by registering its hooks on the compiler.
384
393
  * @param {Compiler} compiler the compiler instance
385
394
  * @returns {void}
386
395
  */
@@ -419,7 +428,7 @@ class DefinePlugin {
419
428
  );
420
429
 
421
430
  /**
422
- * Handler
431
+ * Handles the hook callback for this code path.
423
432
  * @param {JavascriptParser} parser Parser
424
433
  * @returns {void}
425
434
  */
@@ -440,6 +449,7 @@ class DefinePlugin {
440
449
  });
441
450
 
442
451
  /**
452
+ * Adds value dependency.
443
453
  * @param {string} key key
444
454
  */
445
455
  const addValueDependency = (key) => {
@@ -455,6 +465,7 @@ class DefinePlugin {
455
465
  };
456
466
 
457
467
  /**
468
+ * With value dependency.
458
469
  * @template T
459
470
  * @param {string} key key
460
471
  * @param {(expression: Expression) => T} fn fn
@@ -468,7 +479,7 @@ class DefinePlugin {
468
479
  };
469
480
 
470
481
  /**
471
- * Walk definitions
482
+ * Processes the provided definition.
472
483
  * @param {Definitions} definitions Definitions map
473
484
  * @param {string} prefix Prefix string
474
485
  * @returns {void}
@@ -495,7 +506,7 @@ class DefinePlugin {
495
506
  };
496
507
 
497
508
  /**
498
- * Apply define key
509
+ * Processes the provided prefix.
499
510
  * @param {string} prefix Prefix
500
511
  * @param {string} key Key
501
512
  * @returns {void}
@@ -580,7 +591,7 @@ class DefinePlugin {
580
591
  };
581
592
 
582
593
  /**
583
- * Apply Code
594
+ * Processes the provided key.
584
595
  * @param {string} key Key
585
596
  * @param {CodeValue} code Code
586
597
  * @returns {void}
@@ -703,7 +714,7 @@ class DefinePlugin {
703
714
  };
704
715
 
705
716
  /**
706
- * Apply Object
717
+ * Processes the provided key.
707
718
  * @param {string} key Key
708
719
  * @param {object} obj Object
709
720
  * @returns {void}
@@ -788,7 +799,7 @@ class DefinePlugin {
788
799
  .tap(PLUGIN_NAME, handler);
789
800
 
790
801
  /**
791
- * Walk definitions
802
+ * Processes the provided definition.
792
803
  * @param {Definitions} definitions Definitions map
793
804
  * @param {string} prefix Prefix string
794
805
  * @returns {void}
@@ -825,11 +836,13 @@ class DefinePlugin {
825
836
  };
826
837
 
827
838
  /**
839
+ * Walk definitions for keys.
828
840
  * @param {Definitions} definitions Definitions map
829
841
  * @returns {void}
830
842
  */
831
843
  const walkDefinitionsForKeys = (definitions) => {
832
844
  /**
845
+ * Adds the provided map to the define plugin.
833
846
  * @param {Map<string, Set<string>>} map Map
834
847
  * @param {string} key key
835
848
  * @param {string} value v
@@ -53,6 +53,7 @@ class DependenciesBlock {
53
53
  }
54
54
 
55
55
  /**
56
+ * Adds the provided dependency to the dependencies block.
56
57
  * @param {Dependency} dependency dependency being tied to block.
57
58
  * This is an "edge" pointing to another "node" on module graph.
58
59
  * @returns {void}
@@ -62,6 +63,7 @@ class DependenciesBlock {
62
63
  }
63
64
 
64
65
  /**
66
+ * Removes dependency.
65
67
  * @param {Dependency} dependency dependency being removed
66
68
  * @returns {void}
67
69
  */
@@ -73,7 +75,7 @@ class DependenciesBlock {
73
75
  }
74
76
 
75
77
  /**
76
- * Removes all dependencies and blocks
78
+ * Clear dependencies and blocks.
77
79
  * @returns {void}
78
80
  */
79
81
  clearDependenciesAndBlocks() {
@@ -82,6 +84,7 @@ class DependenciesBlock {
82
84
  }
83
85
 
84
86
  /**
87
+ * Updates the hash with the data contributed by this instance.
85
88
  * @param {Hash} hash the hash used to track dependencies
86
89
  * @param {UpdateHashContext} context context
87
90
  * @returns {void}
@@ -96,6 +99,7 @@ class DependenciesBlock {
96
99
  }
97
100
 
98
101
  /**
102
+ * Serializes this instance into the provided serializer context.
99
103
  * @param {ObjectSerializerContext} context context
100
104
  */
101
105
  serialize({ write }) {
@@ -104,6 +108,7 @@ class DependenciesBlock {
104
108
  }
105
109
 
106
110
  /**
111
+ * Restores this instance from the provided deserializer context.
107
112
  * @param {ObjectDeserializerContext} context context
108
113
  */
109
114
  deserialize({ read }) {
package/lib/Dependency.js CHANGED
@@ -14,13 +14,14 @@ const memoize = require("./util/memoize");
14
14
  /** @typedef {import("./ModuleGraphConnection")} ModuleGraphConnection */
15
15
  /** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */
16
16
  /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
17
- /** @typedef {import("./WebpackError")} WebpackError */
17
+ /** @typedef {import("./errors/WebpackError")} WebpackError */
18
18
  /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
19
19
  /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
20
20
  /** @typedef {import("./util/Hash")} Hash */
21
21
  /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
22
22
  /** @typedef {import("./dependencies/ModuleDependency")} ModuleDependency */
23
23
  /**
24
+ * Defines the update hash context type used by this module.
24
25
  * @typedef {object} UpdateHashContext
25
26
  * @property {ChunkGraph} chunkGraph
26
27
  * @property {RuntimeSpec} runtime
@@ -28,12 +29,14 @@ const memoize = require("./util/memoize");
28
29
  */
29
30
 
30
31
  /**
32
+ * Defines the source position type used by this module.
31
33
  * @typedef {object} SourcePosition
32
34
  * @property {number} line
33
35
  * @property {number=} column
34
36
  */
35
37
 
36
38
  /**
39
+ * Defines the real dependency location type used by this module.
37
40
  * @typedef {object} RealDependencyLocation
38
41
  * @property {SourcePosition} start
39
42
  * @property {SourcePosition=} end
@@ -41,6 +44,7 @@ const memoize = require("./util/memoize");
41
44
  */
42
45
 
43
46
  /**
47
+ * Defines the synthetic dependency location type used by this module.
44
48
  * @typedef {object} SyntheticDependencyLocation
45
49
  * @property {string} name
46
50
  * @property {number=} index
@@ -51,6 +55,7 @@ const memoize = require("./util/memoize");
51
55
  /** @typedef {string} ExportInfoName */
52
56
 
53
57
  /**
58
+ * Defines the export spec type used by this module.
54
59
  * @typedef {object} ExportSpec
55
60
  * @property {ExportInfoName} name the name of the export
56
61
  * @property {boolean=} canMangle can the export be renamed (defaults to true)
@@ -65,6 +70,7 @@ const memoize = require("./util/memoize");
65
70
  /** @typedef {Set<string>} ExportsSpecExcludeExports */
66
71
 
67
72
  /**
73
+ * Defines the exports spec type used by this module.
68
74
  * @typedef {object} ExportsSpec
69
75
  * @property {(string | ExportSpec)[] | true | null} exports exported names, true for unknown exports or null for no exports
70
76
  * @property {ExportsSpecExcludeExports=} excludeExports when exports = true, list of unaffected exports
@@ -77,6 +83,7 @@ const memoize = require("./util/memoize");
77
83
  */
78
84
 
79
85
  /**
86
+ * Defines the referenced export type used by this module.
80
87
  * @typedef {object} ReferencedExport
81
88
  * @property {string[]} name name of the referenced export
82
89
  * @property {boolean=} canMangle when false, referenced export can not be mangled, defaults to true
@@ -124,6 +131,7 @@ class Dependency {
124
131
  }
125
132
 
126
133
  /**
134
+ * Returns a display name for the type of dependency.
127
135
  * @returns {string} a display name for the type of dependency
128
136
  */
129
137
  get type() {
@@ -131,6 +139,7 @@ class Dependency {
131
139
  }
132
140
 
133
141
  /**
142
+ * Returns a dependency category, typical categories are "commonjs", "amd", "esm".
134
143
  * @returns {string} a dependency category, typical categories are "commonjs", "amd", "esm"
135
144
  */
136
145
  get category() {
@@ -138,6 +147,7 @@ class Dependency {
138
147
  }
139
148
 
140
149
  /**
150
+ * Returns location.
141
151
  * @returns {DependencyLocation} location
142
152
  */
143
153
  get loc() {
@@ -183,6 +193,7 @@ class Dependency {
183
193
  }
184
194
 
185
195
  /**
196
+ * Updates loc using the provided start line.
186
197
  * @param {number} startLine start line
187
198
  * @param {number} startColumn start column
188
199
  * @param {number} endLine end line
@@ -199,6 +210,7 @@ class Dependency {
199
210
  }
200
211
 
201
212
  /**
213
+ * Returns a request context.
202
214
  * @returns {string | undefined} a request context
203
215
  */
204
216
  getContext() {
@@ -206,6 +218,7 @@ class Dependency {
206
218
  }
207
219
 
208
220
  /**
221
+ * Returns an identifier to merge equal requests.
209
222
  * @returns {string | null} an identifier to merge equal requests
210
223
  */
211
224
  getResourceIdentifier() {
@@ -213,6 +226,7 @@ class Dependency {
213
226
  }
214
227
 
215
228
  /**
229
+ * Could affect referencing module.
216
230
  * @returns {boolean | TRANSITIVE} true, when changes to the referenced module could affect the referencing module; TRANSITIVE, when changes to the referenced module could affect referencing modules of the referencing module
217
231
  */
218
232
  couldAffectReferencingModule() {
@@ -242,6 +256,7 @@ class Dependency {
242
256
  }
243
257
 
244
258
  /**
259
+ * Returns function to determine if the connection is active.
245
260
  * @param {ModuleGraph} moduleGraph module graph
246
261
  * @returns {null | false | GetConditionFn} function to determine if the connection is active
247
262
  */
@@ -259,7 +274,7 @@ class Dependency {
259
274
  }
260
275
 
261
276
  /**
262
- * Returns warnings
277
+ * Returns warnings.
263
278
  * @param {ModuleGraph} moduleGraph module graph
264
279
  * @returns {WebpackError[] | null | undefined} warnings
265
280
  */
@@ -268,7 +283,7 @@ class Dependency {
268
283
  }
269
284
 
270
285
  /**
271
- * Returns errors
286
+ * Returns errors.
272
287
  * @param {ModuleGraph} moduleGraph module graph
273
288
  * @returns {WebpackError[] | null | undefined} errors
274
289
  */
@@ -277,7 +292,7 @@ class Dependency {
277
292
  }
278
293
 
279
294
  /**
280
- * Update the hash
295
+ * Updates the hash with the data contributed by this instance.
281
296
  * @param {Hash} hash hash to be updated
282
297
  * @param {UpdateHashContext} context context
283
298
  * @returns {void}
@@ -293,6 +308,7 @@ class Dependency {
293
308
  }
294
309
 
295
310
  /**
311
+ * Gets module evaluation side effects state.
296
312
  * @param {ModuleGraph} moduleGraph the module graph
297
313
  * @returns {ConnectionState} how this dependency connects the module to referencing modules
298
314
  */
@@ -301,6 +317,7 @@ class Dependency {
301
317
  }
302
318
 
303
319
  /**
320
+ * Creates an ignored module.
304
321
  * @param {string} context context directory
305
322
  * @returns {Module} ignored module
306
323
  */
@@ -309,6 +326,15 @@ class Dependency {
309
326
  }
310
327
 
311
328
  /**
329
+ * Returns true if this dependency can be concatenated
330
+ * @returns {boolean} true if this dependency can be concatenated
331
+ */
332
+ canConcatenate() {
333
+ return false;
334
+ }
335
+
336
+ /**
337
+ * Serializes this instance into the provided serializer context.
312
338
  * @param {ObjectSerializerContext} context context
313
339
  */
314
340
  serialize({ write }) {
@@ -323,6 +349,7 @@ class Dependency {
323
349
  }
324
350
 
325
351
  /**
352
+ * Restores this instance from the provided deserializer context.
326
353
  * @param {ObjectDeserializerContext} context context
327
354
  */
328
355
  deserialize({ read }) {
@@ -345,6 +372,7 @@ Dependency.EXPORTS_OBJECT_REFERENCED = [[]];
345
372
  // TODO remove in webpack 6
346
373
  Object.defineProperty(Dependency.prototype, "module", {
347
374
  /**
375
+ * Returns throws.
348
376
  * @deprecated
349
377
  * @returns {EXPECTED_ANY} throws
350
378
  */
@@ -355,6 +383,7 @@ Object.defineProperty(Dependency.prototype, "module", {
355
383
  },
356
384
 
357
385
  /**
386
+ * Updates module.
358
387
  * @deprecated
359
388
  * @returns {never} throws
360
389
  */
@@ -366,15 +395,30 @@ Object.defineProperty(Dependency.prototype, "module", {
366
395
  });
367
396
 
368
397
  /**
398
+ * Returns true if the dependency is a low priority dependency.
369
399
  * @param {Dependency} dependency dep
370
400
  * @returns {boolean} true if the dependency is a low priority dependency
371
401
  */
372
402
  Dependency.isLowPriorityDependency = (dependency) =>
373
403
  /** @type {ModuleDependency} */ (dependency).sourceOrder === Infinity;
374
404
 
405
+ // TODO in webpack 6, call canConcatenate() directly on the dependency instance instead of using this static method.
406
+ /**
407
+ * Returns true if the dependency can be concatenated (scope hoisting).
408
+ * @param {Dependency} dependency dep
409
+ * @returns {boolean} true if this dependency supports concatenation
410
+ */
411
+ Dependency.canConcatenate = (dependency) => {
412
+ if (typeof dependency.canConcatenate === "function") {
413
+ return dependency.canConcatenate();
414
+ }
415
+ return false;
416
+ };
417
+
375
418
  // TODO remove in webpack 6
376
419
  Object.defineProperty(Dependency.prototype, "disconnect", {
377
420
  /**
421
+ * Returns throws.
378
422
  * @deprecated
379
423
  * @returns {EXPECTED_ANY} throws
380
424
  */
@@ -19,11 +19,13 @@
19
19
  /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
20
20
 
21
21
  /**
22
+ * Defines the init fragment type used by this module.
22
23
  * @template T
23
24
  * @typedef {import("./InitFragment")<T>} InitFragment
24
25
  */
25
26
 
26
27
  /**
28
+ * Defines the dependency template context type used by this module.
27
29
  * @typedef {object} DependencyTemplateContext
28
30
  * @property {RuntimeTemplate} runtimeTemplate the runtime template
29
31
  * @property {DependencyTemplates} dependencyTemplates the dependency templates
@@ -39,15 +41,18 @@
39
41
  */
40
42
 
41
43
  /**
44
+ * Defines the css dependency template context extras type used by this module.
42
45
  * @typedef {object} CssDependencyTemplateContextExtras
43
46
  * @property {CssData} cssData the css exports data
44
47
  * @property {string} type the css exports data
45
48
  */
46
49
 
47
50
  /**
51
+ * Defines the css data type used by this module.
48
52
  * @typedef {object} CssData
49
53
  * @property {boolean} esModule whether export __esModule
50
54
  * @property {Map<string, string>} exports the css exports
55
+ * @property {Map<string, { line: number, column: number }>=} exportLocs source position (line is 1-based, column is 0-based) of each export's defining identifier in the original CSS, used to emit fine-grained JS-to-CSS source mappings
51
56
  */
52
57
 
53
58
  /** @typedef {DependencyTemplateContext & CssDependencyTemplateContextExtras} CssDependencyTemplateContext */
@@ -55,6 +60,7 @@
55
60
  class DependencyTemplate {
56
61
  /* istanbul ignore next */
57
62
  /**
63
+ * Applies the plugin by registering its hooks on the compiler.
58
64
  * @abstract
59
65
  * @param {Dependency} dependency the dependency for which the template should be applied
60
66
  * @param {ReplaceSource} source the current replace source which can be modified
@@ -62,7 +68,7 @@ class DependencyTemplate {
62
68
  * @returns {void}
63
69
  */
64
70
  apply(dependency, source, templateContext) {
65
- const AbstractMethodError = require("./AbstractMethodError");
71
+ const AbstractMethodError = require("./errors/AbstractMethodError");
66
72
 
67
73
  throw new AbstractMethodError();
68
74
  }
@@ -14,6 +14,7 @@ const createHash = require("./util/createHash");
14
14
 
15
15
  class DependencyTemplates {
16
16
  /**
17
+ * Creates an instance of DependencyTemplates.
17
18
  * @param {HashFunction} hashFunction the hash function to use
18
19
  */
19
20
  constructor(hashFunction = DEFAULTS.HASH_FUNCTION) {
@@ -26,6 +27,7 @@ class DependencyTemplates {
26
27
  }
27
28
 
28
29
  /**
30
+ * Returns template for this dependency.
29
31
  * @param {DependencyConstructor} dependency Constructor of Dependency
30
32
  * @returns {DependencyTemplate | undefined} template for this dependency
31
33
  */
@@ -34,6 +36,7 @@ class DependencyTemplates {
34
36
  }
35
37
 
36
38
  /**
39
+ * Updates value using the provided dependency.
37
40
  * @param {DependencyConstructor} dependency Constructor of Dependency
38
41
  * @param {DependencyTemplate} dependencyTemplate template for this dependency
39
42
  * @returns {void}
@@ -43,6 +46,7 @@ class DependencyTemplates {
43
46
  }
44
47
 
45
48
  /**
49
+ * Updates the hash with the data contributed by this instance.
46
50
  * @param {string} part additional hash contributor
47
51
  * @returns {void}
48
52
  */
@@ -214,6 +214,7 @@ const envToDefinitions = (env) => {
214
214
 
215
215
  class DotenvPlugin {
216
216
  /**
217
+ * Creates an instance of DotenvPlugin.
217
218
  * @param {DotenvPluginOptions=} options options object
218
219
  */
219
220
  constructor(options = {}) {
@@ -222,6 +223,7 @@ class DotenvPlugin {
222
223
  }
223
224
 
224
225
  /**
226
+ * Applies the plugin by registering its hooks on the compiler.
225
227
  * @param {Compiler} compiler the compiler instance
226
228
  * @returns {void}
227
229
  */
@@ -355,6 +357,7 @@ class DotenvPlugin {
355
357
  }
356
358
 
357
359
  /**
360
+ * Loads the provided compiler.
358
361
  * @private
359
362
  * @param {Compiler} compiler compiler
360
363
  * @param {ItemCacheFacade} itemCache item cache facade
@@ -21,6 +21,7 @@ const PLUGIN_NAME = "DynamicEntryPlugin";
21
21
 
22
22
  class DynamicEntryPlugin {
23
23
  /**
24
+ * Creates an instance of DynamicEntryPlugin.
24
25
  * @param {string} context the context path
25
26
  * @param {EntryDynamic} entry the entry value
26
27
  */
@@ -32,7 +33,7 @@ class DynamicEntryPlugin {
32
33
  }
33
34
 
34
35
  /**
35
- * Apply the plugin
36
+ * Applies the plugin by registering its hooks on the compiler.
36
37
  * @param {Compiler} compiler the compiler instance
37
38
  * @returns {void}
38
39
  */
@@ -65,6 +66,7 @@ class DynamicEntryPlugin {
65
66
  promises.push(
66
67
  new Promise(
67
68
  /**
69
+ * Handles the callback logic for this hook.
68
70
  * @param {(value?: undefined) => void} resolve resolve
69
71
  * @param {(reason?: Error) => void} reject reject
70
72
  */
@@ -14,6 +14,7 @@ const PLUGIN_NAME = "EntryOptionPlugin";
14
14
 
15
15
  class EntryOptionPlugin {
16
16
  /**
17
+ * Applies the plugin by registering its hooks on the compiler.
17
18
  * @param {Compiler} compiler the compiler instance one is tapping into
18
19
  * @returns {void}
19
20
  */
@@ -25,6 +26,7 @@ class EntryOptionPlugin {
25
26
  }
26
27
 
27
28
  /**
29
+ * Apply entry option.
28
30
  * @param {Compiler} compiler the compiler
29
31
  * @param {string} context context directory
30
32
  * @param {Entry} entry request
@@ -56,6 +58,7 @@ class EntryOptionPlugin {
56
58
  }
57
59
 
58
60
  /**
61
+ * Entry description to options.
59
62
  * @param {Compiler} compiler the compiler
60
63
  * @param {string} name entry name
61
64
  * @param {EntryDescription} desc entry description
@@ -26,7 +26,7 @@ class EntryPlugin {
26
26
  }
27
27
 
28
28
  /**
29
- * Apply the plugin
29
+ * Applies the plugin by registering its hooks on the compiler.
30
30
  * @param {Compiler} compiler the compiler instance
31
31
  * @returns {void}
32
32
  */
@@ -52,6 +52,7 @@ class EntryPlugin {
52
52
  }
53
53
 
54
54
  /**
55
+ * Creates a dependency.
55
56
  * @param {string} entry entry request
56
57
  * @param {EntryOptions | string} options entry options (passing string is deprecated)
57
58
  * @returns {EntryDependency} the dependency
package/lib/Entrypoint.js CHANGED
@@ -44,6 +44,8 @@ class Entrypoint extends ChunkGroup {
44
44
  }
45
45
 
46
46
  /**
47
+ * Indicates whether this chunk group is loaded as part of the initial page
48
+ * load instead of being created lazily.
47
49
  * @returns {boolean} true, when this chunk group will be loaded on initial page load
48
50
  */
49
51
  isInitial() {
@@ -90,6 +92,8 @@ class Entrypoint extends ChunkGroup {
90
92
  }
91
93
 
92
94
  /**
95
+ * Replaces one member chunk with another while preserving the group's
96
+ * ordering and avoiding duplicates.
93
97
  * @param {Chunk} oldChunk chunk to be replaced
94
98
  * @param {Chunk} newChunk New chunk that will be replaced with
95
99
  * @returns {boolean | undefined} returns true if the replacement was successful