webpack 5.59.0 → 5.94.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/README.md +48 -38
  2. package/bin/webpack.js +34 -10
  3. package/hot/dev-server.js +19 -5
  4. package/hot/lazy-compilation-node.js +13 -1
  5. package/hot/lazy-compilation-web.js +9 -0
  6. package/hot/log-apply-result.js +5 -0
  7. package/hot/log.js +23 -4
  8. package/hot/only-dev-server.js +3 -2
  9. package/hot/poll.js +5 -2
  10. package/hot/signal.js +6 -2
  11. package/lib/APIPlugin.js +226 -122
  12. package/lib/AbstractMethodError.js +10 -5
  13. package/lib/AsyncDependenciesBlock.js +13 -5
  14. package/lib/AutomaticPrefetchPlugin.js +2 -1
  15. package/lib/BannerPlugin.js +33 -12
  16. package/lib/Cache.js +16 -12
  17. package/lib/CacheFacade.js +13 -16
  18. package/lib/CaseSensitiveModulesWarning.js +8 -8
  19. package/lib/Chunk.js +60 -33
  20. package/lib/ChunkGraph.js +207 -72
  21. package/lib/ChunkGroup.js +40 -20
  22. package/lib/ChunkTemplate.js +43 -0
  23. package/lib/CleanPlugin.js +117 -32
  24. package/lib/CodeGenerationResults.js +8 -7
  25. package/lib/CommentCompilationWarning.js +0 -1
  26. package/lib/CompatibilityPlugin.js +85 -46
  27. package/lib/Compilation.js +712 -392
  28. package/lib/Compiler.js +393 -172
  29. package/lib/ConcatenationScope.js +10 -13
  30. package/lib/ConditionalInitFragment.js +22 -14
  31. package/lib/ConstPlugin.js +104 -64
  32. package/lib/ContextExclusionPlugin.js +3 -3
  33. package/lib/ContextModule.js +283 -108
  34. package/lib/ContextModuleFactory.js +151 -63
  35. package/lib/ContextReplacementPlugin.js +25 -10
  36. package/lib/CssModule.js +166 -0
  37. package/lib/DefinePlugin.js +254 -148
  38. package/lib/DelegatedModule.js +29 -6
  39. package/lib/DelegatedModuleFactoryPlugin.js +42 -22
  40. package/lib/DelegatedPlugin.js +4 -0
  41. package/lib/DependenciesBlock.js +17 -2
  42. package/lib/Dependency.js +58 -29
  43. package/lib/DependencyTemplate.js +24 -3
  44. package/lib/DependencyTemplates.js +2 -2
  45. package/lib/DllEntryPlugin.js +18 -1
  46. package/lib/DllModule.js +21 -4
  47. package/lib/DllModuleFactory.js +2 -1
  48. package/lib/DllPlugin.js +9 -7
  49. package/lib/DllReferencePlugin.js +50 -19
  50. package/lib/EntryOptionPlugin.js +6 -1
  51. package/lib/EntryPlugin.js +7 -4
  52. package/lib/Entrypoint.js +2 -2
  53. package/lib/EnvironmentNotSupportAsyncWarning.js +52 -0
  54. package/lib/EnvironmentPlugin.js +5 -2
  55. package/lib/ErrorHelpers.js +65 -26
  56. package/lib/EvalDevToolModulePlugin.js +37 -13
  57. package/lib/EvalSourceMapDevToolPlugin.js +50 -20
  58. package/lib/ExportsInfo.js +234 -133
  59. package/lib/ExportsInfoApiPlugin.js +31 -15
  60. package/lib/ExternalModule.js +391 -129
  61. package/lib/ExternalModuleFactoryPlugin.js +65 -17
  62. package/lib/FileSystemInfo.js +1038 -523
  63. package/lib/FlagAllModulesAsUsedPlugin.js +27 -27
  64. package/lib/FlagDependencyExportsPlugin.js +352 -349
  65. package/lib/FlagDependencyUsagePlugin.js +10 -10
  66. package/lib/FlagEntryExportAsUsedPlugin.js +26 -23
  67. package/lib/Generator.js +16 -8
  68. package/lib/GraphHelpers.js +3 -2
  69. package/lib/HookWebpackError.js +11 -13
  70. package/lib/HotModuleReplacementPlugin.js +221 -128
  71. package/lib/IgnoreErrorModuleFactory.js +4 -4
  72. package/lib/IgnorePlugin.js +5 -4
  73. package/lib/IgnoreWarningsPlugin.js +6 -9
  74. package/lib/InitFragment.js +39 -15
  75. package/lib/JavascriptMetaInfoPlugin.js +27 -15
  76. package/lib/LibManifestPlugin.js +45 -16
  77. package/lib/LoaderOptionsPlugin.js +13 -3
  78. package/lib/MainTemplate.js +74 -21
  79. package/lib/Module.js +155 -34
  80. package/lib/ModuleBuildError.js +13 -11
  81. package/lib/ModuleDependencyError.js +6 -4
  82. package/lib/ModuleDependencyWarning.js +6 -4
  83. package/lib/ModuleError.js +10 -5
  84. package/lib/ModuleFactory.js +4 -4
  85. package/lib/ModuleFilenameHelpers.js +164 -54
  86. package/lib/ModuleGraph.js +93 -53
  87. package/lib/ModuleGraphConnection.js +27 -13
  88. package/lib/ModuleHashingError.js +29 -0
  89. package/lib/ModuleInfoHeaderPlugin.js +92 -33
  90. package/lib/ModuleNotFoundError.js +5 -2
  91. package/lib/ModuleParseError.js +17 -9
  92. package/lib/ModuleProfile.js +1 -0
  93. package/lib/ModuleRestoreError.js +3 -1
  94. package/lib/ModuleStoreError.js +3 -2
  95. package/lib/ModuleTemplate.js +33 -1
  96. package/lib/ModuleTypeConstants.js +168 -0
  97. package/lib/ModuleWarning.js +10 -5
  98. package/lib/MultiCompiler.js +115 -38
  99. package/lib/MultiStats.js +75 -33
  100. package/lib/MultiWatching.js +6 -2
  101. package/lib/NodeStuffPlugin.js +136 -37
  102. package/lib/NormalModule.js +437 -194
  103. package/lib/NormalModuleFactory.js +313 -116
  104. package/lib/NormalModuleReplacementPlugin.js +10 -4
  105. package/lib/NullFactory.js +1 -1
  106. package/lib/OptimizationStages.js +3 -3
  107. package/lib/Parser.js +1 -1
  108. package/lib/PlatformPlugin.js +39 -0
  109. package/lib/PrefetchPlugin.js +4 -0
  110. package/lib/ProgressPlugin.js +83 -28
  111. package/lib/ProvidePlugin.js +37 -19
  112. package/lib/RawModule.js +18 -5
  113. package/lib/RecordIdsPlugin.js +8 -8
  114. package/lib/RequireJsStuffPlugin.js +22 -15
  115. package/lib/ResolverFactory.js +8 -4
  116. package/lib/RuntimeGlobals.js +99 -65
  117. package/lib/RuntimeModule.js +17 -15
  118. package/lib/RuntimePlugin.js +116 -13
  119. package/lib/RuntimeTemplate.js +304 -102
  120. package/lib/SelfModuleFactory.js +12 -0
  121. package/lib/SizeFormatHelpers.js +2 -4
  122. package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -0
  123. package/lib/SourceMapDevToolPlugin.js +89 -42
  124. package/lib/Stats.js +12 -7
  125. package/lib/Template.js +30 -33
  126. package/lib/TemplatedPathPlugin.js +102 -34
  127. package/lib/UseStrictPlugin.js +37 -12
  128. package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
  129. package/lib/WarnDeprecatedOptionPlugin.js +6 -0
  130. package/lib/WatchIgnorePlugin.js +46 -13
  131. package/lib/Watching.js +139 -76
  132. package/lib/WebpackError.js +14 -5
  133. package/lib/WebpackIsIncludedPlugin.js +22 -13
  134. package/lib/WebpackOptionsApply.js +162 -56
  135. package/lib/WebpackOptionsDefaulter.js +10 -3
  136. package/lib/asset/AssetGenerator.js +351 -99
  137. package/lib/asset/AssetModulesPlugin.js +57 -33
  138. package/lib/asset/AssetParser.js +15 -6
  139. package/lib/asset/AssetSourceGenerator.js +30 -10
  140. package/lib/asset/AssetSourceParser.js +8 -2
  141. package/lib/asset/RawDataUrlModule.js +162 -0
  142. package/lib/async-modules/AwaitDependenciesInitFragment.js +16 -13
  143. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  144. package/lib/buildChunkGraph.js +376 -420
  145. package/lib/cache/AddManagedPathsPlugin.js +6 -1
  146. package/lib/cache/IdleFileCachePlugin.js +26 -13
  147. package/lib/cache/MemoryCachePlugin.js +1 -1
  148. package/lib/cache/MemoryWithGcCachePlugin.js +13 -7
  149. package/lib/cache/PackFileCacheStrategy.js +172 -94
  150. package/lib/cache/ResolverCachePlugin.js +115 -43
  151. package/lib/cache/getLazyHashedEtag.js +2 -2
  152. package/lib/cache/mergeEtags.js +16 -21
  153. package/lib/cli.js +195 -110
  154. package/lib/config/browserslistTargetHandler.js +106 -41
  155. package/lib/config/defaults.js +572 -154
  156. package/lib/config/normalization.js +361 -322
  157. package/lib/config/target.js +105 -66
  158. package/lib/container/ContainerEntryDependency.js +2 -1
  159. package/lib/container/ContainerEntryModule.js +27 -11
  160. package/lib/container/ContainerEntryModuleFactory.js +1 -1
  161. package/lib/container/ContainerExposedDependency.js +9 -0
  162. package/lib/container/ContainerPlugin.js +18 -12
  163. package/lib/container/ContainerReferencePlugin.js +1 -1
  164. package/lib/container/FallbackDependency.js +13 -0
  165. package/lib/container/FallbackItemDependency.js +3 -0
  166. package/lib/container/FallbackModule.js +19 -8
  167. package/lib/container/FallbackModuleFactory.js +1 -1
  168. package/lib/container/ModuleFederationPlugin.js +2 -0
  169. package/lib/container/RemoteModule.js +17 -4
  170. package/lib/container/RemoteRuntimeModule.js +31 -17
  171. package/lib/container/RemoteToExternalDependency.js +3 -0
  172. package/lib/container/options.js +18 -4
  173. package/lib/css/CssExportsGenerator.js +203 -0
  174. package/lib/css/CssGenerator.js +151 -0
  175. package/lib/css/CssLoadingRuntimeModule.js +592 -0
  176. package/lib/css/CssModulesPlugin.js +888 -0
  177. package/lib/css/CssParser.js +1049 -0
  178. package/lib/css/walkCssTokens.js +775 -0
  179. package/lib/debug/ProfilingPlugin.js +102 -54
  180. package/lib/dependencies/AMDDefineDependency.js +54 -10
  181. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +204 -61
  182. package/lib/dependencies/AMDPlugin.js +44 -24
  183. package/lib/dependencies/AMDRequireArrayDependency.js +34 -10
  184. package/lib/dependencies/AMDRequireContextDependency.js +15 -0
  185. package/lib/dependencies/AMDRequireDependenciesBlock.js +6 -0
  186. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +185 -54
  187. package/lib/dependencies/AMDRequireDependency.js +21 -6
  188. package/lib/dependencies/AMDRequireItemDependency.js +6 -0
  189. package/lib/dependencies/AMDRuntimeModules.js +4 -4
  190. package/lib/dependencies/CachedConstDependency.js +22 -1
  191. package/lib/dependencies/CommonJsDependencyHelpers.js +16 -2
  192. package/lib/dependencies/CommonJsExportRequireDependency.js +77 -47
  193. package/lib/dependencies/CommonJsExportsDependency.js +28 -5
  194. package/lib/dependencies/CommonJsExportsParserPlugin.js +111 -39
  195. package/lib/dependencies/CommonJsFullRequireDependency.js +42 -8
  196. package/lib/dependencies/CommonJsImportsParserPlugin.js +530 -130
  197. package/lib/dependencies/CommonJsPlugin.js +51 -26
  198. package/lib/dependencies/CommonJsRequireContextDependency.js +23 -2
  199. package/lib/dependencies/CommonJsRequireDependency.js +9 -1
  200. package/lib/dependencies/CommonJsSelfReferenceDependency.js +22 -8
  201. package/lib/dependencies/ConstDependency.js +12 -3
  202. package/lib/dependencies/ContextDependency.js +32 -5
  203. package/lib/dependencies/ContextDependencyHelpers.js +92 -62
  204. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -1
  205. package/lib/dependencies/ContextElementDependency.js +41 -4
  206. package/lib/dependencies/CreateScriptUrlDependency.js +22 -1
  207. package/lib/dependencies/CriticalDependencyWarning.js +4 -1
  208. package/lib/dependencies/CssExportDependency.js +156 -0
  209. package/lib/dependencies/CssImportDependency.js +125 -0
  210. package/lib/dependencies/CssLocalIdentifierDependency.js +245 -0
  211. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +111 -0
  212. package/lib/dependencies/CssUrlDependency.js +164 -0
  213. package/lib/dependencies/DelegatedSourceDependency.js +3 -0
  214. package/lib/dependencies/DllEntryDependency.js +14 -0
  215. package/lib/dependencies/DynamicExports.js +15 -11
  216. package/lib/dependencies/ExportsInfoDependency.js +26 -5
  217. package/lib/dependencies/ExternalModuleDependency.js +109 -0
  218. package/lib/dependencies/ExternalModuleInitFragment.js +133 -0
  219. package/lib/dependencies/HarmonyAcceptDependency.js +11 -2
  220. package/lib/dependencies/HarmonyAcceptImportDependency.js +9 -4
  221. package/lib/dependencies/HarmonyCompatibilityDependency.js +6 -5
  222. package/lib/dependencies/HarmonyDetectionParserPlugin.js +29 -3
  223. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +152 -0
  224. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +96 -51
  225. package/lib/dependencies/HarmonyExportExpressionDependency.js +21 -4
  226. package/lib/dependencies/HarmonyExportHeaderDependency.js +13 -0
  227. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +216 -108
  228. package/lib/dependencies/HarmonyExportInitFragment.js +21 -9
  229. package/lib/dependencies/HarmonyExportSpecifierDependency.js +12 -0
  230. package/lib/dependencies/HarmonyExports.js +13 -7
  231. package/lib/dependencies/HarmonyImportDependency.js +65 -19
  232. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +268 -74
  233. package/lib/dependencies/HarmonyImportSideEffectDependency.js +11 -5
  234. package/lib/dependencies/HarmonyImportSpecifierDependency.js +180 -36
  235. package/lib/dependencies/HarmonyModulesPlugin.js +33 -5
  236. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -3
  237. package/lib/dependencies/ImportContextDependency.js +15 -2
  238. package/lib/dependencies/ImportDependency.js +50 -12
  239. package/lib/dependencies/ImportEagerDependency.js +11 -6
  240. package/lib/dependencies/ImportMetaContextDependency.js +42 -0
  241. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +301 -0
  242. package/lib/dependencies/ImportMetaContextPlugin.js +72 -0
  243. package/lib/dependencies/ImportMetaHotAcceptDependency.js +6 -0
  244. package/lib/dependencies/ImportMetaHotDeclineDependency.js +6 -0
  245. package/lib/dependencies/ImportMetaPlugin.js +128 -59
  246. package/lib/dependencies/ImportParserPlugin.js +153 -83
  247. package/lib/dependencies/ImportPlugin.js +21 -7
  248. package/lib/dependencies/ImportWeakDependency.js +11 -6
  249. package/lib/dependencies/JsonExportsDependency.js +38 -30
  250. package/lib/dependencies/LoaderDependency.js +14 -0
  251. package/lib/dependencies/LoaderImportDependency.js +14 -0
  252. package/lib/dependencies/LoaderPlugin.js +54 -40
  253. package/lib/dependencies/LocalModule.js +17 -1
  254. package/lib/dependencies/LocalModuleDependency.js +15 -0
  255. package/lib/dependencies/LocalModulesHelpers.js +22 -4
  256. package/lib/dependencies/ModuleDecoratorDependency.js +9 -1
  257. package/lib/dependencies/ModuleDependency.js +24 -7
  258. package/lib/dependencies/ModuleDependencyTemplateAsId.js +2 -1
  259. package/lib/dependencies/ModuleHotAcceptDependency.js +6 -0
  260. package/lib/dependencies/ModuleHotDeclineDependency.js +6 -0
  261. package/lib/dependencies/PrefetchDependency.js +3 -0
  262. package/lib/dependencies/ProvidedDependency.js +43 -8
  263. package/lib/dependencies/PureExpressionDependency.js +73 -39
  264. package/lib/dependencies/RequireContextDependency.js +6 -16
  265. package/lib/dependencies/RequireContextDependencyParserPlugin.js +14 -6
  266. package/lib/dependencies/RequireContextPlugin.js +20 -7
  267. package/lib/dependencies/RequireEnsureDependenciesBlock.js +7 -0
  268. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +29 -12
  269. package/lib/dependencies/RequireEnsureDependency.js +16 -2
  270. package/lib/dependencies/RequireEnsureItemDependency.js +3 -0
  271. package/lib/dependencies/RequireEnsurePlugin.js +27 -7
  272. package/lib/dependencies/RequireHeaderDependency.js +14 -1
  273. package/lib/dependencies/RequireIncludeDependency.js +6 -1
  274. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +29 -5
  275. package/lib/dependencies/RequireIncludePlugin.js +25 -5
  276. package/lib/dependencies/RequireResolveContextDependency.js +19 -2
  277. package/lib/dependencies/RequireResolveDependency.js +8 -1
  278. package/lib/dependencies/RequireResolveHeaderDependency.js +18 -0
  279. package/lib/dependencies/RuntimeRequirementsDependency.js +9 -1
  280. package/lib/dependencies/StaticExportsDependency.js +8 -0
  281. package/lib/dependencies/SystemPlugin.js +49 -22
  282. package/lib/dependencies/SystemRuntimeModule.js +1 -1
  283. package/lib/dependencies/URLDependency.js +20 -13
  284. package/lib/dependencies/URLPlugin.js +115 -27
  285. package/lib/dependencies/UnsupportedDependency.js +13 -0
  286. package/lib/dependencies/WebAssemblyExportImportedDependency.js +14 -0
  287. package/lib/dependencies/WebAssemblyImportDependency.js +9 -1
  288. package/lib/dependencies/WebpackIsIncludedDependency.js +6 -1
  289. package/lib/dependencies/WorkerDependency.js +47 -3
  290. package/lib/dependencies/WorkerPlugin.js +143 -59
  291. package/lib/dependencies/getFunctionExpression.js +9 -0
  292. package/lib/dependencies/processExportInfo.js +3 -1
  293. package/lib/electron/ElectronTargetPlugin.js +1 -0
  294. package/lib/esm/ExportWebpackRequireRuntimeModule.js +3 -2
  295. package/lib/esm/ModuleChunkFormatPlugin.js +92 -55
  296. package/lib/esm/ModuleChunkLoadingPlugin.js +12 -1
  297. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +141 -25
  298. package/lib/formatLocation.js +1 -2
  299. package/lib/hmr/HotModuleReplacement.runtime.js +37 -25
  300. package/lib/hmr/HotModuleReplacementRuntimeModule.js +2 -1
  301. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +13 -15
  302. package/lib/hmr/LazyCompilationPlugin.js +94 -41
  303. package/lib/hmr/lazyCompilationBackend.js +107 -44
  304. package/lib/ids/ChunkModuleIdRangePlugin.js +12 -3
  305. package/lib/ids/DeterministicChunkIdsPlugin.js +13 -6
  306. package/lib/ids/DeterministicModuleIdsPlugin.js +59 -35
  307. package/lib/ids/HashedModuleIdsPlugin.js +24 -16
  308. package/lib/ids/IdHelpers.js +59 -49
  309. package/lib/ids/NamedChunkIdsPlugin.js +13 -1
  310. package/lib/ids/NamedModuleIdsPlugin.js +20 -12
  311. package/lib/ids/NaturalModuleIdsPlugin.js +10 -13
  312. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -2
  313. package/lib/ids/OccurrenceModuleIdsPlugin.js +14 -11
  314. package/lib/ids/SyncModuleIdsPlugin.js +146 -0
  315. package/lib/index.js +44 -5
  316. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +9 -7
  317. package/lib/javascript/BasicEvaluatedExpression.js +133 -19
  318. package/lib/javascript/ChunkHelpers.js +33 -0
  319. package/lib/javascript/CommonJsChunkFormatPlugin.js +18 -15
  320. package/lib/javascript/EnableChunkLoadingPlugin.js +11 -6
  321. package/lib/javascript/JavascriptGenerator.js +37 -6
  322. package/lib/javascript/JavascriptModulesPlugin.js +523 -295
  323. package/lib/javascript/JavascriptParser.js +1591 -574
  324. package/lib/javascript/JavascriptParserHelpers.js +58 -37
  325. package/lib/javascript/StartupHelpers.js +69 -47
  326. package/lib/json/JsonData.js +33 -0
  327. package/lib/json/JsonGenerator.js +29 -21
  328. package/lib/json/JsonModulesPlugin.js +13 -7
  329. package/lib/json/JsonParser.js +30 -16
  330. package/lib/library/AbstractLibraryPlugin.js +6 -2
  331. package/lib/library/AmdLibraryPlugin.js +34 -18
  332. package/lib/library/AssignLibraryPlugin.js +68 -32
  333. package/lib/library/EnableLibraryPlugin.js +39 -14
  334. package/lib/library/ExportPropertyLibraryPlugin.js +14 -5
  335. package/lib/library/JsonpLibraryPlugin.js +4 -3
  336. package/lib/library/ModernModuleLibraryPlugin.js +144 -0
  337. package/lib/library/ModuleLibraryPlugin.js +12 -7
  338. package/lib/library/SystemLibraryPlugin.js +6 -4
  339. package/lib/library/UmdLibraryPlugin.js +119 -100
  340. package/lib/logging/Logger.js +59 -6
  341. package/lib/logging/createConsoleLogger.js +25 -40
  342. package/lib/logging/runtime.js +8 -9
  343. package/lib/logging/truncateArgs.js +9 -8
  344. package/lib/node/CommonJsChunkLoadingPlugin.js +18 -2
  345. package/lib/node/NodeEnvironmentPlugin.js +14 -8
  346. package/lib/node/NodeTargetPlugin.js +7 -0
  347. package/lib/node/NodeTemplatePlugin.js +10 -2
  348. package/lib/node/NodeWatchFileSystem.js +100 -50
  349. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +51 -26
  350. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -2
  351. package/lib/node/ReadFileCompileWasmPlugin.js +21 -3
  352. package/lib/node/RequireChunkLoadingRuntimeModule.js +49 -26
  353. package/lib/node/nodeConsole.js +48 -31
  354. package/lib/optimize/AggressiveMergingPlugin.js +10 -4
  355. package/lib/optimize/AggressiveSplittingPlugin.js +26 -21
  356. package/lib/optimize/ConcatenatedModule.js +353 -212
  357. package/lib/optimize/EnsureChunkConditionsPlugin.js +4 -1
  358. package/lib/optimize/FlagIncludedChunksPlugin.js +14 -8
  359. package/lib/optimize/InnerGraph.js +30 -25
  360. package/lib/optimize/InnerGraphPlugin.js +105 -64
  361. package/lib/optimize/LimitChunkCountPlugin.js +32 -9
  362. package/lib/optimize/MangleExportsPlugin.js +7 -2
  363. package/lib/optimize/MinMaxSizeWarning.js +6 -1
  364. package/lib/optimize/ModuleConcatenationPlugin.js +150 -83
  365. package/lib/optimize/RealContentHashPlugin.js +99 -43
  366. package/lib/optimize/RemoveParentModulesPlugin.js +131 -48
  367. package/lib/optimize/RuntimeChunkPlugin.js +15 -2
  368. package/lib/optimize/SideEffectsFlagPlugin.js +119 -63
  369. package/lib/optimize/SplitChunksPlugin.js +129 -78
  370. package/lib/performance/SizeLimitsPlugin.js +22 -8
  371. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +4 -2
  372. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +4 -1
  373. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +8 -5
  374. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -3
  375. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +5 -3
  376. package/lib/rules/BasicEffectRulePlugin.js +7 -1
  377. package/lib/rules/BasicMatcherRulePlugin.js +8 -1
  378. package/lib/rules/ObjectMatcherRulePlugin.js +19 -2
  379. package/lib/rules/RuleSetCompiler.js +53 -32
  380. package/lib/rules/UseEffectRulePlugin.js +42 -36
  381. package/lib/runtime/AsyncModuleRuntimeModule.js +56 -69
  382. package/lib/runtime/AutoPublicPathRuntimeModule.js +25 -9
  383. package/lib/runtime/BaseUriRuntimeModule.js +35 -0
  384. package/lib/runtime/ChunkNameRuntimeModule.js +1 -1
  385. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +5 -2
  386. package/lib/runtime/CompatRuntimeModule.js +7 -2
  387. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  388. package/lib/runtime/CreateScriptRuntimeModule.js +38 -0
  389. package/lib/runtime/CreateScriptUrlRuntimeModule.js +13 -36
  390. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -3
  391. package/lib/runtime/EnsureChunkRuntimeModule.js +29 -15
  392. package/lib/runtime/GetChunkFilenameRuntimeModule.js +56 -43
  393. package/lib/runtime/GetFullHashRuntimeModule.js +4 -3
  394. package/lib/runtime/GetMainFilenameRuntimeModule.js +5 -2
  395. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +98 -0
  396. package/lib/runtime/GlobalRuntimeModule.js +1 -1
  397. package/lib/runtime/HasOwnPropertyRuntimeModule.js +5 -2
  398. package/lib/runtime/LoadScriptRuntimeModule.js +61 -45
  399. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +5 -2
  400. package/lib/runtime/NonceRuntimeModule.js +24 -0
  401. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -2
  402. package/lib/runtime/PublicPathRuntimeModule.js +9 -2
  403. package/lib/runtime/RelativeUrlRuntimeModule.js +5 -2
  404. package/lib/runtime/RuntimeIdRuntimeModule.js +6 -2
  405. package/lib/runtime/StartupChunkDependenciesPlugin.js +15 -0
  406. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +36 -28
  407. package/lib/runtime/StartupEntrypointRuntimeModule.js +13 -9
  408. package/lib/runtime/SystemContextRuntimeModule.js +1 -1
  409. package/lib/schemes/DataUriPlugin.js +16 -3
  410. package/lib/schemes/HttpUriPlugin.js +336 -120
  411. package/lib/serialization/ArraySerializer.js +22 -6
  412. package/lib/serialization/BinaryMiddleware.js +212 -33
  413. package/lib/serialization/DateObjectSerializer.js +16 -4
  414. package/lib/serialization/ErrorObjectSerializer.js +23 -6
  415. package/lib/serialization/FileMiddleware.js +187 -86
  416. package/lib/serialization/MapObjectSerializer.js +25 -8
  417. package/lib/serialization/NullPrototypeObjectSerializer.js +26 -8
  418. package/lib/serialization/ObjectMiddleware.js +96 -66
  419. package/lib/serialization/PlainObjectSerializer.js +51 -14
  420. package/lib/serialization/RegExpObjectSerializer.js +17 -5
  421. package/lib/serialization/Serializer.js +23 -5
  422. package/lib/serialization/SerializerMiddleware.js +8 -8
  423. package/lib/serialization/SetObjectSerializer.js +22 -6
  424. package/lib/serialization/SingleItemMiddleware.js +2 -2
  425. package/lib/serialization/types.js +2 -2
  426. package/lib/sharing/ConsumeSharedFallbackDependency.js +3 -0
  427. package/lib/sharing/ConsumeSharedModule.js +40 -17
  428. package/lib/sharing/ConsumeSharedPlugin.js +139 -102
  429. package/lib/sharing/ConsumeSharedRuntimeModule.js +144 -130
  430. package/lib/sharing/ProvideForSharedDependency.js +0 -1
  431. package/lib/sharing/ProvideSharedDependency.js +17 -0
  432. package/lib/sharing/ProvideSharedModule.js +19 -6
  433. package/lib/sharing/ProvideSharedModuleFactory.js +1 -1
  434. package/lib/sharing/ProvideSharedPlugin.js +37 -30
  435. package/lib/sharing/SharePlugin.js +2 -2
  436. package/lib/sharing/ShareRuntimeModule.js +20 -10
  437. package/lib/sharing/resolveMatchedConfigs.js +6 -5
  438. package/lib/sharing/utils.js +338 -34
  439. package/lib/stats/DefaultStatsFactoryPlugin.js +660 -396
  440. package/lib/stats/DefaultStatsPresetPlugin.js +85 -25
  441. package/lib/stats/DefaultStatsPrinterPlugin.js +525 -145
  442. package/lib/stats/StatsFactory.js +128 -57
  443. package/lib/stats/StatsPrinter.js +77 -46
  444. package/lib/util/ArrayHelpers.js +35 -1
  445. package/lib/util/ArrayQueue.js +15 -22
  446. package/lib/util/AsyncQueue.js +37 -16
  447. package/lib/util/IterableHelpers.js +3 -4
  448. package/lib/util/LazyBucketSortedSet.js +60 -44
  449. package/lib/util/LazySet.js +11 -2
  450. package/lib/util/MapHelpers.js +17 -5
  451. package/lib/util/ParallelismFactorCalculator.js +11 -1
  452. package/lib/util/Queue.js +9 -3
  453. package/lib/util/Semaphore.js +4 -7
  454. package/lib/util/SetHelpers.js +5 -5
  455. package/lib/util/SortableSet.js +19 -6
  456. package/lib/util/StackedCacheMap.js +33 -3
  457. package/lib/util/StackedMap.js +1 -3
  458. package/lib/util/StringXor.js +46 -0
  459. package/lib/util/TupleQueue.js +9 -3
  460. package/lib/util/TupleSet.js +15 -5
  461. package/lib/util/URLAbsoluteSpecifier.js +8 -8
  462. package/lib/util/WeakTupleMap.js +70 -28
  463. package/lib/util/binarySearchBounds.js +51 -9
  464. package/lib/util/chainedImports.js +97 -0
  465. package/lib/util/cleverMerge.js +51 -36
  466. package/lib/util/comparators.js +146 -83
  467. package/lib/util/compileBooleanMatcher.js +35 -7
  468. package/lib/util/conventions.js +126 -0
  469. package/lib/util/create-schema-validation.js +9 -2
  470. package/lib/util/createHash.js +49 -14
  471. package/lib/util/deprecation.js +48 -15
  472. package/lib/util/deterministicGrouping.js +71 -39
  473. package/lib/util/extractUrlAndGlobal.js +3 -0
  474. package/lib/util/findGraphRoots.js +7 -5
  475. package/lib/util/fs.js +419 -94
  476. package/lib/util/hash/BatchedHash.js +10 -4
  477. package/lib/util/hash/md4.js +20 -0
  478. package/lib/util/hash/wasm-hash.js +163 -0
  479. package/lib/util/hash/xxhash64.js +7 -141
  480. package/lib/util/identifier.js +140 -93
  481. package/lib/util/internalSerializables.js +22 -0
  482. package/lib/util/makeSerializable.js +7 -0
  483. package/lib/util/memoize.js +10 -10
  484. package/lib/util/mergeScope.js +76 -0
  485. package/lib/util/nonNumericOnlyHash.js +22 -0
  486. package/lib/util/numberHash.js +84 -34
  487. package/lib/util/objectToMap.js +0 -1
  488. package/lib/util/processAsyncTree.js +7 -1
  489. package/lib/util/propertyAccess.js +7 -55
  490. package/lib/util/propertyName.js +77 -0
  491. package/lib/util/registerExternalSerializer.js +2 -2
  492. package/lib/util/runtime.js +188 -133
  493. package/lib/util/semver.js +64 -56
  494. package/lib/util/serialization.js +26 -1
  495. package/lib/util/smartGrouping.js +10 -10
  496. package/lib/util/source.js +1 -1
  497. package/lib/validateSchema.js +6 -2
  498. package/lib/wasm/EnableWasmLoadingPlugin.js +9 -4
  499. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +70 -30
  500. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +9 -1
  501. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +34 -16
  502. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +32 -12
  503. package/lib/wasm-async/AsyncWebAssemblyParser.js +17 -4
  504. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +72 -31
  505. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +17 -6
  506. package/lib/wasm-sync/WebAssemblyGenerator.js +72 -52
  507. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +5 -4
  508. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +53 -43
  509. package/lib/wasm-sync/WebAssemblyParser.js +23 -9
  510. package/lib/wasm-sync/WebAssemblyUtils.js +5 -4
  511. package/lib/web/FetchCompileAsyncWasmPlugin.js +11 -1
  512. package/lib/web/FetchCompileWasmPlugin.js +59 -42
  513. package/lib/web/JsonpChunkLoadingPlugin.js +9 -0
  514. package/lib/web/JsonpChunkLoadingRuntimeModule.js +71 -41
  515. package/lib/webpack.js +43 -12
  516. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +15 -12
  517. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +55 -40
  518. package/module.d.ts +233 -0
  519. package/package.json +85 -139
  520. package/schemas/WebpackOptions.check.js +1 -1
  521. package/schemas/WebpackOptions.json +679 -47
  522. package/schemas/plugins/BannerPlugin.check.js +1 -1
  523. package/schemas/plugins/BannerPlugin.json +9 -1
  524. package/schemas/plugins/DllReferencePlugin.check.js +1 -1
  525. package/schemas/plugins/HashedModuleIdsPlugin.check.js +1 -1
  526. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  527. package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
  528. package/schemas/plugins/SourceMapDevToolPlugin.json +4 -0
  529. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
  530. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
  531. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
  532. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
  533. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  534. package/schemas/plugins/container/ContainerPlugin.json +10 -1
  535. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  536. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  537. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  538. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  539. package/schemas/plugins/container/ModuleFederationPlugin.json +12 -1
  540. package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +7 -0
  541. package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +6 -0
  542. package/schemas/plugins/css/CssAutoGeneratorOptions.json +3 -0
  543. package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +7 -0
  544. package/schemas/plugins/css/CssAutoParserOptions.check.js +6 -0
  545. package/schemas/plugins/css/CssAutoParserOptions.json +3 -0
  546. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +7 -0
  547. package/schemas/plugins/css/CssGeneratorOptions.check.js +6 -0
  548. package/schemas/plugins/css/CssGeneratorOptions.json +3 -0
  549. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +7 -0
  550. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +6 -0
  551. package/schemas/plugins/css/CssGlobalGeneratorOptions.json +3 -0
  552. package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +7 -0
  553. package/schemas/plugins/css/CssGlobalParserOptions.check.js +6 -0
  554. package/schemas/plugins/css/CssGlobalParserOptions.json +3 -0
  555. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +7 -0
  556. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +6 -0
  557. package/schemas/plugins/css/CssModuleGeneratorOptions.json +3 -0
  558. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +7 -0
  559. package/schemas/plugins/css/CssModuleParserOptions.check.js +6 -0
  560. package/schemas/plugins/css/CssModuleParserOptions.json +3 -0
  561. package/schemas/plugins/css/CssParserOptions.check.d.ts +7 -0
  562. package/schemas/plugins/css/CssParserOptions.check.js +6 -0
  563. package/schemas/plugins/css/CssParserOptions.json +3 -0
  564. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
  565. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
  566. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
  567. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
  568. package/schemas/plugins/schemes/HttpUriPlugin.json +4 -0
  569. package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
  570. package/types.d.ts +5026 -1756
@@ -5,13 +5,21 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const {
9
+ JAVASCRIPT_MODULE_TYPE_AUTO,
10
+ JAVASCRIPT_MODULE_TYPE_DYNAMIC
11
+ } = require("./ModuleTypeConstants");
8
12
  const RuntimeGlobals = require("./RuntimeGlobals");
9
13
  const ConstDependency = require("./dependencies/ConstDependency");
10
14
  const {
11
15
  toConstantDependency
12
16
  } = require("./javascript/JavascriptParserHelpers");
13
17
 
18
+ /** @typedef {import("../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
14
19
  /** @typedef {import("./Compiler")} Compiler */
20
+ /** @typedef {import("./javascript/JavascriptParser")} JavascriptParser */
21
+
22
+ const PLUGIN_NAME = "RequireJsStuffPlugin";
15
23
 
16
24
  module.exports = class RequireJsStuffPlugin {
17
25
  /**
@@ -21,12 +29,17 @@ module.exports = class RequireJsStuffPlugin {
21
29
  */
22
30
  apply(compiler) {
23
31
  compiler.hooks.compilation.tap(
24
- "RequireJsStuffPlugin",
32
+ PLUGIN_NAME,
25
33
  (compilation, { normalModuleFactory }) => {
26
34
  compilation.dependencyTemplates.set(
27
35
  ConstDependency,
28
36
  new ConstDependency.Template()
29
37
  );
38
+ /**
39
+ * @param {JavascriptParser} parser the parser
40
+ * @param {JavascriptParserOptions} parserOptions options
41
+ * @returns {void}
42
+ */
30
43
  const handler = (parser, parserOptions) => {
31
44
  if (
32
45
  parserOptions.requireJs === undefined ||
@@ -37,27 +50,21 @@ module.exports = class RequireJsStuffPlugin {
37
50
 
38
51
  parser.hooks.call
39
52
  .for("require.config")
40
- .tap(
41
- "RequireJsStuffPlugin",
42
- toConstantDependency(parser, "undefined")
43
- );
53
+ .tap(PLUGIN_NAME, toConstantDependency(parser, "undefined"));
44
54
  parser.hooks.call
45
55
  .for("requirejs.config")
46
- .tap(
47
- "RequireJsStuffPlugin",
48
- toConstantDependency(parser, "undefined")
49
- );
56
+ .tap(PLUGIN_NAME, toConstantDependency(parser, "undefined"));
50
57
 
51
58
  parser.hooks.expression
52
59
  .for("require.version")
53
60
  .tap(
54
- "RequireJsStuffPlugin",
61
+ PLUGIN_NAME,
55
62
  toConstantDependency(parser, JSON.stringify("0.0.0"))
56
63
  );
57
64
  parser.hooks.expression
58
65
  .for("requirejs.onError")
59
66
  .tap(
60
- "RequireJsStuffPlugin",
67
+ PLUGIN_NAME,
61
68
  toConstantDependency(
62
69
  parser,
63
70
  RuntimeGlobals.uncaughtErrorHandler,
@@ -66,11 +73,11 @@ module.exports = class RequireJsStuffPlugin {
66
73
  );
67
74
  };
68
75
  normalModuleFactory.hooks.parser
69
- .for("javascript/auto")
70
- .tap("RequireJsStuffPlugin", handler);
76
+ .for(JAVASCRIPT_MODULE_TYPE_AUTO)
77
+ .tap(PLUGIN_NAME, handler);
71
78
  normalModuleFactory.hooks.parser
72
- .for("javascript/dynamic")
73
- .tap("RequireJsStuffPlugin", handler);
79
+ .for(JAVASCRIPT_MODULE_TYPE_DYNAMIC)
80
+ .tap(PLUGIN_NAME, handler);
74
81
  }
75
82
  );
76
83
  }
@@ -13,14 +13,16 @@ const {
13
13
  resolveByProperty
14
14
  } = require("./util/cleverMerge");
15
15
 
16
+ /** @typedef {import("enhanced-resolve").ResolveContext} ResolveContext */
16
17
  /** @typedef {import("enhanced-resolve").ResolveOptions} ResolveOptions */
18
+ /** @typedef {import("enhanced-resolve").ResolveRequest} ResolveRequest */
17
19
  /** @typedef {import("enhanced-resolve").Resolver} Resolver */
18
20
  /** @typedef {import("../declarations/WebpackOptions").ResolveOptions} WebpackResolveOptions */
19
21
  /** @typedef {import("../declarations/WebpackOptions").ResolvePluginInstance} ResolvePluginInstance */
20
22
 
21
23
  /** @typedef {WebpackResolveOptions & {dependencyType?: string, resolveToContext?: boolean }} ResolveOptionsWithDependencyType */
22
24
  /**
23
- * @typedef {Object} WithOptions
25
+ * @typedef {object} WithOptions
24
26
  * @property {function(Partial<ResolveOptionsWithDependencyType>): ResolverWithOptions} withOptions create a resolver with additional/different options
25
27
  */
26
28
 
@@ -59,13 +61,15 @@ const convertToResolveOptions = resolveOptionsWithDepType => {
59
61
  );
60
62
 
61
63
  return removeOperations(
62
- resolveByProperty(options, "byDependency", dependencyType)
64
+ resolveByProperty(options, "byDependency", dependencyType),
65
+ // Keep the `unsafeCache` because it can be a `Proxy`
66
+ ["unsafeCache"]
63
67
  );
64
68
  };
65
69
 
66
70
  /**
67
- * @typedef {Object} ResolverCache
68
- * @property {WeakMap<Object, ResolverWithOptions>} direct
71
+ * @typedef {object} ResolverCache
72
+ * @property {WeakMap<object, ResolverWithOptions>} direct
69
73
  * @property {Map<string, ResolverWithOptions>} stringified
70
74
  */
71
75
 
@@ -8,226 +8,260 @@
8
8
  /**
9
9
  * the internal require function
10
10
  */
11
- exports.require = "__webpack_require__";
11
+ module.exports.require = "__webpack_require__";
12
12
 
13
13
  /**
14
14
  * access to properties of the internal require function/object
15
15
  */
16
- exports.requireScope = "__webpack_require__.*";
16
+ module.exports.requireScope = "__webpack_require__.*";
17
17
 
18
18
  /**
19
19
  * the internal exports object
20
20
  */
21
- exports.exports = "__webpack_exports__";
21
+ module.exports.exports = "__webpack_exports__";
22
22
 
23
23
  /**
24
24
  * top-level this need to be the exports object
25
25
  */
26
- exports.thisAsExports = "top-level-this-exports";
26
+ module.exports.thisAsExports = "top-level-this-exports";
27
27
 
28
28
  /**
29
29
  * runtime need to return the exports of the last entry module
30
30
  */
31
- exports.returnExportsFromRuntime = "return-exports-from-runtime";
31
+ module.exports.returnExportsFromRuntime = "return-exports-from-runtime";
32
32
 
33
33
  /**
34
34
  * the internal module object
35
35
  */
36
- exports.module = "module";
36
+ module.exports.module = "module";
37
37
 
38
38
  /**
39
39
  * the internal module object
40
40
  */
41
- exports.moduleId = "module.id";
41
+ module.exports.moduleId = "module.id";
42
42
 
43
43
  /**
44
44
  * the internal module object
45
45
  */
46
- exports.moduleLoaded = "module.loaded";
46
+ module.exports.moduleLoaded = "module.loaded";
47
47
 
48
48
  /**
49
49
  * the bundle public path
50
50
  */
51
- exports.publicPath = "__webpack_require__.p";
51
+ module.exports.publicPath = "__webpack_require__.p";
52
52
 
53
53
  /**
54
54
  * the module id of the entry point
55
55
  */
56
- exports.entryModuleId = "__webpack_require__.s";
56
+ module.exports.entryModuleId = "__webpack_require__.s";
57
57
 
58
58
  /**
59
59
  * the module cache
60
60
  */
61
- exports.moduleCache = "__webpack_require__.c";
61
+ module.exports.moduleCache = "__webpack_require__.c";
62
62
 
63
63
  /**
64
64
  * the module functions
65
65
  */
66
- exports.moduleFactories = "__webpack_require__.m";
66
+ module.exports.moduleFactories = "__webpack_require__.m";
67
67
 
68
68
  /**
69
69
  * the module functions, with only write access
70
70
  */
71
- exports.moduleFactoriesAddOnly = "__webpack_require__.m (add only)";
71
+ module.exports.moduleFactoriesAddOnly = "__webpack_require__.m (add only)";
72
72
 
73
73
  /**
74
74
  * the chunk ensure function
75
75
  */
76
- exports.ensureChunk = "__webpack_require__.e";
76
+ module.exports.ensureChunk = "__webpack_require__.e";
77
77
 
78
78
  /**
79
79
  * an object with handlers to ensure a chunk
80
80
  */
81
- exports.ensureChunkHandlers = "__webpack_require__.f";
81
+ module.exports.ensureChunkHandlers = "__webpack_require__.f";
82
82
 
83
83
  /**
84
84
  * a runtime requirement if ensureChunkHandlers should include loading of chunk needed for entries
85
85
  */
86
- exports.ensureChunkIncludeEntries = "__webpack_require__.f (include entries)";
86
+ module.exports.ensureChunkIncludeEntries =
87
+ "__webpack_require__.f (include entries)";
87
88
 
88
89
  /**
89
90
  * the chunk prefetch function
90
91
  */
91
- exports.prefetchChunk = "__webpack_require__.E";
92
+ module.exports.prefetchChunk = "__webpack_require__.E";
92
93
 
93
94
  /**
94
95
  * an object with handlers to prefetch a chunk
95
96
  */
96
- exports.prefetchChunkHandlers = "__webpack_require__.F";
97
+ module.exports.prefetchChunkHandlers = "__webpack_require__.F";
97
98
 
98
99
  /**
99
100
  * the chunk preload function
100
101
  */
101
- exports.preloadChunk = "__webpack_require__.G";
102
+ module.exports.preloadChunk = "__webpack_require__.G";
102
103
 
103
104
  /**
104
105
  * an object with handlers to preload a chunk
105
106
  */
106
- exports.preloadChunkHandlers = "__webpack_require__.H";
107
+ module.exports.preloadChunkHandlers = "__webpack_require__.H";
107
108
 
108
109
  /**
109
110
  * the exported property define getters function
110
111
  */
111
- exports.definePropertyGetters = "__webpack_require__.d";
112
+ module.exports.definePropertyGetters = "__webpack_require__.d";
112
113
 
113
114
  /**
114
115
  * define compatibility on export
115
116
  */
116
- exports.makeNamespaceObject = "__webpack_require__.r";
117
+ module.exports.makeNamespaceObject = "__webpack_require__.r";
117
118
 
118
119
  /**
119
120
  * create a fake namespace object
120
121
  */
121
- exports.createFakeNamespaceObject = "__webpack_require__.t";
122
+ module.exports.createFakeNamespaceObject = "__webpack_require__.t";
122
123
 
123
124
  /**
124
125
  * compatibility get default export
125
126
  */
126
- exports.compatGetDefaultExport = "__webpack_require__.n";
127
+ module.exports.compatGetDefaultExport = "__webpack_require__.n";
127
128
 
128
129
  /**
129
130
  * harmony module decorator
130
131
  */
131
- exports.harmonyModuleDecorator = "__webpack_require__.hmd";
132
+ module.exports.harmonyModuleDecorator = "__webpack_require__.hmd";
132
133
 
133
134
  /**
134
135
  * node.js module decorator
135
136
  */
136
- exports.nodeModuleDecorator = "__webpack_require__.nmd";
137
+ module.exports.nodeModuleDecorator = "__webpack_require__.nmd";
137
138
 
138
139
  /**
139
140
  * the webpack hash
140
141
  */
141
- exports.getFullHash = "__webpack_require__.h";
142
+ module.exports.getFullHash = "__webpack_require__.h";
142
143
 
143
144
  /**
144
145
  * an object containing all installed WebAssembly.Instance export objects keyed by module id
145
146
  */
146
- exports.wasmInstances = "__webpack_require__.w";
147
+ module.exports.wasmInstances = "__webpack_require__.w";
147
148
 
148
149
  /**
149
150
  * instantiate a wasm instance from module exports object, id, hash and importsObject
150
151
  */
151
- exports.instantiateWasm = "__webpack_require__.v";
152
+ module.exports.instantiateWasm = "__webpack_require__.v";
152
153
 
153
154
  /**
154
155
  * the uncaught error handler for the webpack runtime
155
156
  */
156
- exports.uncaughtErrorHandler = "__webpack_require__.oe";
157
+ module.exports.uncaughtErrorHandler = "__webpack_require__.oe";
157
158
 
158
159
  /**
159
160
  * the script nonce
160
161
  */
161
- exports.scriptNonce = "__webpack_require__.nc";
162
+ module.exports.scriptNonce = "__webpack_require__.nc";
162
163
 
163
164
  /**
164
165
  * function to load a script tag.
165
166
  * Arguments: (url: string, done: (event) => void), key?: string | number, chunkId?: string | number) => void
166
167
  * done function is called when loading has finished or timeout occurred.
167
- * It will attach to existing script tags with data-webpack == key or src == url.
168
+ * It will attach to existing script tags with data-webpack == uniqueName + ":" + key or src == url.
168
169
  */
169
- exports.loadScript = "__webpack_require__.l";
170
+ module.exports.loadScript = "__webpack_require__.l";
171
+
172
+ /**
173
+ * function to promote a string to a TrustedScript using webpack's Trusted
174
+ * Types policy
175
+ * Arguments: (script: string) => TrustedScript
176
+ */
177
+ module.exports.createScript = "__webpack_require__.ts";
170
178
 
171
179
  /**
172
180
  * function to promote a string to a TrustedScriptURL using webpack's Trusted
173
181
  * Types policy
174
182
  * Arguments: (url: string) => TrustedScriptURL
175
183
  */
176
- exports.createScriptUrl = "__webpack_require__.tu";
184
+ module.exports.createScriptUrl = "__webpack_require__.tu";
185
+
186
+ /**
187
+ * function to return webpack's Trusted Types policy
188
+ * Arguments: () => TrustedTypePolicy
189
+ */
190
+ module.exports.getTrustedTypesPolicy = "__webpack_require__.tt";
191
+
192
+ /**
193
+ * a flag when a chunk has a fetch priority
194
+ */
195
+ module.exports.hasFetchPriority = "has fetch priority";
177
196
 
178
197
  /**
179
198
  * the chunk name of the chunk with the runtime
180
199
  */
181
- exports.chunkName = "__webpack_require__.cn";
200
+ module.exports.chunkName = "__webpack_require__.cn";
182
201
 
183
202
  /**
184
203
  * the runtime id of the current runtime
185
204
  */
186
- exports.runtimeId = "__webpack_require__.j";
205
+ module.exports.runtimeId = "__webpack_require__.j";
187
206
 
188
207
  /**
189
208
  * the filename of the script part of the chunk
190
209
  */
191
- exports.getChunkScriptFilename = "__webpack_require__.u";
210
+ module.exports.getChunkScriptFilename = "__webpack_require__.u";
211
+
212
+ /**
213
+ * the filename of the css part of the chunk
214
+ */
215
+ module.exports.getChunkCssFilename = "__webpack_require__.k";
216
+
217
+ /**
218
+ * a flag when a module/chunk/tree has css modules
219
+ */
220
+ module.exports.hasCssModules = "has css modules";
192
221
 
193
222
  /**
194
223
  * the filename of the script part of the hot update chunk
195
224
  */
196
- exports.getChunkUpdateScriptFilename = "__webpack_require__.hu";
225
+ module.exports.getChunkUpdateScriptFilename = "__webpack_require__.hu";
226
+
227
+ /**
228
+ * the filename of the css part of the hot update chunk
229
+ */
230
+ module.exports.getChunkUpdateCssFilename = "__webpack_require__.hk";
197
231
 
198
232
  /**
199
233
  * startup signal from runtime
200
234
  * This will be called when the runtime chunk has been loaded.
201
235
  */
202
- exports.startup = "__webpack_require__.x";
236
+ module.exports.startup = "__webpack_require__.x";
203
237
 
204
238
  /**
205
239
  * @deprecated
206
240
  * creating a default startup function with the entry modules
207
241
  */
208
- exports.startupNoDefault = "__webpack_require__.x (no default handler)";
242
+ module.exports.startupNoDefault = "__webpack_require__.x (no default handler)";
209
243
 
210
244
  /**
211
245
  * startup signal from runtime but only used to add logic after the startup
212
246
  */
213
- exports.startupOnlyAfter = "__webpack_require__.x (only after)";
247
+ module.exports.startupOnlyAfter = "__webpack_require__.x (only after)";
214
248
 
215
249
  /**
216
250
  * startup signal from runtime but only used to add sync logic before the startup
217
251
  */
218
- exports.startupOnlyBefore = "__webpack_require__.x (only before)";
252
+ module.exports.startupOnlyBefore = "__webpack_require__.x (only before)";
219
253
 
220
254
  /**
221
255
  * global callback functions for installing chunks
222
256
  */
223
- exports.chunkCallback = "webpackChunk";
257
+ module.exports.chunkCallback = "webpackChunk";
224
258
 
225
259
  /**
226
260
  * method to startup an entrypoint with needed chunks.
227
261
  * Signature: (moduleId: Id, chunkIds: Id[]) => any.
228
262
  * Returns the exports of the module or a Promise
229
263
  */
230
- exports.startupEntrypoint = "__webpack_require__.X";
264
+ module.exports.startupEntrypoint = "__webpack_require__.X";
231
265
 
232
266
  /**
233
267
  * register deferred code, which will run when certain
@@ -237,106 +271,106 @@ exports.startupEntrypoint = "__webpack_require__.X";
237
271
  * When (priority & 1) it will wait for all other handlers with lower priority to
238
272
  * be executed before itself is executed
239
273
  */
240
- exports.onChunksLoaded = "__webpack_require__.O";
274
+ module.exports.onChunksLoaded = "__webpack_require__.O";
241
275
 
242
276
  /**
243
277
  * method to install a chunk that was loaded somehow
244
278
  * Signature: ({ id, ids, modules, runtime }) => void
245
279
  */
246
- exports.externalInstallChunk = "__webpack_require__.C";
280
+ module.exports.externalInstallChunk = "__webpack_require__.C";
247
281
 
248
282
  /**
249
283
  * interceptor for module executions
250
284
  */
251
- exports.interceptModuleExecution = "__webpack_require__.i";
285
+ module.exports.interceptModuleExecution = "__webpack_require__.i";
252
286
 
253
287
  /**
254
288
  * the global object
255
289
  */
256
- exports.global = "__webpack_require__.g";
290
+ module.exports.global = "__webpack_require__.g";
257
291
 
258
292
  /**
259
293
  * an object with all share scopes
260
294
  */
261
- exports.shareScopeMap = "__webpack_require__.S";
295
+ module.exports.shareScopeMap = "__webpack_require__.S";
262
296
 
263
297
  /**
264
298
  * The sharing init sequence function (only runs once per share scope).
265
299
  * Has one argument, the name of the share scope.
266
300
  * Creates a share scope if not existing
267
301
  */
268
- exports.initializeSharing = "__webpack_require__.I";
302
+ module.exports.initializeSharing = "__webpack_require__.I";
269
303
 
270
304
  /**
271
305
  * The current scope when getting a module from a remote
272
306
  */
273
- exports.currentRemoteGetScope = "__webpack_require__.R";
307
+ module.exports.currentRemoteGetScope = "__webpack_require__.R";
274
308
 
275
309
  /**
276
310
  * the filename of the HMR manifest
277
311
  */
278
- exports.getUpdateManifestFilename = "__webpack_require__.hmrF";
312
+ module.exports.getUpdateManifestFilename = "__webpack_require__.hmrF";
279
313
 
280
314
  /**
281
315
  * function downloading the update manifest
282
316
  */
283
- exports.hmrDownloadManifest = "__webpack_require__.hmrM";
317
+ module.exports.hmrDownloadManifest = "__webpack_require__.hmrM";
284
318
 
285
319
  /**
286
320
  * array with handler functions to download chunk updates
287
321
  */
288
- exports.hmrDownloadUpdateHandlers = "__webpack_require__.hmrC";
322
+ module.exports.hmrDownloadUpdateHandlers = "__webpack_require__.hmrC";
289
323
 
290
324
  /**
291
325
  * object with all hmr module data for all modules
292
326
  */
293
- exports.hmrModuleData = "__webpack_require__.hmrD";
327
+ module.exports.hmrModuleData = "__webpack_require__.hmrD";
294
328
 
295
329
  /**
296
330
  * array with handler functions when a module should be invalidated
297
331
  */
298
- exports.hmrInvalidateModuleHandlers = "__webpack_require__.hmrI";
332
+ module.exports.hmrInvalidateModuleHandlers = "__webpack_require__.hmrI";
299
333
 
300
334
  /**
301
335
  * the prefix for storing state of runtime modules when hmr is enabled
302
336
  */
303
- exports.hmrRuntimeStatePrefix = "__webpack_require__.hmrS";
337
+ module.exports.hmrRuntimeStatePrefix = "__webpack_require__.hmrS";
304
338
 
305
339
  /**
306
340
  * the AMD define function
307
341
  */
308
- exports.amdDefine = "__webpack_require__.amdD";
342
+ module.exports.amdDefine = "__webpack_require__.amdD";
309
343
 
310
344
  /**
311
345
  * the AMD options
312
346
  */
313
- exports.amdOptions = "__webpack_require__.amdO";
347
+ module.exports.amdOptions = "__webpack_require__.amdO";
314
348
 
315
349
  /**
316
350
  * the System polyfill object
317
351
  */
318
- exports.system = "__webpack_require__.System";
352
+ module.exports.system = "__webpack_require__.System";
319
353
 
320
354
  /**
321
355
  * the shorthand for Object.prototype.hasOwnProperty
322
356
  * using of it decreases the compiled bundle size
323
357
  */
324
- exports.hasOwnProperty = "__webpack_require__.o";
358
+ module.exports.hasOwnProperty = "__webpack_require__.o";
325
359
 
326
360
  /**
327
361
  * the System.register context object
328
362
  */
329
- exports.systemContext = "__webpack_require__.y";
363
+ module.exports.systemContext = "__webpack_require__.y";
330
364
 
331
365
  /**
332
366
  * the baseURI of current document
333
367
  */
334
- exports.baseURI = "__webpack_require__.b";
368
+ module.exports.baseURI = "__webpack_require__.b";
335
369
 
336
370
  /**
337
371
  * a RelativeURL class when relative URLs are used
338
372
  */
339
- exports.relativeUrl = "__webpack_require__.U";
373
+ module.exports.relativeUrl = "__webpack_require__.U";
340
374
 
341
375
  /**
342
376
  * Creates an async module. The body function must be a async function.
@@ -350,4 +384,4 @@ exports.relativeUrl = "__webpack_require__.U";
350
384
  * hasAwaitAfterDependencies?: boolean
351
385
  * ) => void
352
386
  */
353
- exports.asyncModule = "__webpack_require__.a";
387
+ module.exports.asyncModule = "__webpack_require__.a";
@@ -8,6 +8,7 @@
8
8
  const { RawSource } = require("webpack-sources");
9
9
  const OriginalSource = require("webpack-sources").OriginalSource;
10
10
  const Module = require("./Module");
11
+ const { WEBPACK_MODULE_TYPE_RUNTIME } = require("./ModuleTypeConstants");
11
12
 
12
13
  /** @typedef {import("webpack-sources").Source} Source */
13
14
  /** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
@@ -18,13 +19,14 @@ const Module = require("./Module");
18
19
  /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */
19
20
  /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */
20
21
  /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */
22
+ /** @typedef {import("./Module").SourceTypes} SourceTypes */
21
23
  /** @typedef {import("./RequestShortener")} RequestShortener */
22
24
  /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
23
25
  /** @typedef {import("./WebpackError")} WebpackError */
24
26
  /** @typedef {import("./util/Hash")} Hash */
25
27
  /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
26
28
 
27
- const TYPES = new Set(["runtime"]);
29
+ const TYPES = new Set([WEBPACK_MODULE_TYPE_RUNTIME]);
28
30
 
29
31
  class RuntimeModule extends Module {
30
32
  /**
@@ -32,20 +34,20 @@ class RuntimeModule extends Module {
32
34
  * @param {number=} stage an optional stage
33
35
  */
34
36
  constructor(name, stage = 0) {
35
- super("runtime");
37
+ super(WEBPACK_MODULE_TYPE_RUNTIME);
36
38
  this.name = name;
37
39
  this.stage = stage;
38
40
  this.buildMeta = {};
39
41
  this.buildInfo = {};
40
- /** @type {Compilation} */
42
+ /** @type {Compilation | undefined} */
41
43
  this.compilation = undefined;
42
- /** @type {Chunk} */
44
+ /** @type {Chunk | undefined} */
43
45
  this.chunk = undefined;
44
- /** @type {ChunkGraph} */
46
+ /** @type {ChunkGraph | undefined} */
45
47
  this.chunkGraph = undefined;
46
48
  this.fullHash = false;
47
49
  this.dependentHash = false;
48
- /** @type {string} */
50
+ /** @type {string | undefined | null} */
49
51
  this._cachedGeneratedCode = undefined;
50
52
  }
51
53
 
@@ -78,7 +80,7 @@ class RuntimeModule extends Module {
78
80
 
79
81
  /**
80
82
  * @param {NeedBuildContext} context context info
81
- * @param {function(WebpackError=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
83
+ * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
82
84
  * @returns {void}
83
85
  */
84
86
  needBuild(context, callback) {
@@ -111,18 +113,18 @@ class RuntimeModule extends Module {
111
113
  if (this.fullHash || this.dependentHash) {
112
114
  // Do not use getGeneratedCode here, because i. e. compilation hash might be not
113
115
  // ready at this point. We will cache it later instead.
114
- hash.update(this.generate());
116
+ hash.update(/** @type {string} */ (this.generate()));
115
117
  } else {
116
- hash.update(this.getGeneratedCode());
118
+ hash.update(/** @type {string} */ (this.getGeneratedCode()));
117
119
  }
118
120
  } catch (err) {
119
- hash.update(err.message);
121
+ hash.update(/** @type {Error} */ (err).message);
120
122
  }
121
123
  super.updateHash(hash, context);
122
124
  }
123
125
 
124
126
  /**
125
- * @returns {Set<string>} types available (do not mutate)
127
+ * @returns {SourceTypes} types available (do not mutate)
126
128
  */
127
129
  getSourceTypes() {
128
130
  return TYPES;
@@ -137,7 +139,7 @@ class RuntimeModule extends Module {
137
139
  const generatedCode = this.getGeneratedCode();
138
140
  if (generatedCode) {
139
141
  sources.set(
140
- "runtime",
142
+ WEBPACK_MODULE_TYPE_RUNTIME,
141
143
  this.useSourceMap || this.useSimpleSourceMap
142
144
  ? new OriginalSource(generatedCode, this.identifier())
143
145
  : new RawSource(generatedCode)
@@ -157,7 +159,7 @@ class RuntimeModule extends Module {
157
159
  try {
158
160
  const source = this.getGeneratedCode();
159
161
  return source ? source.length : 0;
160
- } catch (e) {
162
+ } catch (_err) {
161
163
  return 0;
162
164
  }
163
165
  }
@@ -165,7 +167,7 @@ class RuntimeModule extends Module {
165
167
  /* istanbul ignore next */
166
168
  /**
167
169
  * @abstract
168
- * @returns {string} runtime code
170
+ * @returns {string | null} runtime code
169
171
  */
170
172
  generate() {
171
173
  const AbstractMethodError = require("./AbstractMethodError");
@@ -173,7 +175,7 @@ class RuntimeModule extends Module {
173
175
  }
174
176
 
175
177
  /**
176
- * @returns {string} runtime code
178
+ * @returns {string | null} runtime code
177
179
  */
178
180
  getGeneratedCode() {
179
181
  if (this._cachedGeneratedCode) {