webpack 5.92.1 → 5.94.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 (350) hide show
  1. package/README.md +8 -5
  2. package/bin/webpack.js +6 -7
  3. package/hot/log.js +1 -2
  4. package/hot/only-dev-server.js +1 -1
  5. package/hot/poll.js +1 -1
  6. package/hot/signal.js +1 -1
  7. package/lib/APIPlugin.js +4 -3
  8. package/lib/AbstractMethodError.js +10 -5
  9. package/lib/AutomaticPrefetchPlugin.js +1 -1
  10. package/lib/BannerPlugin.js +12 -6
  11. package/lib/Cache.js +8 -10
  12. package/lib/CacheFacade.js +3 -3
  13. package/lib/CaseSensitiveModulesWarning.js +5 -7
  14. package/lib/Chunk.js +14 -11
  15. package/lib/ChunkGraph.js +58 -36
  16. package/lib/ChunkGroup.js +2 -3
  17. package/lib/ChunkTemplate.js +43 -0
  18. package/lib/CleanPlugin.js +10 -11
  19. package/lib/CodeGenerationResults.js +6 -5
  20. package/lib/CommentCompilationWarning.js +0 -1
  21. package/lib/Compilation.js +223 -191
  22. package/lib/Compiler.js +81 -82
  23. package/lib/ConcatenationScope.js +3 -6
  24. package/lib/ConditionalInitFragment.js +6 -7
  25. package/lib/ConstPlugin.js +7 -15
  26. package/lib/ContextExclusionPlugin.js +3 -3
  27. package/lib/ContextModule.js +36 -21
  28. package/lib/ContextModuleFactory.js +89 -44
  29. package/lib/ContextReplacementPlugin.js +10 -9
  30. package/lib/DefinePlugin.js +76 -69
  31. package/lib/DelegatedModule.js +7 -3
  32. package/lib/DelegatedModuleFactoryPlugin.js +36 -22
  33. package/lib/DelegatedPlugin.js +4 -0
  34. package/lib/DependenciesBlock.js +0 -1
  35. package/lib/Dependency.js +10 -14
  36. package/lib/DllEntryPlugin.js +4 -2
  37. package/lib/DllModuleFactory.js +1 -0
  38. package/lib/DllPlugin.js +9 -7
  39. package/lib/DllReferencePlugin.js +30 -15
  40. package/lib/EntryPlugin.js +1 -3
  41. package/lib/EnvironmentPlugin.js +5 -2
  42. package/lib/ErrorHelpers.js +11 -12
  43. package/lib/EvalDevToolModulePlugin.js +10 -12
  44. package/lib/EvalSourceMapDevToolPlugin.js +15 -13
  45. package/lib/ExportsInfo.js +185 -120
  46. package/lib/ExternalModule.js +104 -64
  47. package/lib/ExternalModuleFactoryPlugin.js +23 -10
  48. package/lib/FileSystemInfo.js +791 -422
  49. package/lib/FlagAllModulesAsUsedPlugin.js +1 -1
  50. package/lib/FlagDependencyExportsPlugin.js +12 -11
  51. package/lib/FlagDependencyUsagePlugin.js +1 -1
  52. package/lib/Generator.js +2 -5
  53. package/lib/GraphHelpers.js +3 -2
  54. package/lib/HookWebpackError.js +8 -10
  55. package/lib/HotModuleReplacementPlugin.js +78 -64
  56. package/lib/IgnoreErrorModuleFactory.js +3 -3
  57. package/lib/IgnorePlugin.js +1 -3
  58. package/lib/IgnoreWarningsPlugin.js +6 -9
  59. package/lib/InitFragment.js +2 -3
  60. package/lib/LibManifestPlugin.js +4 -3
  61. package/lib/MainTemplate.js +72 -19
  62. package/lib/Module.js +25 -9
  63. package/lib/ModuleBuildError.js +4 -11
  64. package/lib/ModuleDependencyError.js +5 -5
  65. package/lib/ModuleDependencyWarning.js +5 -5
  66. package/lib/ModuleError.js +1 -5
  67. package/lib/ModuleFilenameHelpers.js +29 -46
  68. package/lib/ModuleGraph.js +7 -6
  69. package/lib/ModuleGraphConnection.js +6 -6
  70. package/lib/ModuleInfoHeaderPlugin.js +82 -30
  71. package/lib/ModuleParseError.js +8 -9
  72. package/lib/ModuleRestoreError.js +1 -1
  73. package/lib/ModuleStoreError.js +1 -1
  74. package/lib/ModuleTemplate.js +33 -1
  75. package/lib/ModuleTypeConstants.js +21 -22
  76. package/lib/ModuleWarning.js +1 -5
  77. package/lib/MultiCompiler.js +24 -26
  78. package/lib/MultiStats.js +73 -31
  79. package/lib/MultiWatching.js +1 -1
  80. package/lib/NormalModule.js +132 -70
  81. package/lib/NormalModuleFactory.js +53 -49
  82. package/lib/OptimizationStages.js +3 -3
  83. package/lib/ProgressPlugin.js +9 -9
  84. package/lib/ProvidePlugin.js +4 -4
  85. package/lib/RuntimeGlobals.js +71 -70
  86. package/lib/RuntimeModule.js +1 -1
  87. package/lib/RuntimePlugin.js +24 -12
  88. package/lib/RuntimeTemplate.js +40 -44
  89. package/lib/SizeFormatHelpers.js +2 -4
  90. package/lib/SourceMapDevToolPlugin.js +42 -34
  91. package/lib/Stats.js +5 -11
  92. package/lib/Template.js +18 -24
  93. package/lib/TemplatedPathPlugin.js +12 -10
  94. package/lib/UseStrictPlugin.js +8 -1
  95. package/lib/WarnDeprecatedOptionPlugin.js +0 -1
  96. package/lib/WatchIgnorePlugin.js +26 -9
  97. package/lib/Watching.js +10 -5
  98. package/lib/WebpackOptionsApply.js +89 -62
  99. package/lib/asset/AssetGenerator.js +107 -42
  100. package/lib/asset/AssetModulesPlugin.js +29 -23
  101. package/lib/asset/AssetSourceGenerator.js +2 -7
  102. package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
  103. package/lib/buildChunkGraph.js +14 -19
  104. package/lib/cache/IdleFileCachePlugin.js +4 -4
  105. package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
  106. package/lib/cache/PackFileCacheStrategy.js +51 -50
  107. package/lib/cache/ResolverCachePlugin.js +6 -6
  108. package/lib/cache/mergeEtags.js +16 -21
  109. package/lib/cli.js +148 -104
  110. package/lib/config/browserslistTargetHandler.js +16 -13
  111. package/lib/config/defaults.js +31 -28
  112. package/lib/config/normalization.js +335 -344
  113. package/lib/config/target.js +42 -52
  114. package/lib/container/ContainerEntryModule.js +2 -2
  115. package/lib/container/ContainerPlugin.js +1 -1
  116. package/lib/container/RemoteRuntimeModule.js +11 -8
  117. package/lib/container/options.js +18 -4
  118. package/lib/css/CssExportsGenerator.js +39 -40
  119. package/lib/css/CssGenerator.js +11 -14
  120. package/lib/css/CssLoadingRuntimeModule.js +10 -10
  121. package/lib/css/CssModulesPlugin.js +127 -47
  122. package/lib/css/CssParser.js +20 -18
  123. package/lib/css/walkCssTokens.js +80 -95
  124. package/lib/debug/ProfilingPlugin.js +19 -20
  125. package/lib/dependencies/AMDDefineDependency.js +1 -1
  126. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
  127. package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
  128. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
  129. package/lib/dependencies/AMDRuntimeModules.js +2 -2
  130. package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
  131. package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
  132. package/lib/dependencies/CommonJsExportsDependency.js +0 -1
  133. package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
  134. package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
  135. package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
  136. package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
  137. package/lib/dependencies/ConstDependency.js +1 -1
  138. package/lib/dependencies/ContextDependency.js +1 -1
  139. package/lib/dependencies/ContextDependencyHelpers.js +31 -34
  140. package/lib/dependencies/ContextElementDependency.js +2 -2
  141. package/lib/dependencies/CriticalDependencyWarning.js +1 -1
  142. package/lib/dependencies/CssExportDependency.js +72 -9
  143. package/lib/dependencies/CssImportDependency.js +0 -2
  144. package/lib/dependencies/CssLocalIdentifierDependency.js +68 -21
  145. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
  146. package/lib/dependencies/CssUrlDependency.js +4 -5
  147. package/lib/dependencies/DynamicExports.js +5 -5
  148. package/lib/dependencies/ExportsInfoDependency.js +1 -2
  149. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
  150. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
  151. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
  152. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  153. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
  154. package/lib/dependencies/HarmonyExports.js +2 -2
  155. package/lib/dependencies/HarmonyImportDependency.js +2 -4
  156. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
  157. package/lib/dependencies/HarmonyImportSpecifierDependency.js +41 -16
  158. package/lib/dependencies/ImportDependency.js +1 -1
  159. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
  160. package/lib/dependencies/ImportMetaPlugin.js +11 -13
  161. package/lib/dependencies/ImportParserPlugin.js +39 -44
  162. package/lib/dependencies/JsonExportsDependency.js +22 -18
  163. package/lib/dependencies/LoaderPlugin.js +47 -36
  164. package/lib/dependencies/LocalModule.js +1 -1
  165. package/lib/dependencies/LocalModulesHelpers.js +4 -4
  166. package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
  167. package/lib/dependencies/ProvidedDependency.js +1 -1
  168. package/lib/dependencies/PureExpressionDependency.js +6 -6
  169. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
  170. package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
  171. package/lib/dependencies/SystemPlugin.js +1 -1
  172. package/lib/dependencies/URLDependency.js +3 -3
  173. package/lib/dependencies/URLPlugin.js +66 -12
  174. package/lib/dependencies/WorkerPlugin.js +25 -24
  175. package/lib/dependencies/processExportInfo.js +3 -1
  176. package/lib/electron/ElectronTargetPlugin.js +1 -0
  177. package/lib/esm/ModuleChunkFormatPlugin.js +11 -12
  178. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
  179. package/lib/formatLocation.js +1 -2
  180. package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
  181. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  182. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
  183. package/lib/hmr/LazyCompilationPlugin.js +27 -12
  184. package/lib/hmr/lazyCompilationBackend.js +64 -40
  185. package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
  186. package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
  187. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  188. package/lib/ids/HashedModuleIdsPlugin.js +5 -1
  189. package/lib/ids/IdHelpers.js +29 -39
  190. package/lib/ids/SyncModuleIdsPlugin.js +7 -2
  191. package/lib/index.js +1 -5
  192. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +6 -4
  193. package/lib/javascript/BasicEvaluatedExpression.js +4 -19
  194. package/lib/javascript/ChunkHelpers.js +1 -1
  195. package/lib/javascript/CommonJsChunkFormatPlugin.js +10 -11
  196. package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
  197. package/lib/javascript/JavascriptGenerator.js +23 -7
  198. package/lib/javascript/JavascriptModulesPlugin.js +97 -70
  199. package/lib/javascript/JavascriptParser.js +179 -200
  200. package/lib/javascript/JavascriptParserHelpers.js +20 -21
  201. package/lib/javascript/StartupHelpers.js +41 -13
  202. package/lib/json/JsonGenerator.js +7 -13
  203. package/lib/json/JsonModulesPlugin.js +1 -4
  204. package/lib/json/JsonParser.js +5 -3
  205. package/lib/library/AmdLibraryPlugin.js +12 -16
  206. package/lib/library/AssignLibraryPlugin.js +9 -11
  207. package/lib/library/EnableLibraryPlugin.js +25 -15
  208. package/lib/library/ExportPropertyLibraryPlugin.js +8 -2
  209. package/lib/library/JsonpLibraryPlugin.js +2 -1
  210. package/lib/library/ModernModuleLibraryPlugin.js +144 -0
  211. package/lib/library/ModuleLibraryPlugin.js +2 -1
  212. package/lib/library/SystemLibraryPlugin.js +2 -1
  213. package/lib/library/UmdLibraryPlugin.js +66 -92
  214. package/lib/logging/Logger.js +32 -4
  215. package/lib/logging/createConsoleLogger.js +12 -13
  216. package/lib/logging/runtime.js +7 -8
  217. package/lib/logging/truncateArgs.js +5 -8
  218. package/lib/node/NodeWatchFileSystem.js +3 -18
  219. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
  220. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
  221. package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
  222. package/lib/node/nodeConsole.js +22 -22
  223. package/lib/optimize/AggressiveMergingPlugin.js +2 -4
  224. package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
  225. package/lib/optimize/ConcatenatedModule.js +144 -61
  226. package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
  227. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
  228. package/lib/optimize/InnerGraph.js +17 -17
  229. package/lib/optimize/InnerGraphPlugin.js +8 -7
  230. package/lib/optimize/LimitChunkCountPlugin.js +2 -3
  231. package/lib/optimize/MangleExportsPlugin.js +1 -0
  232. package/lib/optimize/MinMaxSizeWarning.js +1 -1
  233. package/lib/optimize/ModuleConcatenationPlugin.js +56 -78
  234. package/lib/optimize/RealContentHashPlugin.js +7 -10
  235. package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
  236. package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
  237. package/lib/optimize/SplitChunksPlugin.js +34 -30
  238. package/lib/performance/SizeLimitsPlugin.js +2 -2
  239. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -0
  240. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
  241. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
  242. package/lib/rules/BasicEffectRulePlugin.js +3 -1
  243. package/lib/rules/BasicMatcherRulePlugin.js +3 -1
  244. package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
  245. package/lib/rules/RuleSetCompiler.js +41 -22
  246. package/lib/rules/UseEffectRulePlugin.js +36 -32
  247. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  248. package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
  249. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  250. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
  251. package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
  252. package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
  253. package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
  254. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
  255. package/lib/schemes/DataUriPlugin.js +1 -1
  256. package/lib/schemes/HttpUriPlugin.js +241 -126
  257. package/lib/serialization/BinaryMiddleware.js +44 -28
  258. package/lib/serialization/DateObjectSerializer.js +1 -0
  259. package/lib/serialization/ErrorObjectSerializer.js +2 -0
  260. package/lib/serialization/FileMiddleware.js +154 -106
  261. package/lib/serialization/MapObjectSerializer.js +2 -1
  262. package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
  263. package/lib/serialization/ObjectMiddleware.js +52 -56
  264. package/lib/serialization/PlainObjectSerializer.js +32 -6
  265. package/lib/serialization/RegExpObjectSerializer.js +1 -0
  266. package/lib/serialization/Serializer.js +4 -5
  267. package/lib/serialization/SerializerMiddleware.js +6 -6
  268. package/lib/serialization/SetObjectSerializer.js +2 -1
  269. package/lib/sharing/ConsumeSharedModule.js +19 -14
  270. package/lib/sharing/ConsumeSharedPlugin.js +116 -97
  271. package/lib/sharing/ConsumeSharedRuntimeModule.js +108 -141
  272. package/lib/sharing/ProvideForSharedDependency.js +0 -1
  273. package/lib/sharing/ProvideSharedPlugin.js +2 -2
  274. package/lib/sharing/resolveMatchedConfigs.js +2 -1
  275. package/lib/sharing/utils.js +15 -27
  276. package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
  277. package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
  278. package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
  279. package/lib/stats/StatsFactory.js +127 -56
  280. package/lib/stats/StatsPrinter.js +75 -44
  281. package/lib/util/ArrayHelpers.js +8 -4
  282. package/lib/util/ArrayQueue.js +1 -1
  283. package/lib/util/AsyncQueue.js +31 -12
  284. package/lib/util/IterableHelpers.js +3 -4
  285. package/lib/util/LazyBucketSortedSet.js +60 -44
  286. package/lib/util/LazySet.js +1 -0
  287. package/lib/util/MapHelpers.js +1 -3
  288. package/lib/util/ParallelismFactorCalculator.js +1 -1
  289. package/lib/util/Queue.js +1 -1
  290. package/lib/util/Semaphore.js +4 -7
  291. package/lib/util/SetHelpers.js +5 -5
  292. package/lib/util/SortableSet.js +4 -3
  293. package/lib/util/StackedCacheMap.js +4 -6
  294. package/lib/util/StackedMap.js +1 -3
  295. package/lib/util/StringXor.js +0 -5
  296. package/lib/util/TupleQueue.js +1 -1
  297. package/lib/util/TupleSet.js +15 -5
  298. package/lib/util/URLAbsoluteSpecifier.js +7 -7
  299. package/lib/util/WeakTupleMap.js +19 -21
  300. package/lib/util/binarySearchBounds.js +5 -12
  301. package/lib/util/chainedImports.js +1 -1
  302. package/lib/util/cleverMerge.js +21 -19
  303. package/lib/util/comparators.js +57 -52
  304. package/lib/util/compileBooleanMatcher.js +3 -6
  305. package/lib/util/conventions.js +10 -13
  306. package/lib/util/createHash.js +9 -6
  307. package/lib/util/deprecation.js +22 -12
  308. package/lib/util/deterministicGrouping.js +19 -26
  309. package/lib/util/findGraphRoots.js +2 -2
  310. package/lib/util/fs.js +31 -31
  311. package/lib/util/hash/md4.js +2 -2
  312. package/lib/util/hash/wasm-hash.js +7 -7
  313. package/lib/util/hash/xxhash64.js +2 -2
  314. package/lib/util/identifier.js +81 -59
  315. package/lib/util/memoize.js +8 -10
  316. package/lib/util/mergeScope.js +6 -9
  317. package/lib/util/nonNumericOnlyHash.js +2 -2
  318. package/lib/util/numberHash.js +1 -6
  319. package/lib/util/objectToMap.js +0 -1
  320. package/lib/util/propertyAccess.js +2 -5
  321. package/lib/util/propertyName.js +1 -3
  322. package/lib/util/registerExternalSerializer.js +1 -1
  323. package/lib/util/runtime.js +103 -113
  324. package/lib/util/semver.js +29 -27
  325. package/lib/util/serialization.js +16 -1
  326. package/lib/util/smartGrouping.js +5 -5
  327. package/lib/util/source.js +1 -1
  328. package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
  329. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
  330. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
  331. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
  332. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
  333. package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
  334. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
  335. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  336. package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
  337. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
  338. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
  339. package/package.json +17 -16
  340. package/schemas/WebpackOptions.check.js +1 -1
  341. package/schemas/WebpackOptions.json +17 -0
  342. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
  343. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
  344. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
  345. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  346. package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
  347. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  348. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  349. package/schemas/plugins/container/ModuleFederationPlugin.json +1 -0
  350. package/types.d.ts +682 -347
@@ -11,9 +11,7 @@ const Watchpack = require("watchpack");
11
11
  /** @typedef {import("../../declarations/WebpackOptions").WatchOptions} WatchOptions */
12
12
  /** @typedef {import("../FileSystemInfo").FileSystemInfoEntry} FileSystemInfoEntry */
13
13
  /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
14
- /** @typedef {import("../util/fs").WatchFileSystem} WatchFileSystem */
15
14
  /** @typedef {import("../util/fs").WatchMethod} WatchMethod */
16
- /** @typedef {import("../util/fs").Watcher} Watcher */
17
15
 
18
16
  class NodeWatchFileSystem {
19
17
  /**
@@ -27,16 +25,7 @@ class NodeWatchFileSystem {
27
25
  this.watcher = new Watchpack(this.watcherOptions);
28
26
  }
29
27
 
30
- /**
31
- * @param {Iterable<string>} files watched files
32
- * @param {Iterable<string>} directories watched directories
33
- * @param {Iterable<string>} missing watched existence entries
34
- * @param {number} startTime timestamp of start time
35
- * @param {WatchOptions} options options object
36
- * @param {function(Error | null, Map<string, FileSystemInfoEntry>, Map<string, FileSystemInfoEntry>, Set<string>, Set<string>): void} callback aggregated callback
37
- * @param {function(string, number): void} callbackUndelayed callback when the first change was detected
38
- * @returns {Watcher} a watcher
39
- */
28
+ /** @type {WatchMethod} */
40
29
  watch(
41
30
  files,
42
31
  directories,
@@ -161,16 +150,12 @@ class NodeWatchFileSystem {
161
150
  "DEP_WEBPACK_WATCHER_GET_AGGREGATED_CHANGES"
162
151
  ),
163
152
  getFileTimeInfoEntries: util.deprecate(
164
- () => {
165
- return fetchTimeInfo().fileTimeInfoEntries;
166
- },
153
+ () => fetchTimeInfo().fileTimeInfoEntries,
167
154
  "Watcher.getFileTimeInfoEntries is deprecated in favor of Watcher.getInfo since that's more performant.",
168
155
  "DEP_WEBPACK_WATCHER_FILE_TIME_INFO_ENTRIES"
169
156
  ),
170
157
  getContextTimeInfoEntries: util.deprecate(
171
- () => {
172
- return fetchTimeInfo().contextTimeInfoEntries;
173
- },
158
+ () => fetchTimeInfo().contextTimeInfoEntries,
174
159
  "Watcher.getContextTimeInfoEntries is deprecated in favor of Watcher.getInfo since that's more performant.",
175
160
  "DEP_WEBPACK_WATCHER_CONTEXT_TIME_INFO_ENTRIES"
176
161
  ),
@@ -43,7 +43,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
43
43
 
44
44
  return `${RuntimeGlobals.baseURI} = require("url").pathToFileURL(${
45
45
  rootOutputDir
46
- ? `__dirname + ${JSON.stringify("/" + rootOutputDir)}`
46
+ ? `__dirname + ${JSON.stringify(`/${rootOutputDir}`)}`
47
47
  : "__filename"
48
48
  });`;
49
49
  }
@@ -227,7 +227,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule {
227
227
  Template.indent([
228
228
  `if(${RuntimeGlobals.hasOwnProperty}(updatedModules, moduleId)) {`,
229
229
  Template.indent([
230
- `currentUpdate[moduleId] = updatedModules[moduleId];`,
230
+ "currentUpdate[moduleId] = updatedModules[moduleId];",
231
231
  "if(updatedModulesList) updatedModulesList.push(moduleId);"
232
232
  ]),
233
233
  "}"
@@ -18,6 +18,7 @@ class ReadFileCompileAsyncWasmPlugin {
18
18
  this._type = type;
19
19
  this._import = useImport;
20
20
  }
21
+
21
22
  /**
22
23
  * Apply the plugin
23
24
  * @param {Compiler} compiler the compiler instance
@@ -43,7 +43,7 @@ class RequireChunkLoadingRuntimeModule extends RuntimeModule {
43
43
 
44
44
  return `${RuntimeGlobals.baseURI} = require("url").pathToFileURL(${
45
45
  rootOutputDir !== "./"
46
- ? `__dirname + ${JSON.stringify("/" + rootOutputDir)}`
46
+ ? `__dirname + ${JSON.stringify(`/${rootOutputDir}`)}`
47
47
  : "__filename"
48
48
  });`;
49
49
  }
@@ -189,7 +189,7 @@ class RequireChunkLoadingRuntimeModule extends RuntimeModule {
189
189
  Template.indent([
190
190
  `if(${RuntimeGlobals.hasOwnProperty}(updatedModules, moduleId)) {`,
191
191
  Template.indent([
192
- `currentUpdate[moduleId] = updatedModules[moduleId];`,
192
+ "currentUpdate[moduleId] = updatedModules[moduleId];",
193
193
  "if(updatedModulesList) updatedModulesList.push(moduleId);"
194
194
  ]),
195
195
  "}"
@@ -19,7 +19,7 @@ const truncateArgs = require("../logging/truncateArgs");
19
19
  */
20
20
  module.exports = ({ colors, appendOnly, stream }) => {
21
21
  /** @type {string[] | undefined} */
22
- let currentStatusMessage = undefined;
22
+ let currentStatusMessage;
23
23
  let hasStatusMessage = false;
24
24
  let currentIndent = "";
25
25
  let currentCollapsed = 0;
@@ -38,17 +38,17 @@ module.exports = ({ colors, appendOnly, stream }) => {
38
38
  return (
39
39
  prefix +
40
40
  colorPrefix +
41
- str.replace(/\n/g, colorSuffix + "\n" + prefix + colorPrefix) +
41
+ str.replace(/\n/g, `${colorSuffix}\n${prefix}${colorPrefix}`) +
42
42
  colorSuffix
43
43
  );
44
- } else {
45
- return prefix + str.replace(/\n/g, "\n" + prefix);
46
44
  }
45
+
46
+ return prefix + str.replace(/\n/g, `\n${prefix}`);
47
47
  };
48
48
 
49
49
  const clearStatusMessage = () => {
50
50
  if (hasStatusMessage) {
51
- stream.write("\x1b[2K\r");
51
+ stream.write("\u001B[2K\r");
52
52
  hasStatusMessage = false;
53
53
  }
54
54
  };
@@ -58,8 +58,8 @@ module.exports = ({ colors, appendOnly, stream }) => {
58
58
  const l = /** @type {TODO} */ (stream).columns || 40;
59
59
  const args = truncateArgs(currentStatusMessage, l - 1);
60
60
  const str = args.join(" ");
61
- const coloredStr = `\u001b[1m${str}\u001b[39m\u001b[22m`;
62
- stream.write(`\x1b[2K\r${coloredStr}`);
61
+ const coloredStr = `\u001B[1m${str}\u001B[39m\u001B[22m`;
62
+ stream.write(`\u001B[2K\r${coloredStr}`);
63
63
  hasStatusMessage = true;
64
64
  };
65
65
 
@@ -69,8 +69,9 @@ module.exports = ({ colors, appendOnly, stream }) => {
69
69
  * @param {string} colorSuffix color suffix
70
70
  * @returns {(function(...any[]): void)} function to write with colors
71
71
  */
72
- const writeColored = (prefix, colorPrefix, colorSuffix) => {
73
- return (...args) => {
72
+ const writeColored =
73
+ (prefix, colorPrefix, colorSuffix) =>
74
+ (...args) => {
74
75
  if (currentCollapsed > 0) return;
75
76
  clearStatusMessage();
76
77
  const str = indent(
@@ -79,34 +80,33 @@ module.exports = ({ colors, appendOnly, stream }) => {
79
80
  colorPrefix,
80
81
  colorSuffix
81
82
  );
82
- stream.write(str + "\n");
83
+ stream.write(`${str}\n`);
83
84
  writeStatusMessage();
84
85
  };
85
- };
86
86
 
87
87
  const writeGroupMessage = writeColored(
88
88
  "<-> ",
89
- "\u001b[1m\u001b[36m",
90
- "\u001b[39m\u001b[22m"
89
+ "\u001B[1m\u001B[36m",
90
+ "\u001B[39m\u001B[22m"
91
91
  );
92
92
 
93
93
  const writeGroupCollapsedMessage = writeColored(
94
94
  "<+> ",
95
- "\u001b[1m\u001b[36m",
96
- "\u001b[39m\u001b[22m"
95
+ "\u001B[1m\u001B[36m",
96
+ "\u001B[39m\u001B[22m"
97
97
  );
98
98
 
99
99
  return {
100
- log: writeColored(" ", "\u001b[1m", "\u001b[22m"),
100
+ log: writeColored(" ", "\u001B[1m", "\u001B[22m"),
101
101
  debug: writeColored(" ", "", ""),
102
102
  trace: writeColored(" ", "", ""),
103
- info: writeColored("<i> ", "\u001b[1m\u001b[32m", "\u001b[39m\u001b[22m"),
104
- warn: writeColored("<w> ", "\u001b[1m\u001b[33m", "\u001b[39m\u001b[22m"),
105
- error: writeColored("<e> ", "\u001b[1m\u001b[31m", "\u001b[39m\u001b[22m"),
103
+ info: writeColored("<i> ", "\u001B[1m\u001B[32m", "\u001B[39m\u001B[22m"),
104
+ warn: writeColored("<w> ", "\u001B[1m\u001B[33m", "\u001B[39m\u001B[22m"),
105
+ error: writeColored("<e> ", "\u001B[1m\u001B[31m", "\u001B[39m\u001B[22m"),
106
106
  logTime: writeColored(
107
107
  "<t> ",
108
- "\u001b[1m\u001b[35m",
109
- "\u001b[39m\u001b[22m"
108
+ "\u001B[1m\u001B[35m",
109
+ "\u001B[39m\u001B[22m"
110
110
  ),
111
111
  group: (...args) => {
112
112
  writeGroupMessage(...args);
@@ -123,7 +123,7 @@ module.exports = ({ colors, appendOnly, stream }) => {
123
123
  groupEnd: () => {
124
124
  if (currentCollapsed > 0) currentCollapsed--;
125
125
  else if (currentIndent.length >= 2)
126
- currentIndent = currentIndent.slice(0, currentIndent.length - 2);
126
+ currentIndent = currentIndent.slice(0, -2);
127
127
  },
128
128
  profile: console.profile && (name => console.profile(name)),
129
129
  profileEnd: console.profileEnd && (name => console.profileEnd(name)),
@@ -51,7 +51,7 @@ class AggressiveMergingPlugin {
51
51
  chunks => {
52
52
  const chunkGraph = compilation.chunkGraph;
53
53
  /** @type {{a: Chunk, b: Chunk, improvement: number}[]} */
54
- let combinations = [];
54
+ const combinations = [];
55
55
  for (const a of chunks) {
56
56
  if (a.canBeInitial()) continue;
57
57
  for (const b of chunks) {
@@ -78,9 +78,7 @@ class AggressiveMergingPlugin {
78
78
  }
79
79
  }
80
80
 
81
- combinations.sort((a, b) => {
82
- return b.improvement - a.improvement;
83
- });
81
+ combinations.sort((a, b) => b.improvement - a.improvement);
84
82
 
85
83
  const pair = combinations[0];
86
84
 
@@ -36,11 +36,9 @@ const validate = createSchemaValidation(
36
36
  * @param {Chunk} newChunk the new chunk
37
37
  * @returns {(module: Module) => void} function to move module between chunks
38
38
  */
39
- const moveModuleBetween = (chunkGraph, oldChunk, newChunk) => {
40
- return module => {
41
- chunkGraph.disconnectChunkAndModule(oldChunk, module);
42
- chunkGraph.connectChunkAndModule(newChunk, module);
43
- };
39
+ const moveModuleBetween = (chunkGraph, oldChunk, newChunk) => module => {
40
+ chunkGraph.disconnectChunkAndModule(oldChunk, module);
41
+ chunkGraph.connectChunkAndModule(newChunk, module);
44
42
  };
45
43
 
46
44
  /**
@@ -48,11 +46,8 @@ const moveModuleBetween = (chunkGraph, oldChunk, newChunk) => {
48
46
  * @param {Chunk} chunk the chunk
49
47
  * @returns {function(Module): boolean} filter for entry module
50
48
  */
51
- const isNotAEntryModule = (chunkGraph, chunk) => {
52
- return module => {
53
- return !chunkGraph.isEntryModuleInChunk(module, chunk);
54
- };
55
- };
49
+ const isNotAEntryModule = (chunkGraph, chunk) => module =>
50
+ !chunkGraph.isEntryModuleInChunk(module, chunk);
56
51
 
57
52
  /** @type {WeakSet<Chunk>} */
58
53
  const recordedChunks = new WeakSet();
@@ -191,9 +186,9 @@ class AggressiveSplittingPlugin {
191
186
  const newChunk = compilation.addChunk();
192
187
  newChunk.chunkReason = "aggressive splitted";
193
188
  for (const chunk of selectedChunks) {
194
- selectedModules.forEach(
195
- moveModuleBetween(chunkGraph, chunk, newChunk)
196
- );
189
+ for (const module of selectedModules) {
190
+ moveModuleBetween(chunkGraph, chunk, newChunk)(module);
191
+ }
197
192
  chunk.split(newChunk);
198
193
  chunk.name = null;
199
194
  }
@@ -277,12 +272,14 @@ class AggressiveSplittingPlugin {
277
272
  // We remove invalid splittings and try again
278
273
  for (const chunk of compilation.chunks) {
279
274
  const splitData = chunkSplitDataMap.get(chunk);
280
- if (splitData !== undefined) {
281
- if (splitData.hash && chunk.hash !== splitData.hash) {
282
- // Split was successful, but hash doesn't equal
283
- // We can throw away the split since it's useless now
284
- invalidSplits.add(splitData);
285
- }
275
+ if (
276
+ splitData !== undefined &&
277
+ splitData.hash &&
278
+ chunk.hash !== splitData.hash
279
+ ) {
280
+ // Split was successful, but hash doesn't equal
281
+ // We can throw away the split since it's useless now
282
+ invalidSplits.add(splitData);
286
283
  }
287
284
  }
288
285