webpack 5.106.1 → 5.106.2

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 (553) hide show
  1. package/lib/APIPlugin.js +3 -1
  2. package/lib/AbstractMethodError.js +10 -1
  3. package/lib/AsyncDependenciesBlock.js +3 -0
  4. package/lib/AsyncDependencyToInitialChunkError.js +6 -1
  5. package/lib/AutomaticPrefetchPlugin.js +6 -1
  6. package/lib/BannerPlugin.js +10 -1
  7. package/lib/Cache.js +26 -1
  8. package/lib/CacheFacade.js +26 -0
  9. package/lib/CaseSensitiveModulesWarning.js +9 -1
  10. package/lib/Chunk.js +46 -0
  11. package/lib/ChunkGraph.js +111 -0
  12. package/lib/ChunkGroup.js +57 -13
  13. package/lib/ChunkTemplate.js +9 -0
  14. package/lib/CleanPlugin.js +14 -1
  15. package/lib/CodeGenerationResults.js +19 -0
  16. package/lib/CommentCompilationWarning.js +6 -0
  17. package/lib/CompatibilityPlugin.js +15 -1
  18. package/lib/Compilation.js +127 -1
  19. package/lib/Compiler.js +37 -4
  20. package/lib/ConcatenationScope.js +24 -1
  21. package/lib/ConditionalInitFragment.js +6 -0
  22. package/lib/ConstPlugin.js +4 -1
  23. package/lib/ContextExclusionPlugin.js +2 -1
  24. package/lib/ContextModule.js +12 -0
  25. package/lib/ContextModuleFactory.js +10 -0
  26. package/lib/ContextReplacementPlugin.js +4 -1
  27. package/lib/CssModule.js +6 -0
  28. package/lib/DefinePlugin.js +20 -7
  29. package/lib/DelegatedModule.js +13 -0
  30. package/lib/DelegatedModuleFactoryPlugin.js +3 -0
  31. package/lib/DelegatedPlugin.js +2 -1
  32. package/lib/DependenciesBlock.js +6 -1
  33. package/lib/Dependency.js +26 -3
  34. package/lib/DependencyTemplate.js +5 -0
  35. package/lib/DependencyTemplates.js +4 -0
  36. package/lib/DllEntryPlugin.js +2 -1
  37. package/lib/DllModule.js +11 -0
  38. package/lib/DllModuleFactory.js +1 -0
  39. package/lib/DllPlugin.js +2 -1
  40. package/lib/DllReferencePlugin.js +11 -6
  41. package/lib/DotenvPlugin.js +3 -0
  42. package/lib/DynamicEntryPlugin.js +3 -1
  43. package/lib/EntryOptionPlugin.js +3 -0
  44. package/lib/EntryPlugin.js +2 -1
  45. package/lib/Entrypoint.js +4 -0
  46. package/lib/EnvironmentPlugin.js +2 -1
  47. package/lib/ErrorHelpers.js +7 -0
  48. package/lib/EvalDevToolModulePlugin.js +3 -1
  49. package/lib/EvalSourceMapDevToolPlugin.js +3 -1
  50. package/lib/ExportsInfo.js +56 -2
  51. package/lib/ExportsInfoApiPlugin.js +2 -1
  52. package/lib/ExternalModule.js +38 -0
  53. package/lib/ExternalModuleFactoryPlugin.js +10 -0
  54. package/lib/ExternalsPlugin.js +2 -1
  55. package/lib/FileSystemInfo.js +105 -0
  56. package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
  57. package/lib/FlagDependencyExportsPlugin.js +4 -1
  58. package/lib/FlagDependencyUsagePlugin.js +5 -1
  59. package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
  60. package/lib/Generator.js +13 -0
  61. package/lib/GraphHelpers.js +3 -0
  62. package/lib/HookWebpackError.js +6 -0
  63. package/lib/HotModuleReplacementPlugin.js +9 -1
  64. package/lib/IgnoreErrorModuleFactory.js +2 -0
  65. package/lib/IgnorePlugin.js +2 -1
  66. package/lib/IgnoreWarningsPlugin.js +2 -1
  67. package/lib/InitFragment.js +10 -0
  68. package/lib/InvalidDependenciesModuleWarning.js +1 -0
  69. package/lib/JavascriptMetaInfoPlugin.js +2 -1
  70. package/lib/LibManifestPlugin.js +4 -1
  71. package/lib/LibraryTemplatePlugin.js +2 -1
  72. package/lib/LoaderOptionsPlugin.js +3 -1
  73. package/lib/LoaderTargetPlugin.js +2 -1
  74. package/lib/MainTemplate.js +15 -0
  75. package/lib/ManifestPlugin.js +9 -2
  76. package/lib/Module.js +82 -1
  77. package/lib/ModuleBuildError.js +3 -0
  78. package/lib/ModuleDependencyWarning.js +1 -0
  79. package/lib/ModuleError.js +2 -0
  80. package/lib/ModuleFactory.js +5 -0
  81. package/lib/ModuleFilenameHelpers.js +3 -0
  82. package/lib/ModuleGraph.js +66 -0
  83. package/lib/ModuleGraphConnection.js +9 -0
  84. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  85. package/lib/ModuleNotFoundError.js +1 -0
  86. package/lib/ModuleParseError.js +3 -0
  87. package/lib/ModuleRestoreError.js +1 -0
  88. package/lib/ModuleSourceTypeConstants.js +1 -0
  89. package/lib/ModuleStoreError.js +1 -0
  90. package/lib/ModuleTemplate.js +8 -0
  91. package/lib/ModuleWarning.js +3 -0
  92. package/lib/MultiCompiler.js +28 -0
  93. package/lib/MultiStats.js +8 -0
  94. package/lib/MultiWatching.js +3 -0
  95. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  96. package/lib/NodeStuffInWebError.js +1 -0
  97. package/lib/NodeStuffPlugin.js +10 -1
  98. package/lib/NormalModule.js +30 -2
  99. package/lib/NormalModuleFactory.js +25 -0
  100. package/lib/NormalModuleReplacementPlugin.js +1 -1
  101. package/lib/NullFactory.js +1 -0
  102. package/lib/OptionsApply.js +1 -0
  103. package/lib/Parser.js +2 -0
  104. package/lib/PlatformPlugin.js +2 -1
  105. package/lib/PrefetchPlugin.js +2 -1
  106. package/lib/ProgressPlugin.js +29 -12
  107. package/lib/ProvidePlugin.js +3 -1
  108. package/lib/RawModule.js +12 -0
  109. package/lib/RecordIdsPlugin.js +8 -0
  110. package/lib/RequestShortener.js +8 -0
  111. package/lib/RequireJsStuffPlugin.js +2 -1
  112. package/lib/ResolverFactory.js +5 -0
  113. package/lib/RuntimeGlobals.js +1 -0
  114. package/lib/RuntimeModule.js +13 -0
  115. package/lib/RuntimePlugin.js +2 -0
  116. package/lib/RuntimeTemplate.js +35 -1
  117. package/lib/SelfModuleFactory.js +2 -0
  118. package/lib/SizeFormatHelpers.js +1 -0
  119. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  120. package/lib/SourceMapDevToolPlugin.js +3 -1
  121. package/lib/Stats.js +5 -0
  122. package/lib/Template.js +20 -0
  123. package/lib/TemplatedPathPlugin.js +10 -3
  124. package/lib/UnhandledSchemeError.js +6 -0
  125. package/lib/UnsupportedFeatureWarning.js +1 -0
  126. package/lib/UseStrictPlugin.js +2 -1
  127. package/lib/WarnCaseSensitiveModulesPlugin.js +1 -1
  128. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  129. package/lib/WarnNoModeSetPlugin.js +1 -1
  130. package/lib/WatchIgnorePlugin.js +4 -1
  131. package/lib/Watching.js +14 -0
  132. package/lib/WebpackError.js +3 -0
  133. package/lib/WebpackIsIncludedPlugin.js +2 -0
  134. package/lib/WebpackOptionsApply.js +1 -0
  135. package/lib/WebpackOptionsDefaulter.js +1 -0
  136. package/lib/asset/AssetBytesGenerator.js +6 -0
  137. package/lib/asset/AssetBytesParser.js +1 -0
  138. package/lib/asset/AssetGenerator.js +20 -2
  139. package/lib/asset/AssetModulesPlugin.js +4 -1
  140. package/lib/asset/AssetParser.js +2 -0
  141. package/lib/asset/AssetSourceGenerator.js +6 -0
  142. package/lib/asset/AssetSourceParser.js +1 -0
  143. package/lib/asset/RawDataUrlModule.js +11 -0
  144. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  145. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
  146. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  147. package/lib/buildChunkGraph.js +15 -0
  148. package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
  149. package/lib/cache/AddManagedPathsPlugin.js +2 -1
  150. package/lib/cache/IdleFileCachePlugin.js +2 -1
  151. package/lib/cache/MemoryCachePlugin.js +1 -1
  152. package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
  153. package/lib/cache/PackFileCacheStrategy.js +29 -0
  154. package/lib/cache/ResolverCachePlugin.js +10 -1
  155. package/lib/cache/getLazyHashedEtag.js +4 -0
  156. package/lib/cache/mergeEtags.js +2 -0
  157. package/lib/cli.js +30 -0
  158. package/lib/config/browserslistTargetHandler.js +2 -0
  159. package/lib/config/defaults.js +35 -2
  160. package/lib/config/normalization.js +12 -0
  161. package/lib/config/target.js +11 -0
  162. package/lib/container/ContainerEntryDependency.js +2 -0
  163. package/lib/container/ContainerEntryModule.js +12 -0
  164. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  165. package/lib/container/ContainerExposedDependency.js +4 -0
  166. package/lib/container/ContainerPlugin.js +2 -1
  167. package/lib/container/ContainerReferencePlugin.js +2 -1
  168. package/lib/container/FallbackDependency.js +4 -0
  169. package/lib/container/FallbackItemDependency.js +1 -0
  170. package/lib/container/FallbackModule.js +12 -0
  171. package/lib/container/FallbackModuleFactory.js +1 -0
  172. package/lib/container/ModuleFederationPlugin.js +3 -1
  173. package/lib/container/RemoteModule.js +13 -0
  174. package/lib/container/RemoteRuntimeModule.js +1 -0
  175. package/lib/container/RemoteToExternalDependency.js +1 -0
  176. package/lib/container/options.js +7 -0
  177. package/lib/css/CssGenerator.js +35 -14
  178. package/lib/css/CssInjectStyleRuntimeModule.js +1 -0
  179. package/lib/css/CssLoadingRuntimeModule.js +1 -0
  180. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +1 -0
  181. package/lib/css/CssModulesPlugin.js +69 -3
  182. package/lib/css/CssParser.js +59 -1
  183. package/lib/css/walkCssTokens.js +31 -0
  184. package/lib/debug/ProfilingPlugin.js +19 -1
  185. package/lib/dependencies/AMDDefineDependency.js +7 -0
  186. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
  187. package/lib/dependencies/AMDPlugin.js +4 -1
  188. package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
  189. package/lib/dependencies/AMDRequireContextDependency.js +3 -0
  190. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  191. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +13 -0
  192. package/lib/dependencies/AMDRequireDependency.js +4 -0
  193. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  194. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  195. package/lib/dependencies/CachedConstDependency.js +6 -1
  196. package/lib/dependencies/CommonJsDependencyHelpers.js +1 -0
  197. package/lib/dependencies/CommonJsExportRequireDependency.js +8 -0
  198. package/lib/dependencies/CommonJsExportsDependency.js +4 -0
  199. package/lib/dependencies/CommonJsExportsParserPlugin.js +8 -0
  200. package/lib/dependencies/CommonJsFullRequireDependency.js +4 -0
  201. package/lib/dependencies/CommonJsImportsParserPlugin.js +20 -0
  202. package/lib/dependencies/CommonJsPlugin.js +4 -1
  203. package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
  204. package/lib/dependencies/CommonJsRequireDependency.js +3 -0
  205. package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
  206. package/lib/dependencies/ConstDependency.js +6 -1
  207. package/lib/dependencies/ContextDependency.js +8 -1
  208. package/lib/dependencies/ContextDependencyHelpers.js +3 -0
  209. package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
  210. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  211. package/lib/dependencies/ContextElementDependency.js +4 -0
  212. package/lib/dependencies/CreateRequireParserPlugin.js +6 -0
  213. package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
  214. package/lib/dependencies/CriticalDependencyWarning.js +1 -0
  215. package/lib/dependencies/CssIcssExportDependency.js +10 -2
  216. package/lib/dependencies/CssIcssImportDependency.js +4 -1
  217. package/lib/dependencies/CssIcssSymbolDependency.js +5 -1
  218. package/lib/dependencies/CssImportDependency.js +4 -0
  219. package/lib/dependencies/CssUrlDependency.js +7 -0
  220. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  221. package/lib/dependencies/DllEntryDependency.js +3 -0
  222. package/lib/dependencies/DynamicExports.js +5 -0
  223. package/lib/dependencies/EntryDependency.js +1 -0
  224. package/lib/dependencies/ExportsInfoDependency.js +6 -0
  225. package/lib/dependencies/ExternalModuleDependency.js +5 -0
  226. package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
  227. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
  228. package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
  229. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
  230. package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
  231. package/lib/dependencies/HarmonyDetectionParserPlugin.js +3 -0
  232. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
  233. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +2 -0
  234. package/lib/dependencies/HarmonyExportExpressionDependency.js +5 -0
  235. package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
  236. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +33 -2
  237. package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
  238. package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
  239. package/lib/dependencies/HarmonyExports.js +2 -0
  240. package/lib/dependencies/HarmonyImportDependency.js +11 -0
  241. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +9 -0
  242. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
  243. package/lib/dependencies/HarmonyImportSpecifierDependency.js +17 -2
  244. package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
  245. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
  246. package/lib/dependencies/ImportContextDependency.js +4 -0
  247. package/lib/dependencies/ImportDependency.js +5 -0
  248. package/lib/dependencies/ImportEagerDependency.js +2 -0
  249. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  250. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +3 -0
  251. package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
  252. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
  253. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
  254. package/lib/dependencies/ImportMetaPlugin.js +6 -0
  255. package/lib/dependencies/ImportParserPlugin.js +7 -0
  256. package/lib/dependencies/ImportPhase.js +6 -2
  257. package/lib/dependencies/ImportPlugin.js +2 -1
  258. package/lib/dependencies/ImportWeakDependency.js +2 -0
  259. package/lib/dependencies/JsonExportsDependency.js +6 -1
  260. package/lib/dependencies/LoaderDependency.js +2 -0
  261. package/lib/dependencies/LoaderImportDependency.js +2 -0
  262. package/lib/dependencies/LoaderPlugin.js +4 -1
  263. package/lib/dependencies/LocalModule.js +4 -0
  264. package/lib/dependencies/LocalModuleDependency.js +4 -0
  265. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  266. package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
  267. package/lib/dependencies/ModuleDependency.js +7 -0
  268. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  269. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  270. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
  271. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
  272. package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
  273. package/lib/dependencies/NullDependency.js +2 -0
  274. package/lib/dependencies/PrefetchDependency.js +1 -0
  275. package/lib/dependencies/ProvidedDependency.js +6 -1
  276. package/lib/dependencies/PureExpressionDependency.js +7 -1
  277. package/lib/dependencies/RequireContextDependency.js +1 -0
  278. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
  279. package/lib/dependencies/RequireContextPlugin.js +2 -1
  280. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  281. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
  282. package/lib/dependencies/RequireEnsureDependency.js +4 -0
  283. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  284. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  285. package/lib/dependencies/RequireHeaderDependency.js +4 -0
  286. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  287. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -0
  288. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  289. package/lib/dependencies/RequireResolveContextDependency.js +3 -0
  290. package/lib/dependencies/RequireResolveDependency.js +1 -0
  291. package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
  292. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
  293. package/lib/dependencies/StaticExportsDependency.js +3 -0
  294. package/lib/dependencies/SystemPlugin.js +4 -1
  295. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  296. package/lib/dependencies/URLContextDependency.js +3 -0
  297. package/lib/dependencies/URLDependency.js +6 -0
  298. package/lib/dependencies/URLPlugin.js +2 -0
  299. package/lib/dependencies/UnsupportedDependency.js +4 -0
  300. package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
  301. package/lib/dependencies/WebAssemblyImportDependency.js +4 -1
  302. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
  303. package/lib/dependencies/WorkerDependency.js +6 -1
  304. package/lib/dependencies/WorkerPlugin.js +9 -1
  305. package/lib/dependencies/getFunctionExpression.js +1 -0
  306. package/lib/dependencies/processExportInfo.js +1 -0
  307. package/lib/electron/ElectronTargetPlugin.js +2 -1
  308. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  309. package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
  310. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
  311. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
  312. package/lib/formatLocation.js +2 -0
  313. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  314. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  315. package/lib/hmr/LazyCompilationPlugin.js +20 -1
  316. package/lib/hmr/lazyCompilationBackend.js +2 -0
  317. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  318. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  319. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  320. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  321. package/lib/ids/IdHelpers.js +20 -0
  322. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  323. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  324. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  325. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  326. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  327. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  328. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  329. package/lib/index.js +5 -0
  330. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
  331. package/lib/javascript/BasicEvaluatedExpression.js +4 -2
  332. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  333. package/lib/javascript/ChunkHelpers.js +1 -0
  334. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  335. package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
  336. package/lib/javascript/JavascriptGenerator.js +10 -0
  337. package/lib/javascript/JavascriptModulesPlugin.js +23 -1
  338. package/lib/javascript/JavascriptParser.js +163 -0
  339. package/lib/javascript/JavascriptParserHelpers.js +6 -0
  340. package/lib/javascript/StartupHelpers.js +5 -0
  341. package/lib/json/JsonData.js +5 -0
  342. package/lib/json/JsonGenerator.js +21 -0
  343. package/lib/json/JsonModulesPlugin.js +1 -1
  344. package/lib/json/JsonParser.js +8 -10
  345. package/lib/library/AbstractLibraryPlugin.js +16 -1
  346. package/lib/library/AmdLibraryPlugin.js +8 -0
  347. package/lib/library/AssignLibraryPlugin.js +16 -0
  348. package/lib/library/EnableLibraryPlugin.js +7 -1
  349. package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
  350. package/lib/library/JsonpLibraryPlugin.js +8 -0
  351. package/lib/library/ModuleLibraryPlugin.js +12 -1
  352. package/lib/library/SystemLibraryPlugin.js +8 -0
  353. package/lib/library/UmdLibraryPlugin.js +16 -0
  354. package/lib/logging/Logger.js +17 -0
  355. package/lib/logging/createConsoleLogger.js +7 -0
  356. package/lib/logging/runtime.js +2 -0
  357. package/lib/logging/truncateArgs.js +2 -0
  358. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  359. package/lib/node/NodeEnvironmentPlugin.js +3 -1
  360. package/lib/node/NodeSourcePlugin.js +1 -1
  361. package/lib/node/NodeTargetPlugin.js +2 -1
  362. package/lib/node/NodeTemplatePlugin.js +3 -1
  363. package/lib/node/NodeWatchFileSystem.js +2 -0
  364. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
  365. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
  366. package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
  367. package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
  368. package/lib/node/nodeConsole.js +3 -0
  369. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  370. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  371. package/lib/optimize/ConcatenatedModule.js +11 -0
  372. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  373. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
  374. package/lib/optimize/InnerGraph.js +15 -0
  375. package/lib/optimize/InnerGraphPlugin.js +3 -1
  376. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  377. package/lib/optimize/MangleExportsPlugin.js +5 -1
  378. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  379. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  380. package/lib/optimize/MinMaxSizeWarning.js +1 -0
  381. package/lib/optimize/ModuleConcatenationPlugin.js +21 -1
  382. package/lib/optimize/RealContentHashPlugin.js +16 -1
  383. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  384. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  385. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  386. package/lib/optimize/SideEffectsFlagPlugin.js +7 -1
  387. package/lib/optimize/SplitChunksPlugin.js +49 -1
  388. package/lib/performance/AssetsOverSizeLimitWarning.js +1 -0
  389. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -0
  390. package/lib/performance/SizeLimitsPlugin.js +7 -1
  391. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  392. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
  393. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  394. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -0
  395. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
  396. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  397. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  398. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  399. package/lib/rules/RuleSetCompiler.js +18 -0
  400. package/lib/rules/UseEffectRulePlugin.js +6 -0
  401. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
  402. package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
  403. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  404. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  405. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
  406. package/lib/runtime/CompatRuntimeModule.js +2 -0
  407. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
  408. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  409. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  410. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
  411. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  412. package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
  413. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  414. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  415. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
  416. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  417. package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
  418. package/lib/runtime/HelperRuntimeModule.js +5 -0
  419. package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
  420. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +2 -0
  421. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
  422. package/lib/runtime/NonceRuntimeModule.js +1 -0
  423. package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
  424. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  425. package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
  426. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  427. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  428. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
  429. package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
  430. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  431. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  432. package/lib/schemes/DataUriPlugin.js +1 -1
  433. package/lib/schemes/FileUriPlugin.js +1 -1
  434. package/lib/schemes/HttpUriPlugin.js +43 -1
  435. package/lib/schemes/VirtualUrlPlugin.js +6 -1
  436. package/lib/serialization/AggregateErrorSerializer.js +2 -0
  437. package/lib/serialization/ArraySerializer.js +2 -0
  438. package/lib/serialization/BinaryMiddleware.js +20 -1
  439. package/lib/serialization/DateObjectSerializer.js +2 -0
  440. package/lib/serialization/ErrorObjectSerializer.js +3 -0
  441. package/lib/serialization/FileMiddleware.js +21 -0
  442. package/lib/serialization/MapObjectSerializer.js +2 -0
  443. package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
  444. package/lib/serialization/ObjectMiddleware.js +23 -0
  445. package/lib/serialization/PlainObjectSerializer.js +7 -0
  446. package/lib/serialization/RegExpObjectSerializer.js +2 -0
  447. package/lib/serialization/Serializer.js +5 -0
  448. package/lib/serialization/SerializerMiddleware.js +12 -0
  449. package/lib/serialization/SetObjectSerializer.js +2 -0
  450. package/lib/serialization/SingleItemMiddleware.js +3 -0
  451. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  452. package/lib/sharing/ConsumeSharedModule.js +15 -0
  453. package/lib/sharing/ConsumeSharedPlugin.js +6 -1
  454. package/lib/sharing/ConsumeSharedRuntimeModule.js +1 -0
  455. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  456. package/lib/sharing/ProvideSharedDependency.js +4 -0
  457. package/lib/sharing/ProvideSharedModule.js +11 -0
  458. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  459. package/lib/sharing/ProvideSharedPlugin.js +4 -1
  460. package/lib/sharing/SharePlugin.js +2 -1
  461. package/lib/sharing/ShareRuntimeModule.js +1 -0
  462. package/lib/sharing/resolveMatchedConfigs.js +3 -0
  463. package/lib/sharing/utils.js +8 -0
  464. package/lib/stats/DefaultStatsFactoryPlugin.js +56 -1
  465. package/lib/stats/DefaultStatsPresetPlugin.js +11 -1
  466. package/lib/stats/DefaultStatsPrinterPlugin.js +37 -1
  467. package/lib/stats/StatsFactory.js +12 -0
  468. package/lib/stats/StatsPrinter.js +7 -0
  469. package/lib/url/URLParserPlugin.js +6 -0
  470. package/lib/util/AppendOnlyStackedSet.js +15 -0
  471. package/lib/util/ArrayHelpers.js +1 -0
  472. package/lib/util/ArrayQueue.js +10 -5
  473. package/lib/util/AsyncQueue.js +20 -0
  474. package/lib/util/IterableHelpers.js +3 -0
  475. package/lib/util/LazyBucketSortedSet.js +21 -0
  476. package/lib/util/LazySet.js +39 -0
  477. package/lib/util/ParallelismFactorCalculator.js +1 -0
  478. package/lib/util/Queue.js +6 -3
  479. package/lib/util/Semaphore.js +14 -1
  480. package/lib/util/SetHelpers.js +3 -0
  481. package/lib/util/SortableSet.js +6 -0
  482. package/lib/util/StackedCacheMap.js +20 -3
  483. package/lib/util/StackedMap.js +45 -0
  484. package/lib/util/StringXor.js +1 -1
  485. package/lib/util/TupleQueue.js +7 -3
  486. package/lib/util/TupleSet.js +13 -0
  487. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  488. package/lib/util/WeakTupleMap.js +33 -0
  489. package/lib/util/binarySearchBounds.js +1 -0
  490. package/lib/util/cleverMerge.js +17 -0
  491. package/lib/util/comparators.js +31 -0
  492. package/lib/util/compileBooleanMatcher.js +9 -0
  493. package/lib/util/concatenate.js +6 -0
  494. package/lib/util/conventions.js +4 -0
  495. package/lib/util/dataURL.js +1 -0
  496. package/lib/util/deprecation.js +19 -0
  497. package/lib/util/deterministicGrouping.js +20 -0
  498. package/lib/util/extractSourceMap.js +1 -0
  499. package/lib/util/extractUrlAndGlobal.js +1 -0
  500. package/lib/util/findGraphRoots.js +5 -0
  501. package/lib/util/fs.js +63 -0
  502. package/lib/util/generateDebugId.js +1 -0
  503. package/lib/util/hash/BatchedHash.js +1 -0
  504. package/lib/util/hash/BulkUpdateHash.js +1 -0
  505. package/lib/util/hash/hash-digest.js +8 -0
  506. package/lib/util/hash/wasm-hash.js +5 -0
  507. package/lib/util/identifier.js +19 -0
  508. package/lib/util/magicComment.js +1 -0
  509. package/lib/util/makeSerializable.js +6 -0
  510. package/lib/util/memoize.js +2 -0
  511. package/lib/util/mimeTypes.js +176 -0
  512. package/lib/util/nonNumericOnlyHash.js +1 -0
  513. package/lib/util/parseJson.js +112 -0
  514. package/lib/util/processAsyncTree.js +8 -0
  515. package/lib/util/property.js +1 -0
  516. package/lib/util/registerExternalSerializer.js +20 -0
  517. package/lib/util/removeBOM.js +1 -0
  518. package/lib/util/runtime.js +32 -0
  519. package/lib/util/semver.js +15 -0
  520. package/lib/util/serialization.js +2 -0
  521. package/lib/util/smartGrouping.js +8 -0
  522. package/lib/util/source.js +2 -0
  523. package/lib/validateSchema.js +1 -0
  524. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  525. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
  526. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
  527. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  528. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
  529. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +10 -1
  530. package/lib/wasm-async/AsyncWebAssemblyParser.js +1 -0
  531. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
  532. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +1 -0
  533. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
  534. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +1 -1
  535. package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
  536. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +2 -0
  537. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  538. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
  539. package/lib/wasm-sync/WebAssemblyParser.js +2 -0
  540. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  541. package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
  542. package/lib/web/FetchCompileWasmPlugin.js +13 -1
  543. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  544. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
  545. package/lib/web/JsonpTemplatePlugin.js +2 -1
  546. package/lib/webpack.js +10 -0
  547. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  548. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
  549. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  550. package/package.json +12 -14
  551. package/schemas/WebpackOptions.check.js +1 -1
  552. package/schemas/WebpackOptions.json +44 -55
  553. package/types.d.ts +4594 -331
@@ -48,6 +48,7 @@ const WRITE_LIMIT_TOTAL = 0x7fff0000;
48
48
  const WRITE_LIMIT_CHUNK = 511 * 1024 * 1024;
49
49
 
50
50
  /**
51
+ * Returns hash.
51
52
  * @param {Buffer[]} buffers buffers
52
53
  * @param {HashFunction} hashFunction hash function to use
53
54
  * @returns {string} hash
@@ -85,6 +86,7 @@ const readUInt64LE = Buffer.prototype.readBigUInt64LE
85
86
  /** @typedef {Promise<void | void[]>} BackgroundJob */
86
87
 
87
88
  /**
89
+ * Defines the serialize result type used by this module.
88
90
  * @typedef {object} SerializeResult
89
91
  * @property {string | false} name
90
92
  * @property {number} size
@@ -93,10 +95,12 @@ const readUInt64LE = Buffer.prototype.readBigUInt64LE
93
95
 
94
96
  /** @typedef {{ name: string, size: number }} LazyOptions */
95
97
  /**
98
+ * Defines the lazy function type used by this module.
96
99
  * @typedef {import("./SerializerMiddleware").LazyFunction<BufferSerializableType[], Buffer, FileMiddleware, LazyOptions>} LazyFunction
97
100
  */
98
101
 
99
102
  /**
103
+ * Serializes this instance into the provided serializer context.
100
104
  * @param {FileMiddleware} middleware this
101
105
  * @param {(BufferSerializableType | LazyFunction)[]} data data to be serialized
102
106
  * @param {string | boolean} name file base name
@@ -243,6 +247,7 @@ const serialize = async (
243
247
  };
244
248
 
245
249
  /**
250
+ * Restores this instance from the provided deserializer context.
246
251
  * @param {FileMiddleware} middleware this
247
252
  * @param {string | false} name filename
248
253
  * @param {(name: string | false) => Promise<Buffer[]>} readFile read content of a file
@@ -263,6 +268,7 @@ const deserialize = async (middleware, name, readFile) => {
263
268
  contentPosition = 0;
264
269
  };
265
270
  /**
271
+ * Processes the provided n.
266
272
  * @param {number} n number of bytes to ensure
267
273
  */
268
274
  const ensureData = (n) => {
@@ -294,6 +300,7 @@ const deserialize = async (middleware, name, readFile) => {
294
300
  }
295
301
  };
296
302
  /**
303
+ * Returns value value.
297
304
  * @returns {number} value value
298
305
  */
299
306
  const readUInt32LE = () => {
@@ -303,6 +310,7 @@ const deserialize = async (middleware, name, readFile) => {
303
310
  return value;
304
311
  };
305
312
  /**
313
+ * Returns value value.
306
314
  * @returns {number} value value
307
315
  */
308
316
  const readInt32LE = () => {
@@ -312,6 +320,7 @@ const deserialize = async (middleware, name, readFile) => {
312
320
  return value;
313
321
  };
314
322
  /**
323
+ * Returns buffer.
315
324
  * @param {number} l length
316
325
  * @returns {Buffer} buffer
317
326
  */
@@ -429,10 +438,12 @@ const deserialize = async (middleware, name, readFile) => {
429
438
  /** @typedef {{ filename: string, extension?: string }} Context */
430
439
 
431
440
  /**
441
+ * Represents FileMiddleware.
432
442
  * @extends {SerializerMiddleware<DeserializedType, SerializedType, Context>}
433
443
  */
434
444
  class FileMiddleware extends SerializerMiddleware {
435
445
  /**
446
+ * Creates an instance of FileMiddleware.
436
447
  * @param {IntermediateFileSystem} fs filesystem
437
448
  * @param {HashFunction} hashFunction hash function to use
438
449
  */
@@ -445,6 +456,7 @@ class FileMiddleware extends SerializerMiddleware {
445
456
  }
446
457
 
447
458
  /**
459
+ * Serializes this instance into the provided serializer context.
448
460
  * @param {DeserializedType} data data
449
461
  * @param {Context} context context object
450
462
  * @returns {SerializedType | Promise<SerializedType> | null} serialized data
@@ -460,6 +472,7 @@ class FileMiddleware extends SerializerMiddleware {
460
472
  /** @type {Set<string>} */
461
473
  const allWrittenFiles = new Set();
462
474
  /**
475
+ * Processes the provided name.
463
476
  * @param {string | false} name name
464
477
  * @param {Buffer[]} content content
465
478
  * @param {number} size size
@@ -471,6 +484,7 @@ class FileMiddleware extends SerializerMiddleware {
471
484
  : filename;
472
485
  await new Promise(
473
486
  /**
487
+ * Handles the callback logic for this hook.
474
488
  * @param {(value?: undefined) => void} resolve resolve
475
489
  * @param {(reason?: Error | null) => void} reject reject
476
490
  */
@@ -518,6 +532,7 @@ class FileMiddleware extends SerializerMiddleware {
518
532
  const len = chunks.length;
519
533
  let i = 0;
520
534
  /**
535
+ * Processes the provided err.
521
536
  * @param {(Error | null)=} err err
522
537
  */
523
538
  const batchWrite = (err) => {
@@ -557,6 +572,7 @@ class FileMiddleware extends SerializerMiddleware {
557
572
  // Rename the index file to disallow access during inconsistent file state
558
573
  await new Promise(
559
574
  /**
575
+ * Handles the callback logic for this hook.
560
576
  * @param {(value?: undefined) => void} resolve resolve
561
577
  */
562
578
  (resolve) => {
@@ -573,6 +589,7 @@ class FileMiddleware extends SerializerMiddleware {
573
589
  (file) =>
574
590
  new Promise(
575
591
  /**
592
+ * Handles the callback logic for this hook.
576
593
  * @param {(value?: undefined) => void} resolve resolve
577
594
  * @param {(reason?: Error | null) => void} reject reject
578
595
  * @returns {void}
@@ -590,6 +607,7 @@ class FileMiddleware extends SerializerMiddleware {
590
607
  // As final step automatically update the index file to have a consistent pack again
591
608
  await new Promise(
592
609
  /**
610
+ * Handles the callback logic for this hook.
593
611
  * @param {(value?: undefined) => void} resolve resolve
594
612
  * @returns {void}
595
613
  */
@@ -609,6 +627,7 @@ class FileMiddleware extends SerializerMiddleware {
609
627
  }
610
628
 
611
629
  /**
630
+ * Restores this instance from the provided deserializer context.
612
631
  * @param {SerializedType} data data
613
632
  * @param {Context} context context object
614
633
  * @returns {DeserializedType | Promise<DeserializedType>} deserialized data
@@ -616,6 +635,7 @@ class FileMiddleware extends SerializerMiddleware {
616
635
  deserialize(data, context) {
617
636
  const { filename, extension = "" } = context;
618
637
  /**
638
+ * Returns result.
619
639
  * @param {string | boolean} name name
620
640
  * @returns {Promise<Buffer[]>} result
621
641
  */
@@ -663,6 +683,7 @@ class FileMiddleware extends SerializerMiddleware {
663
683
  }),
664
684
  new Promise(
665
685
  /**
686
+ * Handles the chunk size callback for this hook.
666
687
  * @param {(value?: undefined) => void} resolve resolve
667
688
  * @param {(reason?: Error) => void} reject reject
668
689
  */
@@ -9,6 +9,7 @@
9
9
 
10
10
  class MapObjectSerializer {
11
11
  /**
12
+ * Serializes this instance into the provided serializer context.
12
13
  * @template K, V
13
14
  * @param {Map<K, V>} obj map
14
15
  * @param {ObjectSerializerContext} context context
@@ -24,6 +25,7 @@ class MapObjectSerializer {
24
25
  }
25
26
 
26
27
  /**
28
+ * Restores this instance from the provided deserializer context.
27
29
  * @template K, V
28
30
  * @param {ObjectDeserializerContext} context context
29
31
  * @returns {Map<K, V>} map
@@ -11,6 +11,7 @@
11
11
 
12
12
  class NullPrototypeObjectSerializer {
13
13
  /**
14
+ * Serializes this instance into the provided serializer context.
14
15
  * @template {object} T
15
16
  * @param {T} obj null object
16
17
  * @param {ObjectSerializerContext} context context
@@ -28,6 +29,7 @@ class NullPrototypeObjectSerializer {
28
29
  }
29
30
 
30
31
  /**
32
+ * Restores this instance from the provided deserializer context.
31
33
  * @template {object} T
32
34
  * @param {ObjectDeserializerContext} context context
33
35
  * @returns {T} null object
@@ -48,6 +48,7 @@ Technically any value can be used.
48
48
  */
49
49
 
50
50
  /**
51
+ * Defines the object serializer snapshot type used by this module.
51
52
  * @typedef {object} ObjectSerializerSnapshot
52
53
  * @property {number} length
53
54
  * @property {number} cycleStackSize
@@ -60,6 +61,7 @@ Technically any value can be used.
60
61
  /** @typedef {EXPECTED_OBJECT | string} ReferenceableItem */
61
62
 
62
63
  /**
64
+ * Defines the object serializer context type used by this module.
63
65
  * @typedef {object} ObjectSerializerContext
64
66
  * @property {(value: EXPECTED_ANY) => void} write
65
67
  * @property {(value: ReferenceableItem) => void} setCircularReference
@@ -70,18 +72,21 @@ Technically any value can be used.
70
72
  */
71
73
 
72
74
  /**
75
+ * Defines the object deserializer context type used by this module.
73
76
  * @typedef {object} ObjectDeserializerContext
74
77
  * @property {() => EXPECTED_ANY} read
75
78
  * @property {(value: ReferenceableItem) => void} setCircularReference
76
79
  */
77
80
 
78
81
  /**
82
+ * Defines the object serializer type used by this module.
79
83
  * @typedef {object} ObjectSerializer
80
84
  * @property {(value: EXPECTED_ANY, context: ObjectSerializerContext) => void} serialize
81
85
  * @property {(context: ObjectDeserializerContext) => EXPECTED_ANY} deserialize
82
86
  */
83
87
 
84
88
  /**
89
+ * Updates set size using the provided set.
85
90
  * @template T
86
91
  * @param {Set<T>} set set
87
92
  * @param {number} size count of items to keep
@@ -96,6 +101,7 @@ const setSetSize = (set, size) => {
96
101
  };
97
102
 
98
103
  /**
104
+ * Updates map size using the provided map.
99
105
  * @template K, X
100
106
  * @param {Map<K, X>} map map
101
107
  * @param {number} size count of items to keep
@@ -110,6 +116,7 @@ const setMapSize = (map, size) => {
110
116
  };
111
117
 
112
118
  /**
119
+ * Returns hash.
113
120
  * @param {Buffer} buffer buffer
114
121
  * @param {HashFunction} hashFunction hash function to use
115
122
  * @returns {string} hash
@@ -210,10 +217,12 @@ const loaders = new Map();
210
217
  /** @typedef {(context: ObjectSerializerContext | ObjectDeserializerContext) => void} ExtendContext */
211
218
 
212
219
  /**
220
+ * Represents ObjectMiddleware.
213
221
  * @extends {SerializerMiddleware<DeserializedType, SerializedType, Context>}
214
222
  */
215
223
  class ObjectMiddleware extends SerializerMiddleware {
216
224
  /**
225
+ * Creates an instance of ObjectMiddleware.
217
226
  * @param {ExtendContext} extendContext context extensions
218
227
  * @param {HashFunction} hashFunction hash function to use
219
228
  */
@@ -226,6 +235,7 @@ class ObjectMiddleware extends SerializerMiddleware {
226
235
  }
227
236
 
228
237
  /**
238
+ * Processes the provided reg exp.
229
239
  * @param {RegExp} regExp RegExp for which the request is tested
230
240
  * @param {(request: string) => boolean} loader loader to load the request, returns true when successful
231
241
  * @returns {void}
@@ -235,6 +245,7 @@ class ObjectMiddleware extends SerializerMiddleware {
235
245
  }
236
246
 
237
247
  /**
248
+ * Processes the provided constructor.
238
249
  * @param {Constructor} Constructor the constructor
239
250
  * @param {string} request the request which will be required when deserializing
240
251
  * @param {string | null} name the name to make multiple serializer unique when sharing a request
@@ -266,6 +277,7 @@ class ObjectMiddleware extends SerializerMiddleware {
266
277
  }
267
278
 
268
279
  /**
280
+ * Register not serializable.
269
281
  * @param {Constructor} Constructor the constructor
270
282
  * @returns {void}
271
283
  */
@@ -280,6 +292,7 @@ class ObjectMiddleware extends SerializerMiddleware {
280
292
  }
281
293
 
282
294
  /**
295
+ * Gets serializer for.
283
296
  * @param {EXPECTED_ANY} object for serialization
284
297
  * @returns {SerializerConfigWithSerializer} Serializer config
285
298
  */
@@ -311,6 +324,7 @@ class ObjectMiddleware extends SerializerMiddleware {
311
324
  }
312
325
 
313
326
  /**
327
+ * Gets deserializer for.
314
328
  * @param {string} request request
315
329
  * @param {string} name name
316
330
  * @returns {ObjectSerializer} serializer
@@ -327,6 +341,7 @@ class ObjectMiddleware extends SerializerMiddleware {
327
341
  }
328
342
 
329
343
  /**
344
+ * Get deserializer for without error.
330
345
  * @param {string} request request
331
346
  * @param {string} name name
332
347
  * @returns {ObjectSerializer | undefined} serializer
@@ -338,6 +353,7 @@ class ObjectMiddleware extends SerializerMiddleware {
338
353
  }
339
354
 
340
355
  /**
356
+ * Serializes this instance into the provided serializer context.
341
357
  * @param {DeserializedType} data data
342
358
  * @param {Context} context context object
343
359
  * @returns {SerializedType | Promise<SerializedType> | null} serialized data
@@ -349,6 +365,7 @@ class ObjectMiddleware extends SerializerMiddleware {
349
365
  /** @type {Map<ReferenceableItem, number>} */
350
366
  let referenceable = new Map();
351
367
  /**
368
+ * Adds referenceable.
352
369
  * @param {ReferenceableItem} item referenceable item
353
370
  */
354
371
  const addReferenceable = (item) => {
@@ -357,6 +374,7 @@ class ObjectMiddleware extends SerializerMiddleware {
357
374
  /** @type {Map<number, Buffer | [Buffer, Buffer] | Map<string, Buffer>>} */
358
375
  let bufferDedupeMap = new Map();
359
376
  /**
377
+ * Returns deduped buffer.
360
378
  * @param {Buffer} buf buffer
361
379
  * @returns {Buffer} deduped buffer
362
380
  */
@@ -426,6 +444,7 @@ class ObjectMiddleware extends SerializerMiddleware {
426
444
  /** @type {Set<ComplexSerializableType>} */
427
445
  const cycleStack = new Set();
428
446
  /**
447
+ * Returns stack.
429
448
  * @param {ComplexSerializableType} item item to stack
430
449
  * @returns {string} stack
431
450
  */
@@ -531,6 +550,7 @@ class ObjectMiddleware extends SerializerMiddleware {
531
550
  };
532
551
  this.extendContext(ctx);
533
552
  /**
553
+ * Processes the provided item.
534
554
  * @param {ComplexSerializableType} item item to serialize
535
555
  */
536
556
  const process = (item) => {
@@ -681,6 +701,7 @@ class ObjectMiddleware extends SerializerMiddleware {
681
701
  }
682
702
 
683
703
  /**
704
+ * Restores this instance from the provided deserializer context.
684
705
  * @param {SerializedType} data data
685
706
  * @param {Context} context context object
686
707
  * @returns {DeserializedType | Promise<DeserializedType>} deserialized data
@@ -703,6 +724,7 @@ class ObjectMiddleware extends SerializerMiddleware {
703
724
  /** @type {ReferenceableItem[]} */
704
725
  let referenceable = [];
705
726
  /**
727
+ * Adds referenceable.
706
728
  * @param {ReferenceableItem} item referenceable item
707
729
  */
708
730
  const addReferenceable = (item) => {
@@ -726,6 +748,7 @@ class ObjectMiddleware extends SerializerMiddleware {
726
748
  };
727
749
  this.extendContext(ctx);
728
750
  /**
751
+ * Decodes the provided value.
729
752
  * @returns {ComplexSerializableType} deserialize value
730
753
  */
731
754
  const decodeValue = () => {
@@ -10,12 +10,14 @@
10
10
  /** @typedef {EXPECTED_FUNCTION} CacheAssoc */
11
11
 
12
12
  /**
13
+ * Defines the shared type used by this module.
13
14
  * @template T
14
15
  * @typedef {WeakMap<CacheAssoc, ObjectStructure<T>>}
15
16
  */
16
17
  const cache = new WeakMap();
17
18
 
18
19
  /**
20
+ * Represents ObjectStructure.
19
21
  * @template T
20
22
  */
21
23
  class ObjectStructure {
@@ -27,6 +29,7 @@ class ObjectStructure {
27
29
  }
28
30
 
29
31
  /**
32
+ * Returns keys.
30
33
  * @param {keyof T[]} keys keys
31
34
  * @returns {keyof T[]} keys
32
35
  */
@@ -36,6 +39,7 @@ class ObjectStructure {
36
39
  }
37
40
 
38
41
  /**
42
+ * Returns object structure.
39
43
  * @param {keyof T} key key
40
44
  * @returns {ObjectStructure<T>} object structure
41
45
  */
@@ -50,6 +54,7 @@ class ObjectStructure {
50
54
  }
51
55
 
52
56
  /**
57
+ * Returns keys.
53
58
  * @template T
54
59
  * @param {(keyof T)[]} keys keys
55
60
  * @param {CacheAssoc} cacheAssoc cache assoc fn
@@ -70,6 +75,7 @@ const getCachedKeys = (keys, cacheAssoc) => {
70
75
 
71
76
  class PlainObjectSerializer {
72
77
  /**
78
+ * Serializes this instance into the provided serializer context.
73
79
  * @template {object} T
74
80
  * @param {T} obj plain object
75
81
  * @param {ObjectSerializerContext} context context
@@ -98,6 +104,7 @@ class PlainObjectSerializer {
98
104
  }
99
105
 
100
106
  /**
107
+ * Restores this instance from the provided deserializer context.
101
108
  * @template {object} T
102
109
  * @param {ObjectDeserializerContext} context context
103
110
  * @returns {T} plain object
@@ -9,6 +9,7 @@
9
9
 
10
10
  class RegExpObjectSerializer {
11
11
  /**
12
+ * Serializes this instance into the provided serializer context.
12
13
  * @param {RegExp} obj regexp
13
14
  * @param {ObjectSerializerContext} context context
14
15
  */
@@ -18,6 +19,7 @@ class RegExpObjectSerializer {
18
19
  }
19
20
 
20
21
  /**
22
+ * Restores this instance from the provided deserializer context.
21
23
  * @param {ObjectDeserializerContext} context context
22
24
  * @returns {RegExp} regexp
23
25
  */
@@ -5,17 +5,20 @@
5
5
  "use strict";
6
6
 
7
7
  /**
8
+ * Defines the serializer middleware type used by this module.
8
9
  * @template T, K, C
9
10
  * @typedef {import("./SerializerMiddleware")<T, K, C>} SerializerMiddleware
10
11
  */
11
12
 
12
13
  /**
14
+ * Represents Serializer.
13
15
  * @template DeserializedValue
14
16
  * @template SerializedValue
15
17
  * @template Context
16
18
  */
17
19
  class Serializer {
18
20
  /**
21
+ * Creates an instance of Serializer.
19
22
  * @param {SerializerMiddleware<EXPECTED_ANY, EXPECTED_ANY, EXPECTED_ANY>[]} middlewares serializer middlewares
20
23
  * @param {Context=} context context
21
24
  */
@@ -26,6 +29,7 @@ class Serializer {
26
29
  }
27
30
 
28
31
  /**
32
+ * Serializes this instance into the provided serializer context.
29
33
  * @template ExtendedContext
30
34
  * @param {DeserializedValue | Promise<DeserializedValue>} obj object
31
35
  * @param {Context & ExtendedContext} context context object
@@ -57,6 +61,7 @@ class Serializer {
57
61
  }
58
62
 
59
63
  /**
64
+ * Restores this instance from the provided deserializer context.
60
65
  * @template ExtendedContext
61
66
  * @param {SerializedValue | Promise<SerializedValue>} value value
62
67
  * @param {Context & ExtendedContext} context object
@@ -13,6 +13,7 @@ const LAZY_SERIALIZED_VALUE = Symbol("lazy serialization data");
13
13
  /** @typedef {Record<string, EXPECTED_ANY>} LazyOptions */
14
14
 
15
15
  /**
16
+ * Defines the lazy function type used by this module.
16
17
  * @template InputValue
17
18
  * @template OutputValue
18
19
  * @template {LazyTarget} InternalLazyTarget
@@ -21,6 +22,7 @@ const LAZY_SERIALIZED_VALUE = Symbol("lazy serialization data");
21
22
  */
22
23
 
23
24
  /**
25
+ * Represents SerializerMiddleware.
24
26
  * @template DeserializedType
25
27
  * @template SerializedType
26
28
  * @template Context
@@ -28,6 +30,7 @@ const LAZY_SERIALIZED_VALUE = Symbol("lazy serialization data");
28
30
  class SerializerMiddleware {
29
31
  /* istanbul ignore next */
30
32
  /**
33
+ * Serializes this instance into the provided serializer context.
31
34
  * @abstract
32
35
  * @param {DeserializedType} data data
33
36
  * @param {Context} context context object
@@ -41,6 +44,7 @@ class SerializerMiddleware {
41
44
 
42
45
  /* istanbul ignore next */
43
46
  /**
47
+ * Restores this instance from the provided deserializer context.
44
48
  * @abstract
45
49
  * @param {SerializedType} data data
46
50
  * @param {Context} context context object
@@ -53,6 +57,7 @@ class SerializerMiddleware {
53
57
  }
54
58
 
55
59
  /**
60
+ * Creates a lazy from the provided value.
56
61
  * @template TLazyInputValue
57
62
  * @template TLazyOutputValue
58
63
  * @template {LazyTarget} TLazyTarget
@@ -80,6 +85,7 @@ class SerializerMiddleware {
80
85
  }
81
86
 
82
87
  /**
88
+ * Checks whether this serializer middleware is lazy.
83
89
  * @template {LazyTarget} TLazyTarget
84
90
  * @param {EXPECTED_ANY} fn lazy function
85
91
  * @param {TLazyTarget=} target target middleware
@@ -92,6 +98,7 @@ class SerializerMiddleware {
92
98
  }
93
99
 
94
100
  /**
101
+ * Returns options.
95
102
  * @template TLazyInputValue
96
103
  * @template TLazyOutputValue
97
104
  * @template {LazyTarget} TLazyTarget
@@ -105,6 +112,7 @@ class SerializerMiddleware {
105
112
  }
106
113
 
107
114
  /**
115
+ * Gets lazy serialized value.
108
116
  * @template TLazyInputValue
109
117
  * @template TLazyOutputValue
110
118
  * @template {LazyTarget} TLazyTarget
@@ -118,6 +126,7 @@ class SerializerMiddleware {
118
126
  }
119
127
 
120
128
  /**
129
+ * Sets lazy serialized value.
121
130
  * @template TLazyInputValue
122
131
  * @template TLazyOutputValue
123
132
  * @template {LazyTarget} TLazyTarget
@@ -131,6 +140,7 @@ class SerializerMiddleware {
131
140
  }
132
141
 
133
142
  /**
143
+ * Returns new lazy.
134
144
  * @template TLazyInputValue DeserializedValue
135
145
  * @template TLazyOutputValue SerializedValue
136
146
  * @template {LazyTarget} TLazyTarget
@@ -165,6 +175,7 @@ class SerializerMiddleware {
165
175
  }
166
176
 
167
177
  /**
178
+ * Returns new lazy.
168
179
  * @template TLazyInputValue SerializedValue
169
180
  * @template TLazyOutputValue DeserializedValue
170
181
  * @template {LazyTarget} TLazyTarget
@@ -198,6 +209,7 @@ class SerializerMiddleware {
198
209
  }
199
210
 
200
211
  /**
212
+ * Returns new lazy.
201
213
  * @template TLazyInputValue
202
214
  * @template TLazyOutputValue
203
215
  * @template {LazyTarget} TLazyTarget
@@ -9,6 +9,7 @@
9
9
 
10
10
  class SetObjectSerializer {
11
11
  /**
12
+ * Serializes this instance into the provided serializer context.
12
13
  * @template T
13
14
  * @param {Set<T>} obj set
14
15
  * @param {ObjectSerializerContext} context context
@@ -21,6 +22,7 @@ class SetObjectSerializer {
21
22
  }
22
23
 
23
24
  /**
25
+ * Restores this instance from the provided deserializer context.
24
26
  * @template T
25
27
  * @param {ObjectDeserializerContext} context context
26
28
  * @returns {Set<T>} date
@@ -11,10 +11,12 @@ const SerializerMiddleware = require("./SerializerMiddleware");
11
11
  /** @typedef {EXPECTED_OBJECT} Context */
12
12
 
13
13
  /**
14
+ * Represents SingleItemMiddleware.
14
15
  * @extends {SerializerMiddleware<DeserializedType, SerializedType, Context>}
15
16
  */
16
17
  class SingleItemMiddleware extends SerializerMiddleware {
17
18
  /**
19
+ * Serializes this instance into the provided serializer context.
18
20
  * @param {DeserializedType} data data
19
21
  * @param {Context} context context object
20
22
  * @returns {SerializedType | Promise<SerializedType> | null} serialized data
@@ -24,6 +26,7 @@ class SingleItemMiddleware extends SerializerMiddleware {
24
26
  }
25
27
 
26
28
  /**
29
+ * Restores this instance from the provided deserializer context.
27
30
  * @param {SerializedType} data data
28
31
  * @param {Context} context context object
29
32
  * @returns {DeserializedType | Promise<DeserializedType>} deserialized data
@@ -10,6 +10,7 @@ const makeSerializable = require("../util/makeSerializable");
10
10
 
11
11
  class ConsumeSharedFallbackDependency extends ModuleDependency {
12
12
  /**
13
+ * Creates an instance of ConsumeSharedFallbackDependency.
13
14
  * @param {string} request the request
14
15
  */
15
16
  constructor(request) {