webpack 5.93.0 → 5.95.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 (344) 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 +33 -20
  28. package/lib/ContextModuleFactory.js +89 -44
  29. package/lib/ContextReplacementPlugin.js +10 -9
  30. package/lib/DefinePlugin.js +75 -68
  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 +6 -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 +41 -15
  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 +130 -69
  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 +21 -13
  94. package/lib/WarnDeprecatedOptionPlugin.js +0 -1
  95. package/lib/WatchIgnorePlugin.js +26 -9
  96. package/lib/Watching.js +10 -5
  97. package/lib/WebpackOptionsApply.js +84 -62
  98. package/lib/asset/AssetGenerator.js +107 -42
  99. package/lib/asset/AssetModulesPlugin.js +29 -23
  100. package/lib/asset/AssetSourceGenerator.js +2 -7
  101. package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
  102. package/lib/buildChunkGraph.js +93 -81
  103. package/lib/cache/IdleFileCachePlugin.js +4 -4
  104. package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
  105. package/lib/cache/PackFileCacheStrategy.js +51 -50
  106. package/lib/cache/ResolverCachePlugin.js +6 -6
  107. package/lib/cache/mergeEtags.js +16 -21
  108. package/lib/cli.js +148 -104
  109. package/lib/config/browserslistTargetHandler.js +16 -13
  110. package/lib/config/defaults.js +32 -28
  111. package/lib/config/normalization.js +335 -344
  112. package/lib/config/target.js +42 -52
  113. package/lib/container/ContainerEntryModule.js +2 -2
  114. package/lib/container/ContainerPlugin.js +1 -1
  115. package/lib/container/RemoteRuntimeModule.js +11 -8
  116. package/lib/container/options.js +18 -4
  117. package/lib/css/CssExportsGenerator.js +26 -24
  118. package/lib/css/CssGenerator.js +9 -4
  119. package/lib/css/CssLoadingRuntimeModule.js +10 -10
  120. package/lib/css/CssModulesPlugin.js +127 -47
  121. package/lib/css/CssParser.js +20 -18
  122. package/lib/css/walkCssTokens.js +80 -95
  123. package/lib/debug/ProfilingPlugin.js +19 -20
  124. package/lib/dependencies/AMDDefineDependency.js +1 -1
  125. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
  126. package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
  127. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
  128. package/lib/dependencies/AMDRuntimeModules.js +2 -2
  129. package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
  130. package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
  131. package/lib/dependencies/CommonJsExportsDependency.js +0 -1
  132. package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
  133. package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
  134. package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
  135. package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
  136. package/lib/dependencies/ConstDependency.js +1 -1
  137. package/lib/dependencies/ContextDependency.js +7 -2
  138. package/lib/dependencies/ContextDependencyHelpers.js +31 -34
  139. package/lib/dependencies/ContextElementDependency.js +35 -8
  140. package/lib/dependencies/CriticalDependencyWarning.js +1 -1
  141. package/lib/dependencies/CssExportDependency.js +7 -7
  142. package/lib/dependencies/CssImportDependency.js +0 -2
  143. package/lib/dependencies/CssLocalIdentifierDependency.js +3 -3
  144. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
  145. package/lib/dependencies/CssUrlDependency.js +4 -5
  146. package/lib/dependencies/DynamicExports.js +5 -5
  147. package/lib/dependencies/ExportsInfoDependency.js +1 -2
  148. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
  149. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
  150. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
  151. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  152. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
  153. package/lib/dependencies/HarmonyExports.js +2 -2
  154. package/lib/dependencies/HarmonyImportDependency.js +2 -4
  155. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
  156. package/lib/dependencies/HarmonyImportSpecifierDependency.js +40 -15
  157. package/lib/dependencies/ImportDependency.js +1 -1
  158. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
  159. package/lib/dependencies/ImportMetaPlugin.js +11 -13
  160. package/lib/dependencies/ImportParserPlugin.js +39 -44
  161. package/lib/dependencies/JsonExportsDependency.js +22 -18
  162. package/lib/dependencies/LoaderPlugin.js +47 -36
  163. package/lib/dependencies/LocalModule.js +1 -1
  164. package/lib/dependencies/LocalModulesHelpers.js +4 -4
  165. package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
  166. package/lib/dependencies/ProvidedDependency.js +1 -1
  167. package/lib/dependencies/PureExpressionDependency.js +6 -6
  168. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
  169. package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
  170. package/lib/dependencies/SystemPlugin.js +1 -1
  171. package/lib/dependencies/URLDependency.js +3 -3
  172. package/lib/dependencies/URLPlugin.js +66 -12
  173. package/lib/dependencies/WorkerPlugin.js +25 -24
  174. package/lib/dependencies/processExportInfo.js +3 -1
  175. package/lib/electron/ElectronTargetPlugin.js +1 -0
  176. package/lib/esm/ModuleChunkFormatPlugin.js +3 -3
  177. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
  178. package/lib/formatLocation.js +1 -2
  179. package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
  180. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  181. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
  182. package/lib/hmr/LazyCompilationPlugin.js +27 -12
  183. package/lib/hmr/lazyCompilationBackend.js +64 -40
  184. package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
  185. package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
  186. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  187. package/lib/ids/HashedModuleIdsPlugin.js +5 -1
  188. package/lib/ids/IdHelpers.js +29 -39
  189. package/lib/ids/SyncModuleIdsPlugin.js +7 -2
  190. package/lib/index.js +1 -5
  191. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -4
  192. package/lib/javascript/BasicEvaluatedExpression.js +4 -19
  193. package/lib/javascript/ChunkHelpers.js +1 -1
  194. package/lib/javascript/CommonJsChunkFormatPlugin.js +3 -2
  195. package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
  196. package/lib/javascript/JavascriptGenerator.js +23 -7
  197. package/lib/javascript/JavascriptModulesPlugin.js +133 -86
  198. package/lib/javascript/JavascriptParser.js +179 -200
  199. package/lib/javascript/JavascriptParserHelpers.js +20 -21
  200. package/lib/javascript/StartupHelpers.js +41 -13
  201. package/lib/json/JsonGenerator.js +7 -13
  202. package/lib/json/JsonModulesPlugin.js +1 -4
  203. package/lib/json/JsonParser.js +5 -3
  204. package/lib/library/AmdLibraryPlugin.js +12 -16
  205. package/lib/library/AssignLibraryPlugin.js +8 -10
  206. package/lib/library/EnableLibraryPlugin.js +15 -14
  207. package/lib/library/JsonpLibraryPlugin.js +2 -1
  208. package/lib/library/ModernModuleLibraryPlugin.js +8 -6
  209. package/lib/library/ModuleLibraryPlugin.js +2 -1
  210. package/lib/library/SystemLibraryPlugin.js +2 -1
  211. package/lib/library/UmdLibraryPlugin.js +66 -92
  212. package/lib/logging/Logger.js +32 -4
  213. package/lib/logging/createConsoleLogger.js +12 -13
  214. package/lib/logging/runtime.js +7 -8
  215. package/lib/logging/truncateArgs.js +5 -8
  216. package/lib/node/NodeWatchFileSystem.js +3 -18
  217. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
  218. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
  219. package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
  220. package/lib/node/nodeConsole.js +22 -22
  221. package/lib/optimize/AggressiveMergingPlugin.js +2 -4
  222. package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
  223. package/lib/optimize/ConcatenatedModule.js +81 -51
  224. package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
  225. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
  226. package/lib/optimize/InnerGraph.js +17 -17
  227. package/lib/optimize/InnerGraphPlugin.js +8 -7
  228. package/lib/optimize/LimitChunkCountPlugin.js +2 -3
  229. package/lib/optimize/MangleExportsPlugin.js +1 -0
  230. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -2
  231. package/lib/optimize/MinMaxSizeWarning.js +1 -1
  232. package/lib/optimize/ModuleConcatenationPlugin.js +54 -78
  233. package/lib/optimize/RealContentHashPlugin.js +7 -10
  234. package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
  235. package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
  236. package/lib/optimize/SplitChunksPlugin.js +34 -30
  237. package/lib/performance/SizeLimitsPlugin.js +2 -2
  238. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
  239. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
  240. package/lib/rules/BasicEffectRulePlugin.js +3 -1
  241. package/lib/rules/BasicMatcherRulePlugin.js +3 -1
  242. package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
  243. package/lib/rules/RuleSetCompiler.js +41 -22
  244. package/lib/rules/UseEffectRulePlugin.js +36 -32
  245. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  246. package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
  247. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  248. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
  249. package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
  250. package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
  251. package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
  252. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
  253. package/lib/schemes/DataUriPlugin.js +1 -1
  254. package/lib/schemes/HttpUriPlugin.js +241 -126
  255. package/lib/serialization/BinaryMiddleware.js +44 -28
  256. package/lib/serialization/DateObjectSerializer.js +1 -0
  257. package/lib/serialization/ErrorObjectSerializer.js +2 -0
  258. package/lib/serialization/FileMiddleware.js +154 -106
  259. package/lib/serialization/MapObjectSerializer.js +2 -1
  260. package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
  261. package/lib/serialization/ObjectMiddleware.js +52 -56
  262. package/lib/serialization/PlainObjectSerializer.js +32 -6
  263. package/lib/serialization/RegExpObjectSerializer.js +1 -0
  264. package/lib/serialization/Serializer.js +4 -5
  265. package/lib/serialization/SerializerMiddleware.js +6 -6
  266. package/lib/serialization/SetObjectSerializer.js +2 -1
  267. package/lib/sharing/ConsumeSharedPlugin.js +116 -97
  268. package/lib/sharing/ConsumeSharedRuntimeModule.js +4 -4
  269. package/lib/sharing/ProvideForSharedDependency.js +0 -1
  270. package/lib/sharing/ProvideSharedPlugin.js +2 -2
  271. package/lib/sharing/resolveMatchedConfigs.js +2 -1
  272. package/lib/sharing/utils.js +15 -27
  273. package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
  274. package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
  275. package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
  276. package/lib/stats/StatsFactory.js +127 -56
  277. package/lib/stats/StatsPrinter.js +75 -44
  278. package/lib/util/ArrayHelpers.js +8 -4
  279. package/lib/util/ArrayQueue.js +1 -1
  280. package/lib/util/AsyncQueue.js +31 -12
  281. package/lib/util/IterableHelpers.js +3 -4
  282. package/lib/util/LazyBucketSortedSet.js +60 -44
  283. package/lib/util/LazySet.js +13 -0
  284. package/lib/util/MapHelpers.js +1 -3
  285. package/lib/util/ParallelismFactorCalculator.js +1 -1
  286. package/lib/util/Queue.js +1 -1
  287. package/lib/util/Semaphore.js +4 -7
  288. package/lib/util/SetHelpers.js +5 -5
  289. package/lib/util/SortableSet.js +4 -3
  290. package/lib/util/StackedCacheMap.js +4 -6
  291. package/lib/util/StackedMap.js +1 -3
  292. package/lib/util/StringXor.js +0 -5
  293. package/lib/util/TupleQueue.js +1 -1
  294. package/lib/util/TupleSet.js +15 -5
  295. package/lib/util/URLAbsoluteSpecifier.js +7 -7
  296. package/lib/util/WeakTupleMap.js +19 -21
  297. package/lib/util/binarySearchBounds.js +5 -12
  298. package/lib/util/chainedImports.js +1 -1
  299. package/lib/util/cleverMerge.js +21 -19
  300. package/lib/util/comparators.js +57 -52
  301. package/lib/util/compileBooleanMatcher.js +3 -6
  302. package/lib/util/conventions.js +8 -11
  303. package/lib/util/createHash.js +9 -6
  304. package/lib/util/deprecation.js +22 -12
  305. package/lib/util/deterministicGrouping.js +19 -26
  306. package/lib/util/findGraphRoots.js +2 -2
  307. package/lib/util/fs.js +32 -32
  308. package/lib/util/hash/md4.js +2 -2
  309. package/lib/util/hash/wasm-hash.js +7 -7
  310. package/lib/util/hash/xxhash64.js +2 -2
  311. package/lib/util/identifier.js +81 -59
  312. package/lib/util/memoize.js +8 -10
  313. package/lib/util/mergeScope.js +6 -9
  314. package/lib/util/nonNumericOnlyHash.js +2 -2
  315. package/lib/util/numberHash.js +1 -6
  316. package/lib/util/objectToMap.js +0 -1
  317. package/lib/util/propertyAccess.js +2 -5
  318. package/lib/util/propertyName.js +1 -3
  319. package/lib/util/registerExternalSerializer.js +1 -1
  320. package/lib/util/runtime.js +109 -113
  321. package/lib/util/semver.js +29 -27
  322. package/lib/util/serialization.js +16 -1
  323. package/lib/util/smartGrouping.js +5 -5
  324. package/lib/util/source.js +1 -1
  325. package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
  326. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
  327. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
  328. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
  329. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
  330. package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
  331. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
  332. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  333. package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
  334. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
  335. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
  336. package/package.json +18 -17
  337. package/schemas/WebpackOptions.check.js +1 -1
  338. package/schemas/WebpackOptions.json +5 -0
  339. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  340. package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
  341. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  342. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  343. package/schemas/plugins/container/ModuleFederationPlugin.json +1 -0
  344. package/types.d.ts +681 -355
package/README.md CHANGED
@@ -8,9 +8,10 @@
8
8
  [![npm][npm]][npm-url]
9
9
 
10
10
  [![node][node]][node-url]
11
+ [![builds1][builds1]][builds1-url]
11
12
  [![builds2][builds2]][builds2-url]
13
+ [![dependency-review][dependency-review]][dependency-review-url]
12
14
  [![coverage][cover]][cover-url]
13
- [![licenses][licenses]][licenses-url]
14
15
  [![PR's welcome][prs]][prs-url]
15
16
 
16
17
  <br>
@@ -716,9 +717,11 @@ src="https://static.monei.net/monei-logo.svg" height="30" alt="MONEI"></a>
716
717
  [node-url]: https://nodejs.org
717
718
  [prs]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg
718
719
  [prs-url]: https://webpack.js.org/contribute/
719
- [builds2]: https://dev.azure.com/webpack/webpack/_apis/build/status/webpack.webpack
720
- [builds2-url]: https://dev.azure.com/webpack/webpack/_build/latest?definitionId=3
721
- [licenses-url]: https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fwebpack%2Fwebpack?ref=badge_shield
722
- [licenses]: https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fwebpack%2Fwebpack.svg?type=shield
720
+ [builds1]: https://github.com/webpack/webpack/actions/workflows/test.yml/badge.svg
721
+ [builds1-url]: https://github.com/webpack/webpack/actions/workflows/test.yml
722
+ [builds2]: https://dev.azure.com/webpack/webpack/_apis/build/status%2Fwebpack.webpack?branchName=main
723
+ [builds2-url]: https://dev.azure.com/webpack/webpack/_build/latest?definitionId=3&branchName=main
724
+ [dependency-review-url]: https://github.com/webpack/webpack/actions/workflows/dependency-review.yml
725
+ [dependency-review]: https://github.com/webpack/webpack/actions/workflows/dependency-review.yml/badge.svg
723
726
  [cover]: https://codecov.io/gh/webpack/webpack/branch/master/graph/badge.svg?token=mDP3mQJNnn
724
727
  [cover-url]: https://codecov.io/gh/webpack/webpack
package/bin/webpack.js CHANGED
@@ -80,8 +80,8 @@ const runCli = cli => {
80
80
 
81
81
  if (pkg.type === "module" || /\.mjs/i.test(pkg.bin[cli.binName])) {
82
82
  import(path.resolve(path.dirname(pkgPath), pkg.bin[cli.binName])).catch(
83
- error => {
84
- console.error(error);
83
+ err => {
84
+ console.error(err);
85
85
  process.exitCode = 1;
86
86
  }
87
87
  );
@@ -113,8 +113,7 @@ if (!cli.installed) {
113
113
  const fs = require("graceful-fs");
114
114
  const readLine = require("readline");
115
115
 
116
- const notify =
117
- "CLI for webpack must be installed.\n" + ` ${cli.name} (${cli.url})\n`;
116
+ const notify = `CLI for webpack must be installed.\n ${cli.name} (${cli.url})\n`;
118
117
 
119
118
  console.error(notify);
120
119
 
@@ -137,7 +136,7 @@ if (!cli.installed) {
137
136
  )} ${cli.package}".`
138
137
  );
139
138
 
140
- const question = `Do you want to install 'webpack-cli' (yes/no): `;
139
+ const question = "Do you want to install 'webpack-cli' (yes/no): ";
141
140
 
142
141
  const questionInterface = readLine.createInterface({
143
142
  input: process.stdin,
@@ -178,8 +177,8 @@ if (!cli.installed) {
178
177
  .then(() => {
179
178
  runCli(cli);
180
179
  })
181
- .catch(error => {
182
- console.error(error);
180
+ .catch(err => {
181
+ console.error(err);
183
182
  process.exitCode = 1;
184
183
  });
185
184
  });
package/hot/log.js CHANGED
@@ -73,7 +73,6 @@ module.exports.formatError = function (err) {
73
73
  return message;
74
74
  } else if (stack.indexOf(message) < 0) {
75
75
  return message + "\n" + stack;
76
- } else {
77
- return stack;
78
76
  }
77
+ return stack;
79
78
  };
@@ -2,7 +2,7 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- /*globals __webpack_hash__ */
5
+ /* globals __webpack_hash__ */
6
6
  if (module.hot) {
7
7
  /** @type {undefined|string} */
8
8
  var lastHash;
package/hot/poll.js CHANGED
@@ -2,7 +2,7 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- /*globals __resourceQuery */
5
+ /* globals __resourceQuery */
6
6
  if (module.hot) {
7
7
  var hotPollInterval = +__resourceQuery.slice(1) || 10 * 60 * 1000;
8
8
  var log = require("./log");
package/hot/signal.js CHANGED
@@ -2,7 +2,7 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- /*globals __resourceQuery */
5
+ /* globals __resourceQuery */
6
6
  if (module.hot) {
7
7
  var log = require("./log");
8
8
 
package/lib/APIPlugin.js CHANGED
@@ -144,6 +144,7 @@ class APIPlugin {
144
144
  constructor(options = {}) {
145
145
  this.options = options;
146
146
  }
147
+
147
148
  /**
148
149
  * Apply the plugin
149
150
  * @param {Compiler} compiler the compiler instance
@@ -213,7 +214,7 @@ class APIPlugin {
213
214
  * @param {JavascriptParser} parser the parser
214
215
  */
215
216
  const handler = parser => {
216
- Object.keys(REPLACEMENTS).forEach(key => {
217
+ for (const key of Object.keys(REPLACEMENTS)) {
217
218
  const info = REPLACEMENTS[key];
218
219
  parser.hooks.expression.for(key).tap(PLUGIN_NAME, expression => {
219
220
  const dep = toConstantDependency(parser, info.expr, info.req);
@@ -237,7 +238,7 @@ class APIPlugin {
237
238
  .for(key)
238
239
  .tap(PLUGIN_NAME, evaluateToString(info.type));
239
240
  }
240
- });
241
+ }
241
242
 
242
243
  parser.hooks.expression
243
244
  .for("__webpack_layer__")
@@ -277,7 +278,7 @@ class APIPlugin {
277
278
  (parser.state.module.buildInfo).moduleConcatenationBailout =
278
279
  "__webpack_module__.id";
279
280
  const dep = new ConstDependency(
280
- parser.state.module.moduleArgument + ".id",
281
+ `${parser.state.module.moduleArgument}.id`,
281
282
  /** @type {Range} */ (expr.range),
282
283
  [RuntimeGlobals.moduleId]
283
284
  );
@@ -13,18 +13,22 @@ const CURRENT_METHOD_REGEXP = /at ([a-zA-Z0-9_.]*)/;
13
13
  * @returns {string} message
14
14
  */
15
15
  function createMessage(method) {
16
- return `Abstract method${method ? " " + method : ""}. Must be overridden.`;
16
+ return `Abstract method${method ? ` ${method}` : ""}. Must be overridden.`;
17
17
  }
18
18
 
19
19
  /**
20
20
  * @constructor
21
21
  */
22
22
  function Message() {
23
- /** @type {string} */
23
+ /** @type {string | undefined} */
24
24
  this.stack = undefined;
25
25
  Error.captureStackTrace(this);
26
- /** @type {RegExpMatchArray} */
27
- const match = this.stack.split("\n")[3].match(CURRENT_METHOD_REGEXP);
26
+ /** @type {RegExpMatchArray | null} */
27
+ const match =
28
+ /** @type {string} */
29
+ (/** @type {unknown} */ (this.stack))
30
+ .split("\n")[3]
31
+ .match(CURRENT_METHOD_REGEXP);
28
32
 
29
33
  this.message = match && match[1] ? createMessage(match[1]) : createMessage();
30
34
  }
@@ -32,12 +36,13 @@ function Message() {
32
36
  /**
33
37
  * Error for abstract method
34
38
  * @example
39
+ * ```js
35
40
  * class FooClass {
36
41
  * abstractMethod() {
37
42
  * throw new AbstractMethodError(); // error message: Abstract method FooClass.abstractMethod. Must be overridden.
38
43
  * }
39
44
  * }
40
- *
45
+ * ```
41
46
  */
42
47
  class AbstractMethodError extends WebpackError {
43
48
  constructor() {
@@ -45,7 +45,7 @@ class AutomaticPrefetchPlugin {
45
45
  "AutomaticPrefetchPlugin",
46
46
  (compilation, callback) => {
47
47
  if (!lastModules) return callback();
48
- asyncLib.forEach(
48
+ asyncLib.each(
49
49
  lastModules,
50
50
  (m, callback) => {
51
51
  compilation.addModuleChain(
@@ -14,7 +14,9 @@ const createSchemaValidation = require("./util/create-schema-validation");
14
14
  /** @typedef {import("../declarations/plugins/BannerPlugin").BannerFunction} BannerFunction */
15
15
  /** @typedef {import("../declarations/plugins/BannerPlugin").BannerPluginArgument} BannerPluginArgument */
16
16
  /** @typedef {import("../declarations/plugins/BannerPlugin").BannerPluginOptions} BannerPluginOptions */
17
+ /** @typedef {import("./Compilation").PathData} PathData */
17
18
  /** @typedef {import("./Compiler")} Compiler */
19
+ /** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */
18
20
 
19
21
  const validate = createSchemaValidation(
20
22
  require("../schemas/plugins/BannerPlugin.check.js"),
@@ -59,6 +61,7 @@ class BannerPlugin {
59
61
  const bannerOption = options.banner;
60
62
  if (typeof bannerOption === "function") {
61
63
  const getBanner = bannerOption;
64
+ /** @type {BannerFunction} */
62
65
  this.banner = this.options.raw
63
66
  ? getBanner
64
67
  : /** @type {BannerFunction} */ data => wrapComment(getBanner(data));
@@ -66,6 +69,7 @@ class BannerPlugin {
66
69
  const banner = this.options.raw
67
70
  ? bannerOption
68
71
  : wrapComment(bannerOption);
72
+ /** @type {BannerFunction} */
69
73
  this.banner = () => banner;
70
74
  }
71
75
  }
@@ -103,15 +107,17 @@ class BannerPlugin {
103
107
  continue;
104
108
  }
105
109
 
106
- const data = {
107
- chunk,
108
- filename: file
109
- };
110
+ /** @type {PathData} */
111
+ const data = { chunk, filename: file };
110
112
 
111
- const comment = compilation.getPath(banner, data);
113
+ const comment = compilation.getPath(
114
+ /** @type {TemplatePath} */
115
+ (banner),
116
+ data
117
+ );
112
118
 
113
119
  compilation.updateAsset(file, old => {
114
- let cached = cache.get(old);
120
+ const cached = cache.get(old);
115
121
  if (!cached || cached.comment !== comment) {
116
122
  const source = options.footer
117
123
  ? new ConcatSource(old, "\n", comment)
package/lib/Cache.js CHANGED
@@ -38,16 +38,14 @@ const {
38
38
  * @param {function(Error=): void} callback callback
39
39
  * @returns {function(Error=): void} callback
40
40
  */
41
- const needCalls = (times, callback) => {
42
- return err => {
43
- if (--times === 0) {
44
- return callback(err);
45
- }
46
- if (err && times > 0) {
47
- times = 0;
48
- return callback(err);
49
- }
50
- };
41
+ const needCalls = (times, callback) => err => {
42
+ if (--times === 0) {
43
+ return callback(err);
44
+ }
45
+ if (err && times > 0) {
46
+ times = 0;
47
+ return callback(err);
48
+ }
51
49
  };
52
50
 
53
51
  class Cache {
@@ -38,6 +38,7 @@ class MultiItemCache {
38
38
  */
39
39
  constructor(items) {
40
40
  this._items = items;
41
+ // eslint-disable-next-line no-constructor-return
41
42
  if (items.length === 1) return /** @type {any} */ (items[0]);
42
43
  }
43
44
 
@@ -59,12 +60,11 @@ class MultiItemCache {
59
60
  * @param {number} i index
60
61
  * @returns {Promise<T>} promise with the data
61
62
  */
62
- const next = i => {
63
- return this._items[i].getPromise().then(result => {
63
+ const next = i =>
64
+ this._items[i].getPromise().then(result => {
64
65
  if (result !== undefined) return result;
65
66
  if (++i < this._items.length) return next(i);
66
67
  });
67
- };
68
68
  return next(0);
69
69
  }
70
70
 
@@ -14,8 +14,8 @@ const WebpackError = require("./WebpackError");
14
14
  * @param {Module[]} modules the modules to be sorted
15
15
  * @returns {Module[]} sorted version of original modules
16
16
  */
17
- const sortModules = modules => {
18
- return modules.sort((a, b) => {
17
+ const sortModules = modules =>
18
+ modules.sort((a, b) => {
19
19
  const aIdent = a.identifier();
20
20
  const bIdent = b.identifier();
21
21
  /* istanbul ignore next */
@@ -25,20 +25,19 @@ const sortModules = modules => {
25
25
  /* istanbul ignore next */
26
26
  return 0;
27
27
  });
28
- };
29
28
 
30
29
  /**
31
30
  * @param {Module[]} modules each module from throw
32
31
  * @param {ModuleGraph} moduleGraph the module graph
33
32
  * @returns {string} each message from provided modules
34
33
  */
35
- const createModulesListMessage = (modules, moduleGraph) => {
36
- return modules
34
+ const createModulesListMessage = (modules, moduleGraph) =>
35
+ modules
37
36
  .map(m => {
38
37
  let message = `* ${m.identifier()}`;
39
38
  const validReasons = Array.from(
40
39
  moduleGraph.getIncomingConnectionsByOriginModule(m).keys()
41
- ).filter(x => x);
40
+ ).filter(Boolean);
42
41
 
43
42
  if (validReasons.length > 0) {
44
43
  message += `\n Used by ${validReasons.length} module(s), i. e.`;
@@ -49,7 +48,6 @@ const createModulesListMessage = (modules, moduleGraph) => {
49
48
  return message;
50
49
  })
51
50
  .join("\n");
52
- };
53
51
 
54
52
  class CaseSensitiveModulesWarning extends WebpackError {
55
53
  /**
package/lib/Chunk.js CHANGED
@@ -22,14 +22,15 @@ const { mergeRuntime } = require("./util/runtime");
22
22
  /** @typedef {import("./ChunkGraph").ChunkFilterPredicate} ChunkFilterPredicate */
23
23
  /** @typedef {import("./ChunkGraph").ChunkSizeOptions} ChunkSizeOptions */
24
24
  /** @typedef {import("./ChunkGraph").ModuleFilterPredicate} ModuleFilterPredicate */
25
+ /** @typedef {import("./ChunkGraph").ModuleId} ModuleId */
25
26
  /** @typedef {import("./ChunkGroup")} ChunkGroup */
26
27
  /** @typedef {import("./ChunkGroup").ChunkGroupOptions} ChunkGroupOptions */
27
28
  /** @typedef {import("./Compilation")} Compilation */
28
29
  /** @typedef {import("./Compilation").AssetInfo} AssetInfo */
29
- /** @typedef {import("./Compilation").PathData} PathData */
30
30
  /** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */
31
31
  /** @typedef {import("./Module")} Module */
32
32
  /** @typedef {import("./ModuleGraph")} ModuleGraph */
33
+ /** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */
33
34
  /** @typedef {import("./util/Hash")} Hash */
34
35
  /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
35
36
 
@@ -81,9 +82,9 @@ class Chunk {
81
82
  this.idNameHints = new SortableSet();
82
83
  /** @type {boolean} */
83
84
  this.preventIntegration = false;
84
- /** @type {(string | function(PathData, AssetInfo=): string) | undefined} */
85
+ /** @type {TemplatePath | undefined} */
85
86
  this.filenameTemplate = undefined;
86
- /** @type {(string | function(PathData, AssetInfo=): string) | undefined} */
87
+ /** @type {TemplatePath | undefined} */
87
88
  this.cssFilenameTemplate = undefined;
88
89
  /**
89
90
  * @private
@@ -124,11 +125,11 @@ class Chunk {
124
125
  return undefined;
125
126
  } else if (entryModules.length === 1) {
126
127
  return entryModules[0];
127
- } else {
128
- throw new Error(
129
- "Module.entryModule: Multiple entry modules are not supported by the deprecated API (Use the new ChunkGroup API)"
130
- );
131
128
  }
129
+
130
+ throw new Error(
131
+ "Module.entryModule: Multiple entry modules are not supported by the deprecated API (Use the new ChunkGroup API)"
132
+ );
132
133
  }
133
134
 
134
135
  /**
@@ -271,9 +272,9 @@ class Chunk {
271
272
  if (chunkGraph.canChunksBeIntegrated(this, otherChunk)) {
272
273
  chunkGraph.integrateChunks(this, otherChunk);
273
274
  return true;
274
- } else {
275
- return false;
276
275
  }
276
+
277
+ return false;
277
278
  }
278
279
 
279
280
  /**
@@ -367,7 +368,9 @@ class Chunk {
367
368
  array = [];
368
369
  chunkModuleIdMap[/** @type {ChunkId} */ (asyncChunk.id)] = array;
369
370
  }
370
- const moduleId = chunkGraph.getModuleId(module);
371
+ const moduleId =
372
+ /** @type {ModuleId} */
373
+ (chunkGraph.getModuleId(module));
371
374
  array.push(moduleId);
372
375
  chunkModuleHashMap[moduleId] = chunkGraph.getRenderedModuleHash(
373
376
  module,
@@ -766,7 +769,7 @@ class Chunk {
766
769
  });
767
770
  }
768
771
  }
769
- if (list.length === 0) return undefined;
772
+ if (list.length === 0) return;
770
773
  list.sort((a, b) => {
771
774
  const cmp =
772
775
  /** @type {number} */ (b.order) - /** @type {number} */ (a.order);