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
@@ -5,12 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const FlagAllModulesAsUsedPlugin = require("../FlagAllModulesAsUsedPlugin");
8
9
  const DllEntryPlugin = require("./DllEntryPlugin");
9
- const FlagAllModulesAsUsedPlugin = require("./FlagAllModulesAsUsedPlugin");
10
10
  const LibManifestPlugin = require("./LibManifestPlugin");
11
11
 
12
- /** @typedef {import("../declarations/plugins/DllPlugin").DllPluginOptions} DllPluginOptions */
13
- /** @typedef {import("./Compiler")} Compiler */
12
+ /** @typedef {import("../../declarations/plugins/dll/DllPlugin").DllPluginOptions} DllPluginOptions */
13
+ /** @typedef {import("../Compiler")} Compiler */
14
14
  /** @typedef {import("./DllEntryPlugin").Entries} Entries */
15
15
  /** @typedef {import("./DllEntryPlugin").Options} Options */
16
16
 
@@ -18,6 +18,7 @@ const PLUGIN_NAME = "DllPlugin";
18
18
 
19
19
  class DllPlugin {
20
20
  /**
21
+ * Creates an instance of DllPlugin.
21
22
  * @param {DllPluginOptions} options options object
22
23
  */
23
24
  constructor(options) {
@@ -26,20 +27,21 @@ class DllPlugin {
26
27
  }
27
28
 
28
29
  /**
29
- * Apply the plugin
30
+ * Applies the plugin by registering its hooks on the compiler.
30
31
  * @param {Compiler} compiler the compiler instance
31
32
  * @returns {void}
32
33
  */
33
34
  apply(compiler) {
34
35
  compiler.hooks.validate.tap(PLUGIN_NAME, () => {
35
36
  compiler.validate(
36
- () => require("../schemas/plugins/DllPlugin.json"),
37
+ () => require("../../schemas/plugins/dll/DllPlugin.json"),
37
38
  this.options,
38
39
  {
39
40
  name: "Dll Plugin",
40
41
  baseDataPath: "options"
41
42
  },
42
- (options) => require("../schemas/plugins/DllPlugin.check")(options)
43
+ (options) =>
44
+ require("../../schemas/plugins/dll/DllPlugin.check")(options)
43
45
  );
44
46
  });
45
47
 
@@ -5,20 +5,20 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const parseJson = require("json-parse-even-better-errors");
8
+ const ExternalModuleFactoryPlugin = require("../ExternalModuleFactoryPlugin");
9
+ const DelegatedSourceDependency = require("../dependencies/DelegatedSourceDependency");
10
+ const WebpackError = require("../errors/WebpackError");
11
+ const { makePathsRelative } = require("../util/identifier");
12
+ const parseJson = require("../util/parseJson");
9
13
  const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
10
- const ExternalModuleFactoryPlugin = require("./ExternalModuleFactoryPlugin");
11
- const WebpackError = require("./WebpackError");
12
- const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
13
- const makePathsRelative = require("./util/identifier").makePathsRelative;
14
14
 
15
- /** @typedef {import("../declarations/WebpackOptions").Externals} Externals */
16
- /** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
17
- /** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptionsContent} DllReferencePluginOptionsContent */
18
- /** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptionsManifest} DllReferencePluginOptionsManifest */
19
- /** @typedef {import("./Compiler")} Compiler */
20
- /** @typedef {import("./Compiler").CompilationParams} CompilationParams */
21
- /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
15
+ /** @typedef {import("../../declarations/WebpackOptions").Externals} Externals */
16
+ /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
17
+ /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptionsContent} DllReferencePluginOptionsContent */
18
+ /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptionsManifest} DllReferencePluginOptionsManifest */
19
+ /** @typedef {import("../Compiler")} Compiler */
20
+ /** @typedef {import("../Compiler").CompilationParams} CompilationParams */
21
+ /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
22
22
 
23
23
  /** @typedef {{ path: string, data: DllReferencePluginOptionsManifest | undefined, error: Error | undefined }} CompilationDataItem */
24
24
 
@@ -26,6 +26,7 @@ const PLUGIN_NAME = "DllReferencePlugin";
26
26
 
27
27
  class DllReferencePlugin {
28
28
  /**
29
+ * Creates an instance of DllReferencePlugin.
29
30
  * @param {DllReferencePluginOptions} options options object
30
31
  */
31
32
  constructor(options) {
@@ -33,21 +34,21 @@ class DllReferencePlugin {
33
34
  }
34
35
 
35
36
  /**
36
- * Apply the plugin
37
+ * Applies the plugin by registering its hooks on the compiler.
37
38
  * @param {Compiler} compiler the compiler instance
38
39
  * @returns {void}
39
40
  */
40
41
  apply(compiler) {
41
42
  compiler.hooks.validate.tap(PLUGIN_NAME, () => {
42
43
  compiler.validate(
43
- () => require("../schemas/plugins/DllReferencePlugin.json"),
44
+ () => require("../../schemas/plugins/dll/DllReferencePlugin.json"),
44
45
  this.options,
45
46
  {
46
47
  name: "Dll Reference Plugin",
47
48
  baseDataPath: "options"
48
49
  },
49
50
  (options) =>
50
- require("../schemas/plugins/DllReferencePlugin.check")(options)
51
+ require("../../schemas/plugins/dll/DllReferencePlugin.check")(options)
51
52
  );
52
53
  });
53
54
  compiler.hooks.compilation.tap(
@@ -79,9 +80,12 @@ class DllReferencePlugin {
79
80
  // Catch errors parsing the manifest so that blank
80
81
  // or malformed manifest files don't kill the process.
81
82
  try {
82
- data.data = parseJson(
83
- /** @type {Buffer} */ (result).toString("utf8")
84
- );
83
+ data.data =
84
+ /** @type {DllReferencePluginOptionsManifest} */
85
+ (
86
+ /** @type {unknown} */
87
+ (parseJson(/** @type {Buffer} */ (result).toString("utf8")))
88
+ );
85
89
  } catch (parseErr) {
86
90
  // Store the error in the params so that it can
87
91
  // be added as a compilation error later on.
@@ -177,6 +181,7 @@ class DllReferencePlugin {
177
181
 
178
182
  class DllManifestError extends WebpackError {
179
183
  /**
184
+ * Creates an instance of DllManifestError.
180
185
  * @param {string} filename filename of the manifest
181
186
  * @param {string} message error message
182
187
  */
@@ -6,18 +6,19 @@
6
6
  "use strict";
7
7
 
8
8
  const asyncLib = require("neo-async");
9
- const EntryDependency = require("./dependencies/EntryDependency");
10
- const { someInIterable } = require("./util/IterableHelpers");
11
- const { compareModulesById } = require("./util/comparators");
12
- const { dirname, mkdirp } = require("./util/fs");
9
+ const EntryDependency = require("../dependencies/EntryDependency");
10
+ const { someInIterable } = require("../util/IterableHelpers");
11
+ const { compareModulesById } = require("../util/comparators");
12
+ const { dirname, mkdirp } = require("../util/fs");
13
13
 
14
- /** @typedef {import("./ChunkGraph").ModuleId} ModuleId */
15
- /** @typedef {import("./Compiler")} Compiler */
16
- /** @typedef {import("./Compiler").IntermediateFileSystem} IntermediateFileSystem */
17
- /** @typedef {import("./Module").BuildMeta} BuildMeta */
18
- /** @typedef {import("./ExportsInfo").ExportInfoName} ExportInfoName */
14
+ /** @typedef {import("../ChunkGraph").ModuleId} ModuleId */
15
+ /** @typedef {import("../Compiler")} Compiler */
16
+ /** @typedef {import("../Compiler").IntermediateFileSystem} IntermediateFileSystem */
17
+ /** @typedef {import("../Module").BuildMeta} BuildMeta */
18
+ /** @typedef {import("../ExportsInfo").ExportInfoName} ExportInfoName */
19
19
 
20
20
  /**
21
+ * Defines the manifest module data type used by this module.
21
22
  * @typedef {object} ManifestModuleData
22
23
  * @property {ModuleId} id
23
24
  * @property {BuildMeta=} buildMeta
@@ -25,6 +26,7 @@ const { dirname, mkdirp } = require("./util/fs");
25
26
  */
26
27
 
27
28
  /**
29
+ * Defines the lib manifest plugin options type used by this module.
28
30
  * @typedef {object} LibManifestPluginOptions
29
31
  * @property {string=} context Context of requests in the manifest file (defaults to the webpack context).
30
32
  * @property {boolean=} entryOnly If true, only entry points will be exposed (default: true).
@@ -38,6 +40,7 @@ const PLUGIN_NAME = "LibManifestPlugin";
38
40
 
39
41
  class LibManifestPlugin {
40
42
  /**
43
+ * Creates an instance of LibManifestPlugin.
41
44
  * @param {LibManifestPluginOptions} options the options
42
45
  */
43
46
  constructor(options) {
@@ -45,7 +48,7 @@ class LibManifestPlugin {
45
48
  }
46
49
 
47
50
  /**
48
- * Apply the plugin
51
+ * Applies the plugin by registering its hooks on the compiler.
49
52
  * @param {Compiler} compiler the compiler instance
50
53
  * @returns {void}
51
54
  */
@@ -12,6 +12,7 @@ const ExternalsPlugin = require("../ExternalsPlugin");
12
12
 
13
13
  class ElectronTargetPlugin {
14
14
  /**
15
+ * Creates an instance of ElectronTargetPlugin.
15
16
  * @param {ElectronContext=} context in main, preload or renderer context?
16
17
  */
17
18
  constructor(context) {
@@ -20,7 +21,7 @@ class ElectronTargetPlugin {
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
  */
@@ -10,6 +10,8 @@ const WebpackError = require("./WebpackError");
10
10
  const CURRENT_METHOD_REGEXP = /at ([a-zA-Z0-9_.]*)/;
11
11
 
12
12
  /**
13
+ * Creates the error message shown when an abstract API is called without
14
+ * being implemented by a subclass.
13
15
  * @param {string=} method method name
14
16
  * @returns {string} message
15
17
  */
@@ -18,6 +20,8 @@ function createMessage(method) {
18
20
  }
19
21
 
20
22
  /**
23
+ * Captures a stack trace so the calling method name can be folded into the
24
+ * final abstract-method error message.
21
25
  * @constructor
22
26
  */
23
27
  function Message() {
@@ -35,7 +39,8 @@ function Message() {
35
39
  }
36
40
 
37
41
  /**
38
- * Error for abstract method
42
+ * Error thrown when code reaches a method that is intended to be overridden by
43
+ * a subclass.
39
44
  * @example
40
45
  * ```js
41
46
  * class FooClass {
@@ -46,6 +51,10 @@ function Message() {
46
51
  * ```
47
52
  */
48
53
  class AbstractMethodError extends WebpackError {
54
+ /**
55
+ * Creates an error whose message points at the abstract method that was
56
+ * invoked.
57
+ */
49
58
  constructor() {
50
59
  super(new Message().message);
51
60
  /** @type {string} */
@@ -7,12 +7,17 @@
7
7
 
8
8
  const WebpackError = require("./WebpackError");
9
9
 
10
- /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
11
- /** @typedef {import("./Module")} Module */
10
+ /** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
11
+ /** @typedef {import("../Module")} Module */
12
12
 
13
+ /**
14
+ * Error raised when webpack detects an attempt to lazy-load a chunk name that
15
+ * is already claimed by an entrypoint's initial chunk.
16
+ */
13
17
  class AsyncDependencyToInitialChunkError extends WebpackError {
14
18
  /**
15
- * Creates an instance of AsyncDependencyToInitialChunkError.
19
+ * Captures the chunk name, originating module, and source location for an
20
+ * invalid async dependency targeting an initial chunk.
16
21
  * @param {string} chunkName Name of Chunk
17
22
  * @param {Module} module module tied to dependency
18
23
  * @param {DependencyLocation} loc location of dependency
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const WebpackError = require("../WebpackError");
8
+ const WebpackError = require("./WebpackError");
9
9
 
10
10
  /** @typedef {import("../Module")} Module */
11
11
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  const WebpackError = require("./WebpackError");
9
9
 
10
- /** @typedef {import("./Chunk")} Chunk */
10
+ /** @typedef {import("../Chunk")} Chunk */
11
11
 
12
12
  class ChunkRenderError extends WebpackError {
13
13
  /**
@@ -7,7 +7,7 @@
7
7
 
8
8
  const WebpackError = require("./WebpackError");
9
9
 
10
- /** @typedef {import("./Module")} Module */
10
+ /** @typedef {import("../Module")} Module */
11
11
 
12
12
  class CodeGenerationError extends WebpackError {
13
13
  /**
@@ -5,13 +5,19 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const makeSerializable = require("../util/makeSerializable");
8
9
  const WebpackError = require("./WebpackError");
9
- const makeSerializable = require("./util/makeSerializable");
10
10
 
11
- /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
11
+ /** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
12
12
 
13
+ /**
14
+ * Warning used for comment-related compilation issues, such as malformed magic
15
+ * comments that webpack can parse but wants to report.
16
+ */
13
17
  class CommentCompilationWarning extends WebpackError {
14
18
  /**
19
+ * Captures a warning message together with the dependency location that
20
+ * triggered it.
15
21
  * @param {string} message warning message
16
22
  * @param {DependencyLocation} loc affected lines of code
17
23
  */
@@ -27,7 +33,7 @@ class CommentCompilationWarning extends WebpackError {
27
33
 
28
34
  makeSerializable(
29
35
  CommentCompilationWarning,
30
- "webpack/lib/CommentCompilationWarning"
36
+ "webpack/lib/errors/CommentCompilationWarning"
31
37
  );
32
38
 
33
39
  module.exports = CommentCompilationWarning;
@@ -7,7 +7,7 @@
7
7
 
8
8
  const WebpackError = require("./WebpackError");
9
9
 
10
- module.exports = class ConcurrentCompilationError extends WebpackError {
10
+ class ConcurrentCompilationError extends WebpackError {
11
11
  constructor() {
12
12
  super(
13
13
  "You ran Webpack twice. Each instance only supports a single concurrent compilation at a time."
@@ -15,4 +15,6 @@ module.exports = class ConcurrentCompilationError extends WebpackError {
15
15
 
16
16
  this.name = "ConcurrentCompilationError";
17
17
  }
18
- };
18
+ }
19
+
20
+ module.exports = ConcurrentCompilationError;
@@ -5,11 +5,11 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const makeSerializable = require("../util/makeSerializable");
8
9
  const WebpackError = require("./WebpackError");
9
- const makeSerializable = require("./util/makeSerializable");
10
10
 
11
- /** @typedef {import("./Module")} Module */
12
- /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
11
+ /** @typedef {import("../Module")} Module */
12
+ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
13
13
  /** @typedef {"asyncWebAssembly" | "topLevelAwait" | "external promise" | "external script" | "external import" | "external module"} Feature */
14
14
 
15
15
  class EnvironmentNotSupportAsyncWarning extends WebpackError {
@@ -45,7 +45,7 @@ As a result, the code may not run as expected or may cause runtime errors.`;
45
45
 
46
46
  makeSerializable(
47
47
  EnvironmentNotSupportAsyncWarning,
48
- "webpack/lib/EnvironmentNotSupportAsyncWarning"
48
+ "webpack/lib/errors/EnvironmentNotSupportAsyncWarning"
49
49
  );
50
50
 
51
51
  module.exports = EnvironmentNotSupportAsyncWarning;
@@ -5,13 +5,14 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const makeSerializable = require("../util/makeSerializable");
8
9
  const WebpackError = require("./WebpackError");
9
- const makeSerializable = require("./util/makeSerializable");
10
10
 
11
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
12
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
11
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
12
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
13
13
 
14
14
  /**
15
+ * Defines the callback callback.
15
16
  * @template T
16
17
  * @callback Callback
17
18
  * @param {Error | null} err
@@ -38,6 +39,7 @@ class HookWebpackError extends WebpackError {
38
39
  }
39
40
 
40
41
  /**
42
+ * Serializes this instance into the provided serializer context.
41
43
  * @param {ObjectSerializerContext} context context
42
44
  */
43
45
  serialize(context) {
@@ -50,6 +52,7 @@ class HookWebpackError extends WebpackError {
50
52
  }
51
53
 
52
54
  /**
55
+ * Restores this instance from the provided deserializer context.
53
56
  * @param {ObjectDeserializerContext} context context
54
57
  */
55
58
  deserialize(context) {
@@ -62,11 +65,12 @@ class HookWebpackError extends WebpackError {
62
65
  }
63
66
  }
64
67
 
65
- makeSerializable(HookWebpackError, "webpack/lib/HookWebpackError");
68
+ makeSerializable(HookWebpackError, "webpack/lib/errors/HookWebpackError");
66
69
 
67
70
  module.exports = HookWebpackError;
68
71
 
69
72
  /**
73
+ * Creates webpack error.
70
74
  * @param {Error} error an error
71
75
  * @param {string} hook name of the hook
72
76
  * @returns {WebpackError} a webpack error
@@ -79,8 +83,9 @@ const makeWebpackError = (error, hook) => {
79
83
  module.exports.makeWebpackError = makeWebpackError;
80
84
 
81
85
  /**
86
+ * Creates webpack error callback.
82
87
  * @template T
83
- * @param {(err: WebpackError | null, result?: T) => void} callback webpack error callback
88
+ * @param {(err: Error | null, result?: T) => void} callback webpack error callback
84
89
  * @param {string} hook name of hook
85
90
  * @returns {Callback<T>} generic callback
86
91
  */
@@ -99,6 +104,7 @@ const makeWebpackErrorCallback = (callback, hook) => (err, result) => {
99
104
  module.exports.makeWebpackErrorCallback = makeWebpackErrorCallback;
100
105
 
101
106
  /**
107
+ * Try run or webpack error.
102
108
  * @template T
103
109
  * @param {() => T} fn function which will be wrapping in try catch
104
110
  * @param {string} hook name of hook
@@ -5,17 +5,18 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const ModuleFactory = require("./ModuleFactory");
8
+ const ModuleFactory = require("../ModuleFactory");
9
9
 
10
- /** @typedef {import("./ModuleFactory").ModuleFactoryCallback} ModuleFactoryCallback */
11
- /** @typedef {import("./ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
12
- /** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */
10
+ /** @typedef {import("../ModuleFactory").ModuleFactoryCallback} ModuleFactoryCallback */
11
+ /** @typedef {import("../ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
12
+ /** @typedef {import("../NormalModuleFactory")} NormalModuleFactory */
13
13
 
14
14
  /**
15
15
  * Ignores error when module is unresolved
16
16
  */
17
17
  class IgnoreErrorModuleFactory extends ModuleFactory {
18
18
  /**
19
+ * Creates an instance of IgnoreErrorModuleFactory.
19
20
  * @param {NormalModuleFactory} normalModuleFactory normalModuleFactory instance
20
21
  */
21
22
  constructor(normalModuleFactory) {
@@ -25,6 +26,7 @@ class IgnoreErrorModuleFactory extends ModuleFactory {
25
26
  }
26
27
 
27
28
  /**
29
+ * Processes the provided data.
28
30
  * @param {ModuleFactoryCreateData} data data object
29
31
  * @param {ModuleFactoryCallback} callback callback
30
32
  * @returns {void}
@@ -5,13 +5,14 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const makeSerializable = require("../util/makeSerializable");
8
9
  const WebpackError = require("./WebpackError");
9
- const makeSerializable = require("./util/makeSerializable");
10
10
 
11
- /** @typedef {import("./Module")} Module */
11
+ /** @typedef {import("../Module")} Module */
12
12
 
13
13
  class InvalidDependenciesModuleWarning extends WebpackError {
14
14
  /**
15
+ * Creates an instance of InvalidDependenciesModuleWarning.
15
16
  * @param {Module} module module tied to dependency
16
17
  * @param {Iterable<string>} deps invalid dependencies
17
18
  */
@@ -38,7 +39,7 @@ ${depsList.slice(0, 3).join("\n")}${
38
39
 
39
40
  makeSerializable(
40
41
  InvalidDependenciesModuleWarning,
41
- "webpack/lib/InvalidDependenciesModuleWarning"
42
+ "webpack/lib/errors/InvalidDependenciesModuleWarning"
42
43
  );
43
44
 
44
45
  module.exports = InvalidDependenciesModuleWarning;
@@ -0,0 +1,114 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ */
4
+
5
+ "use strict";
6
+
7
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
8
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
9
+
10
+ const makeSerializable = require("../util/makeSerializable");
11
+
12
+ const CONTEXT = 20;
13
+
14
+ class JSONParseError extends SyntaxError {
15
+ /**
16
+ * @param {Error} err err
17
+ * @param {EXPECTED_ANY} raw raw
18
+ * @param {string} txt text
19
+ */
20
+ constructor(err, raw, txt) {
21
+ let originalMessage = err.message;
22
+ /** @type {string} */
23
+ let message;
24
+ /** @type {number} */
25
+ let position;
26
+
27
+ if (typeof raw !== "string") {
28
+ message = `Cannot parse ${Array.isArray(raw) && raw.length === 0 ? "an empty array" : String(raw)}`;
29
+ position = 0;
30
+ } else if (!txt) {
31
+ message = `${originalMessage} while parsing empty string`;
32
+ position = 0;
33
+ } else {
34
+ // Node 20 puts single quotes around the token and a comma after it
35
+ const UNEXPECTED_TOKEN = /^Unexpected token '?(.)'?(,)? /i;
36
+ const badTokenMatch = originalMessage.match(UNEXPECTED_TOKEN);
37
+ const badIndexMatch = originalMessage.match(/ position\s+(\d+)/i);
38
+
39
+ if (badTokenMatch) {
40
+ const h = badTokenMatch[1].charCodeAt(0).toString(16).toUpperCase();
41
+ const hex = `0x${h.length % 2 ? "0" : ""}${h}`;
42
+
43
+ originalMessage = originalMessage.replace(
44
+ UNEXPECTED_TOKEN,
45
+ `Unexpected token ${JSON.stringify(badTokenMatch[1])} (${hex})$2 `
46
+ );
47
+ }
48
+
49
+ /** @type {number | undefined} */
50
+ let errIdx;
51
+
52
+ if (badIndexMatch) {
53
+ errIdx = Number(badIndexMatch[1]);
54
+ } else if (
55
+ // doesn't happen in Node 22+
56
+ /^Unexpected end of JSON.*/i.test(originalMessage)
57
+ ) {
58
+ errIdx = txt.length - 1;
59
+ }
60
+
61
+ if (errIdx === undefined) {
62
+ message = `${originalMessage} while parsing '${txt.slice(0, CONTEXT * 2)}'`;
63
+ position = 0;
64
+ } else {
65
+ const start = errIdx <= CONTEXT ? 0 : errIdx - CONTEXT;
66
+ const end =
67
+ errIdx + CONTEXT >= txt.length ? txt.length : errIdx + CONTEXT;
68
+ const slice = `${start ? "..." : ""}${txt.slice(start, end)}${end === txt.length ? "" : "..."}`;
69
+
70
+ message = `${originalMessage} while parsing ${txt === slice ? "" : "near "}${JSON.stringify(slice)}`;
71
+ position = errIdx;
72
+ }
73
+ }
74
+
75
+ super(message);
76
+
77
+ /** @type {string} */
78
+ this.name = "JSONParseError";
79
+ /** @type {string | undefined} */
80
+ this.stack = undefined;
81
+ /** @type {Error} */
82
+ this.systemError = err;
83
+ /** @type {EXPECTED_ANY} */
84
+ this.raw = raw;
85
+ /** @type {string} */
86
+ this.txt = txt;
87
+ /** @type {number} */
88
+ this.position = position;
89
+ }
90
+
91
+ /**
92
+ * Serializes this instance into the provided serializer context.
93
+ * @param {ObjectSerializerContext} context context
94
+ */
95
+ serialize({ write }) {
96
+ write(this.systemError);
97
+ write(this.raw);
98
+ write(this.txt);
99
+ }
100
+
101
+ /**
102
+ * Restores this instance from the provided deserializer context.
103
+ * @param {ObjectDeserializerContext} context context
104
+ * @returns {JSONParseError} DelegatedModule
105
+ */
106
+ static deserialize(context) {
107
+ const { read } = context;
108
+ return new JSONParseError(read(), read(), read());
109
+ }
110
+ }
111
+
112
+ makeSerializable(JSONParseError, "webpack/lib/errors/JSONParseError");
113
+
114
+ module.exports = JSONParseError;
@@ -5,17 +5,18 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { cutOffLoaderExecution } = require("./ErrorHelpers");
8
+ const { cutOffLoaderExecution } = require("../ErrorHelpers");
9
+ const makeSerializable = require("../util/makeSerializable");
9
10
  const WebpackError = require("./WebpackError");
10
- const makeSerializable = require("./util/makeSerializable");
11
11
 
12
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
13
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
12
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
13
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
14
14
 
15
15
  /** @typedef {Error & { hideStack?: boolean }} ErrorWithHideStack */
16
16
 
17
17
  class ModuleBuildError extends WebpackError {
18
18
  /**
19
+ * Creates an instance of ModuleBuildError.
19
20
  * @param {string | ErrorWithHideStack} err error thrown
20
21
  * @param {{ from?: string | null }} info additional info
21
22
  */
@@ -56,6 +57,7 @@ class ModuleBuildError extends WebpackError {
56
57
  }
57
58
 
58
59
  /**
60
+ * Serializes this instance into the provided serializer context.
59
61
  * @param {ObjectSerializerContext} context context
60
62
  */
61
63
  serialize(context) {
@@ -67,6 +69,7 @@ class ModuleBuildError extends WebpackError {
67
69
  }
68
70
 
69
71
  /**
72
+ * Restores this instance from the provided deserializer context.
70
73
  * @param {ObjectDeserializerContext} context context
71
74
  */
72
75
  deserialize(context) {
@@ -78,6 +81,6 @@ class ModuleBuildError extends WebpackError {
78
81
  }
79
82
  }
80
83
 
81
- makeSerializable(ModuleBuildError, "webpack/lib/ModuleBuildError");
84
+ makeSerializable(ModuleBuildError, "webpack/lib/errors/ModuleBuildError");
82
85
 
83
86
  module.exports = ModuleBuildError;