webpack 5.101.3 → 5.102.1

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 (339) hide show
  1. package/README.md +21 -26
  2. package/lib/APIPlugin.js +30 -36
  3. package/lib/AsyncDependenciesBlock.js +1 -4
  4. package/lib/BannerPlugin.js +0 -1
  5. package/lib/Cache.js +7 -6
  6. package/lib/CacheFacade.js +0 -1
  7. package/lib/Chunk.js +49 -31
  8. package/lib/ChunkGraph.js +37 -27
  9. package/lib/ChunkGroup.js +8 -10
  10. package/lib/ChunkTemplate.js +1 -1
  11. package/lib/CleanPlugin.js +3 -3
  12. package/lib/CodeGenerationResults.js +3 -2
  13. package/lib/CompatibilityPlugin.js +29 -12
  14. package/lib/Compilation.js +209 -196
  15. package/lib/Compiler.js +36 -35
  16. package/lib/ConcatenationScope.js +6 -1
  17. package/lib/ConditionalInitFragment.js +1 -1
  18. package/lib/ConstPlugin.js +6 -5
  19. package/lib/ContextExclusionPlugin.js +0 -1
  20. package/lib/ContextModule.js +25 -21
  21. package/lib/ContextModuleFactory.js +30 -11
  22. package/lib/ContextReplacementPlugin.js +38 -15
  23. package/lib/DefinePlugin.js +5 -9
  24. package/lib/DelegatedModule.js +7 -11
  25. package/lib/DependenciesBlock.js +0 -2
  26. package/lib/Dependency.js +9 -11
  27. package/lib/DependencyTemplates.js +2 -4
  28. package/lib/DllModule.js +1 -7
  29. package/lib/DllReferencePlugin.js +2 -4
  30. package/lib/DynamicEntryPlugin.js +0 -2
  31. package/lib/EntryOptionPlugin.js +0 -5
  32. package/lib/EnvironmentNotSupportAsyncWarning.js +0 -3
  33. package/lib/EvalDevToolModulePlugin.js +4 -3
  34. package/lib/EvalSourceMapDevToolPlugin.js +3 -4
  35. package/lib/ExportsInfo.js +50 -49
  36. package/lib/ExternalModule.js +84 -52
  37. package/lib/ExternalModuleFactoryPlugin.js +27 -7
  38. package/lib/ExternalsPlugin.js +24 -17
  39. package/lib/FileSystemInfo.js +105 -90
  40. package/lib/FlagDependencyUsagePlugin.js +3 -4
  41. package/lib/Generator.js +2 -13
  42. package/lib/GraphHelpers.js +0 -3
  43. package/lib/HookWebpackError.js +0 -2
  44. package/lib/HotModuleReplacementPlugin.js +22 -24
  45. package/lib/HotUpdateChunk.js +0 -3
  46. package/lib/IgnorePlugin.js +5 -2
  47. package/lib/InitFragment.js +41 -29
  48. package/lib/InvalidDependenciesModuleWarning.js +0 -1
  49. package/lib/LibManifestPlugin.js +4 -6
  50. package/lib/LoaderOptionsPlugin.js +1 -10
  51. package/lib/MainTemplate.js +8 -19
  52. package/lib/Module.js +32 -20
  53. package/lib/ModuleFactory.js +1 -1
  54. package/lib/ModuleFilenameHelpers.js +42 -25
  55. package/lib/ModuleGraph.js +30 -16
  56. package/lib/ModuleInfoHeaderPlugin.js +0 -1
  57. package/lib/ModuleTemplate.js +0 -2
  58. package/lib/ModuleTypeConstants.js +11 -1
  59. package/lib/MultiCompiler.js +23 -15
  60. package/lib/MultiWatching.js +6 -10
  61. package/lib/NodeStuffPlugin.js +2 -10
  62. package/lib/NormalModule.js +146 -89
  63. package/lib/NormalModuleFactory.js +132 -42
  64. package/lib/OptionsApply.js +1 -1
  65. package/lib/Parser.js +1 -1
  66. package/lib/ProgressPlugin.js +6 -10
  67. package/lib/ProvidePlugin.js +5 -7
  68. package/lib/RawModule.js +1 -6
  69. package/lib/RecordIdsPlugin.js +10 -6
  70. package/lib/ResolverFactory.js +0 -2
  71. package/lib/RuntimeGlobals.js +5 -0
  72. package/lib/RuntimeModule.js +1 -3
  73. package/lib/RuntimePlugin.js +26 -22
  74. package/lib/RuntimeTemplate.js +22 -12
  75. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -2
  76. package/lib/SourceMapDevToolPlugin.js +11 -18
  77. package/lib/Stats.js +0 -1
  78. package/lib/Template.js +6 -11
  79. package/lib/TemplatedPathPlugin.js +2 -1
  80. package/lib/WatchIgnorePlugin.js +2 -3
  81. package/lib/Watching.js +15 -15
  82. package/lib/WebpackIsIncludedPlugin.js +0 -2
  83. package/lib/WebpackOptionsApply.js +74 -107
  84. package/lib/asset/AssetBytesGenerator.js +167 -0
  85. package/lib/asset/AssetBytesParser.js +37 -0
  86. package/lib/asset/AssetGenerator.js +22 -37
  87. package/lib/asset/AssetModulesPlugin.js +34 -16
  88. package/lib/asset/AssetParser.js +7 -3
  89. package/lib/asset/AssetSourceGenerator.js +1 -1
  90. package/lib/asset/RawDataUrlModule.js +3 -2
  91. package/lib/async-modules/AsyncModuleHelpers.js +6 -4
  92. package/lib/buildChunkGraph.js +0 -1
  93. package/lib/cache/MemoryCachePlugin.js +0 -2
  94. package/lib/cache/MemoryWithGcCachePlugin.js +0 -2
  95. package/lib/cache/PackFileCacheStrategy.js +14 -1
  96. package/lib/cache/ResolverCachePlugin.js +9 -15
  97. package/lib/cache/getLazyHashedEtag.js +1 -1
  98. package/lib/config/browserslistTargetHandler.js +77 -76
  99. package/lib/config/defaults.js +162 -23
  100. package/lib/config/normalization.js +18 -3
  101. package/lib/config/target.js +1 -1
  102. package/lib/container/ContainerEntryDependency.js +0 -1
  103. package/lib/container/ContainerEntryModule.js +3 -7
  104. package/lib/container/ContainerPlugin.js +1 -2
  105. package/lib/container/ContainerReferencePlugin.js +0 -1
  106. package/lib/container/FallbackDependency.js +2 -1
  107. package/lib/container/FallbackModule.js +6 -7
  108. package/lib/container/ModuleFederationPlugin.js +0 -1
  109. package/lib/container/RemoteModule.js +8 -8
  110. package/lib/container/RemoteRuntimeModule.js +2 -2
  111. package/lib/css/CssGenerator.js +3 -6
  112. package/lib/css/CssLoadingRuntimeModule.js +6 -9
  113. package/lib/css/CssModulesPlugin.js +13 -19
  114. package/lib/css/CssParser.js +3 -3
  115. package/lib/css/walkCssTokens.js +2 -2
  116. package/lib/debug/ProfilingPlugin.js +35 -8
  117. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -17
  118. package/lib/dependencies/AMDPlugin.js +2 -2
  119. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +1 -2
  120. package/lib/dependencies/CachedConstDependency.js +0 -4
  121. package/lib/dependencies/CommonJsExportRequireDependency.js +20 -14
  122. package/lib/dependencies/CommonJsExportsDependency.js +2 -1
  123. package/lib/dependencies/CommonJsExportsParserPlugin.js +20 -5
  124. package/lib/dependencies/CommonJsFullRequireDependency.js +6 -4
  125. package/lib/dependencies/CommonJsImportsParserPlugin.js +16 -7
  126. package/lib/dependencies/CommonJsRequireContextDependency.js +1 -1
  127. package/lib/dependencies/CommonJsSelfReferenceDependency.js +4 -4
  128. package/lib/dependencies/ConstDependency.js +2 -2
  129. package/lib/dependencies/ContextDependency.js +9 -4
  130. package/lib/dependencies/ContextDependencyHelpers.js +2 -2
  131. package/lib/dependencies/ContextDependencyTemplateAsId.js +9 -9
  132. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +9 -9
  133. package/lib/dependencies/ContextElementDependency.js +22 -11
  134. package/lib/dependencies/CssIcssImportDependency.js +0 -2
  135. package/lib/dependencies/CssIcssSymbolDependency.js +2 -2
  136. package/lib/dependencies/CssImportDependency.js +0 -8
  137. package/lib/dependencies/CssLocalIdentifierDependency.js +4 -7
  138. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -2
  139. package/lib/dependencies/CssUrlDependency.js +0 -6
  140. package/lib/dependencies/ExportsInfoDependency.js +7 -9
  141. package/lib/dependencies/ExternalModuleDependency.js +0 -3
  142. package/lib/dependencies/ExternalModuleInitFragment.js +1 -1
  143. package/lib/dependencies/HarmonyAcceptDependency.js +1 -1
  144. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -4
  145. package/lib/dependencies/HarmonyCompatibilityDependency.js +0 -1
  146. package/lib/dependencies/HarmonyDetectionParserPlugin.js +0 -14
  147. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +3 -3
  148. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +4 -1
  149. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +29 -35
  150. package/lib/dependencies/HarmonyImportDependency.js +33 -14
  151. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +20 -23
  152. package/lib/dependencies/HarmonyImportSideEffectDependency.js +0 -4
  153. package/lib/dependencies/HarmonyImportSpecifierDependency.js +46 -31
  154. package/lib/dependencies/HarmonyModulesPlugin.js +3 -3
  155. package/lib/dependencies/ImportContextDependency.js +13 -0
  156. package/lib/dependencies/ImportDependency.js +18 -6
  157. package/lib/dependencies/ImportEagerDependency.js +2 -3
  158. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +8 -5
  159. package/lib/dependencies/ImportMetaContextPlugin.js +0 -1
  160. package/lib/dependencies/ImportMetaPlugin.js +3 -2
  161. package/lib/dependencies/ImportParserPlugin.js +288 -45
  162. package/lib/dependencies/ImportWeakDependency.js +2 -3
  163. package/lib/dependencies/JsonExportsDependency.js +0 -1
  164. package/lib/dependencies/LoaderDependency.js +0 -3
  165. package/lib/dependencies/LoaderImportDependency.js +0 -3
  166. package/lib/dependencies/LoaderPlugin.js +11 -5
  167. package/lib/dependencies/ModuleDecoratorDependency.js +2 -4
  168. package/lib/dependencies/ModuleDependency.js +3 -9
  169. package/lib/dependencies/NullDependency.js +2 -0
  170. package/lib/dependencies/ProvidedDependency.js +6 -8
  171. package/lib/dependencies/PureExpressionDependency.js +0 -1
  172. package/lib/dependencies/RequireEnsureDependenciesBlock.js +0 -1
  173. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -2
  174. package/lib/dependencies/RequireIncludeDependency.js +2 -2
  175. package/lib/dependencies/RequireResolveDependency.js +2 -2
  176. package/lib/dependencies/RuntimeRequirementsDependency.js +2 -3
  177. package/lib/dependencies/StaticExportsDependency.js +3 -5
  178. package/lib/dependencies/URLDependency.js +2 -7
  179. package/lib/dependencies/URLPlugin.js +1 -2
  180. package/lib/dependencies/WebAssemblyExportImportedDependency.js +2 -2
  181. package/lib/dependencies/WebAssemblyImportDependency.js +2 -2
  182. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -3
  183. package/lib/dependencies/WorkerDependency.js +2 -3
  184. package/lib/dependencies/WorkerPlugin.js +4 -12
  185. package/lib/dependencies/processExportInfo.js +2 -3
  186. package/lib/esm/ModuleChunkFormatPlugin.js +0 -3
  187. package/lib/esm/ModuleChunkLoadingPlugin.js +2 -1
  188. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -7
  189. package/lib/hmr/LazyCompilationPlugin.js +6 -4
  190. package/lib/hmr/lazyCompilationBackend.js +13 -10
  191. package/lib/ids/DeterministicChunkIdsPlugin.js +0 -1
  192. package/lib/ids/HashedModuleIdsPlugin.js +5 -7
  193. package/lib/ids/IdHelpers.js +1 -1
  194. package/lib/ids/NamedChunkIdsPlugin.js +1 -6
  195. package/lib/ids/NamedModuleIdsPlugin.js +1 -5
  196. package/lib/ids/NaturalChunkIdsPlugin.js +0 -1
  197. package/lib/ids/NaturalModuleIdsPlugin.js +0 -1
  198. package/lib/ids/OccurrenceChunkIdsPlugin.js +0 -1
  199. package/lib/ids/OccurrenceModuleIdsPlugin.js +0 -1
  200. package/lib/ids/SyncModuleIdsPlugin.js +4 -3
  201. package/lib/index.js +8 -7
  202. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -1
  203. package/lib/javascript/BasicEvaluatedExpression.js +13 -6
  204. package/lib/javascript/ChunkFormatHelpers.js +1 -1
  205. package/lib/javascript/CommonJsChunkFormatPlugin.js +0 -1
  206. package/lib/javascript/JavascriptGenerator.js +2 -3
  207. package/lib/javascript/JavascriptModulesPlugin.js +46 -24
  208. package/lib/javascript/JavascriptParser.js +120 -55
  209. package/lib/javascript/JavascriptParserHelpers.js +2 -2
  210. package/lib/javascript/StartupHelpers.js +2 -4
  211. package/lib/json/JsonData.js +1 -1
  212. package/lib/json/JsonGenerator.js +4 -5
  213. package/lib/json/JsonModulesPlugin.js +0 -3
  214. package/lib/json/JsonParser.js +4 -2
  215. package/lib/library/AbstractLibraryPlugin.js +2 -2
  216. package/lib/library/AmdLibraryPlugin.js +0 -1
  217. package/lib/library/AssignLibraryPlugin.js +23 -12
  218. package/lib/library/EnableLibraryPlugin.js +7 -11
  219. package/lib/library/ExportPropertyLibraryPlugin.js +8 -20
  220. package/lib/library/JsonpLibraryPlugin.js +5 -2
  221. package/lib/library/ModuleLibraryPlugin.js +88 -43
  222. package/lib/library/SystemLibraryPlugin.js +15 -6
  223. package/lib/library/UmdLibraryPlugin.js +12 -18
  224. package/lib/logging/Logger.js +12 -10
  225. package/lib/logging/createConsoleLogger.js +15 -14
  226. package/lib/logging/truncateArgs.js +1 -1
  227. package/lib/node/CommonJsChunkLoadingPlugin.js +2 -1
  228. package/lib/node/NodeWatchFileSystem.js +4 -4
  229. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
  230. package/lib/node/RequireChunkLoadingRuntimeModule.js +5 -2
  231. package/lib/node/nodeConsole.js +2 -2
  232. package/lib/optimize/AggressiveSplittingPlugin.js +2 -0
  233. package/lib/optimize/ConcatenatedModule.js +142 -100
  234. package/lib/optimize/InnerGraph.js +17 -11
  235. package/lib/optimize/InnerGraphPlugin.js +0 -3
  236. package/lib/optimize/ModuleConcatenationPlugin.js +3 -4
  237. package/lib/optimize/RealContentHashPlugin.js +5 -3
  238. package/lib/optimize/RuntimeChunkPlugin.js +0 -1
  239. package/lib/optimize/SideEffectsFlagPlugin.js +3 -10
  240. package/lib/optimize/SplitChunksPlugin.js +46 -40
  241. package/lib/performance/SizeLimitsPlugin.js +2 -1
  242. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +5 -7
  243. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +0 -2
  244. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +0 -1
  245. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  246. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  247. package/lib/rules/BasicMatcherRulePlugin.js +0 -2
  248. package/lib/rules/ObjectMatcherRulePlugin.js +0 -1
  249. package/lib/rules/RuleSetCompiler.js +8 -6
  250. package/lib/runtime/BaseUriRuntimeModule.js +2 -2
  251. package/lib/runtime/CompatRuntimeModule.js +0 -1
  252. package/lib/runtime/GetChunkFilenameRuntimeModule.js +8 -9
  253. package/lib/runtime/LoadScriptRuntimeModule.js +0 -2
  254. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +1 -1
  255. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  256. package/lib/runtime/StartupEntrypointRuntimeModule.js +0 -1
  257. package/lib/runtime/SystemContextRuntimeModule.js +0 -2
  258. package/lib/runtime/ToBinaryRuntimeModule.js +64 -0
  259. package/lib/schemes/DataUriPlugin.js +2 -28
  260. package/lib/schemes/FileUriPlugin.js +5 -2
  261. package/lib/schemes/HttpUriPlugin.js +4 -2
  262. package/lib/schemes/VirtualUrlPlugin.js +11 -11
  263. package/lib/serialization/FileMiddleware.js +1 -1
  264. package/lib/serialization/NullPrototypeObjectSerializer.js +5 -3
  265. package/lib/serialization/ObjectMiddleware.js +31 -20
  266. package/lib/serialization/SerializerMiddleware.js +1 -3
  267. package/lib/serialization/types.js +1 -1
  268. package/lib/sharing/ConsumeSharedModule.js +3 -5
  269. package/lib/sharing/ConsumeSharedPlugin.js +2 -4
  270. package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -6
  271. package/lib/sharing/ProvideSharedModule.js +3 -7
  272. package/lib/sharing/SharePlugin.js +0 -2
  273. package/lib/sharing/ShareRuntimeModule.js +4 -1
  274. package/lib/sharing/resolveMatchedConfigs.js +14 -6
  275. package/lib/sharing/utils.js +0 -6
  276. package/lib/stats/DefaultStatsFactoryPlugin.js +179 -95
  277. package/lib/stats/DefaultStatsPresetPlugin.js +15 -9
  278. package/lib/stats/DefaultStatsPrinterPlugin.js +77 -113
  279. package/lib/stats/StatsFactory.js +14 -11
  280. package/lib/url/URLParserPlugin.js +2 -4
  281. package/lib/util/ArrayHelpers.js +4 -4
  282. package/lib/util/AsyncQueue.js +1 -0
  283. package/lib/util/Hash.js +35 -5
  284. package/lib/util/LazySet.js +2 -2
  285. package/lib/util/StackedCacheMap.js +0 -2
  286. package/lib/util/TupleSet.js +9 -4
  287. package/lib/util/URLAbsoluteSpecifier.js +0 -1
  288. package/lib/util/WeakTupleMap.js +1 -1
  289. package/lib/util/chainedImports.js +3 -1
  290. package/lib/util/cleverMerge.js +15 -18
  291. package/lib/util/comparators.js +2 -4
  292. package/lib/util/compileBooleanMatcher.js +11 -9
  293. package/lib/util/concatenate.js +1 -2
  294. package/lib/util/create-schema-validation.js +1 -2
  295. package/lib/util/createHash.js +85 -15
  296. package/lib/util/dataURL.js +39 -0
  297. package/lib/util/deprecation.js +29 -31
  298. package/lib/util/deterministicGrouping.js +34 -30
  299. package/lib/util/extractSourceMap.js +319 -0
  300. package/lib/util/findGraphRoots.js +15 -5
  301. package/lib/util/fs.js +29 -8
  302. package/lib/util/hash/BatchedHash.js +47 -8
  303. package/lib/util/hash/wasm-hash.js +53 -13
  304. package/lib/util/semver.js +9 -8
  305. package/lib/util/smartGrouping.js +41 -26
  306. package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
  307. package/lib/wasm/EnableWasmLoadingPlugin.js +3 -2
  308. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +5 -1
  309. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +2 -13
  310. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +2 -9
  311. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -10
  312. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +6 -4
  313. package/lib/wasm-sync/WebAssemblyGenerator.js +1 -3
  314. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -4
  315. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +2 -7
  316. package/lib/wasm-sync/WebAssemblyParser.js +1 -13
  317. package/lib/web/JsonpChunkLoadingPlugin.js +2 -1
  318. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -1
  319. package/lib/web/JsonpTemplatePlugin.js +0 -1
  320. package/lib/webpack.js +21 -8
  321. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +2 -1
  322. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
  323. package/package.json +21 -21
  324. package/schemas/WebpackOptions.check.js +1 -1
  325. package/schemas/WebpackOptions.json +93 -96
  326. package/schemas/plugins/BannerPlugin.check.js +1 -1
  327. package/schemas/plugins/BannerPlugin.json +4 -0
  328. package/schemas/plugins/IgnorePlugin.json +1 -1
  329. package/schemas/plugins/ProgressPlugin.json +1 -1
  330. package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
  331. package/schemas/plugins/SourceMapDevToolPlugin.json +5 -1
  332. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +7 -0
  333. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +6 -0
  334. package/schemas/plugins/{HashedModuleIdsPlugin.json → ids/HashedModuleIdsPlugin.json} +15 -2
  335. package/schemas/plugins/schemes/VirtualUrlPlugin.json +3 -3
  336. package/types.d.ts +1699 -706
  337. package/SECURITY.md +0 -9
  338. package/schemas/plugins/HashedModuleIdsPlugin.check.d.ts +0 -7
  339. package/schemas/plugins/HashedModuleIdsPlugin.check.js +0 -6
@@ -35,9 +35,11 @@ const LOG_SYMBOL = Symbol("webpack logger raw log method");
35
35
  const TIMERS_SYMBOL = Symbol("webpack logger times");
36
36
  const TIMERS_AGGREGATES_SYMBOL = Symbol("webpack logger aggregated times");
37
37
 
38
+ /** @typedef {EXPECTED_ANY[]} Args */
39
+
38
40
  class WebpackLogger {
39
41
  /**
40
- * @param {(type: LogTypeEnum, args?: EXPECTED_ANY[]) => void} log log function
42
+ * @param {(type: LogTypeEnum, args?: Args) => void} log log function
41
43
  * @param {(name: string | (() => string)) => WebpackLogger} getChildLogger function to create child logger
42
44
  */
43
45
  constructor(log, getChildLogger) {
@@ -46,35 +48,35 @@ class WebpackLogger {
46
48
  }
47
49
 
48
50
  /**
49
- * @param {...EXPECTED_ANY} args args
51
+ * @param {Args} args args
50
52
  */
51
53
  error(...args) {
52
54
  this[LOG_SYMBOL](LogType.error, args);
53
55
  }
54
56
 
55
57
  /**
56
- * @param {...EXPECTED_ANY} args args
58
+ * @param {Args} args args
57
59
  */
58
60
  warn(...args) {
59
61
  this[LOG_SYMBOL](LogType.warn, args);
60
62
  }
61
63
 
62
64
  /**
63
- * @param {...EXPECTED_ANY} args args
65
+ * @param {Args} args args
64
66
  */
65
67
  info(...args) {
66
68
  this[LOG_SYMBOL](LogType.info, args);
67
69
  }
68
70
 
69
71
  /**
70
- * @param {...EXPECTED_ANY} args args
72
+ * @param {Args} args args
71
73
  */
72
74
  log(...args) {
73
75
  this[LOG_SYMBOL](LogType.log, args);
74
76
  }
75
77
 
76
78
  /**
77
- * @param {...EXPECTED_ANY} args args
79
+ * @param {Args} args args
78
80
  */
79
81
  debug(...args) {
80
82
  this[LOG_SYMBOL](LogType.debug, args);
@@ -82,7 +84,7 @@ class WebpackLogger {
82
84
 
83
85
  /**
84
86
  * @param {EXPECTED_ANY} assertion assertion
85
- * @param {...EXPECTED_ANY} args args
87
+ * @param {Args} args args
86
88
  */
87
89
  assert(assertion, ...args) {
88
90
  if (!assertion) {
@@ -99,21 +101,21 @@ class WebpackLogger {
99
101
  }
100
102
 
101
103
  /**
102
- * @param {...EXPECTED_ANY} args args
104
+ * @param {Args} args args
103
105
  */
104
106
  status(...args) {
105
107
  this[LOG_SYMBOL](LogType.status, args);
106
108
  }
107
109
 
108
110
  /**
109
- * @param {...EXPECTED_ANY} args args
111
+ * @param {Args} args args
110
112
  */
111
113
  group(...args) {
112
114
  this[LOG_SYMBOL](LogType.group, args);
113
115
  }
114
116
 
115
117
  /**
116
- * @param {...EXPECTED_ANY} args args
118
+ * @param {Args} args args
117
119
  */
118
120
  groupCollapsed(...args) {
119
121
  this[LOG_SYMBOL](LogType.groupCollapsed, args);
@@ -10,26 +10,27 @@ const { LogType } = require("./Logger");
10
10
  /** @typedef {import("../../declarations/WebpackOptions").FilterItemTypes} FilterItemTypes */
11
11
  /** @typedef {import("../../declarations/WebpackOptions").FilterTypes} FilterTypes */
12
12
  /** @typedef {import("./Logger").LogTypeEnum} LogTypeEnum */
13
+ /** @typedef {import("./Logger").Args} Args */
13
14
 
14
15
  /** @typedef {(item: string) => boolean} FilterFunction */
15
- /** @typedef {(value: string, type: LogTypeEnum, args?: EXPECTED_ANY[]) => void} LoggingFunction */
16
+ /** @typedef {(value: string, type: LogTypeEnum, args?: Args) => void} LoggingFunction */
16
17
 
17
18
  /**
18
19
  * @typedef {object} LoggerConsole
19
20
  * @property {() => void} clear
20
21
  * @property {() => void} trace
21
- * @property {(...args: EXPECTED_ANY[]) => void} info
22
- * @property {(...args: EXPECTED_ANY[]) => void} log
23
- * @property {(...args: EXPECTED_ANY[]) => void} warn
24
- * @property {(...args: EXPECTED_ANY[]) => void} error
25
- * @property {(...args: EXPECTED_ANY[]) => void=} debug
26
- * @property {(...args: EXPECTED_ANY[]) => void=} group
27
- * @property {(...args: EXPECTED_ANY[]) => void=} groupCollapsed
28
- * @property {(...args: EXPECTED_ANY[]) => void=} groupEnd
29
- * @property {(...args: EXPECTED_ANY[]) => void=} status
30
- * @property {(...args: EXPECTED_ANY[]) => void=} profile
31
- * @property {(...args: EXPECTED_ANY[]) => void=} profileEnd
32
- * @property {(...args: EXPECTED_ANY[]) => void=} logTime
22
+ * @property {(...args: Args) => void} info
23
+ * @property {(...args: Args) => void} log
24
+ * @property {(...args: Args) => void} warn
25
+ * @property {(...args: Args) => void} error
26
+ * @property {(...args: Args) => void=} debug
27
+ * @property {(...args: Args) => void=} group
28
+ * @property {(...args: Args) => void=} groupCollapsed
29
+ * @property {(...args: Args) => void=} groupEnd
30
+ * @property {(...args: Args) => void=} status
31
+ * @property {(...args: Args) => void=} profile
32
+ * @property {(...args: Args) => void=} profileEnd
33
+ * @property {(...args: Args) => void=} logTime
33
34
  */
34
35
 
35
36
  /**
@@ -94,7 +95,7 @@ module.exports = ({ level = "info", debug = false, console }) => {
94
95
  /**
95
96
  * @param {string} name name of the logger
96
97
  * @param {LogTypeEnum} type type of the log entry
97
- * @param {EXPECTED_ANY[]=} args arguments of the log entry
98
+ * @param {Args=} args arguments of the log entry
98
99
  * @returns {void}
99
100
  */
100
101
  const logger = (name, type, args) => {
@@ -6,7 +6,7 @@
6
6
  "use strict";
7
7
 
8
8
  /**
9
- * @param {Array<number>} array array of numbers
9
+ * @param {number[]} array array of numbers
10
10
  * @returns {number} sum of all numbers in array
11
11
  */
12
12
  const arraySum = (array) => {
@@ -10,6 +10,7 @@ const StartupChunkDependenciesPlugin = require("../runtime/StartupChunkDependenc
10
10
 
11
11
  /** @typedef {import("../Chunk")} Chunk */
12
12
  /** @typedef {import("../Compiler")} Compiler */
13
+ /** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
13
14
 
14
15
  /**
15
16
  * @typedef {object} CommonJsChunkLoadingPluginOptions
@@ -59,7 +60,7 @@ class CommonJsChunkLoadingPlugin {
59
60
  const onceForChunkSet = new WeakSet();
60
61
  /**
61
62
  * @param {Chunk} chunk chunk
62
- * @param {Set<string>} set runtime requirements
63
+ * @param {RuntimeRequirements} set runtime requirements
63
64
  */
64
65
  const handler = (chunk, set) => {
65
66
  if (onceForChunkSet.has(chunk)) return;
@@ -8,10 +8,10 @@
8
8
  const util = require("util");
9
9
  const Watchpack = require("watchpack");
10
10
 
11
- /** @typedef {import("../../declarations/WebpackOptions").WatchOptions} WatchOptions */
12
- /** @typedef {import("../FileSystemInfo").FileSystemInfoEntry} FileSystemInfoEntry */
13
11
  /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
14
12
  /** @typedef {import("../util/fs").WatchMethod} WatchMethod */
13
+ /** @typedef {import("../util/fs").Changes} Changes */
14
+ /** @typedef {import("../util/fs").Removals} Removals */
15
15
 
16
16
  class NodeWatchFileSystem {
17
17
  /**
@@ -78,8 +78,8 @@ class NodeWatchFileSystem {
78
78
  this.watcher.once(
79
79
  "aggregated",
80
80
  /**
81
- * @param {Set<string>} changes changes
82
- * @param {Set<string>} removals removals
81
+ * @param {Changes} changes changes
82
+ * @param {Removals} removals removals
83
83
  */
84
84
  (changes, removals) => {
85
85
  // pause emitting events (avoids clearing aggregated changes and removals on timeout)
@@ -91,7 +91,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
91
91
  );
92
92
  const rootOutputDir = getUndoPath(
93
93
  outputName,
94
- /** @type {string} */ (compilation.outputOptions.path),
94
+ compilation.outputOptions.path,
95
95
  false
96
96
  );
97
97
 
@@ -264,7 +264,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
264
264
  Template.indent([
265
265
  "if(err) {",
266
266
  Template.indent([
267
- 'if(err.code === "ENOENT") return resolve();',
267
+ 'if(["MODULE_NOT_FOUND", "ENOENT"].includes(err.code)) return resolve();',
268
268
  "return reject(err);"
269
269
  ]),
270
270
  "}",
@@ -91,7 +91,7 @@ class RequireChunkLoadingRuntimeModule extends RuntimeModule {
91
91
  );
92
92
  const rootOutputDir = getUndoPath(
93
93
  outputName,
94
- /** @type {string} */ (compilation.outputOptions.path),
94
+ compilation.outputOptions.path,
95
95
  true
96
96
  );
97
97
 
@@ -223,7 +223,10 @@ class RequireChunkLoadingRuntimeModule extends RuntimeModule {
223
223
  RuntimeGlobals.getUpdateManifestFilename
224
224
  }());`
225
225
  ]),
226
- "})['catch'](function(err) { if(err.code !== 'MODULE_NOT_FOUND') throw err; });"
226
+ `}).catch(${runtimeTemplate.basicFunction("err", [
227
+ "if(['MODULE_NOT_FOUND', 'ENOENT'].includes(err.code)) return;",
228
+ "throw err;"
229
+ ])});`
227
230
  ]),
228
231
  "}"
229
232
  ])
@@ -8,7 +8,7 @@
8
8
  const util = require("util");
9
9
  const truncateArgs = require("../logging/truncateArgs");
10
10
 
11
- /** @typedef {import("../../declarations/WebpackOptions").InfrastructureLogging} InfrastructureLogging */
11
+ /** @typedef {import("../config/defaults").InfrastructureLoggingNormalizedWithDefaults} InfrastructureLoggingNormalizedWithDefaults */
12
12
  /** @typedef {import("../logging/createConsoleLogger").LoggerConsole} LoggerConsole */
13
13
 
14
14
  /* eslint-disable no-console */
@@ -17,7 +17,7 @@ const truncateArgs = require("../logging/truncateArgs");
17
17
  * @param {object} options options
18
18
  * @param {boolean=} options.colors colors
19
19
  * @param {boolean=} options.appendOnly append only
20
- * @param {NonNullable<InfrastructureLogging["stream"]>} options.stream stream
20
+ * @param {InfrastructureLoggingNormalizedWithDefaults["stream"]} options.stream stream
21
21
  * @returns {LoggerConsole} logger function
22
22
  */
23
23
  module.exports = ({ colors, appendOnly, stream }) => {
@@ -16,6 +16,7 @@ const identifierUtils = require("../util/identifier");
16
16
 
17
17
  /** @typedef {import("../../declarations/plugins/optimize/AggressiveSplittingPlugin").AggressiveSplittingPluginOptions} AggressiveSplittingPluginOptions */
18
18
  /** @typedef {import("../Chunk")} Chunk */
19
+ /** @typedef {import("../Chunk").ChunkId} ChunkId */
19
20
  /** @typedef {import("../ChunkGraph")} ChunkGraph */
20
21
  /** @typedef {import("../Compiler")} Compiler */
21
22
  /** @typedef {import("../Module")} Module */
@@ -127,6 +128,7 @@ class AggressiveSplittingPlugin {
127
128
  }
128
129
 
129
130
  // Check used chunk ids
131
+ /** @typedef {Set<ChunkId>} */
130
132
  const usedIds = new Set();
131
133
  for (const chunk of chunks) {
132
134
  usedIds.add(chunk.id);