webpack 5.106.1 → 5.107.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (600) hide show
  1. package/README.md +2 -2
  2. package/lib/APIPlugin.js +4 -2
  3. package/lib/AsyncDependenciesBlock.js +3 -0
  4. package/lib/AutomaticPrefetchPlugin.js +6 -1
  5. package/lib/BannerPlugin.js +10 -1
  6. package/lib/Cache.js +27 -5
  7. package/lib/CacheFacade.js +26 -0
  8. package/lib/Chunk.js +46 -0
  9. package/lib/ChunkGraph.js +111 -0
  10. package/lib/ChunkGroup.js +57 -13
  11. package/lib/ChunkTemplate.js +9 -0
  12. package/lib/CleanPlugin.js +14 -1
  13. package/lib/CodeGenerationResults.js +19 -0
  14. package/lib/CompatibilityPlugin.js +23 -8
  15. package/lib/Compilation.js +161 -27
  16. package/lib/Compiler.js +41 -17
  17. package/lib/ConcatenationScope.js +24 -1
  18. package/lib/ConditionalInitFragment.js +6 -0
  19. package/lib/ConstPlugin.js +4 -1
  20. package/lib/ContextExclusionPlugin.js +2 -1
  21. package/lib/ContextModule.js +14 -2
  22. package/lib/ContextModuleFactory.js +10 -0
  23. package/lib/ContextReplacementPlugin.js +4 -1
  24. package/lib/DefinePlugin.js +22 -9
  25. package/lib/DependenciesBlock.js +6 -1
  26. package/lib/Dependency.js +48 -4
  27. package/lib/DependencyTemplate.js +7 -1
  28. package/lib/DependencyTemplates.js +4 -0
  29. package/lib/DotenvPlugin.js +3 -0
  30. package/lib/DynamicEntryPlugin.js +3 -1
  31. package/lib/EntryOptionPlugin.js +3 -0
  32. package/lib/EntryPlugin.js +2 -1
  33. package/lib/Entrypoint.js +4 -0
  34. package/lib/EnvironmentPlugin.js +3 -2
  35. package/lib/ErrorHelpers.js +7 -0
  36. package/lib/EvalDevToolModulePlugin.js +3 -1
  37. package/lib/EvalSourceMapDevToolPlugin.js +11 -10
  38. package/lib/ExportsInfo.js +56 -2
  39. package/lib/ExportsInfoApiPlugin.js +2 -1
  40. package/lib/ExternalModule.js +114 -15
  41. package/lib/ExternalModuleFactoryPlugin.js +15 -0
  42. package/lib/ExternalsPlugin.js +2 -1
  43. package/lib/FileSystemInfo.js +291 -71
  44. package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
  45. package/lib/FlagDependencyExportsPlugin.js +4 -1
  46. package/lib/FlagDependencyUsagePlugin.js +5 -1
  47. package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
  48. package/lib/Generator.js +16 -3
  49. package/lib/HotModuleReplacementPlugin.js +35 -9
  50. package/lib/IgnorePlugin.js +4 -2
  51. package/lib/IgnoreWarningsPlugin.js +2 -1
  52. package/lib/InitFragment.js +10 -0
  53. package/lib/JavascriptMetaInfoPlugin.js +2 -1
  54. package/lib/LibraryTemplatePlugin.js +2 -1
  55. package/lib/LoaderOptionsPlugin.js +3 -1
  56. package/lib/LoaderTargetPlugin.js +2 -1
  57. package/lib/MainTemplate.js +15 -0
  58. package/lib/ManifestPlugin.js +9 -2
  59. package/lib/Module.js +101 -19
  60. package/lib/ModuleFactory.js +6 -1
  61. package/lib/ModuleFilenameHelpers.js +3 -0
  62. package/lib/ModuleGraph.js +66 -0
  63. package/lib/ModuleGraphConnection.js +9 -0
  64. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  65. package/lib/ModuleSourceTypeConstants.js +32 -1
  66. package/lib/ModuleTemplate.js +8 -0
  67. package/lib/ModuleTypeConstants.js +12 -3
  68. package/lib/MultiCompiler.js +30 -2
  69. package/lib/MultiStats.js +8 -0
  70. package/lib/MultiWatching.js +3 -0
  71. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  72. package/lib/NodeStuffPlugin.js +11 -2
  73. package/lib/NormalModule.js +43 -33
  74. package/lib/NormalModuleFactory.js +35 -2
  75. package/lib/NormalModuleReplacementPlugin.js +1 -1
  76. package/lib/NullFactory.js +1 -0
  77. package/lib/OptionsApply.js +1 -0
  78. package/lib/Parser.js +3 -1
  79. package/lib/PlatformPlugin.js +2 -1
  80. package/lib/PrefetchPlugin.js +2 -1
  81. package/lib/ProgressPlugin.js +158 -68
  82. package/lib/ProvidePlugin.js +3 -1
  83. package/lib/RawModule.js +12 -0
  84. package/lib/RecordIdsPlugin.js +8 -0
  85. package/lib/RequestShortener.js +8 -0
  86. package/lib/ResolverFactory.js +5 -0
  87. package/lib/RuntimeGlobals.js +6 -5
  88. package/lib/RuntimeModule.js +22 -7
  89. package/lib/RuntimePlugin.js +13 -0
  90. package/lib/RuntimeTemplate.js +35 -1
  91. package/lib/SelfModuleFactory.js +2 -0
  92. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  93. package/lib/SourceMapDevToolPlugin.js +3 -1
  94. package/lib/Stats.js +5 -0
  95. package/lib/Template.js +20 -0
  96. package/lib/TemplatedPathPlugin.js +10 -3
  97. package/lib/UseStrictPlugin.js +2 -1
  98. package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
  99. package/lib/WarnDeprecatedOptionPlugin.js +2 -2
  100. package/lib/WarnNoModeSetPlugin.js +17 -2
  101. package/lib/WatchIgnorePlugin.js +4 -1
  102. package/lib/Watching.js +16 -3
  103. package/lib/WebpackError.js +3 -74
  104. package/lib/WebpackIsIncludedPlugin.js +3 -1
  105. package/lib/WebpackOptionsApply.js +14 -1
  106. package/lib/WebpackOptionsDefaulter.js +1 -0
  107. package/lib/asset/AssetBytesGenerator.js +12 -2
  108. package/lib/asset/AssetBytesParser.js +1 -0
  109. package/lib/asset/AssetGenerator.js +42 -10
  110. package/lib/asset/AssetModulesPlugin.js +7 -2
  111. package/lib/asset/AssetParser.js +2 -0
  112. package/lib/asset/AssetSourceGenerator.js +12 -2
  113. package/lib/asset/AssetSourceParser.js +1 -0
  114. package/lib/asset/RawDataUrlModule.js +11 -0
  115. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  116. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
  117. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  118. package/lib/buildChunkGraph.js +19 -6
  119. package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
  120. package/lib/cache/AddManagedPathsPlugin.js +2 -1
  121. package/lib/cache/IdleFileCachePlugin.js +2 -1
  122. package/lib/cache/MemoryCachePlugin.js +1 -1
  123. package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
  124. package/lib/cache/PackFileCacheStrategy.js +33 -4
  125. package/lib/cache/ResolverCachePlugin.js +10 -1
  126. package/lib/cache/getLazyHashedEtag.js +4 -0
  127. package/lib/cache/mergeEtags.js +2 -0
  128. package/lib/cli.js +33 -1
  129. package/lib/config/browserslistTargetHandler.js +2 -0
  130. package/lib/config/defaults.js +232 -12
  131. package/lib/config/normalization.js +15 -1
  132. package/lib/config/target.js +11 -0
  133. package/lib/container/ContainerEntryDependency.js +2 -0
  134. package/lib/container/ContainerEntryModule.js +12 -0
  135. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  136. package/lib/container/ContainerExposedDependency.js +4 -0
  137. package/lib/container/ContainerPlugin.js +2 -1
  138. package/lib/container/ContainerReferencePlugin.js +2 -1
  139. package/lib/container/FallbackDependency.js +4 -0
  140. package/lib/container/FallbackItemDependency.js +1 -0
  141. package/lib/container/FallbackModule.js +12 -0
  142. package/lib/container/FallbackModuleFactory.js +1 -0
  143. package/lib/container/ModuleFederationPlugin.js +3 -1
  144. package/lib/container/RemoteModule.js +13 -0
  145. package/lib/container/RemoteRuntimeModule.js +1 -0
  146. package/lib/container/RemoteToExternalDependency.js +1 -0
  147. package/lib/container/options.js +7 -0
  148. package/lib/css/CssGenerator.js +336 -100
  149. package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
  150. package/lib/css/CssLoadingRuntimeModule.js +23 -4
  151. package/lib/{CssModule.js → css/CssModule.js} +21 -15
  152. package/lib/css/CssModulesPlugin.js +235 -89
  153. package/lib/css/CssParser.js +616 -261
  154. package/lib/css/walkCssTokens.js +179 -2
  155. package/lib/debug/ProfilingPlugin.js +19 -1
  156. package/lib/dependencies/AMDDefineDependency.js +7 -0
  157. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
  158. package/lib/dependencies/AMDPlugin.js +4 -1
  159. package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
  160. package/lib/dependencies/AMDRequireContextDependency.js +3 -0
  161. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  162. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +14 -1
  163. package/lib/dependencies/AMDRequireDependency.js +4 -0
  164. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  165. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  166. package/lib/dependencies/CachedConstDependency.js +6 -1
  167. package/lib/dependencies/CommonJsDependencyHelpers.js +64 -0
  168. package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
  169. package/lib/dependencies/CommonJsExportsDependency.js +4 -0
  170. package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
  171. package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
  172. package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
  173. package/lib/dependencies/CommonJsPlugin.js +4 -1
  174. package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
  175. package/lib/dependencies/CommonJsRequireDependency.js +70 -4
  176. package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
  177. package/lib/dependencies/ConstDependency.js +6 -1
  178. package/lib/dependencies/ContextDependency.js +9 -2
  179. package/lib/dependencies/ContextDependencyHelpers.js +4 -1
  180. package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
  181. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  182. package/lib/dependencies/ContextElementDependency.js +4 -0
  183. package/lib/dependencies/CreateRequireParserPlugin.js +7 -1
  184. package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
  185. package/lib/dependencies/CriticalDependencyWarning.js +2 -1
  186. package/lib/dependencies/CssIcssExportDependency.js +339 -66
  187. package/lib/dependencies/CssIcssImportDependency.js +53 -8
  188. package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
  189. package/lib/dependencies/CssImportDependency.js +12 -0
  190. package/lib/dependencies/CssUrlDependency.js +32 -0
  191. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  192. package/lib/dependencies/DllEntryDependency.js +3 -0
  193. package/lib/dependencies/DynamicExports.js +5 -0
  194. package/lib/dependencies/EntryDependency.js +1 -0
  195. package/lib/dependencies/ExportsInfoDependency.js +6 -0
  196. package/lib/dependencies/ExternalModuleDependency.js +5 -0
  197. package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
  198. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
  199. package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
  200. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
  201. package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
  202. package/lib/dependencies/HarmonyDetectionParserPlugin.js +4 -1
  203. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
  204. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
  205. package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
  206. package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
  207. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
  208. package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
  209. package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
  210. package/lib/dependencies/HarmonyExports.js +2 -0
  211. package/lib/dependencies/HarmonyImportDependency.js +21 -2
  212. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
  213. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
  214. package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
  215. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
  216. package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
  217. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
  218. package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
  219. package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
  220. package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
  221. package/lib/dependencies/HtmlSourceDependency.js +127 -0
  222. package/lib/dependencies/ImportContextDependency.js +4 -0
  223. package/lib/dependencies/ImportDependency.js +5 -0
  224. package/lib/dependencies/ImportEagerDependency.js +2 -0
  225. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  226. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -1
  227. package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
  228. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
  229. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
  230. package/lib/dependencies/ImportMetaPlugin.js +6 -0
  231. package/lib/dependencies/ImportParserPlugin.js +9 -2
  232. package/lib/dependencies/ImportPhase.js +7 -3
  233. package/lib/dependencies/ImportPlugin.js +2 -1
  234. package/lib/dependencies/ImportWeakDependency.js +2 -0
  235. package/lib/dependencies/JsonExportsDependency.js +6 -1
  236. package/lib/dependencies/LoaderDependency.js +2 -0
  237. package/lib/dependencies/LoaderImportDependency.js +2 -0
  238. package/lib/dependencies/LoaderPlugin.js +4 -1
  239. package/lib/dependencies/LocalModule.js +4 -0
  240. package/lib/dependencies/LocalModuleDependency.js +4 -0
  241. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  242. package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
  243. package/lib/dependencies/ModuleDependency.js +7 -0
  244. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  245. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  246. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
  247. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
  248. package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
  249. package/lib/dependencies/NullDependency.js +2 -0
  250. package/lib/dependencies/PrefetchDependency.js +1 -0
  251. package/lib/dependencies/ProvidedDependency.js +6 -1
  252. package/lib/dependencies/PureExpressionDependency.js +7 -1
  253. package/lib/dependencies/RequireContextDependency.js +1 -0
  254. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
  255. package/lib/dependencies/RequireContextPlugin.js +2 -1
  256. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  257. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
  258. package/lib/dependencies/RequireEnsureDependency.js +4 -0
  259. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  260. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  261. package/lib/dependencies/RequireHeaderDependency.js +4 -0
  262. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  263. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +4 -1
  264. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  265. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  266. package/lib/dependencies/RequireResolveContextDependency.js +3 -0
  267. package/lib/dependencies/RequireResolveDependency.js +1 -0
  268. package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
  269. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
  270. package/lib/dependencies/StaticExportsDependency.js +3 -0
  271. package/lib/dependencies/SystemPlugin.js +5 -2
  272. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  273. package/lib/dependencies/URLContextDependency.js +3 -0
  274. package/lib/dependencies/URLDependency.js +6 -0
  275. package/lib/dependencies/URLPlugin.js +2 -0
  276. package/lib/dependencies/UnsupportedDependency.js +4 -0
  277. package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
  278. package/lib/dependencies/WebAssemblyImportDependency.js +5 -2
  279. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
  280. package/lib/dependencies/WorkerDependency.js +6 -1
  281. package/lib/dependencies/WorkerPlugin.js +11 -3
  282. package/lib/dependencies/getFunctionExpression.js +1 -0
  283. package/lib/dependencies/processExportInfo.js +1 -0
  284. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
  285. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
  286. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
  287. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
  288. package/lib/{DllModule.js → dll/DllModule.js} +35 -24
  289. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  290. package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
  291. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
  292. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
  293. package/lib/electron/ElectronTargetPlugin.js +2 -1
  294. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  295. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  296. package/lib/errors/BuildCycleError.js +1 -1
  297. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  298. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  299. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  300. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
  301. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
  302. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
  303. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
  304. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
  305. package/lib/errors/JSONParseError.js +114 -0
  306. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
  307. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
  308. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
  309. package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
  310. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
  311. package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
  312. package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
  313. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
  314. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
  315. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
  316. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
  317. package/lib/errors/NonErrorEmittedError.js +28 -0
  318. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -2
  319. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  320. package/lib/errors/WebpackError.js +84 -0
  321. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  322. package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
  323. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
  324. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
  325. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  326. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  327. package/lib/hmr/LazyCompilationPlugin.js +20 -1
  328. package/lib/hmr/lazyCompilationBackend.js +2 -0
  329. package/lib/html/HtmlGenerator.js +379 -0
  330. package/lib/html/HtmlModulesPlugin.js +433 -0
  331. package/lib/html/HtmlParser.js +1489 -0
  332. package/lib/html/walkHtmlTokens.js +2733 -0
  333. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  334. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  335. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  336. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  337. package/lib/ids/IdHelpers.js +22 -1
  338. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  339. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  340. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  341. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  342. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  343. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  344. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  345. package/lib/index.js +39 -15
  346. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
  347. package/lib/javascript/BasicEvaluatedExpression.js +4 -2
  348. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  349. package/lib/javascript/ChunkHelpers.js +1 -0
  350. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  351. package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
  352. package/lib/javascript/JavascriptGenerator.js +10 -0
  353. package/lib/javascript/JavascriptModulesPlugin.js +112 -9
  354. package/lib/javascript/JavascriptParser.js +360 -16
  355. package/lib/javascript/JavascriptParserHelpers.js +7 -1
  356. package/lib/javascript/StartupHelpers.js +5 -0
  357. package/lib/json/JsonData.js +5 -0
  358. package/lib/json/JsonGenerator.js +21 -0
  359. package/lib/json/JsonModulesPlugin.js +1 -1
  360. package/lib/json/JsonParser.js +14 -25
  361. package/lib/library/AbstractLibraryPlugin.js +17 -2
  362. package/lib/library/AmdLibraryPlugin.js +8 -0
  363. package/lib/library/AssignLibraryPlugin.js +16 -0
  364. package/lib/library/EnableLibraryPlugin.js +8 -2
  365. package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
  366. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
  367. package/lib/library/JsonpLibraryPlugin.js +8 -0
  368. package/lib/library/ModuleLibraryPlugin.js +86 -1
  369. package/lib/library/SystemLibraryPlugin.js +8 -0
  370. package/lib/library/UmdLibraryPlugin.js +16 -0
  371. package/lib/logging/Logger.js +17 -0
  372. package/lib/logging/createConsoleLogger.js +7 -0
  373. package/lib/logging/runtime.js +2 -0
  374. package/lib/logging/truncateArgs.js +2 -0
  375. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  376. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  377. package/lib/node/NodeSourcePlugin.js +1 -1
  378. package/lib/node/NodeTargetPlugin.js +2 -1
  379. package/lib/node/NodeTemplatePlugin.js +3 -1
  380. package/lib/node/NodeWatchFileSystem.js +2 -0
  381. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
  382. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
  383. package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
  384. package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
  385. package/lib/node/nodeConsole.js +116 -64
  386. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  387. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  388. package/lib/optimize/ConcatenatedModule.js +62 -6
  389. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  390. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
  391. package/lib/optimize/InnerGraph.js +16 -1
  392. package/lib/optimize/InnerGraphPlugin.js +14 -2
  393. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  394. package/lib/optimize/MangleExportsPlugin.js +5 -1
  395. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  396. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  397. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  398. package/lib/optimize/ModuleConcatenationPlugin.js +36 -8
  399. package/lib/optimize/RealContentHashPlugin.js +104 -26
  400. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  401. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  402. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  403. package/lib/optimize/SideEffectsFlagPlugin.js +118 -4
  404. package/lib/optimize/SplitChunksPlugin.js +50 -2
  405. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  406. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  407. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  408. package/lib/performance/SizeLimitsPlugin.js +8 -2
  409. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  410. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
  411. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  412. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  413. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
  414. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  415. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  416. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  417. package/lib/rules/RuleSetCompiler.js +18 -0
  418. package/lib/rules/UseEffectRulePlugin.js +10 -3
  419. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
  420. package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
  421. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  422. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  423. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
  424. package/lib/runtime/CompatRuntimeModule.js +2 -0
  425. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
  426. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  427. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  428. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
  429. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  430. package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
  431. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  432. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  433. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
  434. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  435. package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
  436. package/lib/runtime/HelperRuntimeModule.js +5 -0
  437. package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
  438. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +121 -13
  439. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
  440. package/lib/runtime/NonceRuntimeModule.js +1 -0
  441. package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
  442. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  443. package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
  444. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  445. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
  446. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  447. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
  448. package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
  449. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  450. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  451. package/lib/schemes/DataUriPlugin.js +14 -2
  452. package/lib/schemes/FileUriPlugin.js +1 -1
  453. package/lib/schemes/HttpUriPlugin.js +43 -1
  454. package/lib/schemes/VirtualUrlPlugin.js +7 -2
  455. package/lib/serialization/AggregateErrorSerializer.js +2 -0
  456. package/lib/serialization/ArraySerializer.js +2 -0
  457. package/lib/serialization/BinaryMiddleware.js +20 -1
  458. package/lib/serialization/DateObjectSerializer.js +2 -0
  459. package/lib/serialization/ErrorObjectSerializer.js +3 -0
  460. package/lib/serialization/FileMiddleware.js +21 -0
  461. package/lib/serialization/MapObjectSerializer.js +2 -0
  462. package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
  463. package/lib/serialization/ObjectMiddleware.js +23 -0
  464. package/lib/serialization/PlainObjectSerializer.js +7 -0
  465. package/lib/serialization/RegExpObjectSerializer.js +2 -0
  466. package/lib/serialization/Serializer.js +5 -0
  467. package/lib/serialization/SerializerMiddleware.js +14 -2
  468. package/lib/serialization/SetObjectSerializer.js +2 -0
  469. package/lib/serialization/SingleItemMiddleware.js +3 -0
  470. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  471. package/lib/sharing/ConsumeSharedModule.js +15 -0
  472. package/lib/sharing/ConsumeSharedPlugin.js +8 -3
  473. package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
  474. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  475. package/lib/sharing/ProvideSharedDependency.js +4 -0
  476. package/lib/sharing/ProvideSharedModule.js +12 -1
  477. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  478. package/lib/sharing/ProvideSharedPlugin.js +5 -2
  479. package/lib/sharing/SharePlugin.js +2 -1
  480. package/lib/sharing/ShareRuntimeModule.js +1 -0
  481. package/lib/sharing/resolveMatchedConfigs.js +4 -1
  482. package/lib/sharing/utils.js +8 -0
  483. package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
  484. package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
  485. package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
  486. package/lib/stats/StatsFactory.js +13 -1
  487. package/lib/stats/StatsPrinter.js +7 -0
  488. package/lib/typescript/TypeScriptPlugin.js +210 -0
  489. package/lib/url/URLParserPlugin.js +8 -2
  490. package/lib/util/AppendOnlyStackedSet.js +15 -0
  491. package/lib/util/ArrayHelpers.js +1 -0
  492. package/lib/util/ArrayQueue.js +10 -5
  493. package/lib/util/AsyncQueue.js +22 -2
  494. package/lib/util/Hash.js +2 -2
  495. package/lib/util/IterableHelpers.js +3 -0
  496. package/lib/util/LazyBucketSortedSet.js +21 -0
  497. package/lib/util/LazySet.js +39 -0
  498. package/lib/util/LocConverter.js +53 -0
  499. package/lib/util/ParallelismFactorCalculator.js +1 -0
  500. package/lib/util/Queue.js +6 -3
  501. package/lib/util/Semaphore.js +14 -1
  502. package/lib/util/SetHelpers.js +3 -0
  503. package/lib/util/SortableSet.js +7 -1
  504. package/lib/util/StackedCacheMap.js +20 -3
  505. package/lib/util/StackedMap.js +45 -0
  506. package/lib/util/StringXor.js +1 -1
  507. package/lib/util/TupleQueue.js +7 -3
  508. package/lib/util/TupleSet.js +13 -0
  509. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  510. package/lib/util/WeakTupleMap.js +33 -0
  511. package/lib/util/binarySearchBounds.js +1 -0
  512. package/lib/util/cleverMerge.js +19 -2
  513. package/lib/util/comparators.js +34 -3
  514. package/lib/util/compileBooleanMatcher.js +9 -0
  515. package/lib/util/concatenate.js +9 -3
  516. package/lib/util/conventions.js +46 -1
  517. package/lib/util/createMappings.js +118 -0
  518. package/lib/util/dataURL.js +1 -0
  519. package/lib/util/deprecation.js +19 -0
  520. package/lib/util/deterministicGrouping.js +20 -0
  521. package/lib/util/extractSourceMap.js +1 -0
  522. package/lib/util/extractUrlAndGlobal.js +1 -0
  523. package/lib/util/findGraphRoots.js +5 -0
  524. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  525. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
  526. package/lib/util/fs.js +71 -8
  527. package/lib/util/generateDebugId.js +1 -0
  528. package/lib/util/hash/BatchedHash.js +1 -0
  529. package/lib/util/hash/BulkUpdateHash.js +1 -0
  530. package/lib/util/hash/hash-digest.js +8 -0
  531. package/lib/util/hash/md4.js +1 -1
  532. package/lib/util/hash/wasm-hash.js +5 -0
  533. package/lib/util/hash/xxhash64.js +1 -1
  534. package/lib/util/identifier.js +67 -0
  535. package/lib/util/internalSerializables.js +35 -19
  536. package/lib/util/magicComment.js +10 -6
  537. package/lib/util/makeSerializable.js +6 -0
  538. package/lib/util/memoize.js +2 -0
  539. package/lib/util/mimeTypes.js +176 -0
  540. package/lib/util/nonNumericOnlyHash.js +1 -0
  541. package/lib/util/parseJson.js +41 -0
  542. package/lib/util/processAsyncTree.js +8 -0
  543. package/lib/util/property.js +1 -0
  544. package/lib/util/registerExternalSerializer.js +20 -0
  545. package/lib/util/removeBOM.js +1 -0
  546. package/lib/util/runtime.js +32 -0
  547. package/lib/util/semver.js +15 -0
  548. package/lib/util/serialization.js +2 -0
  549. package/lib/util/smartGrouping.js +8 -0
  550. package/lib/util/source.js +23 -0
  551. package/lib/util/topologicalSort.js +69 -0
  552. package/lib/validateSchema.js +1 -0
  553. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  554. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
  555. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
  556. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  557. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
  558. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +12 -3
  559. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
  560. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
  561. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
  562. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
  563. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
  564. package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
  565. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
  566. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  567. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
  568. package/lib/wasm-sync/WebAssemblyParser.js +2 -0
  569. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  570. package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
  571. package/lib/web/FetchCompileWasmPlugin.js +13 -1
  572. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  573. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
  574. package/lib/web/JsonpTemplatePlugin.js +2 -1
  575. package/lib/webpack.js +13 -1
  576. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  577. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
  578. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  579. package/package.json +31 -31
  580. package/schemas/WebpackOptions.check.js +1 -1
  581. package/schemas/WebpackOptions.json +161 -57
  582. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  583. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  584. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  585. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  586. package/schemas/plugins/ProgressPlugin.json +22 -0
  587. package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
  588. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  589. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  590. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  591. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  592. package/types.d.ts +5325 -353
  593. package/lib/CaseSensitiveModulesWarning.js +0 -72
  594. package/lib/GraphHelpers.js +0 -46
  595. package/lib/NoModeWarning.js +0 -23
  596. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  597. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  598. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  599. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  600. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -13,6 +13,7 @@ const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
13
13
 
14
14
  class ImportMetaHotAcceptDependency extends ModuleDependency {
15
15
  /**
16
+ * Creates an instance of ImportMetaHotAcceptDependency.
16
17
  * @param {string} request the request string
17
18
  * @param {Range} range location in source code
18
19
  */
@@ -13,6 +13,7 @@ const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
13
13
 
14
14
  class ImportMetaHotDeclineDependency extends ModuleDependency {
15
15
  /**
16
+ * Creates an instance of ImportMetaHotDeclineDependency.
16
17
  * @param {string} request the request string
17
18
  * @param {Range} range location in source code
18
19
  */
@@ -74,6 +74,7 @@ const collectImportMetaEnvDefinitions = (compilation) => {
74
74
  };
75
75
 
76
76
  /**
77
+ * Defines the import meta plugin hooks type used by this module.
77
78
  * @typedef {object} ImportMetaPluginHooks
78
79
  * @property {SyncBailHook<[DestructuringAssignmentProperty], string | void>} propertyInDestructuring
79
80
  */
@@ -83,6 +84,7 @@ const compilationHooksMap = new WeakMap();
83
84
 
84
85
  class ImportMetaPlugin {
85
86
  /**
87
+ * Returns the attached hooks.
86
88
  * @param {Compilation} compilation the compilation
87
89
  * @returns {ImportMetaPluginHooks} the attached hooks
88
90
  */
@@ -103,6 +105,7 @@ class ImportMetaPlugin {
103
105
  }
104
106
 
105
107
  /**
108
+ * Applies the plugin by registering its hooks on the compiler.
106
109
  * @param {Compiler} compiler compiler
107
110
  */
108
111
  apply(compiler) {
@@ -117,11 +120,13 @@ class ImportMetaPlugin {
117
120
  );
118
121
 
119
122
  /**
123
+ * Returns file url.
120
124
  * @param {NormalModule} module module
121
125
  * @returns {string} file url
122
126
  */
123
127
  const getUrl = (module) => pathToFileURL(module.resource).toString();
124
128
  /**
129
+ * Processes the provided parser.
125
130
  * @param {Parser} parser parser parser
126
131
  * @param {JavascriptParserOptions} parserOptions parserOptions
127
132
  * @returns {void}
@@ -154,6 +159,7 @@ class ImportMetaPlugin {
154
159
  JSON.stringify(getUrl(parser.state.module));
155
160
  const importMetaWebpackVersion = () => JSON.stringify(webpackVersion);
156
161
  /**
162
+ * Import meta unknown property.
157
163
  * @param {Members} members members
158
164
  * @returns {string} error message
159
165
  */
@@ -6,8 +6,8 @@
6
6
  "use strict";
7
7
 
8
8
  const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
9
- const CommentCompilationWarning = require("../CommentCompilationWarning");
10
- const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning");
9
+ const CommentCompilationWarning = require("../errors/CommentCompilationWarning");
10
+ const UnsupportedFeatureWarning = require("../errors/UnsupportedFeatureWarning");
11
11
  const {
12
12
  VariableInfo,
13
13
  getImportAttributes
@@ -47,6 +47,7 @@ const parserStateMap = new WeakMap();
47
47
  const dynamicImportTag = Symbol("import()");
48
48
 
49
49
  /**
50
+ * Returns import parser plugin state.
50
51
  * @param {JavascriptParser} parser javascript parser
51
52
  * @returns {State} import parser plugin state
52
53
  */
@@ -58,6 +59,7 @@ function getState(parser) {
58
59
  }
59
60
 
60
61
  /**
62
+ * Tag dynamic import referenced.
61
63
  * @param {JavascriptParser} parser javascript parser
62
64
  * @param {ImportExpression} importCall import expression
63
65
  * @param {string} variableName variable name
@@ -78,6 +80,7 @@ function tagDynamicImportReferenced(parser, importCall, variableName) {
78
80
  }
79
81
 
80
82
  /**
83
+ * Gets fulfilled callback namespace obj.
81
84
  * @param {CallExpression} importThen import().then() call
82
85
  * @returns {Identifier | ObjectPattern | undefined} the dynamic imported namespace obj
83
86
  */
@@ -96,6 +99,7 @@ function getFulfilledCallbackNamespaceObj(importThen) {
96
99
  }
97
100
 
98
101
  /**
102
+ * Walk import then fulfilled callback.
99
103
  * @param {JavascriptParser} parser javascript parser
100
104
  * @param {ImportExpression} importCall import expression
101
105
  * @param {ArrowFunctionExpression | FunctionExpression} fulfilledCallback the fulfilled callback
@@ -157,6 +161,7 @@ function walkImportThenFulfilledCallback(
157
161
  }
158
162
 
159
163
  /**
164
+ * Exports from enumerable.
160
165
  * @template T
161
166
  * @param {Iterable<T>} enumerable enumerable
162
167
  * @returns {T[][]} array of array
@@ -168,6 +173,7 @@ const PLUGIN_NAME = "ImportParserPlugin";
168
173
 
169
174
  class ImportParserPlugin {
170
175
  /**
176
+ * Creates an instance of ImportParserPlugin.
171
177
  * @param {JavascriptParserOptions} options options
172
178
  */
173
179
  constructor(options) {
@@ -175,6 +181,7 @@ class ImportParserPlugin {
175
181
  }
176
182
 
177
183
  /**
184
+ * Applies the plugin by registering its hooks on the compiler.
178
185
  * @param {JavascriptParser} parser the parser
179
186
  * @returns {void}
180
187
  */
@@ -8,7 +8,7 @@
8
8
  const memoize = require("../util/memoize");
9
9
 
10
10
  const getCommentCompilationWarning = memoize(() =>
11
- require("../CommentCompilationWarning")
11
+ require("../errors/CommentCompilationWarning")
12
12
  );
13
13
 
14
14
  /** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
@@ -28,6 +28,7 @@ const ImportPhase = Object.freeze({
28
28
  /** @typedef {"defer" | "source" | "evaluation"} ImportPhaseName */
29
29
 
30
30
  /**
31
+ * Defines the import phase utils type used by this module.
31
32
  * @typedef {object} ImportPhaseUtils
32
33
  * @property {(phase: ImportPhaseType | undefined) => boolean} isEvaluation true if phase is evaluation
33
34
  * @property {(phase: ImportPhaseType | undefined) => boolean} isDefer true if phase is defer
@@ -59,10 +60,12 @@ const ImportPhaseUtils = {
59
60
  };
60
61
 
61
62
  /**
63
+ * Defines the get comment options type used by this module.
62
64
  * @typedef {() => Record<string, EXPECTED_ANY> | null} GetCommentOptions
63
65
  */
64
66
 
65
67
  /**
68
+ * Defines the get import phase callback.
66
69
  * @callback GetImportPhase
67
70
  * @param {JavascriptParser} parser parser
68
71
  * @param {ExportNamedDeclaration | ExportAllDeclaration | ImportDeclaration | ImportExpression} node node
@@ -71,8 +74,9 @@ const ImportPhaseUtils = {
71
74
  */
72
75
 
73
76
  /**
74
- * @param {boolean=} enableDeferPhase enable import phase detection
75
- * @param {boolean=} enableSourcePhase enable import phase detection
77
+ * Creates an import phase resolver.
78
+ * @param {boolean=} enableDeferPhase enable defer phase detection
79
+ * @param {boolean=} enableSourcePhase enable source phase detection
76
80
  * @returns {GetImportPhase} evaluates the import phase for ast node
77
81
  */
78
82
  function createGetImportPhase(enableDeferPhase, enableSourcePhase) {
@@ -24,7 +24,7 @@ const PLUGIN_NAME = "ImportPlugin";
24
24
 
25
25
  class ImportPlugin {
26
26
  /**
27
- * Apply the plugin
27
+ * Applies the plugin by registering its hooks on the compiler.
28
28
  * @param {Compiler} compiler the compiler instance
29
29
  * @returns {void}
30
30
  */
@@ -69,6 +69,7 @@ class ImportPlugin {
69
69
  );
70
70
 
71
71
  /**
72
+ * Handles the hook callback for this code path.
72
73
  * @param {Parser} parser parser parser
73
74
  * @param {JavascriptParserOptions} parserOptions parserOptions
74
75
  * @returns {void}
@@ -20,6 +20,7 @@ const ImportDependency = require("./ImportDependency");
20
20
 
21
21
  class ImportWeakDependency extends ImportDependency {
22
22
  /**
23
+ * Creates an instance of ImportWeakDependency.
23
24
  * @param {string} request the request
24
25
  * @param {Range} range expression range
25
26
  * @param {RawReferencedExports | null} referencedExports list of referenced exports
@@ -45,6 +46,7 @@ ImportWeakDependency.Template = class ImportDependencyTemplate extends (
45
46
  ImportDependency.Template
46
47
  ) {
47
48
  /**
49
+ * Applies the plugin by registering its hooks on the compiler.
48
50
  * @param {Dependency} dependency the dependency for which the template should be applied
49
51
  * @param {ReplaceSource} source the current replace source which can be modified
50
52
  * @param {DependencyTemplateContext} templateContext the context object
@@ -19,6 +19,7 @@ const NullDependency = require("./NullDependency");
19
19
  /** @typedef {import("../util/Hash")} Hash */
20
20
 
21
21
  /**
22
+ * Defines the get exports from data fn callback.
22
23
  * @callback GetExportsFromDataFn
23
24
  * @param {JsonValue} data raw json data
24
25
  * @param {number=} curDepth current depth
@@ -26,6 +27,7 @@ const NullDependency = require("./NullDependency");
26
27
  */
27
28
 
28
29
  /**
30
+ * Gets exports with depth.
29
31
  * @param {number} exportsDepth exportsDepth
30
32
  * @returns {GetExportsFromDataFn} value
31
33
  */
@@ -71,6 +73,7 @@ const getExportsWithDepth = (exportsDepth) =>
71
73
 
72
74
  class JsonExportsDependency extends NullDependency {
73
75
  /**
76
+ * Creates an instance of JsonExportsDependency.
74
77
  * @param {JsonData} data json data
75
78
  * @param {number} exportsDepth the depth of json exports to analyze
76
79
  */
@@ -99,7 +102,7 @@ class JsonExportsDependency extends NullDependency {
99
102
  }
100
103
 
101
104
  /**
102
- * Update the hash
105
+ * Updates the hash with the data contributed by this instance.
103
106
  * @param {Hash} hash hash to be updated
104
107
  * @param {UpdateHashContext} context context
105
108
  * @returns {void}
@@ -109,6 +112,7 @@ class JsonExportsDependency extends NullDependency {
109
112
  }
110
113
 
111
114
  /**
115
+ * Serializes this instance into the provided serializer context.
112
116
  * @param {ObjectSerializerContext} context context
113
117
  */
114
118
  serialize(context) {
@@ -119,6 +123,7 @@ class JsonExportsDependency extends NullDependency {
119
123
  }
120
124
 
121
125
  /**
126
+ * Restores this instance from the provided deserializer context.
122
127
  * @param {ObjectDeserializerContext} context context
123
128
  */
124
129
  deserialize(context) {
@@ -12,6 +12,7 @@ const ModuleDependency = require("./ModuleDependency");
12
12
 
13
13
  class LoaderDependency extends ModuleDependency {
14
14
  /**
15
+ * Creates an instance of LoaderDependency.
15
16
  * @param {string} request request string
16
17
  */
17
18
  constructor(request) {
@@ -27,6 +28,7 @@ class LoaderDependency extends ModuleDependency {
27
28
  }
28
29
 
29
30
  /**
31
+ * Returns function to determine if the connection is active.
30
32
  * @param {ModuleGraph} moduleGraph module graph
31
33
  * @returns {null | false | GetConditionFn} function to determine if the connection is active
32
34
  */
@@ -12,6 +12,7 @@ const ModuleDependency = require("./ModuleDependency");
12
12
 
13
13
  class LoaderImportDependency extends ModuleDependency {
14
14
  /**
15
+ * Creates an instance of LoaderImportDependency.
15
16
  * @param {string} request request string
16
17
  */
17
18
  constructor(request) {
@@ -28,6 +29,7 @@ class LoaderImportDependency extends ModuleDependency {
28
29
  }
29
30
 
30
31
  /**
32
+ * Returns function to determine if the connection is active.
31
33
  * @param {ModuleGraph} moduleGraph module graph
32
34
  * @returns {null | false | GetConditionFn} function to determine if the connection is active
33
35
  */
@@ -19,6 +19,7 @@ const LoaderImportDependency = require("./LoaderImportDependency");
19
19
  /** @typedef {import("../Module").FileSystemDependencies} FileSystemDependencies */
20
20
 
21
21
  /**
22
+ * Defines the import module callback callback.
22
23
  * @callback ImportModuleCallback
23
24
  * @param {(Error | null)=} err error object
24
25
  * @param {ExecuteModuleExports=} exports exports of the evaluated module
@@ -26,6 +27,7 @@ const LoaderImportDependency = require("./LoaderImportDependency");
26
27
  */
27
28
 
28
29
  /**
30
+ * Defines the import module options type used by this module.
29
31
  * @typedef {object} ImportModuleOptions
30
32
  * @property {string=} layer the target layer
31
33
  * @property {string=} publicPath the target public path
@@ -36,7 +38,7 @@ const PLUGIN_NAME = "LoaderPlugin";
36
38
 
37
39
  class LoaderPlugin {
38
40
  /**
39
- * Apply the plugin
41
+ * Applies the plugin by registering its hooks on the compiler.
40
42
  * @param {Compiler} compiler the compiler instance
41
43
  * @returns {void}
42
44
  */
@@ -162,6 +164,7 @@ class LoaderPlugin {
162
164
  };
163
165
 
164
166
  /**
167
+ * Processes the provided request.
165
168
  * @param {string} request the request string to load the module from
166
169
  * @param {ImportModuleOptions} options options
167
170
  * @param {ImportModuleCallback} callback callback returning the exports
@@ -12,6 +12,7 @@ const makeSerializable = require("../util/makeSerializable");
12
12
 
13
13
  class LocalModule {
14
14
  /**
15
+ * Creates an instance of LocalModule.
15
16
  * @param {string} name name
16
17
  * @param {number} idx index
17
18
  */
@@ -26,6 +27,7 @@ class LocalModule {
26
27
  }
27
28
 
28
29
  /**
30
+ * Returns variable name.
29
31
  * @returns {string} variable name
30
32
  */
31
33
  variableName() {
@@ -33,6 +35,7 @@ class LocalModule {
33
35
  }
34
36
 
35
37
  /**
38
+ * Serializes this instance into the provided serializer context.
36
39
  * @param {ObjectSerializerContext} context context
37
40
  */
38
41
  serialize(context) {
@@ -44,6 +47,7 @@ class LocalModule {
44
47
  }
45
48
 
46
49
  /**
50
+ * Restores this instance from the provided deserializer context.
47
51
  * @param {ObjectDeserializerContext} context context
48
52
  */
49
53
  deserialize(context) {
@@ -18,6 +18,7 @@ const NullDependency = require("./NullDependency");
18
18
 
19
19
  class LocalModuleDependency extends NullDependency {
20
20
  /**
21
+ * Creates an instance of LocalModuleDependency.
21
22
  * @param {LocalModule} localModule local module
22
23
  * @param {Range | undefined} range range
23
24
  * @param {boolean} callNew true, when the local module should be called with new
@@ -31,6 +32,7 @@ class LocalModuleDependency extends NullDependency {
31
32
  }
32
33
 
33
34
  /**
35
+ * Serializes this instance into the provided serializer context.
34
36
  * @param {ObjectSerializerContext} context context
35
37
  */
36
38
  serialize(context) {
@@ -44,6 +46,7 @@ class LocalModuleDependency extends NullDependency {
44
46
  }
45
47
 
46
48
  /**
49
+ * Restores this instance from the provided deserializer context.
47
50
  * @param {ObjectDeserializerContext} context context
48
51
  */
49
52
  deserialize(context) {
@@ -66,6 +69,7 @@ LocalModuleDependency.Template = class LocalModuleDependencyTemplate extends (
66
69
  NullDependency.Template
67
70
  ) {
68
71
  /**
72
+ * Applies the plugin by registering its hooks on the compiler.
69
73
  * @param {Dependency} dependency the dependency for which the template should be applied
70
74
  * @param {ReplaceSource} source the current replace source which can be modified
71
75
  * @param {DependencyTemplateContext} templateContext the context object
@@ -10,6 +10,7 @@ const LocalModule = require("./LocalModule");
10
10
  /** @typedef {import("../javascript/JavascriptParser").JavascriptParserState} JavascriptParserState */
11
11
 
12
12
  /**
13
+ * Returns resolved module.
13
14
  * @param {string} parent parent module
14
15
  * @param {string} mod module to resolve
15
16
  * @returns {string} resolved module
@@ -34,6 +35,7 @@ const lookup = (parent, mod) => {
34
35
  };
35
36
 
36
37
  /**
38
+ * Returns local module.
37
39
  * @param {JavascriptParserState} state parser state
38
40
  * @param {string} name name
39
41
  * @returns {LocalModule} local module
@@ -48,6 +50,7 @@ module.exports.addLocalModule = (state, name) => {
48
50
  };
49
51
 
50
52
  /**
53
+ * Returns local module or null.
51
54
  * @param {JavascriptParserState} state parser state
52
55
  * @param {string} name name
53
56
  * @param {string=} namedModule named module
@@ -23,6 +23,7 @@ const NullDependency = require("./NullDependency");
23
23
 
24
24
  class ModuleDecoratorDependency extends NullDependency {
25
25
  /**
26
+ * Creates an instance of ModuleDecoratorDependency.
26
27
  * @param {string} decorator the decorator requirement
27
28
  * @param {boolean} allowExportsAccess allow to access exports from module
28
29
  */
@@ -35,6 +36,7 @@ class ModuleDecoratorDependency extends NullDependency {
35
36
  }
36
37
 
37
38
  /**
39
+ * Returns a display name for the type of dependency.
38
40
  * @returns {string} a display name for the type of dependency
39
41
  */
40
42
  get type() {
@@ -46,6 +48,7 @@ class ModuleDecoratorDependency extends NullDependency {
46
48
  }
47
49
 
48
50
  /**
51
+ * Returns an identifier to merge equal requests.
49
52
  * @returns {string | null} an identifier to merge equal requests
50
53
  */
51
54
  getResourceIdentifier() {
@@ -65,7 +68,7 @@ class ModuleDecoratorDependency extends NullDependency {
65
68
  }
66
69
 
67
70
  /**
68
- * Update the hash
71
+ * Updates the hash with the data contributed by this instance.
69
72
  * @param {Hash} hash hash to be updated
70
73
  * @param {UpdateHashContext} context context
71
74
  * @returns {void}
@@ -78,6 +81,7 @@ class ModuleDecoratorDependency extends NullDependency {
78
81
  }
79
82
 
80
83
  /**
84
+ * Serializes this instance into the provided serializer context.
81
85
  * @param {ObjectSerializerContext} context context
82
86
  */
83
87
  serialize(context) {
@@ -88,6 +92,7 @@ class ModuleDecoratorDependency extends NullDependency {
88
92
  }
89
93
 
90
94
  /**
95
+ * Restores this instance from the provided deserializer context.
91
96
  * @param {ObjectDeserializerContext} context context
92
97
  */
93
98
  deserialize(context) {
@@ -107,6 +112,7 @@ ModuleDecoratorDependency.Template = class ModuleDecoratorDependencyTemplate ext
107
112
  NullDependency.Template
108
113
  ) {
109
114
  /**
115
+ * Applies the plugin by registering its hooks on the compiler.
110
116
  * @param {Dependency} dependency the dependency for which the template should be applied
111
117
  * @param {ReplaceSource} source the current replace source which can be modified
112
118
  * @param {DependencyTemplateContext} templateContext the context object
@@ -17,6 +17,7 @@ const DependencyTemplate = require("../DependencyTemplate");
17
17
 
18
18
  class ModuleDependency extends Dependency {
19
19
  /**
20
+ * Creates an instance of ModuleDependency.
20
21
  * @param {string} request request path which needs resolving
21
22
  * @param {number=} sourceOrder source order
22
23
  */
@@ -32,6 +33,7 @@ class ModuleDependency extends Dependency {
32
33
  }
33
34
 
34
35
  /**
36
+ * Returns a request context.
35
37
  * @returns {string | undefined} a request context
36
38
  */
37
39
  getContext() {
@@ -39,6 +41,7 @@ class ModuleDependency extends Dependency {
39
41
  }
40
42
 
41
43
  /**
44
+ * Returns an identifier to merge equal requests.
42
45
  * @returns {string | null} an identifier to merge equal requests
43
46
  */
44
47
  getResourceIdentifier() {
@@ -46,6 +49,7 @@ class ModuleDependency extends Dependency {
46
49
  }
47
50
 
48
51
  /**
52
+ * Could affect referencing module.
49
53
  * @returns {boolean | TRANSITIVE} true, when changes to the referenced module could affect the referencing module; TRANSITIVE, when changes to the referenced module could affect referencing modules of the referencing module
50
54
  */
51
55
  couldAffectReferencingModule() {
@@ -53,6 +57,7 @@ class ModuleDependency extends Dependency {
53
57
  }
54
58
 
55
59
  /**
60
+ * Creates an ignored module.
56
61
  * @param {string} context context directory
57
62
  * @returns {Module} ignored module
58
63
  */
@@ -69,6 +74,7 @@ class ModuleDependency extends Dependency {
69
74
  }
70
75
 
71
76
  /**
77
+ * Serializes this instance into the provided serializer context.
72
78
  * @param {ObjectSerializerContext} context context
73
79
  */
74
80
  serialize(context) {
@@ -82,6 +88,7 @@ class ModuleDependency extends Dependency {
82
88
  }
83
89
 
84
90
  /**
91
+ * Restores this instance from the provided deserializer context.
85
92
  * @param {ObjectDeserializerContext} context context
86
93
  */
87
94
  deserialize(context) {
@@ -14,6 +14,7 @@ const ModuleDependency = require("./ModuleDependency");
14
14
 
15
15
  class ModuleDependencyTemplateAsId extends ModuleDependency.Template {
16
16
  /**
17
+ * Applies the plugin by registering its hooks on the compiler.
17
18
  * @param {Dependency} dependency the dependency for which the template should be applied
18
19
  * @param {ReplaceSource} source the current replace source which can be modified
19
20
  * @param {DependencyTemplateContext} templateContext the context object
@@ -13,6 +13,7 @@ const ModuleDependency = require("./ModuleDependency");
13
13
 
14
14
  class ModuleDependencyTemplateAsRequireId extends ModuleDependency.Template {
15
15
  /**
16
+ * Applies the plugin by registering its hooks on the compiler.
16
17
  * @param {Dependency} dependency the dependency for which the template should be applied
17
18
  * @param {ReplaceSource} source the current replace source which can be modified
18
19
  * @param {DependencyTemplateContext} templateContext the context object
@@ -13,6 +13,7 @@ const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
13
13
 
14
14
  class ModuleHotAcceptDependency extends ModuleDependency {
15
15
  /**
16
+ * Creates an instance of ModuleHotAcceptDependency.
16
17
  * @param {string} request the request string
17
18
  * @param {Range} range location in source code
18
19
  */
@@ -13,6 +13,7 @@ const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
13
13
 
14
14
  class ModuleHotDeclineDependency extends ModuleDependency {
15
15
  /**
16
+ * Creates an instance of ModuleHotDeclineDependency.
16
17
  * @param {string} request the request string
17
18
  * @param {Range} range location in source code
18
19
  */
@@ -19,6 +19,7 @@ const NullDependency = require("./NullDependency");
19
19
  */
20
20
  class ModuleInitFragmentDependency extends NullDependency {
21
21
  /**
22
+ * Creates an instance of ModuleInitFragmentDependency.
22
23
  * @param {string} initCode the initialization code
23
24
  * @param {string[]} runtimeRequirements runtime requirements
24
25
  * @param {string=} key unique key to avoid emitting the same initialization code twice
@@ -31,6 +32,7 @@ class ModuleInitFragmentDependency extends NullDependency {
31
32
  }
32
33
 
33
34
  /**
35
+ * Serializes this instance into the provided serializer context.
34
36
  * @param {ObjectSerializerContext} context context
35
37
  */
36
38
  serialize(context) {
@@ -42,6 +44,7 @@ class ModuleInitFragmentDependency extends NullDependency {
42
44
  }
43
45
 
44
46
  /**
47
+ * Restores this instance from the provided deserializer context.
45
48
  * @param {ObjectDeserializerContext} context context
46
49
  */
47
50
  deserialize(context) {
@@ -62,6 +65,7 @@ ModuleInitFragmentDependency.Template = class ModuleInitFragmentDependencyTempla
62
65
  NullDependency.Template
63
66
  ) {
64
67
  /**
68
+ * Applies the plugin by registering its hooks on the compiler.
65
69
  * @param {Dependency} dependency the dependency for which the template should be applied
66
70
  * @param {ReplaceSource} source the current replace source which can be modified
67
71
  * @param {DependencyTemplateContext} templateContext the context object
@@ -20,6 +20,7 @@ class NullDependency extends Dependency {
20
20
  }
21
21
 
22
22
  /**
23
+ * Could affect referencing module.
23
24
  * @returns {boolean | TRANSITIVE} true, when changes to the referenced module could affect the referencing module; TRANSITIVE, when changes to the referenced module could affect referencing modules of the referencing module
24
25
  */
25
26
  couldAffectReferencingModule() {
@@ -31,6 +32,7 @@ NullDependency.Template = class NullDependencyTemplate extends (
31
32
  DependencyTemplate
32
33
  ) {
33
34
  /**
35
+ * Applies the plugin by registering its hooks on the compiler.
34
36
  * @param {Dependency} dependency the dependency for which the template should be applied
35
37
  * @param {ReplaceSource} source the current replace source which can be modified
36
38
  * @param {DependencyTemplateContext} templateContext the context object
@@ -9,6 +9,7 @@ const ModuleDependency = require("./ModuleDependency");
9
9
 
10
10
  class PrefetchDependency extends ModuleDependency {
11
11
  /**
12
+ * Creates an instance of PrefetchDependency.
12
13
  * @param {string} request the request string
13
14
  */
14
15
  constructor(request) {
@@ -24,6 +24,7 @@ const ModuleDependency = require("./ModuleDependency");
24
24
  /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
25
25
 
26
26
  /**
27
+ * Returns the converted path.
27
28
  * @param {string[] | null} path the property path array
28
29
  * @returns {string} the converted path
29
30
  */
@@ -34,6 +35,7 @@ const pathToString = (path) =>
34
35
 
35
36
  class ProvidedDependency extends ModuleDependency {
36
37
  /**
38
+ * Creates an instance of ProvidedDependency.
37
39
  * @param {string} request request
38
40
  * @param {string} identifier identifier
39
41
  * @param {ExportInfoName[]} ids ids
@@ -69,7 +71,7 @@ class ProvidedDependency extends ModuleDependency {
69
71
  }
70
72
 
71
73
  /**
72
- * Update the hash
74
+ * Updates the hash with the data contributed by this instance.
73
75
  * @param {Hash} hash hash to be updated
74
76
  * @param {UpdateHashContext} context context
75
77
  * @returns {void}
@@ -82,6 +84,7 @@ class ProvidedDependency extends ModuleDependency {
82
84
  }
83
85
 
84
86
  /**
87
+ * Serializes this instance into the provided serializer context.
85
88
  * @param {ObjectSerializerContext} context context
86
89
  */
87
90
  serialize(context) {
@@ -92,6 +95,7 @@ class ProvidedDependency extends ModuleDependency {
92
95
  }
93
96
 
94
97
  /**
98
+ * Restores this instance from the provided deserializer context.
95
99
  * @param {ObjectDeserializerContext} context context
96
100
  */
97
101
  deserialize(context) {
@@ -109,6 +113,7 @@ makeSerializable(
109
113
 
110
114
  class ProvidedDependencyTemplate extends ModuleDependency.Template {
111
115
  /**
116
+ * Applies the plugin by registering its hooks on the compiler.
112
117
  * @param {Dependency} dependency the dependency for which the template should be applied
113
118
  * @param {ReplaceSource} source the current replace source which can be modified
114
119
  * @param {DependencyTemplateContext} templateContext the context object