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
@@ -75,6 +75,7 @@ class ExternalModuleInitFragment extends InitFragment {
75
75
  }
76
76
 
77
77
  /**
78
+ * Returns the source code that will be included as initialization code.
78
79
  * @param {GenerateContext} context context
79
80
  * @returns {string | Source | undefined} the source code that will be included as initialization code
80
81
  */
@@ -107,6 +108,7 @@ class ExternalModuleInitFragment extends InitFragment {
107
108
  }
108
109
 
109
110
  /**
111
+ * Serializes this instance into the provided serializer context.
110
112
  * @param {ObjectSerializerContext} context context
111
113
  */
112
114
  serialize(context) {
@@ -118,6 +120,7 @@ class ExternalModuleInitFragment extends InitFragment {
118
120
  }
119
121
 
120
122
  /**
123
+ * Restores this instance from the provided deserializer context.
121
124
  * @param {ObjectDeserializerContext} context context
122
125
  */
123
126
  deserialize(context) {
@@ -20,6 +20,7 @@ const NullDependency = require("./NullDependency");
20
20
 
21
21
  class ExternalModuleInitFragmentDependency extends NullDependency {
22
22
  /**
23
+ * Creates an instance of ExternalModuleInitFragmentDependency.
23
24
  * @param {string} module module
24
25
  * @param {ArrayImportSpecifiers} importSpecifiers import specifiers
25
26
  * @param {string | undefined} defaultImport default import
@@ -32,6 +33,7 @@ class ExternalModuleInitFragmentDependency extends NullDependency {
32
33
  }
33
34
 
34
35
  /**
36
+ * Serializes this instance into the provided serializer context.
35
37
  * @param {ObjectSerializerContext} context context
36
38
  */
37
39
  serialize(context) {
@@ -42,6 +44,7 @@ class ExternalModuleInitFragmentDependency 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) {
@@ -61,6 +64,7 @@ ExternalModuleInitFragmentDependency.Template = class ExternalModuleConstDepende
61
64
  DependencyTemplate
62
65
  ) {
63
66
  /**
67
+ * Applies the plugin by registering its hooks on the compiler.
64
68
  * @param {Dependency} dependency the dependency for which the template should be applied
65
69
  * @param {ReplaceSource} source the current replace source which can be modified
66
70
  * @param {DependencyTemplateContext} templateContext the context object
@@ -24,6 +24,7 @@ const NullDependency = require("./NullDependency");
24
24
 
25
25
  class HarmonyAcceptDependency extends NullDependency {
26
26
  /**
27
+ * Creates an instance of HarmonyAcceptDependency.
27
28
  * @param {Range} range expression range
28
29
  * @param {HarmonyAcceptImportDependency[]} dependencies import dependencies
29
30
  * @param {boolean} hasCallback true, if the range wraps an existing callback
@@ -40,6 +41,7 @@ class HarmonyAcceptDependency extends NullDependency {
40
41
  }
41
42
 
42
43
  /**
44
+ * Serializes this instance into the provided serializer context.
43
45
  * @param {ObjectSerializerContext} context context
44
46
  */
45
47
  serialize(context) {
@@ -51,6 +53,7 @@ class HarmonyAcceptDependency extends NullDependency {
51
53
  }
52
54
 
53
55
  /**
56
+ * Restores this instance from the provided deserializer context.
54
57
  * @param {ObjectDeserializerContext} context context
55
58
  */
56
59
  deserialize(context) {
@@ -71,6 +74,7 @@ HarmonyAcceptDependency.Template = class HarmonyAcceptDependencyTemplate extends
71
74
  NullDependency.Template
72
75
  ) {
73
76
  /**
77
+ * Applies the plugin by registering its hooks on the compiler.
74
78
  * @param {Dependency} dependency the dependency for which the template should be applied
75
79
  * @param {ReplaceSource} source the current replace source which can be modified
76
80
  * @param {DependencyTemplateContext} templateContext the context object
@@ -88,6 +92,7 @@ HarmonyAcceptDependency.Template = class HarmonyAcceptDependencyTemplate extends
88
92
  } = templateContext;
89
93
 
90
94
  /**
95
+ * Gets dependency module id.
91
96
  * @param {Dependency} dependency the dependency to get module id for
92
97
  * @returns {ModuleId | null} the module id or null if not found
93
98
  */
@@ -97,6 +102,7 @@ HarmonyAcceptDependency.Template = class HarmonyAcceptDependencyTemplate extends
97
102
  );
98
103
 
99
104
  /**
105
+ * Checks whether this harmony accept dependency is related harmony import dependency.
100
106
  * @param {Dependency} a the first dependency
101
107
  * @param {Dependency} b the second dependency
102
108
  * @returns {boolean} true if the dependencies are related
@@ -12,6 +12,7 @@ const NullDependency = require("./NullDependency");
12
12
 
13
13
  class HarmonyAcceptImportDependency extends HarmonyImportDependency {
14
14
  /**
15
+ * Creates an instance of HarmonyAcceptImportDependency.
15
16
  * @param {string} request the request string
16
17
  */
17
18
  constructor(request) {
@@ -31,6 +31,7 @@ HarmonyCompatibilityDependency.Template = class HarmonyExportDependencyTemplate
31
31
  NullDependency.Template
32
32
  ) {
33
33
  /**
34
+ * Applies the plugin by registering its hooks on the compiler.
34
35
  * @param {Dependency} dependency the dependency for which the template should be applied
35
36
  * @param {ReplaceSource} source the current replace source which can be modified
36
37
  * @param {DependencyTemplateContext} templateContext the context object
@@ -18,6 +18,7 @@ const PLUGIN_NAME = "HarmonyDetectionParserPlugin";
18
18
 
19
19
  module.exports = class HarmonyDetectionParserPlugin {
20
20
  /**
21
+ * Applies the plugin by registering its hooks on the compiler.
21
22
  * @param {JavascriptParser} parser the parser
22
23
  * @returns {void}
23
24
  */
@@ -72,6 +73,7 @@ module.exports = class HarmonyDetectionParserPlugin {
72
73
  });
73
74
 
74
75
  /**
76
+ * Returns true if in harmony.
75
77
  * @returns {boolean | undefined} true if in harmony
76
78
  */
77
79
  const skipInHarmony = () => {
@@ -81,6 +83,7 @@ module.exports = class HarmonyDetectionParserPlugin {
81
83
  };
82
84
 
83
85
  /**
86
+ * Returns null if in harmony.
84
87
  * @returns {null | undefined} null if in harmony
85
88
  */
86
89
  const nullInHarmony = () => {
@@ -30,6 +30,7 @@ const { ImportPhase } = require("./ImportPhase");
30
30
  */
31
31
  class HarmonyEvaluatedImportSpecifierDependency extends HarmonyImportSpecifierDependency {
32
32
  /**
33
+ * Creates an instance of HarmonyEvaluatedImportSpecifierDependency.
33
34
  * @param {string} request the request string
34
35
  * @param {number} sourceOrder source order
35
36
  * @param {Ids} ids ids
@@ -58,6 +59,7 @@ class HarmonyEvaluatedImportSpecifierDependency extends HarmonyImportSpecifierDe
58
59
  }
59
60
 
60
61
  /**
62
+ * Serializes this instance into the provided serializer context.
61
63
  * @param {ObjectSerializerContext} context context
62
64
  */
63
65
  serialize(context) {
@@ -67,6 +69,7 @@ class HarmonyEvaluatedImportSpecifierDependency extends HarmonyImportSpecifierDe
67
69
  }
68
70
 
69
71
  /**
72
+ * Restores this instance from the provided deserializer context.
70
73
  * @param {ObjectDeserializerContext} context context
71
74
  */
72
75
  deserialize(context) {
@@ -85,6 +88,7 @@ HarmonyEvaluatedImportSpecifierDependency.Template = class HarmonyEvaluatedImpor
85
88
  HarmonyImportSpecifierDependency.Template
86
89
  ) {
87
90
  /**
91
+ * Applies the plugin by registering its hooks on the compiler.
88
92
  * @param {Dependency} dependency the dependency for which the template should be applied
89
93
  * @param {ReplaceSource} source the current replace source which can be modified
90
94
  * @param {DependencyTemplateContext} templateContext the context object
@@ -36,6 +36,7 @@ const PLUGIN_NAME = "HarmonyExportDependencyParserPlugin";
36
36
 
37
37
  module.exports = class HarmonyExportDependencyParserPlugin {
38
38
  /**
39
+ * Creates an instance of HarmonyExportDependencyParserPlugin.
39
40
  * @param {JavascriptParserOptions} options options
40
41
  */
41
42
  constructor(options) {
@@ -47,6 +48,7 @@ module.exports = class HarmonyExportDependencyParserPlugin {
47
48
  }
48
49
 
49
50
  /**
51
+ * Applies the plugin by registering its hooks on the compiler.
50
52
  * @param {JavascriptParser} parser the parser
51
53
  * @returns {void}
52
54
  */
@@ -26,6 +26,7 @@ const NullDependency = require("./NullDependency");
26
26
 
27
27
  class HarmonyExportExpressionDependency extends NullDependency {
28
28
  /**
29
+ * Creates an instance of HarmonyExportExpressionDependency.
29
30
  * @param {Range} range range
30
31
  * @param {Range} rangeStatement range statement
31
32
  * @param {string} prefix prefix
@@ -59,6 +60,7 @@ class HarmonyExportExpressionDependency extends NullDependency {
59
60
  }
60
61
 
61
62
  /**
63
+ * Gets module evaluation side effects state.
62
64
  * @param {ModuleGraph} moduleGraph the module graph
63
65
  * @returns {ConnectionState} how this dependency connects the module to referencing modules
64
66
  */
@@ -68,6 +70,7 @@ class HarmonyExportExpressionDependency extends NullDependency {
68
70
  }
69
71
 
70
72
  /**
73
+ * Serializes this instance into the provided serializer context.
71
74
  * @param {ObjectSerializerContext} context context
72
75
  */
73
76
  serialize(context) {
@@ -81,6 +84,7 @@ class HarmonyExportExpressionDependency extends NullDependency {
81
84
  }
82
85
 
83
86
  /**
87
+ * Restores this instance from the provided deserializer context.
84
88
  * @param {ObjectDeserializerContext} context context
85
89
  */
86
90
  deserialize(context) {
@@ -103,6 +107,7 @@ HarmonyExportExpressionDependency.Template = class HarmonyExportDependencyTempla
103
107
  NullDependency.Template
104
108
  ) {
105
109
  /**
110
+ * Applies the plugin by registering its hooks on the compiler.
106
111
  * @param {Dependency} dependency the dependency for which the template should be applied
107
112
  * @param {ReplaceSource} source the current replace source which can be modified
108
113
  * @param {DependencyTemplateContext} templateContext the context object
@@ -163,7 +168,7 @@ HarmonyExportExpressionDependency.Template = class HarmonyExportDependencyTempla
163
168
  // see test/test262-cases/test/language/module-code/instn-named-bndng-dflt-fun-anon.js cspell:disable-line
164
169
  initFragments.push(
165
170
  new InitFragment(
166
- `Reflect.defineProperty(${name}, "name", { value: "default", configurable: true });\n`,
171
+ `Object.defineProperty(${name}, "name", { value: "default", configurable: true });\n`,
167
172
  InitFragment.STAGE_HARMONY_EXPORTS,
168
173
  2
169
174
  )
@@ -172,7 +177,7 @@ HarmonyExportExpressionDependency.Template = class HarmonyExportDependencyTempla
172
177
  } else {
173
178
  /** @type {string} */
174
179
  let content;
175
- const name = ConcatenationScope.DEFAULT_EXPORT;
180
+ let name = ConcatenationScope.DEFAULT_EXPORT;
176
181
  if (runtimeTemplate.supportsConst()) {
177
182
  content = `/* harmony default export */ const ${name} = `;
178
183
  if (concatenationScope) {
@@ -201,9 +206,13 @@ HarmonyExportExpressionDependency.Template = class HarmonyExportDependencyTempla
201
206
  if (used) {
202
207
  runtimeRequirements.add(RuntimeGlobals.exports);
203
208
  // This is a little bit incorrect as TDZ is not correct, but we can't use const.
204
- content = `/* harmony default export */ ${exportsName}${propertyAccess(
209
+ // No local `__WEBPACK_DEFAULT_EXPORT__` binding is created in this path,
210
+ // so the anonymous-default `.name` fix-up below must reference the actual
211
+ // assignment target instead. See issue #20793.
212
+ name = `${exportsName}${propertyAccess(
205
213
  typeof used === "string" ? [used] : used
206
- )} = `;
214
+ )}`;
215
+ content = `/* harmony default export */ ${name} = `;
207
216
  } else {
208
217
  content = `/* unused harmony default export */ var ${name} = `;
209
218
  }
@@ -221,7 +230,7 @@ HarmonyExportExpressionDependency.Template = class HarmonyExportDependencyTempla
221
230
  source.replace(
222
231
  dep.range[1],
223
232
  dep.rangeStatement[1] - 0.5,
224
- `);\nReflect.getOwnPropertyDescriptor(${name}, "name").writable || Reflect.defineProperty(${name}, "name", { value: "default", configurable: true });`
233
+ `);\n(Object.getOwnPropertyDescriptor(${name}, "name") || {}).writable || Object.defineProperty(${name}, "name", { value: "default", configurable: true });`
225
234
  );
226
235
  } else {
227
236
  source.replace(dep.range[1], dep.rangeStatement[1] - 0.5, ");");
@@ -17,6 +17,7 @@ const NullDependency = require("./NullDependency");
17
17
 
18
18
  class HarmonyExportHeaderDependency extends NullDependency {
19
19
  /**
20
+ * Creates an instance of HarmonyExportHeaderDependency.
20
21
  * @param {Range | false} range range
21
22
  * @param {Range} rangeStatement range statement
22
23
  */
@@ -31,6 +32,7 @@ class HarmonyExportHeaderDependency 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) {
@@ -41,6 +43,7 @@ class HarmonyExportHeaderDependency extends NullDependency {
41
43
  }
42
44
 
43
45
  /**
46
+ * Restores this instance from the provided deserializer context.
44
47
  * @param {ObjectDeserializerContext} context context
45
48
  */
46
49
  deserialize(context) {
@@ -60,6 +63,7 @@ HarmonyExportHeaderDependency.Template = class HarmonyExportDependencyTemplate e
60
63
  NullDependency.Template
61
64
  ) {
62
65
  /**
66
+ * Applies the plugin by registering its hooks on the compiler.
63
67
  * @param {Dependency} dependency the dependency for which the template should be applied
64
68
  * @param {ReplaceSource} source the current replace source which can be modified
65
69
  * @param {DependencyTemplateContext} templateContext the context object
@@ -70,6 +70,7 @@ const idsSymbol = /** @type {symbol} */ (
70
70
 
71
71
  class NormalReexportItem {
72
72
  /**
73
+ * Creates an instance of NormalReexportItem.
73
74
  * @param {string} name export name
74
75
  * @param {Ids} ids reexported ids from other module
75
76
  * @param {ExportInfo} exportInfo export info from other module
@@ -90,6 +91,7 @@ class NormalReexportItem {
90
91
 
91
92
  class ExportMode {
92
93
  /**
94
+ * Creates an instance of ExportMode.
93
95
  * @param {ExportModeType} type type of the mode
94
96
  */
95
97
  constructor(type) {
@@ -127,6 +129,7 @@ class ExportMode {
127
129
  /** @typedef {number[]} DependencyIndices */
128
130
 
129
131
  /**
132
+ * Determine export assignments.
130
133
  * @param {ModuleGraph} moduleGraph module graph
131
134
  * @param {HarmonyExportImportedSpecifierDependency[]} dependencies dependencies
132
135
  * @param {HarmonyExportImportedSpecifierDependency=} additionalDependency additional dependency
@@ -170,6 +173,7 @@ const determineExportAssignments = (
170
173
  };
171
174
 
172
175
  /**
176
+ * Finds dependency for name.
173
177
  * @param {object} options options
174
178
  * @param {ExportInfoName[]} options.names names
175
179
  * @param {DependencyIndices} options.dependencyIndices dependency indices
@@ -199,6 +203,7 @@ const findDependencyForName = (
199
203
  };
200
204
 
201
205
  /**
206
+ * Returns the export mode.
202
207
  * @param {ModuleGraph} moduleGraph the module graph
203
208
  * @param {HarmonyExportImportedSpecifierDependency} dep the dependency
204
209
  * @param {string} runtimeKey the runtime key
@@ -373,6 +378,7 @@ const getMode = (moduleGraph, dep, runtimeKey) => {
373
378
 
374
379
  class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
375
380
  /**
381
+ * Creates an instance of HarmonyExportImportedSpecifierDependency.
376
382
  * @param {string} request the request string
377
383
  * @param {number} sourceOrder the order in the original source file
378
384
  * @param {Ids} ids the requested export name of the imported module
@@ -407,6 +413,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
407
413
  }
408
414
 
409
415
  /**
416
+ * Could affect referencing module.
410
417
  * @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
411
418
  */
412
419
  couldAffectReferencingModule() {
@@ -415,6 +422,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
415
422
 
416
423
  // TODO webpack 6 remove
417
424
  /**
425
+ * Returns id.
418
426
  * @deprecated
419
427
  */
420
428
  get id() {
@@ -423,6 +431,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
423
431
 
424
432
  // TODO webpack 6 remove
425
433
  /**
434
+ * Returns id.
426
435
  * @deprecated
427
436
  */
428
437
  getId() {
@@ -431,6 +440,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
431
440
 
432
441
  // TODO webpack 6 remove
433
442
  /**
443
+ * Updates id.
434
444
  * @deprecated
435
445
  */
436
446
  setId() {
@@ -442,6 +452,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
442
452
  }
443
453
 
444
454
  /**
455
+ * Returns the imported id.
445
456
  * @param {ModuleGraph} moduleGraph the module graph
446
457
  * @returns {Ids} the imported id
447
458
  */
@@ -450,6 +461,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
450
461
  }
451
462
 
452
463
  /**
464
+ * Updates ids using the provided module graph.
453
465
  * @param {ModuleGraph} moduleGraph the module graph
454
466
  * @param {Ids} ids the imported ids
455
467
  * @returns {void}
@@ -459,6 +471,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
459
471
  }
460
472
 
461
473
  /**
474
+ * Returns the export mode.
462
475
  * @param {ModuleGraph} moduleGraph the module graph
463
476
  * @param {RuntimeSpec} runtime the runtime
464
477
  * @returns {ExportMode} the export mode
@@ -472,6 +485,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
472
485
  }
473
486
 
474
487
  /**
488
+ * Gets star reexports.
475
489
  * @param {ModuleGraph} moduleGraph the module graph
476
490
  * @param {RuntimeSpec} runtime the runtime
477
491
  * @param {ExportsInfo} exportsInfo exports info about the current module (optional)
@@ -560,6 +574,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
560
574
  }
561
575
 
562
576
  /**
577
+ * Returns function to determine if the connection is active.
563
578
  * @param {ModuleGraph} moduleGraph module graph
564
579
  * @returns {null | false | GetConditionFn} function to determine if the connection is active
565
580
  */
@@ -571,6 +586,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
571
586
  }
572
587
 
573
588
  /**
589
+ * Gets module evaluation side effects state.
574
590
  * @param {ModuleGraph} moduleGraph the module graph
575
591
  * @returns {ConnectionState} how this dependency connects the module to referencing modules
576
592
  */
@@ -652,6 +668,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
652
668
  }
653
669
 
654
670
  /**
671
+ * Discover active exports from other star exports.
655
672
  * @param {ModuleGraph} moduleGraph the module graph
656
673
  * @returns {{ names: ExportInfoName[], namesSlice: number, dependencyIndices: DependencyIndices, dependencyIndex: number } | undefined} exported names and their origin dependency
657
674
  */
@@ -830,6 +847,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
830
847
  }
831
848
 
832
849
  /**
850
+ * Get effective export presence level.
833
851
  * @param {ModuleGraph} moduleGraph module graph
834
852
  * @returns {ExportPresenceMode} effective mode
835
853
  */
@@ -844,7 +862,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
844
862
  }
845
863
 
846
864
  /**
847
- * Returns warnings
865
+ * Returns warnings.
848
866
  * @param {ModuleGraph} moduleGraph module graph
849
867
  * @returns {WebpackError[] | null | undefined} warnings
850
868
  */
@@ -857,7 +875,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
857
875
  }
858
876
 
859
877
  /**
860
- * Returns errors
878
+ * Returns errors.
861
879
  * @param {ModuleGraph} moduleGraph module graph
862
880
  * @returns {WebpackError[] | null | undefined} errors
863
881
  */
@@ -870,6 +888,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
870
888
  }
871
889
 
872
890
  /**
891
+ * Returns errors.
873
892
  * @param {ModuleGraph} moduleGraph module graph
874
893
  * @returns {WebpackError[] | undefined} errors
875
894
  */
@@ -956,6 +975,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
956
975
  }
957
976
 
958
977
  /**
978
+ * Serializes this instance into the provided serializer context.
959
979
  * @param {ObjectSerializerContext} context context
960
980
  */
961
981
  serialize(context) {
@@ -973,6 +993,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
973
993
  }
974
994
 
975
995
  /**
996
+ * Restores this instance from the provided deserializer context.
976
997
  * @param {ObjectDeserializerContext} context context
977
998
  */
978
999
  deserialize(context) {
@@ -999,6 +1020,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
999
1020
  HarmonyImportDependency.Template
1000
1021
  ) {
1001
1022
  /**
1023
+ * Applies the plugin by registering its hooks on the compiler.
1002
1024
  * @param {Dependency} dependency the dependency for which the template should be applied
1003
1025
  * @param {ReplaceSource} source the current replace source which can be modified
1004
1026
  * @param {DependencyTemplateContext} templateContext the context object
@@ -1042,6 +1064,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1042
1064
  }
1043
1065
 
1044
1066
  /**
1067
+ * Add export fragments.
1045
1068
  * @param {InitFragment<GenerateContext>[]} initFragments target array for init fragments
1046
1069
  * @param {HarmonyExportImportedSpecifierDependency} dep dependency
1047
1070
  * @param {ExportMode} mode the export mode
@@ -1293,6 +1316,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1293
1316
  }
1294
1317
 
1295
1318
  /**
1319
+ * Gets reexport fragment.
1296
1320
  * @param {Module} module the current module
1297
1321
  * @param {string} comment comment
1298
1322
  * @param {UsedName} key key
@@ -1322,6 +1346,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1322
1346
  }
1323
1347
 
1324
1348
  /**
1349
+ * Gets reexport fake namespace object fragments.
1325
1350
  * @param {Module} module module
1326
1351
  * @param {UsedName} key key
1327
1352
  * @param {string} name name
@@ -1361,6 +1386,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1361
1386
  }
1362
1387
 
1363
1388
  /**
1389
+ * Gets reexport deferred namespace object fragments.
1364
1390
  * @param {Module} module module
1365
1391
  * @param {ChunkGraph} chunkGraph chunkGraph
1366
1392
  * @param {UsedName} key key
@@ -1402,6 +1428,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1402
1428
  }
1403
1429
 
1404
1430
  /**
1431
+ * Gets conditional reexport statement.
1405
1432
  * @param {Module} module module
1406
1433
  * @param {string} key key
1407
1434
  * @param {string} name name
@@ -1437,6 +1464,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1437
1464
  }
1438
1465
 
1439
1466
  /**
1467
+ * Returns value.
1440
1468
  * @param {string} name name
1441
1469
  * @param {null | false | string | string[]} valueKey value key
1442
1470
  * @returns {string | undefined} value
@@ -1465,6 +1493,7 @@ class HarmonyStarExportsList {
1465
1493
  }
1466
1494
 
1467
1495
  /**
1496
+ * Processes the provided dep.
1468
1497
  * @param {HarmonyExportImportedSpecifierDependency} dep dependency
1469
1498
  * @returns {void}
1470
1499
  */
@@ -1477,6 +1506,7 @@ class HarmonyStarExportsList {
1477
1506
  }
1478
1507
 
1479
1508
  /**
1509
+ * Serializes this instance into the provided serializer context.
1480
1510
  * @param {ObjectSerializerContext} context context
1481
1511
  */
1482
1512
  serialize({ write, setCircularReference }) {
@@ -1485,6 +1515,7 @@ class HarmonyStarExportsList {
1485
1515
  }
1486
1516
 
1487
1517
  /**
1518
+ * Restores this instance from the provided deserializer context.
1488
1519
  * @param {ObjectDeserializerContext} context context
1489
1520
  */
1490
1521
  deserialize({ read, setCircularReference }) {
@@ -15,6 +15,7 @@ const { propertyName } = require("../util/property");
15
15
  /** @typedef {import("../ExportsInfo").UsedName} UsedName */
16
16
 
17
17
  /**
18
+ * Join iterable with comma.
18
19
  * @param {Iterable<string>} iterable iterable strings
19
20
  * @returns {string} result
20
21
  */
@@ -43,10 +44,12 @@ const EMPTY_MAP = new Map();
43
44
  const EMPTY_SET = new Set();
44
45
 
45
46
  /**
47
+ * Represents HarmonyExportInitFragment.
46
48
  * @extends {InitFragment<GenerateContext>} Context
47
49
  */
48
50
  class HarmonyExportInitFragment extends InitFragment {
49
51
  /**
52
+ * Creates an instance of HarmonyExportInitFragment.
50
53
  * @param {string} exportsArgument the exports identifier
51
54
  * @param {ExportMap} exportMap mapping from used name to exposed variable name
52
55
  * @param {UnusedExports} unusedExports list of unused export names
@@ -66,6 +69,7 @@ class HarmonyExportInitFragment extends InitFragment {
66
69
  }
67
70
 
68
71
  /**
72
+ * Merges the provided values into a single result.
69
73
  * @param {HarmonyExportInitFragment[]} fragments all fragments to merge
70
74
  * @returns {HarmonyExportInitFragment} merged fragment
71
75
  */
@@ -115,6 +119,7 @@ class HarmonyExportInitFragment extends InitFragment {
115
119
  }
116
120
 
117
121
  /**
122
+ * Returns merged result.
118
123
  * @param {HarmonyExportInitFragment} other other
119
124
  * @returns {HarmonyExportInitFragment} merged result
120
125
  */
@@ -151,6 +156,7 @@ class HarmonyExportInitFragment extends InitFragment {
151
156
  }
152
157
 
153
158
  /**
159
+ * Returns the source code that will be included as initialization code.
154
160
  * @param {GenerateContext} context context
155
161
  * @returns {string | Source | undefined} the source code that will be included as initialization code
156
162
  */
@@ -22,6 +22,7 @@ const NullDependency = require("./NullDependency");
22
22
 
23
23
  class HarmonyExportSpecifierDependency extends NullDependency {
24
24
  /**
25
+ * Creates an instance of HarmonyExportSpecifierDependency.
25
26
  * @param {string} id the id
26
27
  * @param {string} name the name
27
28
  */
@@ -50,6 +51,7 @@ class HarmonyExportSpecifierDependency extends NullDependency {
50
51
  }
51
52
 
52
53
  /**
54
+ * Gets module evaluation side effects state.
53
55
  * @param {ModuleGraph} moduleGraph the module graph
54
56
  * @returns {ConnectionState} how this dependency connects the module to referencing modules
55
57
  */
@@ -58,6 +60,7 @@ class HarmonyExportSpecifierDependency extends NullDependency {
58
60
  }
59
61
 
60
62
  /**
63
+ * Serializes this instance into the provided serializer context.
61
64
  * @param {ObjectSerializerContext} context context
62
65
  */
63
66
  serialize(context) {
@@ -68,6 +71,7 @@ class HarmonyExportSpecifierDependency extends NullDependency {
68
71
  }
69
72
 
70
73
  /**
74
+ * Restores this instance from the provided deserializer context.
71
75
  * @param {ObjectDeserializerContext} context context
72
76
  */
73
77
  deserialize(context) {
@@ -87,6 +91,7 @@ HarmonyExportSpecifierDependency.Template = class HarmonyExportSpecifierDependen
87
91
  NullDependency.Template
88
92
  ) {
89
93
  /**
94
+ * Applies the plugin by registering its hooks on the compiler.
90
95
  * @param {Dependency} dependency the dependency for which the template should be applied
91
96
  * @param {ReplaceSource} source the current replace source which can be modified
92
97
  * @param {DependencyTemplateContext} templateContext the context object
@@ -15,6 +15,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
15
15
  const parserStateExportsState = new WeakMap();
16
16
 
17
17
  /**
18
+ * Processes the provided parser state.
18
19
  * @param {JavascriptParserState} parserState parser state
19
20
  * @param {boolean} isStrictHarmony strict harmony mode should be enabled
20
21
  * @returns {void}
@@ -37,6 +38,7 @@ module.exports.enable = (parserState, isStrictHarmony) => {
37
38
  };
38
39
 
39
40
  /**
41
+ * Returns true, when enabled.
40
42
  * @param {JavascriptParserState} parserState parser state
41
43
  * @returns {boolean} true, when enabled
42
44
  */