webpack 5.106.0 → 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 -4
  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 +71 -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 +11 -3
  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 +14 -5
  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
@@ -18,6 +18,7 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
18
18
  module.exports.approve = () => true;
19
19
 
20
20
  /**
21
+ * Returns plugin function.
21
22
  * @param {boolean} value the boolean value
22
23
  * @returns {(expression: Expression) => BasicEvaluatedExpression} plugin function
23
24
  */
@@ -29,6 +30,7 @@ module.exports.evaluateToBoolean = (value) =>
29
30
  };
30
31
 
31
32
  /**
33
+ * Returns callback.
32
34
  * @param {string} identifier identifier
33
35
  * @param {string} rootInfo rootInfo
34
36
  * @param {GetMembers} getMembers getMembers
@@ -62,6 +64,7 @@ module.exports.evaluateToIdentifier = (
62
64
  };
63
65
 
64
66
  /**
67
+ * Returns plugin function.
65
68
  * @param {number} value the number value
66
69
  * @returns {(expression: Expression) => BasicEvaluatedExpression} plugin function
67
70
  */
@@ -73,6 +76,7 @@ module.exports.evaluateToNumber = (value) =>
73
76
  };
74
77
 
75
78
  /**
79
+ * Returns plugin function.
76
80
  * @param {string} value the string value
77
81
  * @returns {(expression: Expression) => BasicEvaluatedExpression} plugin function
78
82
  */
@@ -84,6 +88,7 @@ module.exports.evaluateToString = (value) =>
84
88
  };
85
89
 
86
90
  /**
91
+ * Returns callback to handle unsupported expression.
87
92
  * @param {JavascriptParser} parser the parser
88
93
  * @param {string} message the message
89
94
  * @returns {(expression: Expression) => boolean | undefined} callback to handle unsupported expression
@@ -110,6 +115,7 @@ module.exports.expressionIsUnsupported = (parser, message) =>
110
115
  module.exports.skipTraversal = () => true;
111
116
 
112
117
  /**
118
+ * Returns plugin function.
113
119
  * @param {JavascriptParser} parser the parser
114
120
  * @param {string} value the const value
115
121
  * @param {(string[] | null)=} runtimeRequirements runtime requirements
@@ -25,6 +25,7 @@ const EXPORT_PREFIX = `var ${RuntimeGlobals.exports} = `;
25
25
  /** @typedef {ModuleId[]} ModuleIds */
26
26
 
27
27
  /**
28
+ * Returns runtime code.
28
29
  * @param {ChunkGraph} chunkGraph chunkGraph
29
30
  * @param {RuntimeTemplate} runtimeTemplate runtimeTemplate
30
31
  * @param {EntryModuleWithChunkGroup[]} entries entries
@@ -48,11 +49,13 @@ module.exports.generateEntryStartup = (
48
49
  ];
49
50
 
50
51
  /**
52
+ * Returns fn to execute.
51
53
  * @param {ModuleId} id id
52
54
  * @returns {string} fn to execute
53
55
  */
54
56
  const runModule = (id) => `__webpack_exec__(${JSON.stringify(id)})`;
55
57
  /**
58
+ * Output combination.
56
59
  * @param {Chunks} chunks chunks
57
60
  * @param {ModuleIds} moduleIds module ids
58
61
  * @param {boolean=} final true when final, otherwise false
@@ -131,6 +134,7 @@ module.exports.generateEntryStartup = (
131
134
  };
132
135
 
133
136
  /**
137
+ * Returns initially fulfilled chunk ids.
134
138
  * @param {Chunk} chunk the chunk
135
139
  * @param {ChunkGraph} chunkGraph the chunk graph
136
140
  * @param {(chunk: Chunk, chunkGraph: ChunkGraph) => boolean} filterFn filter function
@@ -149,6 +153,7 @@ module.exports.getInitialChunkIds = (chunk, chunkGraph, filterFn) => {
149
153
  };
150
154
 
151
155
  /**
156
+ * Processes the provided hash.
152
157
  * @param {Hash} hash the hash to update
153
158
  * @param {ChunkGraph} chunkGraph chunkGraph
154
159
  * @param {EntryModuleWithChunkGroup[]} entries entries
@@ -14,6 +14,7 @@ const { register } = require("../util/serialization");
14
14
 
15
15
  class JsonData {
16
16
  /**
17
+ * Creates an instance of JsonData.
17
18
  * @param {Buffer | JsonValue} data JSON data
18
19
  */
19
20
  constructor(data) {
@@ -29,6 +30,7 @@ class JsonData {
29
30
  }
30
31
 
31
32
  /**
33
+ * Returns raw JSON data.
32
34
  * @returns {JsonValue | undefined} Raw JSON data
33
35
  */
34
36
  get() {
@@ -39,6 +41,7 @@ class JsonData {
39
41
  }
40
42
 
41
43
  /**
44
+ * Updates the hash with the data contributed by this instance.
42
45
  * @param {Hash} hash hash to be updated
43
46
  * @returns {void} the updated hash
44
47
  */
@@ -53,6 +56,7 @@ class JsonData {
53
56
 
54
57
  register(JsonData, "webpack/lib/json/JsonData", null, {
55
58
  /**
59
+ * Serializes this instance into the provided serializer context.
56
60
  * @param {JsonData} obj JSONData object
57
61
  * @param {ObjectSerializerContext} context context
58
62
  */
@@ -63,6 +67,7 @@ register(JsonData, "webpack/lib/json/JsonData", null, {
63
67
  write(obj._buffer);
64
68
  },
65
69
  /**
70
+ * Restores this instance from the provided deserializer context.
66
71
  * @param {ObjectDeserializerContext} context context
67
72
  * @returns {JsonData} deserialized JSON data
68
73
  */
@@ -16,6 +16,8 @@ const RuntimeGlobals = require("../RuntimeGlobals");
16
16
  /** @typedef {import("../../declarations/WebpackOptions").JsonGeneratorOptions} JsonGeneratorOptions */
17
17
  /** @typedef {import("../ExportsInfo")} ExportsInfo */
18
18
  /** @typedef {import("../Generator").GenerateContext} GenerateContext */
19
+ /** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */
20
+ /** @typedef {import("../util/Hash")} Hash */
19
21
  /** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */
20
22
  /** @typedef {import("../Module").SourceType} SourceType */
21
23
  /** @typedef {import("../Module").SourceTypes} SourceTypes */
@@ -26,6 +28,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
26
28
  /** @typedef {import("../util/fs").JsonValue} JsonValue */
27
29
 
28
30
  /**
31
+ * Returns stringified data.
29
32
  * @param {JsonValue} data Raw JSON data
30
33
  * @returns {undefined | string} stringified data
31
34
  */
@@ -41,6 +44,7 @@ const stringifySafe = (data) => {
41
44
  };
42
45
 
43
46
  /**
47
+ * Creates an object for exports info.
44
48
  * @param {JsonObject | JsonArray} data Raw JSON data (always an object or array)
45
49
  * @param {ExportsInfo} exportsInfo exports info
46
50
  * @param {RuntimeSpec} runtime the runtime
@@ -121,6 +125,7 @@ const createObjectForExportsInfo = (data, exportsInfo, runtime) => {
121
125
 
122
126
  class JsonGenerator extends Generator {
123
127
  /**
128
+ * Creates an instance of JsonGenerator.
124
129
  * @param {JsonGeneratorOptions} options options
125
130
  */
126
131
  constructor(options) {
@@ -130,6 +135,7 @@ class JsonGenerator extends Generator {
130
135
  }
131
136
 
132
137
  /**
138
+ * Returns the source types available for this module.
133
139
  * @param {NormalModule} module fresh module
134
140
  * @returns {SourceTypes} available types (do not mutate)
135
141
  */
@@ -138,6 +144,7 @@ class JsonGenerator extends Generator {
138
144
  }
139
145
 
140
146
  /**
147
+ * Returns the estimated size for the requested source type.
141
148
  * @param {NormalModule} module the module
142
149
  * @param {SourceType=} type source type
143
150
  * @returns {number} estimate size of the module
@@ -153,6 +160,7 @@ class JsonGenerator extends Generator {
153
160
  }
154
161
 
155
162
  /**
163
+ * Returns the reason this module cannot be concatenated, when one exists.
156
164
  * @param {NormalModule} module module for which the bailout reason should be determined
157
165
  * @param {ConcatenationBailoutReasonContext} context context
158
166
  * @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
@@ -162,6 +170,7 @@ class JsonGenerator extends Generator {
162
170
  }
163
171
 
164
172
  /**
173
+ * Generates generated code for this runtime module.
165
174
  * @param {NormalModule} module module for which the code should be generated
166
175
  * @param {GenerateContext} generateContext context for generate
167
176
  * @returns {Source | null} generated code
@@ -221,6 +230,7 @@ class JsonGenerator extends Generator {
221
230
  }
222
231
 
223
232
  /**
233
+ * Generates fallback output for the provided error condition.
224
234
  * @param {Error} error the error
225
235
  * @param {NormalModule} module module for which the code should be generated
226
236
  * @param {GenerateContext} generateContext context for generate
@@ -229,6 +239,17 @@ class JsonGenerator extends Generator {
229
239
  generateError(error, module, generateContext) {
230
240
  return new RawSource(`throw new Error(${JSON.stringify(error.message)});`);
231
241
  }
242
+
243
+ /**
244
+ * Updates the hash with the data contributed by this instance.
245
+ * @param {Hash} hash hash that will be modified
246
+ * @param {UpdateHashContext} updateHashContext context for updating hash
247
+ */
248
+ updateHash(hash, updateHashContext) {
249
+ if (this.options.JSONParse) {
250
+ hash.update("json-parse");
251
+ }
252
+ }
232
253
  }
233
254
 
234
255
  module.exports = JsonGenerator;
@@ -19,7 +19,7 @@ const PLUGIN_NAME = "JsonModulesPlugin";
19
19
  */
20
20
  class JsonModulesPlugin {
21
21
  /**
22
- * Apply the plugin
22
+ * Applies the plugin by registering its hooks on the compiler.
23
23
  * @param {Compiler} compiler the compiler instance
24
24
  * @returns {void}
25
25
  */
@@ -7,7 +7,7 @@
7
7
 
8
8
  const Parser = require("../Parser");
9
9
  const JsonExportsDependency = require("../dependencies/JsonExportsDependency");
10
- const memoize = require("../util/memoize");
10
+ const parseJson = require("../util/parseJson");
11
11
  const JsonData = require("./JsonData");
12
12
 
13
13
  /** @typedef {import("../../declarations/plugins/JsonModulesPluginParser").JsonModulesPluginParserOptions} JsonModulesPluginParserOptions */
@@ -17,18 +17,17 @@ const JsonData = require("./JsonData");
17
17
  /** @typedef {import("../Parser").PreparsedAst} PreparsedAst */
18
18
  /** @typedef {import("../util/fs").JsonValue} JsonValue */
19
19
 
20
+ /** @typedef {(input: string) => Buffer | JsonValue} ParseFn */
21
+
20
22
  /**
23
+ * Defines the function returning type used by this module.
21
24
  * @template T
22
25
  * @typedef {import("../util/memoize").FunctionReturning<T>} FunctionReturning
23
26
  */
24
27
 
25
- /** @typedef {(input: string) => Buffer | JsonValue} ParseFn */
26
-
27
- /** @type {FunctionReturning<ParseFn>} */
28
- const getParseJson = memoize(() => require("json-parse-even-better-errors"));
29
-
30
28
  class JsonParser extends Parser {
31
29
  /**
30
+ * Creates an instance of JsonParser.
32
31
  * @param {JsonModulesPluginParserOptions} options parser options
33
32
  */
34
33
  constructor(options = {}) {
@@ -38,6 +37,7 @@ class JsonParser extends Parser {
38
37
  }
39
38
 
40
39
  /**
40
+ * Parses the provided source and updates the parser state.
41
41
  * @param {string | Buffer | PreparsedAst} source the source to parse
42
42
  * @param {ParserState} state the parser state
43
43
  * @returns {ParserState} the parser state
@@ -47,11 +47,9 @@ class JsonParser extends Parser {
47
47
  source = source.toString("utf8");
48
48
  }
49
49
 
50
- /** @type {ParseFn} */
50
+ /** @type {typeof parseJson} */
51
51
  const parseFn =
52
- typeof this.options.parse === "function"
53
- ? this.options.parse
54
- : getParseJson();
52
+ typeof this.options.parse === "function" ? this.options.parse : parseJson;
55
53
  /** @type {Buffer | JsonValue | undefined} */
56
54
  let data;
57
55
  try {
@@ -27,6 +27,7 @@ const COMMON_LIBRARY_NAME_MESSAGE =
27
27
  "Common configuration options that specific library names are 'output.library[.name]', 'entry.xyz.library[.name]', 'ModuleFederationPlugin.name' and 'ModuleFederationPlugin.library[.name]'.";
28
28
 
29
29
  /**
30
+ * Defines the library context type used by this module.
30
31
  * @template T
31
32
  * @typedef {object} LibraryContext
32
33
  * @property {Compilation} compilation
@@ -35,16 +36,19 @@ const COMMON_LIBRARY_NAME_MESSAGE =
35
36
  */
36
37
 
37
38
  /**
39
+ * Defines the abstract library plugin options type used by this module.
38
40
  * @typedef {object} AbstractLibraryPluginOptions
39
41
  * @property {string} pluginName name of the plugin
40
42
  * @property {LibraryType} type used library type
41
43
  */
42
44
 
43
45
  /**
46
+ * Represents AbstractLibraryPlugin.
44
47
  * @template T
45
48
  */
46
49
  class AbstractLibraryPlugin {
47
50
  /**
51
+ * Creates an instance of AbstractLibraryPlugin.
48
52
  * @param {AbstractLibraryPluginOptions} options options
49
53
  */
50
54
  constructor({ pluginName, type }) {
@@ -57,7 +61,7 @@ class AbstractLibraryPlugin {
57
61
  }
58
62
 
59
63
  /**
60
- * Apply the plugin
64
+ * Applies the plugin by registering its hooks on the compiler.
61
65
  * @param {Compiler} compiler the compiler instance
62
66
  * @returns {void}
63
67
  */
@@ -97,6 +101,7 @@ class AbstractLibraryPlugin {
97
101
  );
98
102
 
99
103
  /**
104
+ * Gets options for chunk.
100
105
  * @param {Chunk} chunk chunk
101
106
  * @returns {T | false} options for the chunk
102
107
  */
@@ -222,6 +227,7 @@ class AbstractLibraryPlugin {
222
227
  }
223
228
 
224
229
  /**
230
+ * Parse options cached.
225
231
  * @param {LibraryOptions=} library normalized library option
226
232
  * @returns {T | false} preprocess as needed by overriding
227
233
  */
@@ -237,6 +243,7 @@ class AbstractLibraryPlugin {
237
243
 
238
244
  /* istanbul ignore next */
239
245
  /**
246
+ * Returns preprocess as needed by overriding.
240
247
  * @abstract
241
248
  * @param {LibraryOptions} library normalized library option
242
249
  * @returns {T} preprocess as needed by overriding
@@ -248,6 +255,7 @@ class AbstractLibraryPlugin {
248
255
  }
249
256
 
250
257
  /**
258
+ * Finish entry module.
251
259
  * @param {Module} module the exporting entry module
252
260
  * @param {string} entryName the name of the entrypoint
253
261
  * @param {LibraryContext<T>} libraryContext context
@@ -256,6 +264,7 @@ class AbstractLibraryPlugin {
256
264
  finishEntryModule(module, entryName, libraryContext) {}
257
265
 
258
266
  /**
267
+ * Embed in runtime bailout.
259
268
  * @param {Module} module the exporting entry module
260
269
  * @param {RenderContext} renderContext render context
261
270
  * @param {LibraryContext<T>} libraryContext context
@@ -266,6 +275,7 @@ class AbstractLibraryPlugin {
266
275
  }
267
276
 
268
277
  /**
278
+ * Strict runtime bailout.
269
279
  * @param {RenderContext} renderContext render context
270
280
  * @param {LibraryContext<T>} libraryContext context
271
281
  * @returns {string | undefined} bailout reason
@@ -275,6 +285,7 @@ class AbstractLibraryPlugin {
275
285
  }
276
286
 
277
287
  /**
288
+ * Processes the provided chunk.
278
289
  * @param {Chunk} chunk the chunk
279
290
  * @param {RuntimeRequirements} set runtime requirements
280
291
  * @param {LibraryContext<T>} libraryContext context
@@ -287,6 +298,7 @@ class AbstractLibraryPlugin {
287
298
  }
288
299
 
289
300
  /**
301
+ * Returns source with library export.
290
302
  * @param {Source} source source
291
303
  * @param {RenderContext} renderContext render context
292
304
  * @param {LibraryContext<T>} libraryContext context
@@ -297,6 +309,7 @@ class AbstractLibraryPlugin {
297
309
  }
298
310
 
299
311
  /**
312
+ * Renders source with library export.
300
313
  * @param {Source} source source
301
314
  * @param {Module} module module
302
315
  * @param {StartupRenderContext} renderContext render context
@@ -308,6 +321,7 @@ class AbstractLibraryPlugin {
308
321
  }
309
322
 
310
323
  /**
324
+ * Renders module content.
311
325
  * @param {Source} source source
312
326
  * @param {Module} module module
313
327
  * @param {ModuleRenderContext} renderContext render context
@@ -319,6 +333,7 @@ class AbstractLibraryPlugin {
319
333
  }
320
334
 
321
335
  /**
336
+ * Processes the provided chunk.
322
337
  * @param {Chunk} chunk the chunk
323
338
  * @param {Hash} hash hash
324
339
  * @param {ChunkHashContext} chunkHashContext chunk hash context
@@ -18,28 +18,33 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
18
18
  /** @typedef {import("../javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
19
19
  /** @typedef {import("../util/Hash")} Hash */
20
20
  /**
21
+ * Defines the shared type used by this module.
21
22
  * @template T
22
23
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
23
24
  */
24
25
 
25
26
  /**
27
+ * Defines the amd library plugin options type used by this module.
26
28
  * @typedef {object} AmdLibraryPluginOptions
27
29
  * @property {LibraryType} type
28
30
  * @property {boolean=} requireAsWrapper
29
31
  */
30
32
 
31
33
  /**
34
+ * Defines the amd library plugin parsed type used by this module.
32
35
  * @typedef {object} AmdLibraryPluginParsed
33
36
  * @property {string} name
34
37
  * @property {string} amdContainer
35
38
  */
36
39
 
37
40
  /**
41
+ * Represents the amd library plugin runtime component.
38
42
  * @typedef {AmdLibraryPluginParsed} T
39
43
  * @extends {AbstractLibraryPlugin<AmdLibraryPluginParsed>}
40
44
  */
41
45
  class AmdLibraryPlugin extends AbstractLibraryPlugin {
42
46
  /**
47
+ * Creates an instance of AmdLibraryPlugin.
43
48
  * @param {AmdLibraryPluginOptions} options the plugin options
44
49
  */
45
50
  constructor(options) {
@@ -52,6 +57,7 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
52
57
  }
53
58
 
54
59
  /**
60
+ * Returns preprocess as needed by overriding.
55
61
  * @param {LibraryOptions} library normalized library option
56
62
  * @returns {T} preprocess as needed by overriding
57
63
  */
@@ -74,6 +80,7 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
74
80
  }
75
81
 
76
82
  /**
83
+ * Returns source with library export.
77
84
  * @param {Source} source source
78
85
  * @param {RenderContext} renderContext render context
79
86
  * @param {LibraryContext<T>} libraryContext context
@@ -155,6 +162,7 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
155
162
  }
156
163
 
157
164
  /**
165
+ * Processes the provided chunk.
158
166
  * @param {Chunk} chunk the chunk
159
167
  * @param {Hash} hash hash
160
168
  * @param {ChunkHashContext} chunkHashContext chunk hash context
@@ -28,6 +28,7 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
28
28
  /** @typedef {import("../util/Hash")} Hash */
29
29
 
30
30
  /**
31
+ * Defines the shared type used by this module.
31
32
  * @template T
32
33
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
33
34
  */
@@ -46,6 +47,7 @@ const isNameValid = (name) =>
46
47
  !KEYWORD_REGEX.test(name) && IDENTIFIER_REGEX.test(name);
47
48
 
48
49
  /**
50
+ * Returns code to access the accessor while initializing.
49
51
  * @param {string[]} accessor variable plus properties
50
52
  * @param {number} existingLength items of accessor that are existing already
51
53
  * @param {boolean=} initLast if the last property should also be initialized to an object
@@ -99,6 +101,7 @@ const accessWithInit = (accessor, existingLength, initLast = false) => {
99
101
  /** @typedef {string[] | "global"} LibraryPrefix */
100
102
 
101
103
  /**
104
+ * Defines the assign library plugin options type used by this module.
102
105
  * @typedef {object} AssignLibraryPluginOptions
103
106
  * @property {LibraryType} type
104
107
  * @property {LibraryPrefix} prefix name prefix
@@ -110,17 +113,20 @@ const accessWithInit = (accessor, existingLength, initLast = false) => {
110
113
  /** @typedef {string | string[]} LibraryName */
111
114
 
112
115
  /**
116
+ * Defines the assign library plugin parsed type used by this module.
113
117
  * @typedef {object} AssignLibraryPluginParsed
114
118
  * @property {LibraryName} name
115
119
  * @property {LibraryExport=} export
116
120
  */
117
121
 
118
122
  /**
123
+ * Represents the assign library plugin runtime component.
119
124
  * @typedef {AssignLibraryPluginParsed} T
120
125
  * @extends {AbstractLibraryPlugin<AssignLibraryPluginParsed>}
121
126
  */
122
127
  class AssignLibraryPlugin extends AbstractLibraryPlugin {
123
128
  /**
129
+ * Creates an instance of AssignLibraryPlugin.
124
130
  * @param {AssignLibraryPluginOptions} options the plugin options
125
131
  */
126
132
  constructor(options) {
@@ -139,6 +145,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
139
145
  }
140
146
 
141
147
  /**
148
+ * Returns preprocess as needed by overriding.
142
149
  * @param {LibraryOptions} library normalized library option
143
150
  * @returns {T} preprocess as needed by overriding
144
151
  */
@@ -163,6 +170,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
163
170
  }
164
171
 
165
172
  /**
173
+ * Finish entry module.
166
174
  * @param {Module} module the exporting entry module
167
175
  * @param {string} entryName the name of the entrypoint
168
176
  * @param {LibraryContext<T>} libraryContext context
@@ -189,6 +197,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
189
197
  }
190
198
 
191
199
  /**
200
+ * Returns the prefix.
192
201
  * @param {Compilation} compilation the compilation
193
202
  * @returns {LibraryPrefix} the prefix
194
203
  */
@@ -199,6 +208,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
199
208
  }
200
209
 
201
210
  /**
211
+ * Get resolved full name.
202
212
  * @param {AssignLibraryPluginParsed} options the library options
203
213
  * @param {Chunk} chunk the chunk
204
214
  * @param {Compilation} compilation the compilation
@@ -220,6 +230,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
220
230
  }
221
231
 
222
232
  /**
233
+ * Returns source with library export.
223
234
  * @param {Source} source source
224
235
  * @param {RenderContext} renderContext render context
225
236
  * @param {LibraryContext<T>} libraryContext context
@@ -248,6 +259,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
248
259
  }
249
260
 
250
261
  /**
262
+ * Embed in runtime bailout.
251
263
  * @param {Module} module the exporting entry module
252
264
  * @param {RenderContext} renderContext render context
253
265
  * @param {LibraryContext<T>} libraryContext context
@@ -277,6 +289,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
277
289
  }
278
290
 
279
291
  /**
292
+ * Strict runtime bailout.
280
293
  * @param {RenderContext} renderContext render context
281
294
  * @param {LibraryContext<T>} libraryContext context
282
295
  * @returns {string | undefined} bailout reason
@@ -294,6 +307,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
294
307
  }
295
308
 
296
309
  /**
310
+ * Renders source with library export.
297
311
  * @param {Source} source source
298
312
  * @param {Module} module module
299
313
  * @param {StartupRenderContext} renderContext render context
@@ -406,6 +420,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
406
420
  }
407
421
 
408
422
  /**
423
+ * Processes the provided chunk.
409
424
  * @param {Chunk} chunk the chunk
410
425
  * @param {RuntimeRequirements} set runtime requirements
411
426
  * @param {LibraryContext<T>} libraryContext context
@@ -416,6 +431,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
416
431
  }
417
432
 
418
433
  /**
434
+ * Processes the provided chunk.
419
435
  * @param {Chunk} chunk the chunk
420
436
  * @param {Hash} hash hash
421
437
  * @param {ChunkHashContext} chunkHashContext chunk hash context
@@ -14,11 +14,13 @@
14
14
  const enabledTypes = new WeakMap();
15
15
 
16
16
  /**
17
+ * Defines the enable library plugin options type used by this module.
17
18
  * @typedef {object} EnableLibraryPluginOptions
18
19
  * @property {() => void=} additionalApply function that runs when applying the current plugin.
19
20
  */
20
21
 
21
22
  /**
23
+ * Returns enabled types.
22
24
  * @param {Compiler} compiler the compiler instance
23
25
  * @returns {LibraryTypes} enabled types
24
26
  */
@@ -34,6 +36,7 @@ const getEnabledTypes = (compiler) => {
34
36
 
35
37
  class EnableLibraryPlugin {
36
38
  /**
39
+ * Creates an instance of EnableLibraryPlugin.
37
40
  * @param {LibraryType} type library type that should be available
38
41
  * @param {EnableLibraryPluginOptions} options options of EnableLibraryPlugin
39
42
  */
@@ -45,6 +48,7 @@ class EnableLibraryPlugin {
45
48
  }
46
49
 
47
50
  /**
51
+ * Updates enabled using the provided compiler.
48
52
  * @param {Compiler} compiler the compiler instance
49
53
  * @param {LibraryType} type type of library
50
54
  * @returns {void}
@@ -54,6 +58,7 @@ class EnableLibraryPlugin {
54
58
  }
55
59
 
56
60
  /**
61
+ * Checks enabled.
57
62
  * @param {Compiler} compiler the compiler instance
58
63
  * @param {LibraryType} type type of library
59
64
  * @returns {void}
@@ -71,7 +76,7 @@ class EnableLibraryPlugin {
71
76
  }
72
77
 
73
78
  /**
74
- * Apply the plugin
79
+ * Applies the plugin by registering its hooks on the compiler.
75
80
  * @param {Compiler} compiler the compiler instance
76
81
  * @returns {void}
77
82
  */
@@ -237,6 +242,7 @@ class EnableLibraryPlugin {
237
242
 
238
243
  class WarnFalseIifeUmdPlugin {
239
244
  /**
245
+ * Applies the plugin by registering its hooks on the compiler.
240
246
  * @param {Compiler} compiler the compiler instance
241
247
  */
242
248
  apply(compiler) {
@@ -21,25 +21,30 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
21
21
  /** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
22
22
  /** @typedef {import("../javascript/JavascriptModulesPlugin").StartupRenderContext} StartupRenderContext */
23
23
  /**
24
+ * Defines the shared type used by this module.
24
25
  * @template T
25
26
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
26
27
  */
27
28
 
28
29
  /**
30
+ * Defines the export property library plugin parsed type used by this module.
29
31
  * @typedef {object} ExportPropertyLibraryPluginParsed
30
32
  * @property {LibraryExport=} export
31
33
  */
32
34
 
33
35
  /**
36
+ * Defines the export property library plugin options type used by this module.
34
37
  * @typedef {object} ExportPropertyLibraryPluginOptions
35
38
  * @property {LibraryType} type
36
39
  */
37
40
  /**
41
+ * Represents the export property library plugin runtime component.
38
42
  * @typedef {ExportPropertyLibraryPluginParsed} T
39
43
  * @extends {AbstractLibraryPlugin<ExportPropertyLibraryPluginParsed>}
40
44
  */
41
45
  class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
42
46
  /**
47
+ * Creates an instance of ExportPropertyLibraryPlugin.
43
48
  * @param {ExportPropertyLibraryPluginOptions} options options
44
49
  */
45
50
  constructor({ type }) {
@@ -50,6 +55,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
50
55
  }
51
56
 
52
57
  /**
58
+ * Returns preprocess as needed by overriding.
53
59
  * @param {LibraryOptions} library normalized library option
54
60
  * @returns {T} preprocess as needed by overriding
55
61
  */
@@ -60,6 +66,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
60
66
  }
61
67
 
62
68
  /**
69
+ * Finish entry module.
63
70
  * @param {Module} module the exporting entry module
64
71
  * @param {string} entryName the name of the entrypoint
65
72
  * @param {LibraryContext<T>} libraryContext context
@@ -86,6 +93,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
86
93
  }
87
94
 
88
95
  /**
96
+ * Processes the provided chunk.
89
97
  * @param {Chunk} chunk the chunk
90
98
  * @param {RuntimeRequirements} set runtime requirements
91
99
  * @param {LibraryContext<T>} libraryContext context
@@ -96,6 +104,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
96
104
  }
97
105
 
98
106
  /**
107
+ * Renders source with library export.
99
108
  * @param {Source} source source
100
109
  * @param {Module} module module
101
110
  * @param {StartupRenderContext} renderContext render context