webpack 5.97.1 → 5.104.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (610) hide show
  1. package/README.md +368 -434
  2. package/bin/webpack.js +15 -9
  3. package/hot/dev-server.js +18 -3
  4. package/hot/emitter-event-target.js +7 -0
  5. package/hot/lazy-compilation-node.js +45 -29
  6. package/hot/lazy-compilation-universal.js +18 -0
  7. package/hot/lazy-compilation-web.js +15 -5
  8. package/hot/load-http.js +7 -0
  9. package/hot/log.js +15 -15
  10. package/hot/only-dev-server.js +19 -4
  11. package/hot/poll.js +1 -0
  12. package/lib/APIPlugin.js +48 -50
  13. package/lib/AbstractMethodError.js +1 -0
  14. package/lib/AsyncDependenciesBlock.js +4 -5
  15. package/lib/AutomaticPrefetchPlugin.js +22 -22
  16. package/lib/BannerPlugin.js +35 -40
  17. package/lib/Cache.js +12 -9
  18. package/lib/CacheFacade.js +13 -13
  19. package/lib/CaseSensitiveModulesWarning.js +6 -6
  20. package/lib/Chunk.js +68 -47
  21. package/lib/ChunkGraph.js +174 -95
  22. package/lib/ChunkGroup.js +32 -24
  23. package/lib/ChunkTemplate.js +8 -8
  24. package/lib/CleanPlugin.js +90 -42
  25. package/lib/CodeGenerationResults.js +12 -9
  26. package/lib/CompatibilityPlugin.js +70 -21
  27. package/lib/Compilation.js +827 -550
  28. package/lib/Compiler.js +137 -109
  29. package/lib/ConcatenationScope.js +45 -8
  30. package/lib/ConditionalInitFragment.js +1 -1
  31. package/lib/ConstPlugin.js +89 -59
  32. package/lib/ContextExclusionPlugin.js +5 -4
  33. package/lib/ContextModule.js +66 -51
  34. package/lib/ContextModuleFactory.js +51 -30
  35. package/lib/ContextReplacementPlugin.js +89 -34
  36. package/lib/CssModule.js +8 -4
  37. package/lib/DefinePlugin.js +209 -57
  38. package/lib/DelegatedModule.js +34 -23
  39. package/lib/DelegatedModuleFactoryPlugin.js +27 -24
  40. package/lib/DelegatedPlugin.js +4 -2
  41. package/lib/DependenciesBlock.js +0 -2
  42. package/lib/Dependency.js +37 -19
  43. package/lib/DependencyTemplate.js +2 -0
  44. package/lib/DependencyTemplates.js +5 -6
  45. package/lib/DllEntryPlugin.js +8 -4
  46. package/lib/DllModule.js +11 -12
  47. package/lib/DllModuleFactory.js +2 -2
  48. package/lib/DllPlugin.js +9 -6
  49. package/lib/DllReferencePlugin.js +60 -65
  50. package/lib/DotenvPlugin.js +462 -0
  51. package/lib/DynamicEntryPlugin.js +8 -8
  52. package/lib/EntryOptionPlugin.js +8 -6
  53. package/lib/EntryPlugin.js +5 -3
  54. package/lib/Entrypoint.js +19 -0
  55. package/lib/EnvironmentNotSupportAsyncWarning.js +0 -3
  56. package/lib/EnvironmentPlugin.js +26 -19
  57. package/lib/ErrorHelpers.js +6 -6
  58. package/lib/EvalDevToolModulePlugin.js +17 -14
  59. package/lib/EvalSourceMapDevToolPlugin.js +156 -142
  60. package/lib/ExportsInfo.js +180 -115
  61. package/lib/ExportsInfoApiPlugin.js +2 -2
  62. package/lib/ExternalModule.js +256 -102
  63. package/lib/ExternalModuleFactoryPlugin.js +66 -29
  64. package/lib/ExternalsPlugin.js +57 -2
  65. package/lib/FileSystemInfo.js +313 -247
  66. package/lib/FlagAllModulesAsUsedPlugin.js +2 -2
  67. package/lib/FlagDependencyExportsPlugin.js +29 -19
  68. package/lib/FlagDependencyUsagePlugin.js +9 -10
  69. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  70. package/lib/Generator.js +43 -10
  71. package/lib/GraphHelpers.js +11 -3
  72. package/lib/HookWebpackError.js +35 -7
  73. package/lib/HotModuleReplacementPlugin.js +149 -108
  74. package/lib/HotUpdateChunk.js +0 -3
  75. package/lib/IgnoreErrorModuleFactory.js +2 -2
  76. package/lib/IgnorePlugin.js +16 -13
  77. package/lib/IgnoreWarningsPlugin.js +6 -4
  78. package/lib/InitFragment.js +41 -23
  79. package/lib/InvalidDependenciesModuleWarning.js +2 -3
  80. package/lib/JavascriptMetaInfoPlugin.js +2 -4
  81. package/lib/LibManifestPlugin.js +12 -13
  82. package/lib/LoaderOptionsPlugin.js +12 -14
  83. package/lib/LoaderTargetPlugin.js +5 -3
  84. package/lib/MainTemplate.js +18 -29
  85. package/lib/ManifestPlugin.js +235 -0
  86. package/lib/Module.js +138 -60
  87. package/lib/ModuleBuildError.js +4 -2
  88. package/lib/ModuleDependencyError.js +4 -3
  89. package/lib/ModuleDependencyWarning.js +4 -3
  90. package/lib/ModuleError.js +1 -1
  91. package/lib/ModuleFactory.js +10 -3
  92. package/lib/ModuleFilenameHelpers.js +63 -60
  93. package/lib/ModuleGraph.js +195 -70
  94. package/lib/ModuleGraphConnection.js +14 -20
  95. package/lib/ModuleInfoHeaderPlugin.js +15 -16
  96. package/lib/ModuleNotFoundError.js +1 -1
  97. package/lib/ModuleParseError.js +8 -4
  98. package/lib/ModuleSourceTypeConstants.js +189 -0
  99. package/lib/ModuleTemplate.js +7 -8
  100. package/lib/ModuleTypeConstants.js +37 -15
  101. package/lib/ModuleWarning.js +1 -1
  102. package/lib/MultiCompiler.js +64 -49
  103. package/lib/MultiStats.js +19 -14
  104. package/lib/MultiWatching.js +7 -11
  105. package/lib/NoEmitOnErrorsPlugin.js +5 -3
  106. package/lib/NodeStuffPlugin.js +438 -126
  107. package/lib/NormalModule.js +322 -201
  108. package/lib/NormalModuleFactory.js +230 -117
  109. package/lib/NormalModuleReplacementPlugin.js +37 -39
  110. package/lib/NullFactory.js +3 -2
  111. package/lib/OptimizationStages.js +1 -1
  112. package/lib/OptionsApply.js +1 -1
  113. package/lib/Parser.js +5 -3
  114. package/lib/PlatformPlugin.js +3 -1
  115. package/lib/PrefetchPlugin.js +6 -4
  116. package/lib/ProgressPlugin.js +48 -49
  117. package/lib/ProvidePlugin.js +7 -5
  118. package/lib/RawModule.js +26 -12
  119. package/lib/RecordIdsPlugin.js +88 -110
  120. package/lib/RequestShortener.js +3 -1
  121. package/lib/ResolverFactory.js +15 -14
  122. package/lib/RuntimeGlobals.js +216 -153
  123. package/lib/RuntimeModule.js +7 -6
  124. package/lib/RuntimePlugin.js +115 -62
  125. package/lib/RuntimeTemplate.js +248 -76
  126. package/lib/SelfModuleFactory.js +2 -2
  127. package/lib/SizeFormatHelpers.js +2 -2
  128. package/lib/SourceMapDevToolModuleOptionsPlugin.js +17 -27
  129. package/lib/SourceMapDevToolPlugin.js +72 -59
  130. package/lib/Stats.js +2 -3
  131. package/lib/Template.js +31 -24
  132. package/lib/TemplatedPathPlugin.js +24 -21
  133. package/lib/UseStrictPlugin.js +1 -1
  134. package/lib/WarnCaseSensitiveModulesPlugin.js +36 -37
  135. package/lib/WarnDeprecatedOptionPlugin.js +7 -8
  136. package/lib/WarnNoModeSetPlugin.js +3 -1
  137. package/lib/WatchIgnorePlugin.js +11 -9
  138. package/lib/Watching.js +27 -29
  139. package/lib/WebpackError.js +10 -3
  140. package/lib/WebpackIsIncludedPlugin.js +4 -5
  141. package/lib/WebpackOptionsApply.js +263 -135
  142. package/lib/asset/AssetBytesGenerator.js +171 -0
  143. package/lib/asset/AssetBytesParser.js +37 -0
  144. package/lib/asset/AssetGenerator.js +285 -223
  145. package/lib/asset/AssetModulesPlugin.js +103 -41
  146. package/lib/asset/AssetParser.js +7 -3
  147. package/lib/asset/AssetSourceGenerator.js +41 -17
  148. package/lib/asset/RawDataUrlModule.js +17 -9
  149. package/lib/async-modules/AsyncModuleHelpers.js +52 -0
  150. package/lib/async-modules/AwaitDependenciesInitFragment.js +39 -24
  151. package/lib/async-modules/InferAsyncModulesPlugin.js +25 -26
  152. package/lib/buildChunkGraph.js +36 -17
  153. package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
  154. package/lib/cache/IdleFileCachePlugin.js +22 -20
  155. package/lib/cache/MemoryCachePlugin.js +3 -3
  156. package/lib/cache/MemoryWithGcCachePlugin.js +17 -11
  157. package/lib/cache/PackFileCacheStrategy.js +198 -170
  158. package/lib/cache/ResolverCachePlugin.js +58 -48
  159. package/lib/cache/getLazyHashedEtag.js +5 -4
  160. package/lib/cli.js +197 -39
  161. package/lib/config/browserslistTargetHandler.js +110 -85
  162. package/lib/config/defaults.js +514 -113
  163. package/lib/config/normalization.js +91 -64
  164. package/lib/config/target.js +30 -18
  165. package/lib/container/ContainerEntryDependency.js +0 -1
  166. package/lib/container/ContainerEntryModule.js +16 -15
  167. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  168. package/lib/container/ContainerPlugin.js +5 -6
  169. package/lib/container/ContainerReferencePlugin.js +27 -30
  170. package/lib/container/FallbackDependency.js +2 -1
  171. package/lib/container/FallbackModule.js +19 -14
  172. package/lib/container/FallbackModuleFactory.js +2 -2
  173. package/lib/container/HoistContainerReferencesPlugin.js +7 -7
  174. package/lib/container/ModuleFederationPlugin.js +4 -4
  175. package/lib/container/RemoteModule.js +14 -14
  176. package/lib/container/RemoteRuntimeModule.js +2 -2
  177. package/lib/container/options.js +9 -9
  178. package/lib/css/CssGenerator.js +366 -74
  179. package/lib/css/CssLoadingRuntimeModule.js +26 -16
  180. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
  181. package/lib/css/CssModulesPlugin.js +191 -142
  182. package/lib/css/CssParser.js +1756 -740
  183. package/lib/css/walkCssTokens.js +180 -67
  184. package/lib/debug/ProfilingPlugin.js +135 -51
  185. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +29 -28
  186. package/lib/dependencies/AMDPlugin.js +18 -11
  187. package/lib/dependencies/AMDRequireArrayDependency.js +5 -4
  188. package/lib/dependencies/AMDRequireContextDependency.js +2 -1
  189. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +35 -26
  190. package/lib/dependencies/AMDRuntimeModules.js +3 -1
  191. package/lib/dependencies/CachedConstDependency.js +24 -18
  192. package/lib/dependencies/CommonJsExportRequireDependency.js +31 -24
  193. package/lib/dependencies/CommonJsExportsDependency.js +2 -1
  194. package/lib/dependencies/CommonJsExportsParserPlugin.js +50 -36
  195. package/lib/dependencies/CommonJsFullRequireDependency.js +7 -13
  196. package/lib/dependencies/CommonJsImportsParserPlugin.js +146 -127
  197. package/lib/dependencies/CommonJsPlugin.js +29 -18
  198. package/lib/dependencies/CommonJsRequireContextDependency.js +4 -3
  199. package/lib/dependencies/CommonJsSelfReferenceDependency.js +4 -4
  200. package/lib/dependencies/ConstDependency.js +2 -2
  201. package/lib/dependencies/ContextDependency.js +10 -5
  202. package/lib/dependencies/ContextDependencyHelpers.js +21 -13
  203. package/lib/dependencies/ContextDependencyTemplateAsId.js +10 -9
  204. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +13 -10
  205. package/lib/dependencies/ContextElementDependency.js +23 -12
  206. package/lib/dependencies/CssIcssExportDependency.js +402 -22
  207. package/lib/dependencies/CssIcssImportDependency.js +116 -51
  208. package/lib/dependencies/CssIcssSymbolDependency.js +33 -35
  209. package/lib/dependencies/CssImportDependency.js +17 -14
  210. package/lib/dependencies/CssUrlDependency.js +8 -13
  211. package/lib/dependencies/DynamicExports.js +19 -19
  212. package/lib/dependencies/ExportsInfoDependency.js +13 -10
  213. package/lib/dependencies/ExternalModuleDependency.js +7 -7
  214. package/lib/dependencies/ExternalModuleInitFragment.js +3 -2
  215. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +96 -0
  216. package/lib/dependencies/HarmonyAcceptDependency.js +96 -5
  217. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -5
  218. package/lib/dependencies/HarmonyCompatibilityDependency.js +0 -1
  219. package/lib/dependencies/HarmonyDetectionParserPlugin.js +10 -30
  220. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +19 -8
  221. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +136 -99
  222. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +152 -61
  224. package/lib/dependencies/HarmonyExportInitFragment.js +2 -2
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +2 -2
  226. package/lib/dependencies/HarmonyExports.js +5 -5
  227. package/lib/dependencies/HarmonyImportDependency.js +92 -45
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +201 -163
  229. package/lib/dependencies/HarmonyImportSideEffectDependency.js +5 -6
  230. package/lib/dependencies/HarmonyImportSpecifierDependency.js +69 -42
  231. package/lib/dependencies/HarmonyModulesPlugin.js +16 -11
  232. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -15
  233. package/lib/dependencies/ImportContextDependency.js +15 -1
  234. package/lib/dependencies/ImportDependency.js +25 -7
  235. package/lib/dependencies/ImportEagerDependency.js +7 -5
  236. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +23 -13
  237. package/lib/dependencies/ImportMetaContextPlugin.js +2 -2
  238. package/lib/dependencies/ImportMetaPlugin.js +172 -20
  239. package/lib/dependencies/ImportParserPlugin.js +327 -49
  240. package/lib/dependencies/ImportPhase.js +121 -0
  241. package/lib/dependencies/ImportPlugin.js +3 -1
  242. package/lib/dependencies/ImportWeakDependency.js +7 -5
  243. package/lib/dependencies/JsonExportsDependency.js +54 -28
  244. package/lib/dependencies/LoaderDependency.js +0 -3
  245. package/lib/dependencies/LoaderImportDependency.js +0 -3
  246. package/lib/dependencies/LoaderPlugin.js +24 -25
  247. package/lib/dependencies/LocalModulesHelpers.js +4 -4
  248. package/lib/dependencies/ModuleDecoratorDependency.js +2 -4
  249. package/lib/dependencies/ModuleDependency.js +14 -13
  250. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  251. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  252. package/lib/dependencies/NullDependency.js +2 -0
  253. package/lib/dependencies/ProvidedDependency.js +8 -10
  254. package/lib/dependencies/PureExpressionDependency.js +1 -2
  255. package/lib/dependencies/RequireContextDependency.js +2 -1
  256. package/lib/dependencies/RequireContextDependencyParserPlugin.js +47 -44
  257. package/lib/dependencies/RequireContextPlugin.js +5 -2
  258. package/lib/dependencies/RequireEnsureDependenciesBlock.js +3 -3
  259. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +101 -99
  260. package/lib/dependencies/RequireEnsurePlugin.js +6 -6
  261. package/lib/dependencies/RequireIncludeDependency.js +2 -2
  262. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
  263. package/lib/dependencies/RequireIncludePlugin.js +1 -0
  264. package/lib/dependencies/RequireResolveContextDependency.js +1 -1
  265. package/lib/dependencies/RequireResolveDependency.js +3 -3
  266. package/lib/dependencies/RuntimeRequirementsDependency.js +3 -4
  267. package/lib/dependencies/StaticExportsDependency.js +3 -5
  268. package/lib/dependencies/SystemPlugin.js +4 -4
  269. package/lib/dependencies/URLContextDependency.js +65 -0
  270. package/lib/dependencies/URLDependency.js +3 -8
  271. package/lib/dependencies/URLPlugin.js +18 -159
  272. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -3
  273. package/lib/dependencies/WebAssemblyImportDependency.js +2 -2
  274. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -3
  275. package/lib/dependencies/WorkerDependency.js +8 -6
  276. package/lib/dependencies/WorkerPlugin.js +131 -67
  277. package/lib/dependencies/getFunctionExpression.js +2 -2
  278. package/lib/dependencies/processExportInfo.js +4 -4
  279. package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -1
  280. package/lib/esm/ModuleChunkFormatPlugin.js +232 -179
  281. package/lib/esm/ModuleChunkLoadingPlugin.js +112 -57
  282. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +102 -28
  283. package/lib/formatLocation.js +2 -2
  284. package/lib/hmr/HotModuleReplacement.runtime.js +41 -29
  285. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  286. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +43 -33
  287. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
  288. package/lib/hmr/LazyCompilationPlugin.js +67 -54
  289. package/lib/hmr/lazyCompilationBackend.js +23 -18
  290. package/lib/ids/ChunkModuleIdRangePlugin.js +14 -11
  291. package/lib/ids/DeterministicChunkIdsPlugin.js +32 -37
  292. package/lib/ids/DeterministicModuleIdsPlugin.js +52 -52
  293. package/lib/ids/HashedModuleIdsPlugin.js +15 -13
  294. package/lib/ids/IdHelpers.js +66 -49
  295. package/lib/ids/NamedChunkIdsPlugin.js +14 -17
  296. package/lib/ids/NamedModuleIdsPlugin.js +12 -14
  297. package/lib/ids/NaturalChunkIdsPlugin.js +6 -4
  298. package/lib/ids/NaturalModuleIdsPlugin.js +4 -3
  299. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -5
  300. package/lib/ids/OccurrenceModuleIdsPlugin.js +8 -7
  301. package/lib/ids/SyncModuleIdsPlugin.js +18 -13
  302. package/lib/index.js +54 -14
  303. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +116 -119
  304. package/lib/javascript/BasicEvaluatedExpression.js +26 -18
  305. package/lib/javascript/ChunkFormatHelpers.js +70 -0
  306. package/lib/javascript/ChunkHelpers.js +17 -5
  307. package/lib/javascript/CommonJsChunkFormatPlugin.js +114 -141
  308. package/lib/javascript/EnableChunkLoadingPlugin.js +7 -4
  309. package/lib/javascript/JavascriptGenerator.js +122 -100
  310. package/lib/javascript/JavascriptModulesPlugin.js +332 -152
  311. package/lib/javascript/JavascriptParser.js +1488 -1052
  312. package/lib/javascript/JavascriptParserHelpers.js +48 -47
  313. package/lib/javascript/StartupHelpers.js +23 -22
  314. package/lib/json/JsonData.js +4 -4
  315. package/lib/json/JsonGenerator.js +66 -32
  316. package/lib/json/JsonModulesPlugin.js +16 -6
  317. package/lib/json/JsonParser.js +23 -8
  318. package/lib/library/AbstractLibraryPlugin.js +45 -10
  319. package/lib/library/AmdLibraryPlugin.js +7 -5
  320. package/lib/library/AssignLibraryPlugin.js +71 -17
  321. package/lib/library/EnableLibraryPlugin.js +51 -25
  322. package/lib/library/ExportPropertyLibraryPlugin.js +12 -18
  323. package/lib/library/JsonpLibraryPlugin.js +5 -2
  324. package/lib/library/ModuleLibraryPlugin.js +230 -18
  325. package/lib/library/SystemLibraryPlugin.js +29 -11
  326. package/lib/library/UmdLibraryPlugin.js +35 -32
  327. package/lib/logging/Logger.js +18 -15
  328. package/lib/logging/createConsoleLogger.js +27 -27
  329. package/lib/logging/runtime.js +11 -11
  330. package/lib/logging/truncateArgs.js +5 -5
  331. package/lib/node/CommonJsChunkLoadingPlugin.js +72 -75
  332. package/lib/node/NodeEnvironmentPlugin.js +9 -3
  333. package/lib/node/NodeTargetPlugin.js +9 -1
  334. package/lib/node/NodeTemplatePlugin.js +2 -2
  335. package/lib/node/NodeWatchFileSystem.js +4 -4
  336. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +22 -38
  337. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +10 -11
  338. package/lib/node/ReadFileCompileWasmPlugin.js +11 -14
  339. package/lib/node/RequireChunkLoadingRuntimeModule.js +22 -30
  340. package/lib/node/nodeConsole.js +12 -7
  341. package/lib/optimize/AggressiveMergingPlugin.js +46 -47
  342. package/lib/optimize/AggressiveSplittingPlugin.js +233 -238
  343. package/lib/optimize/ConcatenatedModule.js +620 -251
  344. package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
  345. package/lib/optimize/FlagIncludedChunksPlugin.js +93 -96
  346. package/lib/optimize/InnerGraph.js +139 -124
  347. package/lib/optimize/InnerGraphPlugin.js +29 -24
  348. package/lib/optimize/LimitChunkCountPlugin.js +32 -8
  349. package/lib/optimize/MangleExportsPlugin.js +22 -22
  350. package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
  351. package/lib/optimize/MinChunkSizePlugin.js +12 -7
  352. package/lib/optimize/ModuleConcatenationPlugin.js +92 -71
  353. package/lib/optimize/RealContentHashPlugin.js +58 -44
  354. package/lib/optimize/RemoveEmptyChunksPlugin.js +8 -5
  355. package/lib/optimize/RemoveParentModulesPlugin.js +7 -4
  356. package/lib/optimize/RuntimeChunkPlugin.js +22 -25
  357. package/lib/optimize/SideEffectsFlagPlugin.js +44 -26
  358. package/lib/optimize/SplitChunksPlugin.js +209 -158
  359. package/lib/performance/AssetsOverSizeLimitWarning.js +1 -1
  360. package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
  361. package/lib/performance/SizeLimitsPlugin.js +8 -5
  362. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +5 -7
  363. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +61 -64
  364. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +3 -4
  365. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  366. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  367. package/lib/rules/BasicEffectRulePlugin.js +14 -5
  368. package/lib/rules/BasicMatcherRulePlugin.js +18 -7
  369. package/lib/rules/ObjectMatcherRulePlugin.js +17 -6
  370. package/lib/rules/RuleSetCompiler.js +73 -32
  371. package/lib/rules/UseEffectRulePlugin.js +61 -25
  372. package/lib/runtime/AsyncModuleRuntimeModule.js +74 -9
  373. package/lib/runtime/AutoPublicPathRuntimeModule.js +9 -4
  374. package/lib/runtime/BaseUriRuntimeModule.js +2 -2
  375. package/lib/runtime/CompatRuntimeModule.js +0 -1
  376. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
  377. package/lib/runtime/GetChunkFilenameRuntimeModule.js +34 -35
  378. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -1
  379. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
  380. package/lib/runtime/LoadScriptRuntimeModule.js +0 -2
  381. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +248 -0
  382. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  383. package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
  384. package/lib/runtime/StartupChunkDependenciesPlugin.js +39 -42
  385. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +10 -9
  386. package/lib/runtime/StartupEntrypointRuntimeModule.js +0 -1
  387. package/lib/runtime/SystemContextRuntimeModule.js +0 -2
  388. package/lib/runtime/ToBinaryRuntimeModule.js +64 -0
  389. package/lib/schemes/DataUriPlugin.js +9 -31
  390. package/lib/schemes/FileUriPlugin.js +11 -6
  391. package/lib/schemes/HttpUriPlugin.js +381 -261
  392. package/lib/schemes/VirtualUrlPlugin.js +222 -0
  393. package/lib/serialization/AggregateErrorSerializer.js +41 -0
  394. package/lib/serialization/BinaryMiddleware.js +51 -33
  395. package/lib/serialization/ErrorObjectSerializer.js +7 -2
  396. package/lib/serialization/FileMiddleware.js +101 -71
  397. package/lib/serialization/NullPrototypeObjectSerializer.js +5 -3
  398. package/lib/serialization/ObjectMiddleware.js +130 -54
  399. package/lib/serialization/PlainObjectSerializer.js +1 -1
  400. package/lib/serialization/Serializer.js +38 -20
  401. package/lib/serialization/SerializerMiddleware.js +121 -49
  402. package/lib/serialization/SingleItemMiddleware.js +9 -7
  403. package/lib/serialization/types.js +1 -1
  404. package/lib/sharing/ConsumeSharedModule.js +9 -9
  405. package/lib/sharing/ConsumeSharedPlugin.js +14 -14
  406. package/lib/sharing/ConsumeSharedRuntimeModule.js +11 -8
  407. package/lib/sharing/ProvideSharedModule.js +9 -11
  408. package/lib/sharing/ProvideSharedModuleFactory.js +5 -3
  409. package/lib/sharing/ProvideSharedPlugin.js +15 -10
  410. package/lib/sharing/SharePlugin.js +3 -4
  411. package/lib/sharing/ShareRuntimeModule.js +7 -6
  412. package/lib/sharing/resolveMatchedConfigs.js +27 -13
  413. package/lib/sharing/utils.js +37 -43
  414. package/lib/stats/DefaultStatsFactoryPlugin.js +455 -286
  415. package/lib/stats/DefaultStatsPresetPlugin.js +77 -46
  416. package/lib/stats/DefaultStatsPrinterPlugin.js +583 -419
  417. package/lib/stats/StatsFactory.js +75 -32
  418. package/lib/stats/StatsPrinter.js +71 -51
  419. package/lib/url/URLParserPlugin.js +264 -0
  420. package/lib/util/ArrayHelpers.js +6 -8
  421. package/lib/util/ArrayQueue.js +1 -1
  422. package/lib/util/AsyncQueue.js +11 -10
  423. package/lib/util/Hash.js +37 -5
  424. package/lib/util/IterableHelpers.js +4 -4
  425. package/lib/util/LazyBucketSortedSet.js +46 -27
  426. package/lib/util/LazySet.js +16 -10
  427. package/lib/util/MapHelpers.js +1 -1
  428. package/lib/util/ParallelismFactorCalculator.js +2 -2
  429. package/lib/util/Semaphore.js +3 -3
  430. package/lib/util/SetHelpers.js +6 -6
  431. package/lib/util/SortableSet.js +11 -9
  432. package/lib/util/StackedCacheMap.js +2 -2
  433. package/lib/util/StackedMap.js +3 -3
  434. package/lib/util/StringXor.js +2 -1
  435. package/lib/util/TupleQueue.js +11 -8
  436. package/lib/util/TupleSet.js +44 -19
  437. package/lib/util/URLAbsoluteSpecifier.js +3 -4
  438. package/lib/util/WeakTupleMap.js +56 -42
  439. package/lib/util/binarySearchBounds.js +4 -3
  440. package/lib/util/chainedImports.js +3 -1
  441. package/lib/util/cleverMerge.js +171 -107
  442. package/lib/util/comparators.js +265 -162
  443. package/lib/util/compileBooleanMatcher.js +120 -41
  444. package/lib/util/concatenate.js +20 -16
  445. package/lib/util/conventions.js +73 -74
  446. package/lib/util/create-schema-validation.js +8 -8
  447. package/lib/util/createHash.js +32 -135
  448. package/lib/util/dataURL.js +39 -0
  449. package/lib/util/deprecation.js +119 -116
  450. package/lib/util/deterministicGrouping.js +56 -47
  451. package/lib/util/extractSourceMap.js +319 -0
  452. package/lib/util/extractUrlAndGlobal.js +1 -1
  453. package/lib/util/findGraphRoots.js +19 -9
  454. package/lib/util/fs.js +169 -141
  455. package/lib/util/hash/BatchedHash.js +50 -10
  456. package/lib/util/hash/BulkUpdateHash.js +138 -0
  457. package/lib/util/hash/DebugHash.js +75 -0
  458. package/lib/util/hash/hash-digest.js +216 -0
  459. package/lib/util/hash/md4.js +2 -2
  460. package/lib/util/hash/wasm-hash.js +59 -17
  461. package/lib/util/identifier.js +124 -61
  462. package/lib/util/internalSerializables.js +4 -6
  463. package/lib/util/magicComment.js +9 -5
  464. package/lib/util/makeSerializable.js +2 -2
  465. package/lib/util/memoize.js +5 -2
  466. package/lib/util/objectToMap.js +3 -2
  467. package/lib/util/processAsyncTree.js +5 -5
  468. package/lib/util/propertyAccess.js +1 -1
  469. package/lib/util/propertyName.js +2 -3
  470. package/lib/util/registerExternalSerializer.js +16 -20
  471. package/lib/util/removeBOM.js +25 -0
  472. package/lib/util/runtime.js +72 -56
  473. package/lib/util/semver.js +44 -33
  474. package/lib/util/serialization.js +56 -56
  475. package/lib/util/smartGrouping.js +42 -27
  476. package/lib/util/source.js +5 -4
  477. package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
  478. package/lib/validateSchema.js +7 -9
  479. package/lib/wasm/EnableWasmLoadingPlugin.js +22 -12
  480. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +9 -5
  481. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +15 -3
  482. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +28 -22
  483. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +47 -57
  484. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -10
  485. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +8 -4
  486. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +23 -17
  487. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +55 -57
  488. package/lib/wasm-sync/WebAssemblyGenerator.js +56 -41
  489. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +6 -3
  490. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +25 -10
  491. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +11 -12
  492. package/lib/wasm-sync/WebAssemblyParser.js +10 -17
  493. package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
  494. package/lib/web/FetchCompileAsyncWasmPlugin.js +4 -4
  495. package/lib/web/FetchCompileWasmPlugin.js +6 -8
  496. package/lib/web/JsonpChunkLoadingPlugin.js +74 -74
  497. package/lib/web/JsonpChunkLoadingRuntimeModule.js +10 -26
  498. package/lib/web/JsonpTemplatePlugin.js +0 -1
  499. package/lib/webpack.js +107 -87
  500. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +79 -75
  501. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +38 -51
  502. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
  503. package/module.d.ts +5 -0
  504. package/package.json +149 -129
  505. package/schemas/WebpackOptions.check.d.ts +1 -1
  506. package/schemas/WebpackOptions.check.js +2 -2
  507. package/schemas/WebpackOptions.json +543 -190
  508. package/schemas/plugins/BannerPlugin.check.d.ts +1 -1
  509. package/schemas/plugins/BannerPlugin.check.js +2 -2
  510. package/schemas/plugins/BannerPlugin.json +4 -0
  511. package/schemas/plugins/DllPlugin.check.d.ts +1 -1
  512. package/schemas/plugins/DllPlugin.check.js +1 -1
  513. package/schemas/plugins/DllReferencePlugin.check.d.ts +1 -1
  514. package/schemas/plugins/DllReferencePlugin.check.js +1 -1
  515. package/schemas/plugins/IgnorePlugin.check.d.ts +1 -1
  516. package/schemas/plugins/IgnorePlugin.check.js +1 -1
  517. package/schemas/plugins/IgnorePlugin.json +1 -1
  518. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +1 -1
  519. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -1
  520. package/schemas/plugins/{HashedModuleIdsPlugin.check.d.ts → ManifestPlugin.check.d.ts} +2 -2
  521. package/schemas/plugins/ManifestPlugin.check.js +6 -0
  522. package/schemas/plugins/ManifestPlugin.json +98 -0
  523. package/schemas/plugins/ProgressPlugin.check.d.ts +1 -1
  524. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  525. package/schemas/plugins/ProgressPlugin.json +1 -1
  526. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +1 -1
  527. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -2
  528. package/schemas/plugins/SourceMapDevToolPlugin.json +23 -6
  529. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +1 -1
  530. package/schemas/plugins/WatchIgnorePlugin.check.js +1 -1
  531. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +1 -1
  532. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
  533. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +1 -1
  534. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
  535. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +1 -1
  536. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
  537. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +1 -1
  538. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
  539. package/schemas/plugins/container/ContainerPlugin.check.d.ts +1 -1
  540. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  541. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +1 -1
  542. package/schemas/plugins/container/ContainerReferencePlugin.check.js +2 -2
  543. package/schemas/plugins/container/ContainerReferencePlugin.json +4 -1
  544. package/schemas/plugins/container/ExternalsType.check.d.ts +1 -1
  545. package/schemas/plugins/container/ExternalsType.check.js +2 -2
  546. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +1 -1
  547. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -2
  548. package/schemas/plugins/container/ModuleFederationPlugin.json +4 -1
  549. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +1 -1
  550. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -1
  551. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +1 -1
  552. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +2 -2
  553. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +1 -1
  554. package/schemas/plugins/css/CssModuleParserOptions.check.js +2 -2
  555. package/schemas/plugins/css/CssParserOptions.check.d.ts +1 -1
  556. package/schemas/plugins/css/CssParserOptions.check.js +2 -2
  557. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +1 -1
  558. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -1
  559. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +7 -0
  560. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +6 -0
  561. package/schemas/plugins/{HashedModuleIdsPlugin.json → ids/HashedModuleIdsPlugin.json} +15 -2
  562. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +1 -1
  563. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -1
  564. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +1 -1
  565. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -1
  566. package/schemas/plugins/{css/CssGlobalParserOptions.check.d.ts → json/JsonModulesPluginGenerator.check.d.ts} +1 -1
  567. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +6 -0
  568. package/schemas/plugins/json/JsonModulesPluginGenerator.json +3 -0
  569. package/schemas/plugins/{css/CssGlobalGeneratorOptions.check.d.ts → json/JsonModulesPluginParser.check.d.ts} +1 -1
  570. package/schemas/plugins/json/JsonModulesPluginParser.check.js +6 -0
  571. package/schemas/plugins/json/JsonModulesPluginParser.json +3 -0
  572. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +1 -1
  573. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
  574. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +1 -1
  575. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
  576. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +1 -1
  577. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -1
  578. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +1 -1
  579. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
  580. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +1 -1
  581. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
  582. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
  583. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
  584. package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
  585. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +1 -1
  586. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +1 -1
  587. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +1 -1
  588. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +1 -1
  589. package/schemas/plugins/sharing/SharePlugin.check.d.ts +1 -1
  590. package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
  591. package/types.d.ts +5115 -1863
  592. package/SECURITY.md +0 -9
  593. package/lib/ModuleSourceTypesConstants.js +0 -112
  594. package/lib/dependencies/CssLocalIdentifierDependency.js +0 -250
  595. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +0 -111
  596. package/lib/library/ModernModuleLibraryPlugin.js +0 -144
  597. package/schemas/plugins/HashedModuleIdsPlugin.check.js +0 -6
  598. package/schemas/plugins/JsonModulesPluginParser.check.d.ts +0 -7
  599. package/schemas/plugins/JsonModulesPluginParser.check.js +0 -6
  600. package/schemas/plugins/JsonModulesPluginParser.json +0 -12
  601. package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
  602. package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
  603. package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
  604. package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +0 -7
  605. package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
  606. package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
  607. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
  608. package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
  609. package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
  610. package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
@@ -15,13 +15,14 @@ const util = require("util");
15
15
  /** @typedef {import("../../declarations/WebpackOptions").LibraryName} LibraryName */
16
16
  /** @typedef {import("../../declarations/WebpackOptions").LibraryOptions} LibraryOptions */
17
17
  /** @typedef {import("../../declarations/WebpackOptions").ModuleOptionsNormalized} ModuleOptionsNormalized */
18
+ /** @typedef {import("../../declarations/WebpackOptions").OptimizationNormalized} OptimizationNormalized */
18
19
  /** @typedef {import("../../declarations/WebpackOptions").OptimizationRuntimeChunk} OptimizationRuntimeChunk */
19
20
  /** @typedef {import("../../declarations/WebpackOptions").OptimizationRuntimeChunkNormalized} OptimizationRuntimeChunkNormalized */
20
21
  /** @typedef {import("../../declarations/WebpackOptions").OutputNormalized} OutputNormalized */
21
- /** @typedef {import("../../declarations/WebpackOptions").Plugins} Plugins */
22
+ /** @typedef {import("../../declarations/WebpackOptions").PluginsNormalized} PluginsNormalized */
22
23
  /** @typedef {import("../../declarations/WebpackOptions").WebpackOptions} WebpackOptions */
23
24
  /** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptionsNormalized */
24
- /** @typedef {import("../Entrypoint")} Entrypoint */
25
+ /** @typedef {import("../WebpackError")} WebpackError */
25
26
 
26
27
  const handledDeprecatedNoEmitOnErrors = util.deprecate(
27
28
  /**
@@ -44,8 +45,8 @@ const handledDeprecatedNoEmitOnErrors = util.deprecate(
44
45
  /**
45
46
  * @template T
46
47
  * @template R
47
- * @param {T|undefined} value value or not
48
- * @param {function(T): R} fn nested handler
48
+ * @param {T | undefined} value value or not
49
+ * @param {(value: T) => R} fn nested handler
49
50
  * @returns {R} result value
50
51
  */
51
52
  const nestedConfig = (value, fn) =>
@@ -53,16 +54,16 @@ const nestedConfig = (value, fn) =>
53
54
 
54
55
  /**
55
56
  * @template T
56
- * @param {T|undefined} value value or not
57
+ * @param {T | undefined} value value or not
57
58
  * @returns {T} result value
58
59
  */
59
- const cloneObject = value => /** @type {T} */ ({ ...value });
60
+ const cloneObject = (value) => /** @type {T} */ ({ ...value });
60
61
  /**
61
62
  * @template T
62
63
  * @template R
63
- * @param {T|undefined} value value or not
64
- * @param {function(T): R} fn nested handler
65
- * @returns {R|undefined} result value
64
+ * @param {T | undefined} value value or not
65
+ * @param {(value: T) => R} fn nested handler
66
+ * @returns {R | undefined} result value
66
67
  */
67
68
  const optionalNestedConfig = (value, fn) =>
68
69
  value === undefined ? undefined : fn(value);
@@ -70,18 +71,18 @@ const optionalNestedConfig = (value, fn) =>
70
71
  /**
71
72
  * @template T
72
73
  * @template R
73
- * @param {T[]|undefined} value array or not
74
- * @param {function(T[]): R[]} fn nested handler
75
- * @returns {R[]|undefined} cloned value
74
+ * @param {T[] | undefined} value array or not
75
+ * @param {(value: T[]) => R[]} fn nested handler
76
+ * @returns {R[] | undefined} cloned value
76
77
  */
77
78
  const nestedArray = (value, fn) => (Array.isArray(value) ? fn(value) : fn([]));
78
79
 
79
80
  /**
80
81
  * @template T
81
82
  * @template R
82
- * @param {T[]|undefined} value array or not
83
- * @param {function(T[]): R[]} fn nested handler
84
- * @returns {R[]|undefined} cloned value
83
+ * @param {T[] | undefined} value array or not
84
+ * @param {(value: T[]) => R[]} fn nested handler
85
+ * @returns {R[] | undefined} cloned value
85
86
  */
86
87
  const optionalNestedArray = (value, fn) =>
87
88
  Array.isArray(value) ? fn(value) : undefined;
@@ -89,9 +90,9 @@ const optionalNestedArray = (value, fn) =>
89
90
  /**
90
91
  * @template T
91
92
  * @template R
92
- * @param {Record<string, T>|undefined} value value or not
93
- * @param {function(T): R} fn nested handler
94
- * @param {Record<string, function(T): R>=} customKeys custom nested handler for some keys
93
+ * @param {Record<string, T> | undefined} value value or not
94
+ * @param {(value: T) => R} fn nested handler
95
+ * @param {Record<string, (value: T) => R>=} customKeys custom nested handler for some keys
95
96
  * @returns {Record<string, R>} result value
96
97
  */
97
98
  const keyedNestedConfig = (value, fn, customKeys) => {
@@ -123,13 +124,13 @@ const keyedNestedConfig = (value, fn, customKeys) => {
123
124
  * @param {WebpackOptions} config input config
124
125
  * @returns {WebpackOptionsNormalized} normalized options
125
126
  */
126
- const getNormalizedWebpackOptions = config => ({
127
+ const getNormalizedWebpackOptions = (config) => ({
127
128
  amd: config.amd,
128
129
  bail: config.bail,
129
130
  cache:
130
131
  /** @type {NonNullable<CacheOptions>} */
131
132
  (
132
- optionalNestedConfig(config.cache, cache => {
133
+ optionalNestedConfig(config.cache, (cache) => {
133
134
  if (cache === false) return false;
134
135
  if (cache === true) {
135
136
  return {
@@ -172,35 +173,36 @@ const getNormalizedWebpackOptions = config => ({
172
173
  ),
173
174
  context: config.context,
174
175
  dependencies: config.dependencies,
175
- devServer: optionalNestedConfig(config.devServer, devServer => {
176
+ devServer: optionalNestedConfig(config.devServer, (devServer) => {
176
177
  if (devServer === false) return false;
177
178
  return { ...devServer };
178
179
  }),
179
180
  devtool: config.devtool,
181
+ dotenv: config.dotenv,
180
182
  entry:
181
183
  config.entry === undefined
182
184
  ? { main: {} }
183
185
  : typeof config.entry === "function"
184
186
  ? (
185
- fn => () =>
187
+ (fn) => () =>
186
188
  Promise.resolve().then(fn).then(getNormalizedEntryStatic)
187
189
  )(config.entry)
188
190
  : getNormalizedEntryStatic(config.entry),
189
- experiments: nestedConfig(config.experiments, experiments => ({
191
+ experiments: nestedConfig(config.experiments, (experiments) => ({
190
192
  ...experiments,
191
- buildHttp: optionalNestedConfig(experiments.buildHttp, options =>
193
+ buildHttp: optionalNestedConfig(experiments.buildHttp, (options) =>
192
194
  Array.isArray(options) ? { allowedUris: options } : options
193
195
  ),
194
196
  lazyCompilation: optionalNestedConfig(
195
197
  experiments.lazyCompilation,
196
- options => (options === true ? {} : options)
198
+ (options) => (options === true ? {} : options)
197
199
  )
198
200
  })),
199
201
  externals: /** @type {NonNullable<Externals>} */ (config.externals),
200
202
  externalsPresets: cloneObject(config.externalsPresets),
201
203
  externalsType: config.externalsType,
202
204
  ignoreWarnings: config.ignoreWarnings
203
- ? config.ignoreWarnings.map(ignore => {
205
+ ? config.ignoreWarnings.map((ignore) => {
204
206
  if (typeof ignore === "function") return ignore;
205
207
  const i = ignore instanceof RegExp ? { message: ignore } : ignore;
206
208
  return (warning, { requestShortener }) => {
@@ -210,14 +212,19 @@ const getNormalizedWebpackOptions = config => ({
210
212
  }
211
213
  if (
212
214
  i.module &&
213
- (!warning.module ||
215
+ (!(/** @type {WebpackError} */ (warning).module) ||
214
216
  !i.module.test(
215
- warning.module.readableIdentifier(requestShortener)
217
+ /** @type {WebpackError} */
218
+ (warning).module.readableIdentifier(requestShortener)
216
219
  ))
217
220
  ) {
218
221
  return false;
219
222
  }
220
- if (i.file && (!warning.file || !i.file.test(warning.file))) {
223
+ if (
224
+ i.file &&
225
+ (!(/** @type {WebpackError} */ (warning).file) ||
226
+ !i.file.test(/** @type {WebpackError} */ (warning).file))
227
+ ) {
221
228
  return false;
222
229
  }
223
230
  return true;
@@ -230,11 +237,12 @@ const getNormalizedWebpackOptions = config => ({
230
237
  module:
231
238
  /** @type {ModuleOptionsNormalized} */
232
239
  (
233
- nestedConfig(config.module, module => ({
240
+ nestedConfig(config.module, (module) => ({
234
241
  noParse: module.noParse,
235
242
  unsafeCache: module.unsafeCache,
236
243
  parser: keyedNestedConfig(module.parser, cloneObject, {
237
- javascript: parserOptions => ({
244
+ javascript: (parserOptions) => ({
245
+ // TODO webpack 6 remove from `ModuleOptions`, keep only `*ByModuleType`
238
246
  unknownContextRequest: module.unknownContextRequest,
239
247
  unknownContextRegExp: module.unknownContextRegExp,
240
248
  unknownContextRecursive: module.unknownContextRecursive,
@@ -246,33 +254,32 @@ const getNormalizedWebpackOptions = config => ({
246
254
  wrappedContextRegExp: module.wrappedContextRegExp,
247
255
  wrappedContextRecursive: module.wrappedContextRecursive,
248
256
  wrappedContextCritical: module.wrappedContextCritical,
249
- // TODO webpack 6 remove
250
257
  strictExportPresence: module.strictExportPresence,
251
258
  strictThisContextOnImports: module.strictThisContextOnImports,
252
259
  ...parserOptions
253
260
  })
254
261
  }),
255
262
  generator: cloneObject(module.generator),
256
- defaultRules: optionalNestedArray(module.defaultRules, r => [...r]),
257
- rules: nestedArray(module.rules, r => [...r])
263
+ defaultRules: optionalNestedArray(module.defaultRules, (r) => [...r]),
264
+ rules: nestedArray(module.rules, (r) => [...r])
258
265
  }))
259
266
  ),
260
267
  name: config.name,
261
268
  node: nestedConfig(
262
269
  config.node,
263
- node =>
270
+ (node) =>
264
271
  node && {
265
272
  ...node
266
273
  }
267
274
  ),
268
- optimization: nestedConfig(config.optimization, optimization => ({
275
+ optimization: nestedConfig(config.optimization, (optimization) => ({
269
276
  ...optimization,
270
277
  runtimeChunk: getNormalizedOptimizationRuntimeChunk(
271
278
  optimization.runtimeChunk
272
279
  ),
273
280
  splitChunks: nestedConfig(
274
281
  optimization.splitChunks,
275
- splitChunks =>
282
+ (splitChunks) =>
276
283
  splitChunks && {
277
284
  ...splitChunks,
278
285
  defaultSizeTypes: splitChunks.defaultSizeTypes
@@ -281,6 +288,12 @@ const getNormalizedWebpackOptions = config => ({
281
288
  cacheGroups: cloneObject(splitChunks.cacheGroups)
282
289
  }
283
290
  ),
291
+ minimizer:
292
+ optimization.minimizer !== undefined
293
+ ? /** @type {OptimizationNormalized["minimizer"]} */ (
294
+ nestedArray(optimization.minimizer, (p) => p.filter(Boolean))
295
+ )
296
+ : optimization.minimizer,
284
297
  emitOnErrors:
285
298
  optimization.noEmitOnErrors !== undefined
286
299
  ? handledDeprecatedNoEmitOnErrors(
@@ -289,7 +302,7 @@ const getNormalizedWebpackOptions = config => ({
289
302
  )
290
303
  : optimization.emitOnErrors
291
304
  })),
292
- output: nestedConfig(config.output, output => {
305
+ output: nestedConfig(config.output, (output) => {
293
306
  const { library } = output;
294
307
  const libraryAsName = /** @type {LibraryName} */ (library);
295
308
  const libraryBase =
@@ -346,6 +359,7 @@ const getNormalizedWebpackOptions = config => ({
346
359
  importFunctionName: output.importFunctionName,
347
360
  importMetaName: output.importMetaName,
348
361
  scriptType: output.scriptType,
362
+ // TODO webpack6 remove `libraryTarget`/`auxiliaryComment`/`amdContainer`/etc in favor of the `library` option
349
363
  library: libraryBase && {
350
364
  type:
351
365
  output.libraryTarget !== undefined
@@ -377,12 +391,16 @@ const getNormalizedWebpackOptions = config => ({
377
391
  sourcePrefix: output.sourcePrefix,
378
392
  strictModuleErrorHandling: output.strictModuleErrorHandling,
379
393
  strictModuleExceptionHandling: output.strictModuleExceptionHandling,
380
- trustedTypes: optionalNestedConfig(output.trustedTypes, trustedTypes => {
381
- if (trustedTypes === true) return {};
382
- if (typeof trustedTypes === "string")
383
- return { policyName: trustedTypes };
384
- return { ...trustedTypes };
385
- }),
394
+ trustedTypes: optionalNestedConfig(
395
+ output.trustedTypes,
396
+ (trustedTypes) => {
397
+ if (trustedTypes === true) return {};
398
+ if (typeof trustedTypes === "string") {
399
+ return { policyName: trustedTypes };
400
+ }
401
+ return { ...trustedTypes };
402
+ }
403
+ ),
386
404
  uniqueName: output.uniqueName,
387
405
  wasmLoading: output.wasmLoading,
388
406
  webassemblyModuleFilename: output.webassemblyModuleFilename,
@@ -393,13 +411,15 @@ const getNormalizedWebpackOptions = config => ({
393
411
  return result;
394
412
  }),
395
413
  parallelism: config.parallelism,
396
- performance: optionalNestedConfig(config.performance, performance => {
414
+ performance: optionalNestedConfig(config.performance, (performance) => {
397
415
  if (performance === false) return false;
398
416
  return {
399
417
  ...performance
400
418
  };
401
419
  }),
402
- plugins: /** @type {Plugins} */ (nestedArray(config.plugins, p => [...p])),
420
+ plugins: /** @type {PluginsNormalized} */ (
421
+ nestedArray(config.plugins, (p) => p.filter(Boolean))
422
+ ),
403
423
  profile: config.profile,
404
424
  recordsInputPath:
405
425
  config.recordsInputPath !== undefined
@@ -409,39 +429,46 @@ const getNormalizedWebpackOptions = config => ({
409
429
  config.recordsOutputPath !== undefined
410
430
  ? config.recordsOutputPath
411
431
  : config.recordsPath,
412
- resolve: nestedConfig(config.resolve, resolve => ({
432
+ resolve: nestedConfig(config.resolve, (resolve) => ({
413
433
  ...resolve,
414
434
  byDependency: keyedNestedConfig(resolve.byDependency, cloneObject)
415
435
  })),
416
436
  resolveLoader: cloneObject(config.resolveLoader),
417
- snapshot: nestedConfig(config.snapshot, snapshot => ({
437
+ snapshot: nestedConfig(config.snapshot, (snapshot) => ({
418
438
  resolveBuildDependencies: optionalNestedConfig(
419
439
  snapshot.resolveBuildDependencies,
420
- resolveBuildDependencies => ({
440
+ (resolveBuildDependencies) => ({
421
441
  timestamp: resolveBuildDependencies.timestamp,
422
442
  hash: resolveBuildDependencies.hash
423
443
  })
424
444
  ),
425
445
  buildDependencies: optionalNestedConfig(
426
446
  snapshot.buildDependencies,
427
- buildDependencies => ({
447
+ (buildDependencies) => ({
428
448
  timestamp: buildDependencies.timestamp,
429
449
  hash: buildDependencies.hash
430
450
  })
431
451
  ),
432
- resolve: optionalNestedConfig(snapshot.resolve, resolve => ({
452
+ resolve: optionalNestedConfig(snapshot.resolve, (resolve) => ({
433
453
  timestamp: resolve.timestamp,
434
454
  hash: resolve.hash
435
455
  })),
436
- module: optionalNestedConfig(snapshot.module, module => ({
456
+ module: optionalNestedConfig(snapshot.module, (module) => ({
437
457
  timestamp: module.timestamp,
438
458
  hash: module.hash
439
459
  })),
440
- immutablePaths: optionalNestedArray(snapshot.immutablePaths, p => [...p]),
441
- managedPaths: optionalNestedArray(snapshot.managedPaths, p => [...p]),
442
- unmanagedPaths: optionalNestedArray(snapshot.unmanagedPaths, p => [...p])
460
+ contextModule: optionalNestedConfig(
461
+ snapshot.contextModule,
462
+ (contextModule) => ({
463
+ timestamp: contextModule.timestamp,
464
+ hash: contextModule.hash
465
+ })
466
+ ),
467
+ immutablePaths: optionalNestedArray(snapshot.immutablePaths, (p) => [...p]),
468
+ managedPaths: optionalNestedArray(snapshot.managedPaths, (p) => [...p]),
469
+ unmanagedPaths: optionalNestedArray(snapshot.unmanagedPaths, (p) => [...p])
443
470
  })),
444
- stats: nestedConfig(config.stats, stats => {
471
+ stats: nestedConfig(config.stats, (stats) => {
445
472
  if (stats === false) {
446
473
  return {
447
474
  preset: "none"
@@ -470,7 +497,7 @@ const getNormalizedWebpackOptions = config => ({
470
497
  * @param {EntryStatic} entry static entry options
471
498
  * @returns {EntryStaticNormalized} normalized static entry options
472
499
  */
473
- const getNormalizedEntryStatic = entry => {
500
+ const getNormalizedEntryStatic = (entry) => {
474
501
  if (typeof entry === "string") {
475
502
  return {
476
503
  main: {
@@ -532,7 +559,7 @@ const getNormalizedEntryStatic = entry => {
532
559
  * @param {OptimizationRuntimeChunk=} runtimeChunk runtimeChunk option
533
560
  * @returns {OptimizationRuntimeChunkNormalized=} normalized runtimeChunk option
534
561
  */
535
- const getNormalizedOptimizationRuntimeChunk = runtimeChunk => {
562
+ const getNormalizedOptimizationRuntimeChunk = (runtimeChunk) => {
536
563
  if (runtimeChunk === undefined) return;
537
564
  if (runtimeChunk === false) return false;
538
565
  if (runtimeChunk === "single") {
@@ -542,16 +569,16 @@ const getNormalizedOptimizationRuntimeChunk = runtimeChunk => {
542
569
  }
543
570
  if (runtimeChunk === true || runtimeChunk === "multiple") {
544
571
  return {
545
- /**
546
- * @param {Entrypoint} entrypoint entrypoint
547
- * @returns {string} runtime chunk name
548
- */
549
- name: entrypoint => `runtime~${entrypoint.name}`
572
+ name: (entrypoint) => `runtime~${entrypoint.name}`
550
573
  };
551
574
  }
552
575
  const { name } = runtimeChunk;
553
576
  return {
554
- name: typeof name === "function" ? name : () => name
577
+ name:
578
+ typeof name === "function"
579
+ ? /** @type {Exclude<OptimizationRuntimeChunkNormalized, false>["name"]} */
580
+ (name)
581
+ : () => /** @type {string} */ (name)
555
582
  };
556
583
  };
557
584
 
@@ -15,19 +15,19 @@ const getBrowserslistTargetHandler = memoize(() =>
15
15
  * @param {string} context the context directory
16
16
  * @returns {string} default target
17
17
  */
18
- const getDefaultTarget = context => {
19
- const browsers = getBrowserslistTargetHandler().load(null, context);
18
+ const getDefaultTarget = (context) => {
19
+ const browsers = getBrowserslistTargetHandler().load(undefined, context);
20
20
  return browsers ? "browserslist" : "web";
21
21
  };
22
22
 
23
23
  /**
24
24
  * @typedef {object} PlatformTargetProperties
25
- * @property {boolean | null} web web platform, importing of http(s) and std: is available
26
- * @property {boolean | null} browser browser platform, running in a normal web browser
27
- * @property {boolean | null} webworker (Web)Worker platform, running in a web/shared/service worker
28
- * @property {boolean | null} node node platform, require of node built-in modules is available
29
- * @property {boolean | null} nwjs nwjs platform, require of legacy nw.gui is available
30
- * @property {boolean | null} electron electron platform, require of some electron built-in modules is available
25
+ * @property {boolean | null=} web web platform, importing of http(s) and std: is available
26
+ * @property {boolean | null=} browser browser platform, running in a normal web browser
27
+ * @property {boolean | null=} webworker (Web)Worker platform, running in a web/shared/service worker
28
+ * @property {boolean | null=} node node platform, require of node built-in modules is available
29
+ * @property {boolean | null=} nwjs nwjs platform, require of legacy nw.gui is available
30
+ * @property {boolean | null=} electron electron platform, require of some electron built-in modules is available
31
31
  */
32
32
 
33
33
  /**
@@ -42,6 +42,7 @@ const getDefaultTarget = context => {
42
42
  * @property {boolean | null} require has require function available
43
43
  * @property {boolean | null} nodeBuiltins has node.js built-in modules available
44
44
  * @property {boolean | null} nodePrefixForCoreModules node.js allows to use `node:` prefix for core modules
45
+ * @property {boolean | null} importMetaDirnameAndFilename node.js allows to use `import.meta.dirname` and `import.meta.filename`
45
46
  * @property {boolean | null} document has document available (allows script tags)
46
47
  * @property {boolean | null} importScripts has importScripts available
47
48
  * @property {boolean | null} importScriptsInWorker has importScripts available when creating a worker
@@ -54,6 +55,7 @@ const getDefaultTarget = context => {
54
55
  * @property {boolean | null} globalThis has globalThis variable available
55
56
  * @property {boolean | null} bigIntLiteral big int literal syntax is available
56
57
  * @property {boolean | null} const const and let variable declarations are available
58
+ * @property {boolean | null} methodShorthand object method shorthand is available
57
59
  * @property {boolean | null} arrowFunction arrow functions are available
58
60
  * @property {boolean | null} forOf for of iteration is available
59
61
  * @property {boolean | null} destructuring destructuring is available
@@ -178,6 +180,9 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
178
180
  nodeBuiltins: true,
179
181
  // v16.0.0, v14.18.0
180
182
  nodePrefixForCoreModules: Number(major) < 15 ? v(14, 18) : v(16),
183
+ // Added in: v21.2.0, v20.11.0, but Node.js will output experimental warning, we don't want it
184
+ // v24.0.0, v22.16.0 - This property is no longer experimental.
185
+ importMetaDirnameAndFilename: v(22, 16),
181
186
  global: true,
182
187
  document: false,
183
188
  fetchWasm: false,
@@ -188,13 +193,14 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
188
193
  const: v(6),
189
194
  templateLiteral: v(4),
190
195
  optionalChaining: v(14),
196
+ methodShorthand: v(4),
191
197
  arrowFunction: v(6),
192
198
  asyncFunction: v(7, 6),
193
199
  forOf: v(5),
194
200
  destructuring: v(6),
195
201
  bigIntLiteral: v(10, 4),
196
202
  dynamicImport: v(12, 17),
197
- dynamicImportInWorker: major ? false : undefined,
203
+ dynamicImportInWorker: v(12, 17),
198
204
  module: v(12, 17)
199
205
  };
200
206
  }
@@ -223,6 +229,8 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
223
229
  // 15.0.0 - Node.js v16.5
224
230
  // 14.0.0 - Mode.js v14.17, but prefixes only since v14.18
225
231
  nodePrefixForCoreModules: v(15),
232
+ // 37.0.0 - Node.js v22.16
233
+ importMetaDirnameAndFilename: v(37),
226
234
 
227
235
  require: true,
228
236
  document: context === "renderer",
@@ -234,13 +242,14 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
234
242
  const: v(1, 1),
235
243
  templateLiteral: v(1, 1),
236
244
  optionalChaining: v(8),
245
+ methodShorthand: v(1, 1),
237
246
  arrowFunction: v(1, 1),
238
247
  asyncFunction: v(1, 7),
239
248
  forOf: v(0, 36),
240
249
  destructuring: v(1, 1),
241
250
  bigIntLiteral: v(4),
242
251
  dynamicImport: v(11),
243
- dynamicImportInWorker: major ? false : undefined,
252
+ dynamicImportInWorker: v(11),
244
253
  module: v(11)
245
254
  };
246
255
  }
@@ -272,13 +281,14 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
272
281
  const: v(0, 15),
273
282
  templateLiteral: v(0, 13),
274
283
  optionalChaining: v(0, 44),
284
+ methodShorthand: v(0, 15),
275
285
  arrowFunction: v(0, 15),
276
286
  asyncFunction: v(0, 21),
277
287
  forOf: v(0, 13),
278
288
  destructuring: v(0, 15),
279
289
  bigIntLiteral: v(0, 32),
280
290
  dynamicImport: v(0, 43),
281
- dynamicImportInWorker: major ? false : undefined,
291
+ dynamicImportInWorker: v(0, 44),
282
292
  module: v(0, 43)
283
293
  };
284
294
  }
@@ -287,13 +297,14 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
287
297
  "esX",
288
298
  "EcmaScript in this version. Examples: es2020, es5.",
289
299
  /^es(\d+)$/,
290
- version => {
300
+ (version) => {
291
301
  let v = Number(version);
292
- if (v < 1000) v = v + 2009;
302
+ if (v < 1000) v += 2009;
293
303
  return {
294
304
  const: v >= 2015,
295
305
  templateLiteral: v >= 2015,
296
306
  optionalChaining: v >= 2020,
307
+ methodShorthand: v >= 2015,
297
308
  arrowFunction: v >= 2015,
298
309
  forOf: v >= 2015,
299
310
  destructuring: v >= 2015,
@@ -333,7 +344,7 @@ const getTargetProperties = (target, context) => {
333
344
  * @param {TargetProperties[]} targetProperties array of target properties
334
345
  * @returns {TargetProperties} merged target properties
335
346
  */
336
- const mergeTargetProperties = targetProperties => {
347
+ const mergeTargetProperties = (targetProperties) => {
337
348
  /** @type {Set<keyof TargetProperties>} */
338
349
  const keys = new Set();
339
350
  for (const tp of targetProperties) {
@@ -341,7 +352,7 @@ const mergeTargetProperties = targetProperties => {
341
352
  keys.add(/** @type {keyof TargetProperties} */ (key));
342
353
  }
343
354
  }
344
- /** @type {object} */
355
+ /** @type {TargetProperties} */
345
356
  const result = {};
346
357
  for (const key of keys) {
347
358
  let hasTrue = false;
@@ -357,11 +368,12 @@ const mergeTargetProperties = targetProperties => {
357
368
  break;
358
369
  }
359
370
  }
360
- if (hasTrue || hasFalse)
371
+ if (hasTrue || hasFalse) {
361
372
  /** @type {TargetProperties} */
362
373
  (result)[key] = hasFalse && hasTrue ? null : Boolean(hasTrue);
374
+ }
363
375
  }
364
- return /** @type {TargetProperties} */ (result);
376
+ return result;
365
377
  };
366
378
 
367
379
  /**
@@ -370,7 +382,7 @@ const mergeTargetProperties = targetProperties => {
370
382
  * @returns {TargetProperties} target properties
371
383
  */
372
384
  const getTargetsProperties = (targets, context) =>
373
- mergeTargetProperties(targets.map(t => getTargetProperties(t, context)));
385
+ mergeTargetProperties(targets.map((t) => getTargetProperties(t, context)));
374
386
 
375
387
  module.exports.getDefaultTarget = getDefaultTarget;
376
388
  module.exports.getTargetProperties = getTargetProperties;
@@ -8,7 +8,6 @@
8
8
  const Dependency = require("../Dependency");
9
9
  const makeSerializable = require("../util/makeSerializable");
10
10
 
11
- /** @typedef {import("./ContainerEntryModule").ExposeOptions} ExposeOptions */
12
11
  /** @typedef {import("./ContainerEntryModule").ExposesList} ExposesList */
13
12
 
14
13
  class ContainerEntryDependency extends Dependency {
@@ -8,7 +8,10 @@
8
8
  const { OriginalSource, RawSource } = require("webpack-sources");
9
9
  const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
10
10
  const Module = require("../Module");
11
- const { JS_TYPES } = require("../ModuleSourceTypesConstants");
11
+ const {
12
+ JAVASCRIPT_TYPE,
13
+ JAVASCRIPT_TYPES
14
+ } = require("../ModuleSourceTypeConstants");
12
15
  const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("../ModuleTypeConstants");
13
16
  const RuntimeGlobals = require("../RuntimeGlobals");
14
17
  const Template = require("../Template");
@@ -16,23 +19,21 @@ const StaticExportsDependency = require("../dependencies/StaticExportsDependency
16
19
  const makeSerializable = require("../util/makeSerializable");
17
20
  const ContainerExposedDependency = require("./ContainerExposedDependency");
18
21
 
19
- /** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
20
- /** @typedef {import("../ChunkGraph")} ChunkGraph */
21
- /** @typedef {import("../ChunkGroup")} ChunkGroup */
22
+ /** @typedef {import("../config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
22
23
  /** @typedef {import("../Compilation")} Compilation */
24
+ /** @typedef {import("../Module").BuildCallback} BuildCallback */
23
25
  /** @typedef {import("../Module").CodeGenerationContext} CodeGenerationContext */
24
26
  /** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
25
27
  /** @typedef {import("../Module").LibIdentOptions} LibIdentOptions */
28
+ /** @typedef {import("../Module").LibIdent} LibIdent */
29
+ /** @typedef {import("../Module").NeedBuildCallback} NeedBuildCallback */
26
30
  /** @typedef {import("../Module").NeedBuildContext} NeedBuildContext */
27
31
  /** @typedef {import("../Module").SourceTypes} SourceTypes */
28
32
  /** @typedef {import("../RequestShortener")} RequestShortener */
29
33
  /** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
30
- /** @typedef {import("../WebpackError")} WebpackError */
31
34
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
32
35
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
33
- /** @typedef {import("../util/Hash")} Hash */
34
36
  /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
35
- /** @typedef {import("./ContainerEntryDependency")} ContainerEntryDependency */
36
37
 
37
38
  /**
38
39
  * @typedef {object} ExposeOptions
@@ -59,7 +60,7 @@ class ContainerEntryModule extends Module {
59
60
  * @returns {SourceTypes} types available (do not mutate)
60
61
  */
61
62
  getSourceTypes() {
62
- return JS_TYPES;
63
+ return JAVASCRIPT_TYPES;
63
64
  }
64
65
 
65
66
  /**
@@ -81,7 +82,7 @@ class ContainerEntryModule extends Module {
81
82
 
82
83
  /**
83
84
  * @param {LibIdentOptions} options options
84
- * @returns {string | null} an identifier for library inclusion
85
+ * @returns {LibIdent | null} an identifier for library inclusion
85
86
  */
86
87
  libIdent(options) {
87
88
  return `${this.layer ? `(${this.layer})/` : ""}webpack/container/entry/${
@@ -91,7 +92,7 @@ class ContainerEntryModule extends Module {
91
92
 
92
93
  /**
93
94
  * @param {NeedBuildContext} context context info
94
- * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
95
+ * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
95
96
  * @returns {void}
96
97
  */
97
98
  needBuild(context, callback) {
@@ -103,7 +104,7 @@ class ContainerEntryModule extends Module {
103
104
  * @param {Compilation} compilation the compilation
104
105
  * @param {ResolverWithOptions} resolver the resolver
105
106
  * @param {InputFileSystem} fs the file system
106
- * @param {function(WebpackError=): void} callback callback function
107
+ * @param {BuildCallback} callback callback function
107
108
  * @returns {void}
108
109
  */
109
110
  build(options, compilation, resolver, fs, callback) {
@@ -157,7 +158,7 @@ class ContainerEntryModule extends Module {
157
158
  for (const block of this.blocks) {
158
159
  const { dependencies } = block;
159
160
 
160
- const modules = dependencies.map(dependency => {
161
+ const modules = dependencies.map((dependency) => {
161
162
  const dep = /** @type {ContainerExposedDependency} */ (dependency);
162
163
  return {
163
164
  name: dep.exposedName,
@@ -168,9 +169,9 @@ class ContainerEntryModule extends Module {
168
169
 
169
170
  let str;
170
171
 
171
- if (modules.some(m => !m.module)) {
172
+ if (modules.some((m) => !m.module)) {
172
173
  str = runtimeTemplate.throwMissingModuleErrorBlock({
173
- request: modules.map(m => m.request).join(", ")
174
+ request: modules.map((m) => m.request).join(", ")
174
175
  });
175
176
  } else {
176
177
  str = `return ${runtimeTemplate.blockPromise({
@@ -244,7 +245,7 @@ class ContainerEntryModule extends Module {
244
245
  ]);
245
246
 
246
247
  sources.set(
247
- "javascript",
248
+ JAVASCRIPT_TYPE,
248
249
  this.useSourceMap || this.useSimpleSourceMap
249
250
  ? new OriginalSource(source, "webpack/container-entry")
250
251
  : new RawSource(source)