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
@@ -208,9 +208,9 @@ class AsyncWebAssemblyModulesPlugin {
208
208
  hooks.renderModuleContent.call(moduleSource, module, renderContext),
209
209
  "AsyncWebAssemblyModulesPlugin.getCompilationHooks().renderModuleContent"
210
210
  );
211
- } catch (e) {
212
- /** @type {WebpackError} */ (e).module = module;
213
- throw e;
211
+ } catch (err) {
212
+ /** @type {WebpackError} */ (err).module = module;
213
+ throw err;
214
214
  }
215
215
  }
216
216
  }
@@ -13,6 +13,7 @@ const WebAssemblyUtils = require("./WebAssemblyUtils");
13
13
  /** @typedef {import("@webassemblyjs/ast").Signature} Signature */
14
14
  /** @typedef {import("../Chunk")} Chunk */
15
15
  /** @typedef {import("../ChunkGraph")} ChunkGraph */
16
+ /** @typedef {import("../ChunkGraph").ModuleId} ModuleId */
16
17
  /** @typedef {import("../Compilation")} Compilation */
17
18
  /** @typedef {import("../Module")} Module */
18
19
  /** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */
@@ -89,7 +90,8 @@ const generateImportObject = (
89
90
  const instanceVar = `m${waitForInstances.size}`;
90
91
  waitForInstances.set(
91
92
  instanceVar,
92
- chunkGraph.getModuleId(/** @type {Module} */ (importedModule))
93
+ /** @type {ModuleId} */
94
+ (chunkGraph.getModuleId(/** @type {Module} */ (importedModule)))
93
95
  );
94
96
  properties.push({
95
97
  module,
@@ -100,7 +102,7 @@ const generateImportObject = (
100
102
  const params =
101
103
  /** @type {Signature} */
102
104
  (description.signature).params.map(
103
- (param, k) => "p" + k + param.valtype
105
+ (param, k) => `p${k}${param.valtype}`
104
106
  );
105
107
 
106
108
  const mod = `${RuntimeGlobals.moduleCache}[${JSON.stringify(
@@ -121,7 +123,7 @@ const generateImportObject = (
121
123
  module,
122
124
  name,
123
125
  value: Template.asString([
124
- modCode + `function(${params}) {`,
126
+ `${modCode}function(${params}) {`,
125
127
  Template.indent([
126
128
  `if(${cache} === undefined) ${cache} = ${modExports};`,
127
129
  `return ${cache}[${JSON.stringify(usedName)}](${params});`
@@ -154,15 +156,15 @@ const generateImportObject = (
154
156
  importObject = [
155
157
  "return {",
156
158
  Template.indent([
157
- Array.from(propertiesByModule, ([module, list]) => {
158
- return Template.asString([
159
+ Array.from(propertiesByModule, ([module, list]) =>
160
+ Template.asString([
159
161
  `${JSON.stringify(module)}: {`,
160
162
  Template.indent([
161
163
  list.map(p => `${JSON.stringify(p.name)}: ${p.value}`).join(",\n")
162
164
  ]),
163
165
  "}"
164
- ]);
165
- }).join(",\n")
166
+ ])
167
+ ).join(",\n")
166
168
  ]),
167
169
  "};"
168
170
  ];
@@ -200,13 +202,12 @@ const generateImportObject = (
200
202
  ]),
201
203
  "},"
202
204
  ]);
203
- } else {
204
- return Template.asString([
205
- `${moduleIdStringified}: function() {`,
206
- Template.indent(importObject),
207
- "},"
208
- ]);
209
205
  }
206
+ return Template.asString([
207
+ `${moduleIdStringified}: function() {`,
208
+ Template.indent(importObject),
209
+ "},"
210
+ ]);
210
211
  };
211
212
 
212
213
  /**
@@ -250,15 +251,15 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule {
250
251
  const { mangleImports } = this;
251
252
  /** @type {string[]} */
252
253
  const declarations = [];
253
- const importObjects = wasmModules.map(module => {
254
- return generateImportObject(
254
+ const importObjects = wasmModules.map(module =>
255
+ generateImportObject(
255
256
  chunkGraph,
256
257
  module,
257
258
  mangleImports,
258
259
  declarations,
259
260
  chunk.runtime
260
- );
261
- });
261
+ )
262
+ );
262
263
  const chunkModuleIdMap = chunkGraph.getChunkModuleIdMap(chunk, m =>
263
264
  m.type.startsWith("webassembly")
264
265
  );
@@ -331,7 +332,7 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule {
331
332
  `${fn}.wasm = function(chunkId, promises) {`,
332
333
  Template.indent([
333
334
  "",
334
- `var wasmModules = wasmModuleMap[chunkId] || [];`,
335
+ "var wasmModules = wasmModuleMap[chunkId] || [];",
335
336
  "",
336
337
  "wasmModules.forEach(function(wasmModuleId, idx) {",
337
338
  Template.indent([
@@ -342,7 +343,7 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule {
342
343
  Template.indent(["promises.push(installedWasmModuleData);"]),
343
344
  "else {",
344
345
  Template.indent([
345
- `var importObject = wasmImportObjects[wasmModuleId]();`,
346
+ "var importObject = wasmImportObjects[wasmModuleId]();",
346
347
  `var req = ${this.generateLoadBinaryCode(wasmModuleSrcPath)};`,
347
348
  "var promise;",
348
349
  this.supportsStreaming
@@ -43,33 +43,27 @@ const WebAssemblyExportImportedDependency = require("../dependencies/WebAssembly
43
43
  * @param {((prev: ArrayBuffer) => ArrayBuffer)[]} fns transforms
44
44
  * @returns {Function} composed transform
45
45
  */
46
- const compose = (...fns) => {
47
- return fns.reduce(
48
- (prevFn, nextFn) => {
49
- return value => nextFn(prevFn(value));
50
- },
46
+ const compose = (...fns) =>
47
+ fns.reduce(
48
+ (prevFn, nextFn) => value => nextFn(prevFn(value)),
51
49
  value => value
52
50
  );
53
- };
54
51
 
55
52
  /**
56
53
  * Removes the start instruction
57
- *
58
54
  * @param {object} state state
59
55
  * @param {object} state.ast Module's ast
60
56
  * @returns {ArrayBufferTransform} transform
61
57
  */
62
- const removeStartFunc = state => bin => {
63
- return editWithAST(state.ast, bin, {
58
+ const removeStartFunc = state => bin =>
59
+ editWithAST(state.ast, bin, {
64
60
  Start(path) {
65
61
  path.remove();
66
62
  }
67
63
  });
68
- };
69
64
 
70
65
  /**
71
66
  * Get imported globals
72
- *
73
67
  * @param {object} ast Module's AST
74
68
  * @returns {t.ModuleImport[]} - nodes
75
69
  */
@@ -90,7 +84,6 @@ const getImportedGlobals = ast => {
90
84
 
91
85
  /**
92
86
  * Get the count for imported func
93
- *
94
87
  * @param {object} ast Module's AST
95
88
  * @returns {number} - count
96
89
  */
@@ -110,7 +103,6 @@ const getCountImportedFunc = ast => {
110
103
 
111
104
  /**
112
105
  * Get next type index
113
- *
114
106
  * @param {object} ast Module's AST
115
107
  * @returns {t.Index} - index
116
108
  */
@@ -126,11 +118,9 @@ const getNextTypeIndex = ast => {
126
118
 
127
119
  /**
128
120
  * Get next func index
129
- *
130
121
  * The Func section metadata provide information for implemented funcs
131
122
  * in order to have the correct index we shift the index by number of external
132
123
  * functions.
133
- *
134
124
  * @param {object} ast Module's AST
135
125
  * @param {number} countImportedFunc number of imported funcs
136
126
  * @returns {t.Index} - index
@@ -163,9 +153,8 @@ const createDefaultInitForGlobal = globalType => {
163
153
  return t.objectInstruction("const", globalType.valtype, [
164
154
  t.floatLiteral(66, false, false, "66")
165
155
  ]);
166
- } else {
167
- throw new Error("unknown type: " + globalType.valtype);
168
156
  }
157
+ throw new Error(`unknown type: ${globalType.valtype}`);
169
158
  };
170
159
 
171
160
  /**
@@ -177,7 +166,6 @@ const createDefaultInitForGlobal = globalType => {
177
166
  * indices will be preserved.
178
167
  *
179
168
  * Note that globals will become mutable.
180
- *
181
169
  * @param {object} state transformation state
182
170
  * @param {object} state.ast Module's ast
183
171
  * @param {t.Instruction[]} state.additionalInitCode list of addition instructions for the init function
@@ -258,8 +246,8 @@ const rewriteImportedGlobals = state => bin => {
258
246
  */
259
247
  const rewriteExportNames =
260
248
  ({ ast, moduleGraph, module, externalExports, runtime }) =>
261
- bin => {
262
- return editWithAST(ast, bin, {
249
+ bin =>
250
+ editWithAST(ast, bin, {
263
251
  /**
264
252
  * @param {NodePath<ModuleExport>} path path
265
253
  */
@@ -279,7 +267,6 @@ const rewriteExportNames =
279
267
  path.node.name = /** @type {string} */ (usedName);
280
268
  }
281
269
  });
282
- };
283
270
 
284
271
  /**
285
272
  * Mangle import names and modules
@@ -290,14 +277,14 @@ const rewriteExportNames =
290
277
  */
291
278
  const rewriteImports =
292
279
  ({ ast, usedDependencyMap }) =>
293
- bin => {
294
- return editWithAST(ast, bin, {
280
+ bin =>
281
+ editWithAST(ast, bin, {
295
282
  /**
296
283
  * @param {NodePath<ModuleImport>} path path
297
284
  */
298
285
  ModuleImport(path) {
299
286
  const result = usedDependencyMap.get(
300
- path.node.module + ":" + path.node.name
287
+ `${path.node.module}:${path.node.name}`
301
288
  );
302
289
 
303
290
  if (result !== undefined) {
@@ -306,13 +293,11 @@ const rewriteImports =
306
293
  }
307
294
  }
308
295
  });
309
- };
310
296
 
311
297
  /**
312
298
  * Add an init function.
313
299
  *
314
300
  * The init function fills the globals given input arguments.
315
- *
316
301
  * @param {object} state transformation state
317
302
  * @param {object} state.ast Module's ast
318
303
  * @param {t.Identifier} state.initFuncId identifier of the init function
@@ -348,7 +333,7 @@ const addInitFunction =
348
333
 
349
334
  /** @type {Instruction[]} */
350
335
  const funcBody = [];
351
- importedGlobals.forEach((importedGlobal, index) => {
336
+ for (const [index, _importedGlobal] of importedGlobals.entries()) {
352
337
  const args = [t.indexLiteral(index)];
353
338
  const body = [
354
339
  t.instruction("get_local", args),
@@ -356,7 +341,7 @@ const addInitFunction =
356
341
  ];
357
342
 
358
343
  funcBody.push(...body);
359
- });
344
+ }
360
345
 
361
346
  if (typeof startAtFuncOffset === "number") {
362
347
  funcBody.push(
@@ -410,7 +395,7 @@ const getUsedDependencyMap = (moduleGraph, module, mangle) => {
410
395
  const dep = usedDep.dependency;
411
396
  const request = dep.request;
412
397
  const exportName = dep.name;
413
- map.set(request + ":" + exportName, usedDep);
398
+ map.set(`${request}:${exportName}`, usedDep);
414
399
  }
415
400
  return map;
416
401
  };
@@ -201,7 +201,7 @@ class WebAssemblyJavascriptGenerator extends Generator {
201
201
  copyAllExports
202
202
  ? `${module.moduleArgument}.exports = wasmExports;`
203
203
  : "for(var name in wasmExports) " +
204
- `if(name) ` +
204
+ "if(name) " +
205
205
  `${module.exportsArgument}[name] = wasmExports[name];`,
206
206
  "// exec imports from WebAssembly module (for esm order)",
207
207
  importsCode,
@@ -62,5 +62,5 @@ const getUsedDependencies = (moduleGraph, module, mangle) => {
62
62
  return array;
63
63
  };
64
64
 
65
- exports.getUsedDependencies = getUsedDependencies;
66
- exports.MANGLED_MODULE = MANGLED_MODULE;
65
+ module.exports.getUsedDependencies = getUsedDependencies;
66
+ module.exports.MANGLED_MODULE = MANGLED_MODULE;
@@ -65,9 +65,8 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
65
65
  const options = chunk.getEntryOptions();
66
66
  if (options && options.baseUri) {
67
67
  return `${RuntimeGlobals.baseURI} = ${JSON.stringify(options.baseUri)};`;
68
- } else {
69
- return `${RuntimeGlobals.baseURI} = document.baseURI || self.location.href;`;
70
68
  }
69
+ return `${RuntimeGlobals.baseURI} = document.baseURI || self.location.href;`;
71
70
  }
72
71
 
73
72
  /**
@@ -166,7 +165,7 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
166
165
  Template.indent([
167
166
  "// setup Promise in chunk cache",
168
167
  `var promise = new Promise(${runtimeTemplate.expressionFunction(
169
- `installedChunkData = installedChunks[chunkId] = [resolve, reject]`,
168
+ "installedChunkData = installedChunks[chunkId] = [resolve, reject]",
170
169
  "resolve, reject"
171
170
  )});`,
172
171
  "promises.push(installedChunkData[2] = promise);",
@@ -48,7 +48,9 @@ class ImportScriptsChunkLoadingPlugin {
48
48
  if (onceForChunkSet.has(chunk)) return;
49
49
  onceForChunkSet.add(chunk);
50
50
  if (!isEnabledForChunk(chunk)) return;
51
- const withCreateScriptUrl = !!compilation.outputOptions.trustedTypes;
51
+ const withCreateScriptUrl = Boolean(
52
+ compilation.outputOptions.trustedTypes
53
+ );
52
54
  set.add(RuntimeGlobals.moduleFactoriesAddOnly);
53
55
  set.add(RuntimeGlobals.hasOwnProperty);
54
56
  if (withCreateScriptUrl) {
@@ -55,7 +55,7 @@ class ImportScriptsChunkLoadingRuntimeModule extends RuntimeModule {
55
55
  false
56
56
  );
57
57
  return `${RuntimeGlobals.baseURI} = self.location + ${JSON.stringify(
58
- rootOutputDir ? "/../" + rootOutputDir : ""
58
+ rootOutputDir ? `/../${rootOutputDir}` : ""
59
59
  )};`;
60
60
  }
61
61
 
package/package.json CHANGED
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "name": "webpack",
3
- "version": "5.93.0",
3
+ "version": "5.95.0",
4
4
  "author": "Tobias Koppers @sokra",
5
5
  "description": "Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.",
6
6
  "license": "MIT",
7
7
  "dependencies": {
8
- "@types/eslint-scope": "^3.7.3",
9
8
  "@types/estree": "^1.0.5",
10
9
  "@webassemblyjs/ast": "^1.12.1",
11
10
  "@webassemblyjs/wasm-edit": "^1.12.1",
@@ -14,7 +13,7 @@
14
13
  "acorn-import-attributes": "^1.9.5",
15
14
  "browserslist": "^4.21.10",
16
15
  "chrome-trace-event": "^1.0.2",
17
- "enhanced-resolve": "^5.17.0",
16
+ "enhanced-resolve": "^5.17.1",
18
17
  "es-module-lexer": "^1.2.1",
19
18
  "eslint-scope": "5.1.1",
20
19
  "events": "^3.2.0",
@@ -39,29 +38,31 @@
39
38
  "@babel/core": "^7.24.7",
40
39
  "@babel/preset-react": "^7.24.7",
41
40
  "@eslint/js": "^9.5.0",
41
+ "@stylistic/eslint-plugin": "^2.4.0",
42
+ "@types/eslint-scope": "^3.7.7",
42
43
  "@types/glob-to-regexp": "^0.4.4",
43
44
  "@types/jest": "^29.5.11",
44
45
  "@types/mime-types": "^2.1.4",
45
- "@types/node": "^20.11.27",
46
+ "@types/node": "^22.0.0",
46
47
  "assemblyscript": "^0.27.22",
47
- "babel-loader": "^8.1.0",
48
+ "babel-loader": "^9.1.3",
48
49
  "benchmark": "^2.1.4",
49
50
  "bundle-loader": "^0.5.6",
50
- "coffee-loader": "^1.0.0",
51
+ "coffee-loader": "^5.0.0",
51
52
  "coffeescript": "^2.5.1",
52
53
  "core-js": "^3.6.5",
53
- "coveralls": "^3.1.0",
54
54
  "cspell": "^8.8.4",
55
- "css-loader": "^5.0.1",
56
- "date-fns": "^3.2.0",
55
+ "css-loader": "^7.1.2",
56
+ "date-fns": "^4.0.0",
57
57
  "es5-ext": "^0.10.53",
58
58
  "es6-promise-polyfill": "^1.2.0",
59
59
  "eslint": "^9.5.0",
60
60
  "eslint-config-prettier": "^9.1.0",
61
61
  "eslint-plugin-jest": "^28.6.0",
62
- "eslint-plugin-jsdoc": "^48.2.9",
62
+ "eslint-plugin-jsdoc": "^48.10.1",
63
63
  "eslint-plugin-n": "^17.8.1",
64
64
  "eslint-plugin-prettier": "^5.1.3",
65
+ "eslint-plugin-unicorn": "^55.0.0",
65
66
  "file-loader": "^6.0.0",
66
67
  "fork-ts-checker-webpack-plugin": "^9.0.2",
67
68
  "globals": "^15.4.0",
@@ -78,12 +79,12 @@
78
79
  "json-loader": "^0.5.7",
79
80
  "json5": "^2.1.3",
80
81
  "less": "^4.0.0",
81
- "less-loader": "^8.0.0",
82
+ "less-loader": "^12.2.0",
82
83
  "lint-staged": "^15.2.5",
83
84
  "lodash": "^4.17.19",
84
85
  "lodash-es": "^4.17.15",
85
86
  "memfs": "^4.9.2",
86
- "mini-css-extract-plugin": "^1.6.1",
87
+ "mini-css-extract-plugin": "^2.9.0",
87
88
  "mini-svg-data-uri": "^1.2.3",
88
89
  "nyc": "^17.0.0",
89
90
  "open-cli": "^8.0.0",
@@ -99,12 +100,12 @@
99
100
  "script-loader": "^0.7.2",
100
101
  "simple-git": "^3.25.0",
101
102
  "strip-ansi": "^6.0.0",
102
- "style-loader": "^2.0.0",
103
+ "style-loader": "^4.0.0",
103
104
  "terser": "^5.31.1",
104
105
  "toml": "^3.0.0",
105
- "tooling": "webpack/tooling#v1.23.3",
106
+ "tooling": "webpack/tooling#v1.23.4",
106
107
  "ts-loader": "^9.5.1",
107
- "typescript": "^5.4.2",
108
+ "typescript": "^5.6.2",
108
109
  "url-loader": "^4.1.0",
109
110
  "wast-loader": "^1.12.1",
110
111
  "webassembly-feature": "1.3.0",
@@ -163,7 +164,7 @@
163
164
  "fix": "yarn code-lint --fix && yarn special-lint-fix && yarn pretty-lint-fix",
164
165
  "prepare": "husky",
165
166
  "pretty-lint-base": "node node_modules/prettier/bin/prettier.cjs --cache --ignore-unknown .",
166
- "pretty-lint-fix": "yarn pretty-lint-base --loglevel warn --write",
167
+ "pretty-lint-fix": "yarn pretty-lint-base --log-level warn --write",
167
168
  "pretty-lint": "yarn pretty-lint-base --check",
168
169
  "yarn-lint": "yarn-deduplicate --fail --list -s highest yarn.lock",
169
170
  "yarn-lint-fix": "yarn-deduplicate -s highest yarn.lock",
@@ -185,7 +186,7 @@
185
186
  "eslint --cache --fix"
186
187
  ],
187
188
  "*": [
188
- "prettier --cache --write --ignore-unknown",
189
+ "node node_modules/prettier/bin/prettier.cjs --cache --write --ignore-unknown",
189
190
  "cspell --cache --no-must-find-files"
190
191
  ]
191
192
  }