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
@@ -13,7 +13,7 @@ const Cache = require("../Cache");
13
13
 
14
14
  class MemoryCachePlugin {
15
15
  /**
16
- * Apply the plugin
16
+ * Applies the plugin by registering its hooks on the compiler.
17
17
  * @param {Compiler} compiler the compiler instance
18
18
  * @returns {void}
19
19
  */
@@ -12,6 +12,7 @@ const Cache = require("../Cache");
12
12
  /** @typedef {import("../Compiler")} Compiler */
13
13
 
14
14
  /**
15
+ * Defines the memory with gc cache plugin options type used by this module.
15
16
  * @typedef {object} MemoryWithGcCachePluginOptions
16
17
  * @property {number} maxGenerations max generations
17
18
  */
@@ -20,6 +21,7 @@ const PLUGIN_NAME = "MemoryWithGcCachePlugin";
20
21
 
21
22
  class MemoryWithGcCachePlugin {
22
23
  /**
24
+ * Creates an instance of MemoryWithGcCachePlugin.
23
25
  * @param {MemoryWithGcCachePluginOptions} options options
24
26
  */
25
27
  constructor({ maxGenerations }) {
@@ -27,7 +29,7 @@ class MemoryWithGcCachePlugin {
27
29
  }
28
30
 
29
31
  /**
30
- * Apply the plugin
32
+ * Applies the plugin by registering its hooks on the compiler.
31
33
  * @param {Compiler} compiler the compiler instance
32
34
  * @returns {void}
33
35
  */
@@ -7,9 +7,9 @@
7
7
 
8
8
  const FileSystemInfo = require("../FileSystemInfo");
9
9
  const ProgressPlugin = require("../ProgressPlugin");
10
- const { formatSize } = require("../SizeFormatHelpers");
11
10
  const SerializerMiddleware = require("../serialization/SerializerMiddleware");
12
11
  const LazySet = require("../util/LazySet");
12
+ const formatSize = require("../util/formatSize");
13
13
  const makeSerializable = require("../util/makeSerializable");
14
14
  const memoize = require("../util/memoize");
15
15
  const {
@@ -37,6 +37,7 @@ const {
37
37
 
38
38
  class PackContainer {
39
39
  /**
40
+ * Creates an instance of PackContainer.
40
41
  * @param {Pack} data stored data
41
42
  * @param {string} version version identifier
42
43
  * @param {Snapshot} buildSnapshot snapshot of all build dependencies
@@ -67,6 +68,7 @@ class PackContainer {
67
68
  }
68
69
 
69
70
  /**
71
+ * Serializes this instance into the provided serializer context.
70
72
  * @param {ObjectSerializerContext} context context
71
73
  */
72
74
  serialize({ write, writeLazy }) {
@@ -80,6 +82,7 @@ class PackContainer {
80
82
  }
81
83
 
82
84
  /**
85
+ * Restores this instance from the provided deserializer context.
83
86
  * @param {ObjectDeserializerContext} context context
84
87
  */
85
88
  deserialize({ read }) {
@@ -102,10 +105,11 @@ const MIN_CONTENT_SIZE = 1024 * 1024; // 1 MB
102
105
  const CONTENT_COUNT_TO_MERGE = 10;
103
106
  const MIN_ITEMS_IN_FRESH_PACK = 100;
104
107
  const MAX_ITEMS_IN_FRESH_PACK = 50000;
105
- const MAX_TIME_IN_FRESH_PACK = 1 * 60 * 1000; // 1 min
108
+ const MAX_TIME_IN_FRESH_PACK = 60 * 1000; // 1 min
106
109
 
107
110
  class PackItemInfo {
108
111
  /**
112
+ * Creates an instance of PackItemInfo.
109
113
  * @param {string} identifier identifier of item
110
114
  * @param {string | null | undefined} etag etag of item
111
115
  * @param {Data} value fresh value of item
@@ -126,6 +130,7 @@ class PackItemInfo {
126
130
 
127
131
  class Pack {
128
132
  /**
133
+ * Creates an instance of Pack.
129
134
  * @param {Logger} logger a logger
130
135
  * @param {number} maxAge max age of cache items
131
136
  */
@@ -149,6 +154,7 @@ class Pack {
149
154
  }
150
155
 
151
156
  /**
157
+ * Adds the provided identifier to the pack.
152
158
  * @param {string} identifier identifier
153
159
  */
154
160
  _addRequest(identifier) {
@@ -170,6 +176,7 @@ class Pack {
170
176
  }
171
177
 
172
178
  /**
179
+ * Returns cached content.
173
180
  * @param {string} identifier unique name for the resource
174
181
  * @param {string | null} etag etag of the resource
175
182
  * @returns {Data} cached content
@@ -193,6 +200,7 @@ class Pack {
193
200
  }
194
201
 
195
202
  /**
203
+ * Updates value using the provided identifier.
196
204
  * @param {string} identifier unique name for the resource
197
205
  * @param {string | null} etag etag of the resource
198
206
  * @param {Data} data cached content
@@ -244,6 +252,7 @@ class Pack {
244
252
  }
245
253
 
246
254
  /**
255
+ * Returns new location of data entries.
247
256
  * @returns {number} new location of data entries
248
257
  */
249
258
  _findLocation() {
@@ -254,6 +263,7 @@ class Pack {
254
263
  }
255
264
 
256
265
  /**
266
+ * Gc and update location.
257
267
  * @private
258
268
  * @param {Items} items items
259
269
  * @param {Items} usedItems used items
@@ -604,6 +614,7 @@ class Pack {
604
614
  }
605
615
 
606
616
  /**
617
+ * Serializes this instance into the provided serializer context.
607
618
  * @param {ObjectSerializerContext} context context
608
619
  */
609
620
  serialize({ write, writeSeparate }) {
@@ -637,6 +648,7 @@ class Pack {
637
648
  }
638
649
 
639
650
  /**
651
+ * Restores this instance from the provided deserializer context.
640
652
  * @param {ObjectDeserializerContext & { logger: Logger }} context context
641
653
  */
642
654
  deserialize({ read, logger }) {
@@ -694,6 +706,7 @@ makeSerializable(Pack, "webpack/lib/cache/PackFileCacheStrategy", "Pack");
694
706
 
695
707
  class PackContentItems {
696
708
  /**
709
+ * Creates an instance of PackContentItems.
697
710
  * @param {Content} map items
698
711
  */
699
712
  constructor(map) {
@@ -701,6 +714,7 @@ class PackContentItems {
701
714
  }
702
715
 
703
716
  /**
717
+ * Serializes this instance into the provided serializer context.
704
718
  * @param {ObjectSerializerContext & { logger: Logger, profile: boolean | undefined }} context context
705
719
  */
706
720
  serialize({ write, snapshot, rollback, logger, profile }) {
@@ -778,13 +792,14 @@ class PackContentItems {
778
792
  }
779
793
 
780
794
  /**
795
+ * Restores this instance from the provided deserializer context.
781
796
  * @param {ObjectDeserializerContext & { logger: Logger, profile: boolean | undefined }} context context
782
797
  */
783
798
  deserialize({ read, logger, profile }) {
784
799
  if (read()) {
785
800
  this.map = read();
786
801
  } else if (profile) {
787
- /** @type {Map<EXPECTED_ANY, EXPECTED_ANY>} */
802
+ /** @type {Content} */
788
803
  const map = new Map();
789
804
  let key = read();
790
805
  while (key !== null) {
@@ -810,7 +825,7 @@ class PackContentItems {
810
825
  }
811
826
  this.map = map;
812
827
  } else {
813
- /** @type {Map<EXPECTED_ANY, EXPECTED_ANY>} */
828
+ /** @type {Content} */
814
829
  const map = new Map();
815
830
  let key = read();
816
831
  while (key !== null) {
@@ -851,6 +866,7 @@ class PackContent {
851
866
  */
852
867
 
853
868
  /**
869
+ * Creates an instance of PackContent.
854
870
  * @param {Items} items keys
855
871
  * @param {Items} usedItems used keys
856
872
  * @param {PackContentItems | (() => Promise<PackContentItems>)} dataOrFn sync or async content
@@ -875,6 +891,7 @@ class PackContent {
875
891
  }
876
892
 
877
893
  /**
894
+ * Returns result.
878
895
  * @param {string} identifier identifier
879
896
  * @returns {string | Promise<string>} result
880
897
  */
@@ -927,6 +944,7 @@ class PackContent {
927
944
  }
928
945
 
929
946
  /**
947
+ * Returns maybe a promise if lazy.
930
948
  * @param {string} reason explanation why unpack is necessary
931
949
  * @returns {void | Promise<void>} maybe a promise if lazy
932
950
  */
@@ -971,6 +989,7 @@ class PackContent {
971
989
  }
972
990
 
973
991
  /**
992
+ * Returns the estimated size for the requested source type.
974
993
  * @returns {number} size of the content or -1 if not known
975
994
  */
976
995
  getSize() {
@@ -985,6 +1004,7 @@ class PackContent {
985
1004
  }
986
1005
 
987
1006
  /**
1007
+ * Processes the provided identifier.
988
1008
  * @param {string} identifier identifier
989
1009
  */
990
1010
  delete(identifier) {
@@ -994,6 +1014,7 @@ class PackContent {
994
1014
  }
995
1015
 
996
1016
  /**
1017
+ * Processes the provided write.
997
1018
  * @param {(lazy: LazyFunction) => (() => PackContentItems | Promise<PackContentItems>)} write write function
998
1019
  * @returns {void}
999
1020
  */
@@ -1086,6 +1107,7 @@ class PackContent {
1086
1107
  }
1087
1108
 
1088
1109
  /**
1110
+ * Allow collecting memory.
1089
1111
  * @param {Buffer} buf buffer
1090
1112
  * @returns {Buffer} buffer that can be collected
1091
1113
  */
@@ -1099,6 +1121,7 @@ const allowCollectingMemory = (buf) => {
1099
1121
 
1100
1122
  class PackFileCacheStrategy {
1101
1123
  /**
1124
+ * Creates an instance of PackFileCacheStrategy.
1102
1125
  * @param {object} options options
1103
1126
  * @param {Compiler} options.compiler the compiler
1104
1127
  * @param {IntermediateFileSystem} options.fs the filesystem
@@ -1186,6 +1209,7 @@ class PackFileCacheStrategy {
1186
1209
  }
1187
1210
 
1188
1211
  /**
1212
+ * Returns pack.
1189
1213
  * @returns {Promise<Pack>} pack
1190
1214
  */
1191
1215
  _getPack() {
@@ -1196,6 +1220,7 @@ class PackFileCacheStrategy {
1196
1220
  }
1197
1221
 
1198
1222
  /**
1223
+ * Returns the pack.
1199
1224
  * @returns {Promise<Pack>} the pack
1200
1225
  */
1201
1226
  _openPack() {
@@ -1362,6 +1387,7 @@ class PackFileCacheStrategy {
1362
1387
  }
1363
1388
 
1364
1389
  /**
1390
+ * Returns promise.
1365
1391
  * @param {string} identifier unique name for the resource
1366
1392
  * @param {Etag | null} etag etag of the resource
1367
1393
  * @param {Data} data cached content
@@ -1376,6 +1402,7 @@ class PackFileCacheStrategy {
1376
1402
  }
1377
1403
 
1378
1404
  /**
1405
+ * Returns promise to the cached content.
1379
1406
  * @param {string} identifier unique name for the resource
1380
1407
  * @param {Etag | null} etag etag of the resource
1381
1408
  * @returns {Promise<Data>} promise to the cached content
@@ -1396,6 +1423,7 @@ class PackFileCacheStrategy {
1396
1423
  }
1397
1424
 
1398
1425
  /**
1426
+ * Stores build dependencies.
1399
1427
  * @param {FileSystemDependencies | Iterable<string>} dependencies dependencies to store
1400
1428
  */
1401
1429
  storeBuildDependencies(dependencies) {
@@ -1429,6 +1457,7 @@ class PackFileCacheStrategy {
1429
1457
  );
1430
1458
  promise = new Promise(
1431
1459
  /**
1460
+ * Handles the callback logic for this hook.
1432
1461
  * @param {(value?: undefined) => void} resolve resolve
1433
1462
  * @param {(reason?: Error) => void} reject reject
1434
1463
  */
@@ -22,6 +22,7 @@ const makeSerializable = require("../util/makeSerializable");
22
22
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
23
23
 
24
24
  /**
25
+ * Defines the sync hook type used by this module.
25
26
  * @template T
26
27
  * @typedef {import("tapable").SyncHook<T>} SyncHook
27
28
  */
@@ -30,6 +31,7 @@ const makeSerializable = require("../util/makeSerializable");
30
31
 
31
32
  class CacheEntry {
32
33
  /**
34
+ * Creates an instance of CacheEntry.
33
35
  * @param {ResolveRequest} result result
34
36
  * @param {Snapshot} snapshot snapshot
35
37
  */
@@ -39,6 +41,7 @@ class CacheEntry {
39
41
  }
40
42
 
41
43
  /**
44
+ * Serializes this instance into the provided serializer context.
42
45
  * @param {ObjectSerializerContext} context context
43
46
  */
44
47
  serialize({ write }) {
@@ -47,6 +50,7 @@ class CacheEntry {
47
50
  }
48
51
 
49
52
  /**
53
+ * Restores this instance from the provided deserializer context.
50
54
  * @param {ObjectDeserializerContext} context context
51
55
  */
52
56
  deserialize({ read }) {
@@ -58,6 +62,7 @@ class CacheEntry {
58
62
  makeSerializable(CacheEntry, "webpack/lib/cache/ResolverCachePlugin");
59
63
 
60
64
  /**
65
+ * Adds the provided set to the cache entry.
61
66
  * @template T
62
67
  * @param {Set<T> | LazySet<T>} set set to add items to
63
68
  * @param {Set<T> | LazySet<T> | Iterable<T>} otherSet set to add items from
@@ -74,6 +79,7 @@ const addAllToSet = (set, otherSet) => {
74
79
  };
75
80
 
76
81
  /**
82
+ * Returns stringified version.
77
83
  * @template {object} T
78
84
  * @param {T} object an object
79
85
  * @param {boolean} excludeContext if true, context is not included in string
@@ -98,7 +104,7 @@ const PLUGIN_NAME = "ResolverCachePlugin";
98
104
 
99
105
  class ResolverCachePlugin {
100
106
  /**
101
- * Apply the plugin
107
+ * Applies the plugin by registering its hooks on the compiler.
102
108
  * @param {Compiler} compiler the compiler instance
103
109
  * @returns {void}
104
110
  */
@@ -135,6 +141,7 @@ class ResolverCachePlugin {
135
141
  /** @typedef {ResolveRequest & { _ResolverCachePluginCacheMiss: true }} ResolveRequestWithCacheMiss */
136
142
 
137
143
  /**
144
+ * Processes the provided item cache.
138
145
  * @param {ItemCacheFacade} itemCache cache
139
146
  * @param {Resolver} resolver the resolver
140
147
  * @param {ResolveContext} resolveContext context for resolving meta info
@@ -175,6 +182,7 @@ class ResolverCachePlugin {
175
182
  (yieldResult).push(obj);
176
183
  }
177
184
  /**
185
+ * Processes the provided key.
178
186
  * @param {"fileDependencies" | "contextDependencies" | "missingDependencies"} key key
179
187
  */
180
188
  const propagate = (key) => {
@@ -375,6 +383,7 @@ class ResolverCachePlugin {
375
383
  }
376
384
  };
377
385
  /**
386
+ * Process cache result.
378
387
  * @param {(Error | null)=} err error if any
379
388
  * @param {(CacheEntry | null)=} cacheEntry cache entry
380
389
  * @returns {void}
@@ -13,12 +13,14 @@ const createHash = require("../util/createHash");
13
13
  /** @typedef {import("../util/Hash").HashFunction} HashFunction */
14
14
 
15
15
  /**
16
+ * Represents the lazy hashed etag runtime component.
16
17
  * @typedef {object} HashableObject
17
18
  * @property {(hash: Hash) => void} updateHash
18
19
  */
19
20
 
20
21
  class LazyHashedEtag {
21
22
  /**
23
+ * Creates an instance of LazyHashedEtag.
22
24
  * @param {HashableObject} obj object with updateHash method
23
25
  * @param {HashFunction} hashFunction the hash function to use
24
26
  */
@@ -32,6 +34,7 @@ class LazyHashedEtag {
32
34
  }
33
35
 
34
36
  /**
37
+ * Returns a string representation.
35
38
  * @returns {string} hash of object
36
39
  */
37
40
  toString() {
@@ -53,6 +56,7 @@ const mapStrings = new Map();
53
56
  const mapObjects = new WeakMap();
54
57
 
55
58
  /**
59
+ * Returns etag.
56
60
  * @param {HashableObject} obj object with updateHash method
57
61
  * @param {HashFunction=} hashFunction the hash function to use
58
62
  * @returns {LazyHashedEtag} etag
@@ -9,6 +9,7 @@
9
9
 
10
10
  class MergedEtag {
11
11
  /**
12
+ * Creates an instance of MergedEtag.
12
13
  * @param {Etag} a first
13
14
  * @param {Etag} b second
14
15
  */
@@ -28,6 +29,7 @@ const dualObjectMap = new WeakMap();
28
29
  const objectStringMap = new WeakMap();
29
30
 
30
31
  /**
32
+ * Merges the provided values into a single result.
31
33
  * @param {Etag} a first
32
34
  * @param {Etag} b second
33
35
  * @returns {string | MergedEtag} result
package/lib/cli.js CHANGED
@@ -7,7 +7,9 @@
7
7
 
8
8
  const path = require("path");
9
9
  const tty = require("tty");
10
- const webpackSchema = require("../schemas/WebpackOptions.json");
10
+ const webpackSchema =
11
+ /** @type {EXPECTED_ANY} */
12
+ (require("../schemas/WebpackOptions.json"));
11
13
 
12
14
  /** @typedef {import("json-schema").JSONSchema4} JSONSchema4 */
13
15
  /** @typedef {import("json-schema").JSONSchema6} JSONSchema6 */
@@ -17,6 +19,7 @@ const webpackSchema = require("../schemas/WebpackOptions.json");
17
19
 
18
20
  // TODO add originPath to PathItem for better errors
19
21
  /**
22
+ * Defines the path item type used by this module.
20
23
  * @typedef {object} PathItem
21
24
  * @property {Schema} schema the part of the schema
22
25
  * @property {string} path the path in the config
@@ -27,6 +30,7 @@ const webpackSchema = require("../schemas/WebpackOptions.json");
27
30
  /** @typedef {string | number | boolean | RegExp} Value */
28
31
 
29
32
  /**
33
+ * Defines the problem type used by this module.
30
34
  * @typedef {object} Problem
31
35
  * @property {ProblemType} type
32
36
  * @property {string} path
@@ -37,6 +41,7 @@ const webpackSchema = require("../schemas/WebpackOptions.json");
37
41
  */
38
42
 
39
43
  /**
44
+ * Defines the local problem type used by this module.
40
45
  * @typedef {object} LocalProblem
41
46
  * @property {ProblemType} type
42
47
  * @property {string} path
@@ -48,6 +53,7 @@ const webpackSchema = require("../schemas/WebpackOptions.json");
48
53
  /** @typedef {string | number | boolean | EnumValueObject | EnumValueArray | null} EnumValue */
49
54
 
50
55
  /**
56
+ * Defines the argument config type used by this module.
51
57
  * @typedef {object} ArgumentConfig
52
58
  * @property {string=} description
53
59
  * @property {string=} negatedDescription
@@ -60,6 +66,7 @@ const webpackSchema = require("../schemas/WebpackOptions.json");
60
66
  /** @typedef {"string" | "number" | "boolean"} SimpleType */
61
67
 
62
68
  /**
69
+ * Defines the argument type used by this module.
63
70
  * @typedef {object} Argument
64
71
  * @property {string | undefined} description
65
72
  * @property {SimpleType} simpleType
@@ -72,6 +79,7 @@ const webpackSchema = require("../schemas/WebpackOptions.json");
72
79
  /** @typedef {Record<string, EXPECTED_ANY>} ObjectConfiguration */
73
80
 
74
81
  /**
82
+ * Returns object of arguments.
75
83
  * @param {Schema=} schema a json schema to create arguments for (by default webpack schema is used)
76
84
  * @returns {Flags} object of arguments
77
85
  */
@@ -80,6 +88,7 @@ const getArguments = (schema = webpackSchema) => {
80
88
  const flags = {};
81
89
 
82
90
  /**
91
+ * Path to argument name.
83
92
  * @param {string} input input
84
93
  * @returns {string} result
85
94
  */
@@ -95,6 +104,7 @@ const getArguments = (schema = webpackSchema) => {
95
104
  .toLowerCase();
96
105
 
97
106
  /**
107
+ * Returns schema part.
98
108
  * @param {string} path path
99
109
  * @returns {Schema} schema part
100
110
  */
@@ -117,6 +127,7 @@ const getArguments = (schema = webpackSchema) => {
117
127
  };
118
128
 
119
129
  /**
130
+ * Returns description.
120
131
  * @param {PathItem[]} path path in the schema
121
132
  * @returns {string | undefined} description
122
133
  */
@@ -131,6 +142,7 @@ const getArguments = (schema = webpackSchema) => {
131
142
  };
132
143
 
133
144
  /**
145
+ * Gets negated description.
134
146
  * @param {PathItem[]} path path in the schema
135
147
  * @returns {string | undefined} negative description
136
148
  */
@@ -144,6 +156,7 @@ const getArguments = (schema = webpackSchema) => {
144
156
  };
145
157
 
146
158
  /**
159
+ * Gets reset description.
147
160
  * @param {PathItem[]} path path in the schema
148
161
  * @returns {string | undefined} reset description
149
162
  */
@@ -157,6 +170,7 @@ const getArguments = (schema = webpackSchema) => {
157
170
  };
158
171
 
159
172
  /**
173
+ * Schema to argument config.
160
174
  * @param {Schema} schemaPart schema
161
175
  * @returns {Pick<ArgumentConfig, "type" | "values"> | undefined} partial argument config
162
176
  */
@@ -190,6 +204,7 @@ const getArguments = (schema = webpackSchema) => {
190
204
  };
191
205
 
192
206
  /**
207
+ * Adds the provided path to this object.
193
208
  * @param {PathItem[]} path path in the schema
194
209
  * @returns {void}
195
210
  */
@@ -219,6 +234,7 @@ const getArguments = (schema = webpackSchema) => {
219
234
  };
220
235
 
221
236
  /**
237
+ * Adds the provided path to this object.
222
238
  * @param {PathItem[]} path full path in schema
223
239
  * @param {boolean} multiple inside of an array
224
240
  * @returns {number} number of arguments added
@@ -281,6 +297,7 @@ const getArguments = (schema = webpackSchema) => {
281
297
  // TODO support `not` and `if/then/else`
282
298
  // TODO support `const`, but we don't use it on our schema
283
299
  /**
300
+ * Returns added arguments.
284
301
  * @param {Schema} schemaPart the current schema
285
302
  * @param {string} schemaPath the current path in the schema
286
303
  * @param {PathItem[]} path all previous visited schemaParts
@@ -433,6 +450,7 @@ const cliAddedItems = new WeakMap();
433
450
  /** @typedef {string | number} Property */
434
451
 
435
452
  /**
453
+ * Gets object and property.
436
454
  * @param {ObjectConfiguration} config configuration
437
455
  * @param {string} schemaPath path in the config
438
456
  * @param {number | undefined} index index of value when multiple values are provided, otherwise undefined
@@ -533,6 +551,7 @@ const getObjectAndProperty = (config, schemaPath, index = 0) => {
533
551
  };
534
552
 
535
553
  /**
554
+ * Updates value using the provided config.
536
555
  * @param {ObjectConfiguration} config configuration
537
556
  * @param {string} schemaPath path in the config
538
557
  * @param {ParsedValue} value parsed value
@@ -552,6 +571,7 @@ const setValue = (config, schemaPath, value, index) => {
552
571
  };
553
572
 
554
573
  /**
574
+ * Process argument config.
555
575
  * @param {ArgumentConfig} argConfig processing instructions
556
576
  * @param {ObjectConfiguration} config configuration
557
577
  * @param {Value} value the value
@@ -579,6 +599,7 @@ const processArgumentConfig = (argConfig, config, value, index) => {
579
599
  };
580
600
 
581
601
  /**
602
+ * Gets expected value.
582
603
  * @param {ArgumentConfig} argConfig processing instructions
583
604
  * @returns {string | undefined} expected message
584
605
  */
@@ -606,6 +627,7 @@ const getExpectedValue = (argConfig) => {
606
627
  const DECIMAL_NUMBER_REGEXP = /^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?$/i;
607
628
 
608
629
  /**
630
+ * Parses value for argument config.
609
631
  * @param {ArgumentConfig} argConfig processing instructions
610
632
  * @param {Value} value the value
611
633
  * @returns {ParsedValue | undefined} parsed value
@@ -665,6 +687,7 @@ const parseValueForArgumentConfig = (argConfig, value) => {
665
687
  /** @typedef {Record<string, Value[]>} Values */
666
688
 
667
689
  /**
690
+ * Processes the provided arg.
668
691
  * @param {Flags} args object of arguments
669
692
  * @param {ObjectConfiguration} config configuration
670
693
  * @param {Values} values object with values
@@ -684,6 +707,7 @@ const processArguments = (args, config, values) => {
684
707
  continue;
685
708
  }
686
709
  /**
710
+ * Processes the provided value.
687
711
  * @param {Value} value value
688
712
  * @param {number | undefined} i index
689
713
  */
@@ -718,6 +742,7 @@ const processArguments = (args, config, values) => {
718
742
  };
719
743
 
720
744
  /**
745
+ * Checks whether this object is color supported.
721
746
  * @returns {boolean} true when colors supported, otherwise false
722
747
  */
723
748
  const isColorSupported = () => {
@@ -741,6 +766,7 @@ const isColorSupported = () => {
741
766
  };
742
767
 
743
768
  /**
769
+ * Returns result.
744
770
  * @param {number} index index
745
771
  * @param {string} string string
746
772
  * @param {string} close close
@@ -761,6 +787,7 @@ const replaceClose = (
761
787
  ) => head + (next < 0 ? tail : replaceClose(next, tail, close, replace));
762
788
 
763
789
  /**
790
+ * Returns result.
764
791
  * @param {number} index index to replace
765
792
  * @param {string} string string
766
793
  * @param {string} open open string
@@ -776,6 +803,7 @@ const clearBleed = (index, string, open, close, replace) =>
776
803
  /** @typedef {(value: EXPECTED_ANY) => string} PrintFunction */
777
804
 
778
805
  /**
806
+ * Returns function to create color.
779
807
  * @param {string} open open string
780
808
  * @param {string} close close string
781
809
  * @param {string=} replace extra replace
@@ -790,6 +818,7 @@ const filterEmpty =
790
818
  : "";
791
819
 
792
820
  /**
821
+ * Returns result.
793
822
  * @param {number} open open code
794
823
  * @param {number} close close code
795
824
  * @param {string=} replace extra replace
@@ -799,15 +828,18 @@ const init = (open, close, replace) =>
799
828
  filterEmpty(`\u001B[${open}m`, `\u001B[${close}m`, replace);
800
829
 
801
830
  /**
831
+ * Defines the colors type used by this module.
802
832
  * @typedef {{ reset: PrintFunction, bold: PrintFunction, dim: PrintFunction, italic: PrintFunction, underline: PrintFunction, inverse: PrintFunction, hidden: PrintFunction, strikethrough: PrintFunction, black: PrintFunction, red: PrintFunction, green: PrintFunction, yellow: PrintFunction, blue: PrintFunction, magenta: PrintFunction, cyan: PrintFunction, white: PrintFunction, gray: PrintFunction, bgBlack: PrintFunction, bgRed: PrintFunction, bgGreen: PrintFunction, bgYellow: PrintFunction, bgBlue: PrintFunction, bgMagenta: PrintFunction, bgCyan: PrintFunction, bgWhite: PrintFunction, blackBright: PrintFunction, redBright: PrintFunction, greenBright: PrintFunction, yellowBright: PrintFunction, blueBright: PrintFunction, magentaBright: PrintFunction, cyanBright: PrintFunction, whiteBright: PrintFunction, bgBlackBright: PrintFunction, bgRedBright: PrintFunction, bgGreenBright: PrintFunction, bgYellowBright: PrintFunction, bgBlueBright: PrintFunction, bgMagentaBright: PrintFunction, bgCyanBright: PrintFunction, bgWhiteBright: PrintFunction }} Colors
803
833
  */
804
834
 
805
835
  /**
836
+ * Defines the colors options type used by this module.
806
837
  * @typedef {object} ColorsOptions
807
838
  * @property {boolean=} useColor force use colors
808
839
  */
809
840
 
810
841
  /**
842
+ * Creates a colors from the provided colors option.
811
843
  * @param {ColorsOptions=} options options
812
844
  * @returns {Colors} colors
813
845
  */
@@ -16,6 +16,7 @@ const browserslist = require("browserslist");
16
16
  const inputRx = /^(?:((?:[A-Z]:)?[/\\].*?))?(?::(.+?))?$/i;
17
17
 
18
18
  /**
19
+ * Returns selected browsers.
19
20
  * @param {string | null | undefined} input input string
20
21
  * @param {string} context the context directory
21
22
  * @returns {string[] | undefined} selected browsers
@@ -58,6 +59,7 @@ const load = (input, context) => {
58
59
  };
59
60
 
60
61
  /**
62
+ * Returns target properties.
61
63
  * @param {string[]} browsers supported browsers list
62
64
  * @returns {EcmaTargetProperties & PlatformTargetProperties & ApiTargetProperties} target properties
63
65
  */