@depup/webpack 5.109.0-depup.0 → 5.110.1-depup.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 (641) hide show
  1. package/README.md +7 -7
  2. package/bin/webpack.js +12 -0
  3. package/changes.json +10 -10
  4. package/lib/APIPlugin.js +123 -17
  5. package/lib/AsyncDependenciesBlock.js +10 -7
  6. package/lib/AutomaticPrefetchPlugin.js +1 -1
  7. package/lib/BannerPlugin.js +10 -6
  8. package/lib/CacheFacade.js +6 -6
  9. package/lib/Chunk.js +14 -11
  10. package/lib/ChunkGraph.js +43 -32
  11. package/lib/ChunkGroup.js +7 -7
  12. package/lib/ChunkTemplate.js +35 -44
  13. package/lib/CircularModulesPlugin.js +205 -28
  14. package/lib/CleanPlugin.js +15 -16
  15. package/lib/CodeGenerationResults.js +11 -8
  16. package/lib/CompatibilityPlugin.js +38 -7
  17. package/lib/Compilation.js +709 -414
  18. package/lib/Compiler.js +69 -42
  19. package/lib/ConcatenationScope.js +117 -8
  20. package/lib/ConditionalInitFragment.js +3 -3
  21. package/lib/ConstPlugin.js +13 -11
  22. package/lib/ContextExclusionPlugin.js +1 -1
  23. package/lib/ContextModule.js +146 -54
  24. package/lib/ContextModuleFactory.js +46 -14
  25. package/lib/ContextReplacementPlugin.js +12 -14
  26. package/lib/DefinePlugin.js +168 -57
  27. package/lib/DependenciesBlock.js +9 -6
  28. package/lib/Dependency.js +36 -16
  29. package/lib/DependencyTemplate.js +11 -12
  30. package/lib/DependencyTemplates.js +3 -3
  31. package/lib/DotenvPlugin.js +50 -13
  32. package/lib/DynamicEntryPlugin.js +8 -4
  33. package/lib/EntryOptionPlugin.js +8 -4
  34. package/lib/EntryPlugin.js +2 -2
  35. package/lib/Entrypoint.js +6 -2
  36. package/lib/EnvironmentPlugin.js +2 -2
  37. package/lib/EvalDevToolModulePlugin.js +8 -4
  38. package/lib/EvalSourceMapDevToolPlugin.js +15 -8
  39. package/lib/ExportsInfo.js +123 -19
  40. package/lib/ExportsInfoApiPlugin.js +2 -4
  41. package/lib/ExternalModule.js +242 -84
  42. package/lib/ExternalModuleFactoryPlugin.js +97 -38
  43. package/lib/ExternalsPlugin.js +10 -6
  44. package/lib/FileSystemInfo.js +116 -42
  45. package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
  46. package/lib/FlagDependencyExportsPlugin.js +76 -19
  47. package/lib/FlagDependencyUsagePlugin.js +63 -57
  48. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  49. package/lib/Generator.js +36 -15
  50. package/lib/HotModuleReplacementPlugin.js +16 -44
  51. package/lib/IgnorePlugin.js +8 -4
  52. package/lib/IgnoreWarningsPlugin.js +2 -2
  53. package/lib/InitFragment.js +28 -36
  54. package/lib/JavascriptMetaInfoPlugin.js +35 -4
  55. package/lib/LazyBarrel.js +3 -4
  56. package/lib/LibraryTemplatePlugin.js +10 -6
  57. package/lib/LoaderOptionsPlugin.js +7 -3
  58. package/lib/LoaderTargetPlugin.js +1 -1
  59. package/lib/MainTemplate.js +49 -42
  60. package/lib/ManifestPlugin.js +12 -11
  61. package/lib/Module.js +62 -33
  62. package/lib/ModuleFactory.js +3 -3
  63. package/lib/ModuleFilenameHelpers.js +22 -6
  64. package/lib/ModuleGraph.js +195 -21
  65. package/lib/ModuleGraphConnection.js +6 -13
  66. package/lib/ModuleInfoHeaderPlugin.js +8 -10
  67. package/lib/ModuleTemplate.js +62 -63
  68. package/lib/MultiCompiler.js +130 -64
  69. package/lib/MultiStats.js +40 -9
  70. package/lib/MultiWatching.js +3 -3
  71. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  72. package/lib/NodeStuffPlugin.js +29 -19
  73. package/lib/NormalModule.js +221 -156
  74. package/lib/NormalModuleFactory.js +563 -112
  75. package/lib/NormalModuleReplacementPlugin.js +5 -8
  76. package/lib/NullFactory.js +6 -2
  77. package/lib/OptionsApply.js +7 -3
  78. package/lib/Parser.js +7 -3
  79. package/lib/PlatformPlugin.js +2 -2
  80. package/lib/PrefetchPlugin.js +1 -1
  81. package/lib/ProgressPlugin.js +16 -13
  82. package/lib/ProvidePlugin.js +3 -5
  83. package/lib/RawModule.js +25 -17
  84. package/lib/RecordIdsPlugin.js +3 -3
  85. package/lib/RequestShortener.js +1 -1
  86. package/lib/ResolverFactory.js +2 -2
  87. package/lib/RuntimeGlobals.js +22 -10
  88. package/lib/RuntimeModule.js +29 -19
  89. package/lib/RuntimePlugin.js +346 -256
  90. package/lib/RuntimeTemplate.js +2792 -352
  91. package/lib/SelfModuleFactory.js +7 -3
  92. package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
  93. package/lib/SourceMapDevToolPlugin.js +30 -20
  94. package/lib/Stats.js +3 -4
  95. package/lib/Template.js +55 -25
  96. package/lib/TemplatedPathPlugin.js +96 -14
  97. package/lib/UseStrictPlugin.js +4 -6
  98. package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
  99. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  100. package/lib/WarnNoModeSetPlugin.js +1 -1
  101. package/lib/WatchIgnorePlugin.js +8 -6
  102. package/lib/Watching.js +8 -8
  103. package/lib/WebpackIsIncludedPlugin.js +2 -4
  104. package/lib/WebpackOptionsApply.js +308 -18
  105. package/lib/WebpackOptionsDefaulter.js +6 -2
  106. package/lib/asset/AssetBytesGenerator.js +12 -10
  107. package/lib/asset/AssetBytesParser.js +2 -4
  108. package/lib/asset/AssetGenerator.js +188 -95
  109. package/lib/asset/AssetModule.js +7 -3
  110. package/lib/asset/AssetModulesPlugin.js +110 -38
  111. package/lib/asset/AssetParser.js +9 -7
  112. package/lib/asset/AssetSourceGenerator.js +60 -13
  113. package/lib/asset/AssetSourceParser.js +2 -4
  114. package/lib/asset/RawDataUrlModule.js +24 -16
  115. package/lib/asset/WebManifestGenerator.js +8 -10
  116. package/lib/asset/WebManifestParser.js +24 -10
  117. package/lib/async-modules/AsyncModuleHelpers.js +2 -2
  118. package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
  119. package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
  120. package/lib/async-modules/isGeneratorLowered.js +4 -4
  121. package/lib/buildChunkGraph.js +36 -27
  122. package/lib/bun/BunTargetPlugin.js +1 -1
  123. package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
  124. package/lib/cache/AddManagedPathsPlugin.js +1 -1
  125. package/lib/cache/IdleFileCachePlugin.js +2 -2
  126. package/lib/cache/MemoryCachePlugin.js +18 -10
  127. package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
  128. package/lib/cache/PackFileCacheStrategy.js +289 -28
  129. package/lib/cache/ResolverCachePlugin.js +38 -18
  130. package/lib/cache/getLazyHashedEtag.js +1 -2
  131. package/lib/cache/mergeEtags.js +1 -1
  132. package/lib/cli.js +1 -3
  133. package/lib/config/browserslistTargetHandler.js +41 -5
  134. package/lib/config/defaults.js +282 -81
  135. package/lib/config/defineConfig.js +10 -2
  136. package/lib/config/getClaimedAssetTypes.js +65 -0
  137. package/lib/config/normalization.js +36 -16
  138. package/lib/config/target.js +46 -3
  139. package/lib/container/ContainerEntryDependency.js +1 -1
  140. package/lib/container/ContainerEntryModule.js +24 -15
  141. package/lib/container/ContainerEntryModuleFactory.js +7 -3
  142. package/lib/container/ContainerPlugin.js +9 -10
  143. package/lib/container/ContainerReferencePlugin.js +6 -2
  144. package/lib/container/FallbackDependency.js +1 -1
  145. package/lib/container/FallbackModule.js +24 -17
  146. package/lib/container/FallbackModuleFactory.js +7 -3
  147. package/lib/container/HoistContainerReferencesPlugin.js +53 -66
  148. package/lib/container/ModuleFederationPlugin.js +7 -18
  149. package/lib/container/RemoteModule.js +27 -19
  150. package/lib/container/RemoteRuntimeModule.js +10 -8
  151. package/lib/container/moduleFederationHooks.js +32 -0
  152. package/lib/css/CssGenerator.js +178 -44
  153. package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
  154. package/lib/css/CssLoadingRuntimeModule.js +82 -36
  155. package/lib/css/CssModule.js +10 -7
  156. package/lib/css/CssModulesPlugin.js +197 -106
  157. package/lib/css/CssParser.js +1248 -618
  158. package/lib/css/CssServerStylesRuntimeModule.js +54 -0
  159. package/lib/css/cssMinify.js +168 -0
  160. package/lib/css/data.js +5324 -0
  161. package/lib/css/syntax.js +10396 -952
  162. package/lib/debug/ProfilingPlugin.js +14 -9
  163. package/lib/deno/DenoTargetPlugin.js +1 -1
  164. package/lib/dependencies/AMDDefineDependency.js +112 -87
  165. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
  166. package/lib/dependencies/AMDPlugin.js +9 -7
  167. package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
  168. package/lib/dependencies/AMDRequireContextDependency.js +2 -2
  169. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
  170. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
  171. package/lib/dependencies/AMDRequireDependency.js +8 -7
  172. package/lib/dependencies/AMDRequireItemDependency.js +1 -1
  173. package/lib/dependencies/AMDRuntimeModules.js +21 -1
  174. package/lib/dependencies/BuildTimeConstDependency.js +102 -0
  175. package/lib/dependencies/CachedConstDependency.js +11 -8
  176. package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
  177. package/lib/dependencies/CommonJsExportRequireDependency.js +140 -45
  178. package/lib/dependencies/CommonJsExportsDependency.js +53 -49
  179. package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
  180. package/lib/dependencies/CommonJsFullRequireDependency.js +140 -26
  181. package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -48
  182. package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
  183. package/lib/dependencies/CommonJsPlugin.js +35 -6
  184. package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
  185. package/lib/dependencies/CommonJsRequireDependency.js +156 -27
  186. package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
  187. package/lib/dependencies/ConstDependency.js +8 -9
  188. package/lib/dependencies/ContextDependency.js +12 -8
  189. package/lib/dependencies/ContextDependencyHelpers.js +14 -9
  190. package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
  191. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
  192. package/lib/dependencies/ContextElementDependency.js +31 -12
  193. package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
  194. package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
  195. package/lib/dependencies/CssIcssExportDependency.js +56 -28
  196. package/lib/dependencies/CssIcssImportDependency.js +17 -13
  197. package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
  198. package/lib/dependencies/CssImportDependency.js +18 -9
  199. package/lib/dependencies/CssUrlDependency.js +17 -13
  200. package/lib/dependencies/DllEntryDependency.js +1 -1
  201. package/lib/dependencies/DynamicExports.js +2 -2
  202. package/lib/dependencies/ExportBindingInitFragment.js +36 -9
  203. package/lib/dependencies/ExportsInfoDependency.js +7 -8
  204. package/lib/dependencies/ExternalModuleDependency.js +9 -5
  205. package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
  206. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
  207. package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
  208. package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
  209. package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
  210. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +15 -11
  211. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
  212. package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
  213. package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
  214. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +159 -71
  215. package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
  216. package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
  217. package/lib/dependencies/HarmonyExports.js +7 -4
  218. package/lib/dependencies/HarmonyImportDependency.js +28 -20
  219. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
  220. package/lib/dependencies/HarmonyImportGuard.js +21 -30
  221. package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
  222. package/lib/dependencies/HarmonyImportSpecifierDependency.js +106 -55
  223. package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
  224. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
  225. package/lib/dependencies/HtmlEntryDependency.js +37 -29
  226. package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
  227. package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
  228. package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
  229. package/lib/dependencies/HtmlSourceDependency.js +22 -14
  230. package/lib/dependencies/ImportContextDependency.js +2 -2
  231. package/lib/dependencies/ImportDependency.js +24 -20
  232. package/lib/dependencies/ImportEagerDependency.js +6 -9
  233. package/lib/dependencies/ImportMetaContextDependency.js +2 -2
  234. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
  235. package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
  236. package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
  237. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
  238. package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
  239. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
  240. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
  241. package/lib/dependencies/ImportMetaPlugin.js +154 -71
  242. package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
  243. package/lib/dependencies/ImportParserPlugin.js +49 -35
  244. package/lib/dependencies/ImportPhase.js +12 -5
  245. package/lib/dependencies/ImportPlugin.js +7 -3
  246. package/lib/dependencies/ImportWeakDependency.js +6 -9
  247. package/lib/dependencies/JsonExportsDependency.js +11 -7
  248. package/lib/dependencies/LoaderDependency.js +2 -2
  249. package/lib/dependencies/LoaderImportDependency.js +2 -2
  250. package/lib/dependencies/LoaderPlugin.js +11 -7
  251. package/lib/dependencies/LocalModuleDependency.js +5 -5
  252. package/lib/dependencies/LocalModulesHelpers.js +1 -1
  253. package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
  254. package/lib/dependencies/ModuleDependency.js +9 -6
  255. package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
  256. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
  257. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  258. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
  259. package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
  260. package/lib/dependencies/NullDependency.js +3 -3
  261. package/lib/dependencies/ProvidedDependency.js +14 -10
  262. package/lib/dependencies/PureExpressionDependency.js +9 -10
  263. package/lib/dependencies/RequireContextDependency.js +2 -2
  264. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
  265. package/lib/dependencies/RequireContextPlugin.js +8 -4
  266. package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
  267. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
  268. package/lib/dependencies/RequireEnsureDependency.js +8 -7
  269. package/lib/dependencies/RequireEnsurePlugin.js +7 -3
  270. package/lib/dependencies/RequireHeaderDependency.js +51 -12
  271. package/lib/dependencies/RequireIncludeDependency.js +6 -6
  272. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
  273. package/lib/dependencies/RequireIncludePlugin.js +7 -3
  274. package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
  275. package/lib/dependencies/RequireResolveContextDependency.js +2 -2
  276. package/lib/dependencies/RequireResolveDependency.js +4 -4
  277. package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
  278. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
  279. package/lib/dependencies/StaticExportsDependency.js +2 -2
  280. package/lib/dependencies/SystemPlugin.js +10 -6
  281. package/lib/dependencies/SystemRuntimeModule.js +10 -0
  282. package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
  283. package/lib/dependencies/URLContextDependency.js +2 -2
  284. package/lib/dependencies/URLDependency.js +110 -64
  285. package/lib/dependencies/URLPlugin.js +7 -3
  286. package/lib/dependencies/UnsupportedDependency.js +4 -4
  287. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
  288. package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
  289. package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
  290. package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
  291. package/lib/dependencies/WorkerDependency.js +28 -22
  292. package/lib/dependencies/WorkletDependency.js +15 -14
  293. package/lib/dependencies/getFunctionExpression.js +8 -4
  294. package/lib/dependencies/processExportInfo.js +5 -5
  295. package/lib/dll/DelegatedModule.js +34 -22
  296. package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
  297. package/lib/dll/DelegatedPlugin.js +2 -2
  298. package/lib/dll/DllEntryPlugin.js +2 -2
  299. package/lib/dll/DllModule.js +22 -15
  300. package/lib/dll/DllModuleFactory.js +7 -3
  301. package/lib/dll/DllPlugin.js +7 -5
  302. package/lib/dll/DllReferencePlugin.js +10 -7
  303. package/lib/dll/LibManifestPlugin.js +5 -5
  304. package/lib/electron/ElectronTargetPlugin.js +53 -49
  305. package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
  306. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  307. package/lib/errors/BroadContextsWarning.js +43 -0
  308. package/lib/errors/BuildCycleError.js +1 -1
  309. package/lib/errors/CacheEffectivenessWarning.js +55 -0
  310. package/lib/errors/ChunkRenderError.js +1 -1
  311. package/lib/errors/CircularDependenciesWarning.js +38 -0
  312. package/lib/errors/CodeGenerationError.js +1 -1
  313. package/lib/errors/CommentCompilationWarning.js +1 -1
  314. package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
  315. package/lib/errors/DuplicateModulesWarning.js +45 -0
  316. package/lib/errors/DynamicExportsWarning.js +30 -0
  317. package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
  318. package/lib/errors/EntrypointOverlapWarning.js +45 -0
  319. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  320. package/lib/errors/EvalUsageWarning.js +28 -0
  321. package/lib/errors/HookWebpackError.js +5 -5
  322. package/lib/errors/HotspotsWarning.js +57 -0
  323. package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
  324. package/lib/errors/InlinedAssetsWarning.js +36 -0
  325. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  326. package/lib/errors/LargeModulesWarning.js +45 -0
  327. package/lib/errors/LegacyJavascriptWarning.js +48 -0
  328. package/lib/errors/MissingSideEffectsWarning.js +36 -0
  329. package/lib/errors/MixedExportsWarning.js +41 -0
  330. package/lib/errors/ModuleDependencyError.js +13 -16
  331. package/lib/errors/ModuleDependencyWarning.js +5 -15
  332. package/lib/errors/ModuleHashingError.js +1 -1
  333. package/lib/errors/ModuleNotFoundError.js +2 -2
  334. package/lib/errors/ModuleParseError.js +1 -2
  335. package/lib/errors/ModuleRestoreError.js +1 -1
  336. package/lib/errors/ModuleStoreError.js +1 -1
  337. package/lib/errors/NodeStuffInWebError.js +1 -1
  338. package/lib/errors/OsDependentRuleWarning.js +31 -0
  339. package/lib/errors/PureAnnotationsWarning.js +36 -0
  340. package/lib/errors/RedundantDynamicImportWarning.js +31 -0
  341. package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
  342. package/lib/errors/SplitChunksCappedWarning.js +41 -0
  343. package/lib/errors/TinyChunksWarning.js +40 -0
  344. package/lib/errors/TopLevelThisWarning.js +34 -0
  345. package/lib/errors/UnsplitVendorsWarning.js +42 -0
  346. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  347. package/lib/errors/UnusedAliasesWarning.js +29 -0
  348. package/lib/errors/UnusedDefinesWarning.js +29 -0
  349. package/lib/errors/UnusedExternalsWarning.js +29 -0
  350. package/lib/errors/UnusedReexportsWarning.js +42 -0
  351. package/lib/errors/UnusedRuleWarning.js +29 -0
  352. package/lib/errors/WebpackError.js +9 -5
  353. package/lib/errors/deriveStackFromNestedError.js +90 -0
  354. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  355. package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
  356. package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
  357. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +170 -71
  358. package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
  359. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  360. package/lib/hmr/LazyCompilationPlugin.js +45 -24
  361. package/lib/hmr/lazyCompilationBackend.js +28 -10
  362. package/lib/hmr/parserHooks.js +56 -0
  363. package/lib/html/HtmlGenerator.js +299 -79
  364. package/lib/html/HtmlModule.js +7 -3
  365. package/lib/html/HtmlModulesPlugin.js +312 -174
  366. package/lib/html/HtmlParser.js +31 -86
  367. package/lib/html/data.js +1928 -0
  368. package/lib/html/htmlMinify.js +288 -0
  369. package/lib/html/syntax.js +7819 -3331
  370. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
  371. package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
  372. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  373. package/lib/ids/HashedModuleIdsPlugin.js +6 -2
  374. package/lib/ids/IdHelpers.js +31 -18
  375. package/lib/ids/NamedChunkIdsPlugin.js +1 -1
  376. package/lib/ids/NamedModuleIdsPlugin.js +1 -1
  377. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  378. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  379. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
  380. package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
  381. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  382. package/lib/index.js +10 -0
  383. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
  384. package/lib/javascript/BasicEvaluatedExpression.js +18 -14
  385. package/lib/javascript/ChunkFormatHelpers.js +6 -6
  386. package/lib/javascript/ChunkHelpers.js +1 -1
  387. package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
  388. package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
  389. package/lib/javascript/JavascriptGenerator.js +65 -165
  390. package/lib/javascript/JavascriptModule.js +9 -3
  391. package/lib/javascript/JavascriptModulesPlugin.js +181 -162
  392. package/lib/javascript/JavascriptParser.js +291 -112
  393. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  394. package/lib/javascript/ScopeAnalyzer.js +1094 -0
  395. package/lib/javascript/StartupHelpers.js +55 -9
  396. package/lib/javascript/syntax.js +3403 -300
  397. package/lib/json/JsonData.js +8 -4
  398. package/lib/json/JsonGenerator.js +38 -16
  399. package/lib/json/JsonModule.js +7 -3
  400. package/lib/json/JsonModulesPlugin.js +1 -1
  401. package/lib/json/JsonParser.js +5 -6
  402. package/lib/library/AbstractLibraryPlugin.js +20 -14
  403. package/lib/library/AmdLibraryPlugin.js +11 -7
  404. package/lib/library/AssignLibraryPlugin.js +19 -13
  405. package/lib/library/EnableLibraryPlugin.js +2 -2
  406. package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
  407. package/lib/library/JsonpLibraryPlugin.js +11 -7
  408. package/lib/library/ModuleLibraryPlugin.js +256 -64
  409. package/lib/library/SystemLibraryPlugin.js +12 -8
  410. package/lib/library/UmdLibraryPlugin.js +62 -25
  411. package/lib/loaders/LoaderRunner.js +14 -1
  412. package/lib/loaders/loadLoader.js +8 -4
  413. package/lib/logging/createConsoleLogger.js +7 -4
  414. package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
  415. package/lib/node/NodeEnvironmentPlugin.js +17 -3
  416. package/lib/node/NodeSourcePlugin.js +1 -1
  417. package/lib/node/NodeTargetPlugin.js +4 -3
  418. package/lib/node/NodeTemplatePlugin.js +1 -1
  419. package/lib/node/NodeWatchFileSystem.js +70 -9
  420. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
  421. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +81 -20
  422. package/lib/node/ReadFileCompileWasmPlugin.js +37 -17
  423. package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
  424. package/lib/node/nodeConsole.js +7 -3
  425. package/lib/optimize/AggressiveMergingPlugin.js +21 -17
  426. package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
  427. package/lib/optimize/ConcatenatedModule.js +996 -477
  428. package/lib/optimize/ConstExportsPlugin.js +11 -7
  429. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  430. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
  431. package/lib/optimize/InlineExports.js +9 -5
  432. package/lib/optimize/InnerGraph.js +28 -12
  433. package/lib/optimize/InnerGraphPlugin.js +23 -18
  434. package/lib/optimize/LimitChunkCountPlugin.js +7 -3
  435. package/lib/optimize/MangleExportsPlugin.js +7 -8
  436. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
  437. package/lib/optimize/MinChunkSizePlugin.js +7 -3
  438. package/lib/optimize/ModuleConcatenationPlugin.js +124 -59
  439. package/lib/optimize/RealContentHashPlugin.js +20 -13
  440. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  441. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  442. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  443. package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
  444. package/lib/optimize/SplitChunksPlugin.js +232 -68
  445. package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
  446. package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
  447. package/lib/performance/BroadContextsPlugin.js +142 -0
  448. package/lib/performance/CacheEffectivenessPlugin.js +125 -0
  449. package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
  450. package/lib/performance/DuplicateModulesPlugin.js +93 -0
  451. package/lib/performance/DuplicatePackagesPlugin.js +119 -0
  452. package/lib/performance/DuplicatePackagesWarning.js +84 -0
  453. package/lib/performance/DynamicExportsPlugin.js +120 -0
  454. package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
  455. package/lib/performance/EntrypointOverlapPlugin.js +122 -0
  456. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
  457. package/lib/performance/EvalUsagePlugin.js +115 -0
  458. package/lib/performance/HotspotsPlugin.js +296 -0
  459. package/lib/performance/InlinedAssetsPlugin.js +99 -0
  460. package/lib/performance/LargeModulesPlugin.js +126 -0
  461. package/lib/performance/LegacyJavascriptPlugin.js +139 -0
  462. package/lib/performance/MissingSideEffectsPlugin.js +138 -0
  463. package/lib/performance/MixedExportsPlugin.js +136 -0
  464. package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
  465. package/lib/performance/PureAnnotationsPlugin.js +219 -0
  466. package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
  467. package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
  468. package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
  469. package/lib/performance/SizeLimitsPlugin.js +139 -7
  470. package/lib/performance/SplitChunksCappedPlugin.js +99 -0
  471. package/lib/performance/TinyChunksPlugin.js +128 -0
  472. package/lib/performance/TopLevelThisPlugin.js +208 -0
  473. package/lib/performance/UnsplitVendorsPlugin.js +112 -0
  474. package/lib/performance/UnusedAliasesPlugin.js +253 -0
  475. package/lib/performance/UnusedDefinesPlugin.js +87 -0
  476. package/lib/performance/UnusedExternalsPlugin.js +110 -0
  477. package/lib/performance/UnusedReexportsPlugin.js +159 -0
  478. package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
  479. package/lib/performance/getModuleSize.js +22 -0
  480. package/lib/performance/getSourceModules.js +22 -0
  481. package/lib/performance/hasOnlyUnusedExports.js +40 -0
  482. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
  483. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
  484. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
  485. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  486. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  487. package/lib/prefetch/ResourceHintPlugin.js +377 -136
  488. package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
  489. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
  490. package/lib/prefetch/parseResourceHintOptions.js +31 -4
  491. package/lib/rules/BasicEffectRulePlugin.js +2 -2
  492. package/lib/rules/BasicMatcherRulePlugin.js +8 -4
  493. package/lib/rules/GlobMatcherRulePlugin.js +68 -0
  494. package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
  495. package/lib/rules/RuleSetCompiler.js +146 -12
  496. package/lib/rules/UseEffectRulePlugin.js +18 -11
  497. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
  498. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  499. package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
  500. package/lib/runtime/BaseUriRuntimeModule.js +33 -7
  501. package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
  502. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
  503. package/lib/runtime/CompatRuntimeModule.js +5 -3
  504. package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
  505. package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
  506. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
  507. package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
  508. package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
  509. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
  510. package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
  511. package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
  512. package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
  513. package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
  514. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
  515. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
  516. package/lib/runtime/GlobalRuntimeModule.js +18 -0
  517. package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
  518. package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
  519. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
  520. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
  521. package/lib/runtime/NonceRuntimeModule.js +10 -0
  522. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
  523. package/lib/runtime/PublicPathRuntimeModule.js +12 -2
  524. package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
  525. package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
  526. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
  527. package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
  528. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  529. package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
  530. package/lib/runtime/SystemContextRuntimeModule.js +10 -0
  531. package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
  532. package/lib/runtime/WorkerRuntimeModule.js +11 -1
  533. package/lib/runtime/baseUri.js +63 -0
  534. package/lib/schemes/DataUriPlugin.js +1 -1
  535. package/lib/schemes/FileUriPlugin.js +1 -1
  536. package/lib/schemes/HttpUriPlugin.js +24 -15
  537. package/lib/schemes/VirtualUrlPlugin.js +13 -7
  538. package/lib/serialization/AggregateErrorSerializer.js +1 -1
  539. package/lib/serialization/BinaryMiddleware.js +274 -942
  540. package/lib/serialization/ErrorObjectSerializer.js +1 -1
  541. package/lib/serialization/FileMiddleware.js +305 -66
  542. package/lib/serialization/ObjectMiddleware.js +139 -114
  543. package/lib/serialization/PlainObjectSerializer.js +19 -16
  544. package/lib/sharing/ConsumeSharedModule.js +30 -21
  545. package/lib/sharing/ConsumeSharedPlugin.js +18 -10
  546. package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
  547. package/lib/sharing/ProvideSharedModule.js +25 -16
  548. package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
  549. package/lib/sharing/ProvideSharedPlugin.js +8 -4
  550. package/lib/sharing/SharePlugin.js +17 -5
  551. package/lib/sharing/ShareRuntimeModule.js +4 -4
  552. package/lib/sharing/resolveMatchedConfigs.js +9 -6
  553. package/lib/sharing/utils.js +1 -3
  554. package/lib/stats/DefaultStatsFactoryPlugin.js +253 -226
  555. package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
  556. package/lib/stats/DefaultStatsPrinterPlugin.js +60 -192
  557. package/lib/stats/StatsFactory.js +56 -35
  558. package/lib/stats/StatsPrinter.js +16 -12
  559. package/lib/typescript/TypeScriptPlugin.js +12 -14
  560. package/lib/url/URLParserPlugin.js +26 -13
  561. package/lib/util/AsyncQueue.js +4 -3
  562. package/lib/util/Hash.js +5 -1
  563. package/lib/util/LazySet.js +35 -22
  564. package/lib/util/LocConverter.js +36 -13
  565. package/lib/util/SourceProcessor.js +1050 -24
  566. package/lib/util/StringXor.js +1 -1
  567. package/lib/util/chainedImports.js +9 -5
  568. package/lib/util/cleverMerge.js +1 -1
  569. package/lib/util/comparators.js +45 -14
  570. package/lib/util/concatenate.js +203 -77
  571. package/lib/util/conventions.js +5 -1
  572. package/lib/util/createHash.js +2 -2
  573. package/lib/util/createHooksRegistry.js +8 -10
  574. package/lib/util/dataURL.js +225 -1
  575. package/lib/util/extractSourceMap.js +4 -3
  576. package/lib/util/findCaseMismatch.js +139 -0
  577. package/lib/util/formatLocation.js +1 -2
  578. package/lib/util/fs.js +22 -5
  579. package/lib/util/globUtils.js +298 -24
  580. package/lib/util/hash/BatchedHash.js +5 -1
  581. package/lib/util/hash/BulkUpdateHash.js +5 -1
  582. package/lib/util/hash/DebugHash.js +5 -1
  583. package/lib/util/hash/hash-digest.js +6 -2
  584. package/lib/util/identifier.js +25 -1
  585. package/lib/util/implicitTypeLoaderFallback.js +1 -1
  586. package/lib/util/internalSerializables.js +6 -0
  587. package/lib/util/lazyModule.js +56 -0
  588. package/lib/util/makeSerializable.js +7 -3
  589. package/lib/util/matchAlias.js +25 -0
  590. package/lib/util/mimeTypes.js +11 -5
  591. package/lib/util/nonNumericOnlyHash.js +4 -3
  592. package/lib/util/parseJson.js +5 -3
  593. package/lib/util/preloadModuleType.js +32 -0
  594. package/lib/util/registerExternalSerializer.js +7 -5
  595. package/lib/util/runtime.js +2 -2
  596. package/lib/util/semver.js +1 -1
  597. package/lib/util/serialization.js +28 -28
  598. package/lib/util/source.js +2 -2
  599. package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
  600. package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
  601. package/lib/wasm/wasmModuleFilename.js +54 -0
  602. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
  603. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
  604. package/lib/wasm-async/AsyncWasmModule.js +3 -3
  605. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
  606. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
  607. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
  608. package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
  609. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
  610. package/lib/wasm-sync/SyncWasmModule.js +2 -2
  611. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
  612. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
  613. package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
  614. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
  615. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
  616. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
  617. package/lib/wasm-sync/WebAssemblyParser.js +4 -6
  618. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  619. package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
  620. package/lib/web/FetchCompileWasmPlugin.js +46 -16
  621. package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
  622. package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
  623. package/lib/web/JsonpTemplatePlugin.js +2 -2
  624. package/lib/webpack.js +22 -11
  625. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
  626. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
  627. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  628. package/module.d.ts +1 -0
  629. package/package.json +37 -30
  630. package/schemas/WebpackOptions.check.js +1 -1
  631. package/schemas/WebpackOptions.json +780 -91
  632. package/schemas/plugins/HtmlParserOptions.check.js +1 -1
  633. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  634. package/schemas/plugins/container/ContainerPlugin.json +10 -0
  635. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  636. package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
  637. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
  638. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  639. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  640. package/types.d.ts +4013 -738
  641. package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
@@ -23,13 +23,8 @@ const Module = require("./Module");
23
23
  const ModuleGraphConnection = require("./ModuleGraphConnection");
24
24
  const { JAVASCRIPT_MODULE_TYPE_AUTO } = require("./ModuleTypeConstants");
25
25
  const RuntimeGlobals = require("./RuntimeGlobals");
26
+ const HarmonyImportSideEffectDependency = require("./dependencies/HarmonyImportSideEffectDependency");
26
27
  const HookWebpackError = require("./errors/HookWebpackError");
27
- const ModuleBuildError = require("./errors/ModuleBuildError");
28
- const ModuleError = require("./errors/ModuleError");
29
- const ModuleParseError = require("./errors/ModuleParseError");
30
- const ModuleWarning = require("./errors/ModuleWarning");
31
- const NonErrorEmittedError = require("./errors/NonErrorEmittedError");
32
- const UnhandledSchemeError = require("./errors/UnhandledSchemeError");
33
28
  const {
34
29
  createLoaderContext,
35
30
  getContext,
@@ -52,63 +47,107 @@ const {
52
47
  ABSOLUTE_PATH_REGEXP,
53
48
  absolutify,
54
49
  contextify,
55
- makePathsRelative
50
+ contextifySourceUrl
56
51
  } = require("./util/identifier");
57
52
  const makeSerializable = require("./util/makeSerializable");
58
53
  const memoize = require("./util/memoize");
59
54
  const parseJson = require("./util/parseJson");
60
55
 
61
- /** @typedef {import("enhanced-resolve").ResolveContext} ResolveContext */
62
- /** @typedef {import("enhanced-resolve").ResolveRequest} ResolveRequest */
63
- /** @typedef {import("webpack-sources").Source} Source */
64
- /** @typedef {import("webpack-sources").RawSourceMap} RawSourceMap */
65
- /** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
66
- /** @typedef {import("../declarations/WebpackOptions").NoParse} NoParse */
67
- /** @typedef {import("./Compilation")} Compilation */
68
- /** @typedef {import("./config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
69
- /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
70
- /** @typedef {import("./Generator")} Generator */
71
- /** @typedef {import("./Generator").GenerateErrorFn} GenerateErrorFn */
72
- /** @typedef {import("./FileSystemInfo").Snapshot} Snapshot */
73
- /** @typedef {import("./Module").BuildInfo} BuildInfo */
74
- /** @typedef {import("./Module").FileSystemDependencies} FileSystemDependencies */
75
- /** @typedef {import("./Module").ValueCacheVersions} ValueCacheVersions */
76
- /** @typedef {import("./Module").BuildMeta} BuildMeta */
77
- /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */
78
- /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */
79
- /** @typedef {import("./Module").CodeGenerationResultData} CodeGenerationResultData */
80
- /** @typedef {import("./Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */
81
- /** @typedef {import("./Module").KnownBuildInfo} KnownBuildInfo */
82
- /** @typedef {import("./Module").LibIdentOptions} LibIdentOptions */
83
- /** @typedef {import("./Module").LibIdent} LibIdent */
84
- /** @typedef {import("./Module").NameForCondition} NameForCondition */
85
- /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */
86
- /** @typedef {import("./Module").NeedBuildCallback} NeedBuildCallback */
87
- /** @typedef {import("./Module").BuildCallback} BuildCallback */
88
- /** @typedef {import("./Module").RuntimeRequirements} RuntimeRequirements */
89
- /** @typedef {import("./Module").Sources} Sources */
90
- /** @typedef {import("./Module").SourceType} SourceType */
91
- /** @typedef {import("./Module").SourceTypes} SourceTypes */
92
- /** @typedef {import("./Module").UnsafeCacheData} UnsafeCacheData */
93
- /** @typedef {import("./ModuleGraph")} ModuleGraph */
94
- /** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */
95
- /** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */
96
- /** @typedef {import("./NormalModuleFactory").NormalModuleTypes} NormalModuleTypes */
97
- /** @typedef {import("./NormalModuleFactory").ParserByType} ParserByType */
98
- /** @typedef {import("./NormalModuleFactory").ParserOptionsByType} ParserOptionsByType */
99
- /** @typedef {import("./NormalModuleFactory").GeneratorByType} GeneratorByType */
100
- /** @typedef {import("./NormalModuleFactory").GeneratorOptionsByType} GeneratorOptionsByType */
101
- /** @typedef {import("./NormalModuleFactory").ResourceSchemeData} ResourceSchemeData */
102
- /** @typedef {import("./Parser")} Parser */
103
- /** @typedef {import("./Parser").PreparsedAst} PreparsedAst */
104
- /** @typedef {import("./RequestShortener")} RequestShortener */
105
- /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
106
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
107
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
108
- /** @typedef {import("./util/Hash")} Hash */
109
- /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
110
- /** @typedef {import("../declarations/WebpackOptions").HashFunction} HashFunction */
111
- /** @typedef {import("./util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
56
+ const getValidate = memoize(() => require("schema-utils").validate);
57
+
58
+ const getGenerator = memoize(() => require("./Generator"));
59
+
60
+ const getExtractSourceMap = memoize(() => require("./util/extractSourceMap"));
61
+
62
+ const getInvalidDependenciesModuleWarning = memoize(() =>
63
+ require("./errors/InvalidDependenciesModuleWarning")
64
+ );
65
+
66
+ const getUnhandledSchemeError = memoize(() =>
67
+ require("./errors/UnhandledSchemeError")
68
+ );
69
+
70
+ const getNonErrorEmittedError = memoize(() =>
71
+ require("./errors/NonErrorEmittedError")
72
+ );
73
+
74
+ const getModuleWarning = memoize(() => require("./errors/ModuleWarning"));
75
+
76
+ const getModuleParseError = memoize(() => require("./errors/ModuleParseError"));
77
+
78
+ const getModuleError = memoize(() => require("./errors/ModuleError"));
79
+
80
+ const getModuleBuildError = memoize(() => require("./errors/ModuleBuildError"));
81
+
82
+ /** @import { ResolveContext, ResolveRequest } from "enhanced-resolve" */
83
+ /** @import { Source, RawSourceMap } from "webpack-sources" */
84
+ /**
85
+ * @import {
86
+ * ResolveOptions,
87
+ * NoParse,
88
+ * HashFunction
89
+ * } from "../declarations/WebpackOptions"
90
+ */
91
+ /**
92
+ * @import Compilation, {
93
+ * FileSystemDependencies,
94
+ * UnsafeCacheData
95
+ * } from "./Compilation"
96
+ */
97
+ /**
98
+ * @import {
99
+ * WebpackOptionsNormalizedWithDefaults as WebpackOptions
100
+ * } from "./config/defaults"
101
+ */
102
+ /** @import { UpdateHashContext } from "./Dependency" */
103
+ /** @import Generator, { GenerateErrorFn } from "./Generator" */
104
+ /** @import { Snapshot } from "./FileSystemInfo" */
105
+ /**
106
+ * @import {
107
+ * BuildInfo,
108
+ * ValueCacheVersions,
109
+ * BuildMeta,
110
+ * CodeGenerationContext,
111
+ * CodeGenerationResult,
112
+ * CodeGenerationResultData,
113
+ * ConcatenationBailoutReasonContext,
114
+ * KnownBuildInfo,
115
+ * LibIdentOptions,
116
+ * LibIdent,
117
+ * NameForCondition,
118
+ * NeedBuildContext,
119
+ * NeedBuildCallback,
120
+ * BuildCallback,
121
+ * RuntimeRequirements,
122
+ * Sources,
123
+ * SourceType,
124
+ * SourceTypes
125
+ * } from "./Module"
126
+ */
127
+ /** @import ModuleGraph from "./ModuleGraph" */
128
+ /** @import { ConnectionState } from "./ModuleGraphConnection" */
129
+ /**
130
+ * @import NormalModuleFactory, {
131
+ * NormalModuleTypes,
132
+ * ParserByType,
133
+ * ParserOptionsByType,
134
+ * GeneratorByType,
135
+ * GeneratorOptionsByType,
136
+ * ResourceSchemeData
137
+ * } from "./NormalModuleFactory"
138
+ */
139
+ /** @import Parser, { PreparsedAst } from "./Parser" */
140
+ /** @import RequestShortener from "./RequestShortener" */
141
+ /** @import { ResolverWithOptions } from "./ResolverFactory" */
142
+ /**
143
+ * @import {
144
+ * ObjectDeserializerContext,
145
+ * ObjectSerializerContext
146
+ * } from "./serialization/ObjectMiddleware"
147
+ */
148
+ /** @import Hash from "./util/Hash" */
149
+ /** @import { InputFileSystem } from "./util/fs" */
150
+ /** @import { AssociatedObjectForCache } from "./util/identifier" */
112
151
  /**
113
152
  * @template T
114
153
  * @typedef {import("./util/deprecation").FakeHook<T>} FakeHook
@@ -129,18 +168,6 @@ const parseJson = require("./util/parseJson");
129
168
 
130
169
  /** @typedef {(content: string) => boolean} NoParseFn */
131
170
 
132
- const getInvalidDependenciesModuleWarning = memoize(() =>
133
- require("./errors/InvalidDependenciesModuleWarning")
134
- );
135
-
136
- const getExtractSourceMap = memoize(() => require("./util/extractSourceMap"));
137
-
138
- const getValidate = memoize(() => require("schema-utils").validate);
139
-
140
- const getHarmonyImportSideEffectDependency = memoize(() =>
141
- require("./dependencies/HarmonyImportSideEffectDependency")
142
- );
143
-
144
171
  /**
145
172
  * @param {NormalModule} mod the module
146
173
  * @param {ModuleGraph} moduleGraph the module graph
@@ -391,21 +418,6 @@ const walkSideEffects = (rootMod, moduleGraph, SideEffectDep) => {
391
418
  * @property {string | null=} type
392
419
  */
393
420
 
394
- /**
395
- * @param {string} context absolute context path
396
- * @param {string} source a source path
397
- * @param {AssociatedObjectForCache=} associatedObjectForCache an object to which the cache will be attached
398
- * @returns {string} new source path
399
- */
400
- const contextifySourceUrl = (context, source, associatedObjectForCache) => {
401
- if (source.startsWith("webpack://")) return source;
402
- return `webpack://${makePathsRelative(
403
- context,
404
- source,
405
- associatedObjectForCache
406
- )}`;
407
- };
408
-
409
421
  /**
410
422
  * @param {string} context absolute context path
411
423
  * @param {string | RawSourceMap} sourceMap a source map
@@ -471,16 +483,79 @@ const asBuffer = (input) => {
471
483
  * @typedef {HookMap<FakeHook<AsyncSeriesBailHook<[string, NormalModule], string | Buffer | null>>>} DeprecatedReadResourceForScheme
472
484
  */
473
485
 
486
+ const createCompilationHooks = () => {
487
+ /** @type {HookMap<AsyncSeriesBailHook<[AnyLoaderContext], string | Buffer | null>>} */
488
+ const readResource = new HookMap(
489
+ () => new AsyncSeriesBailHook(["loaderContext"])
490
+ );
491
+ return {
492
+ // TODO webpack 6 deprecate
493
+ /**
494
+ * @deprecated Use the `readResource` hook instead.
495
+ * @type {DeprecatedReadResourceForScheme}
496
+ */
497
+ readResourceForScheme: new HookMap((scheme) => {
498
+ const hook = readResource.for(scheme);
499
+ return createFakeHook(
500
+ /** @type {AsyncSeriesBailHook<[string, NormalModule], string | Buffer | null>} */ ({
501
+ tap: (options, fn) =>
502
+ hook.tap(options, (loaderContext) =>
503
+ fn(
504
+ loaderContext.resource,
505
+ /** @type {NormalModule} */ (loaderContext._module)
506
+ )
507
+ ),
508
+ tapAsync: (options, fn) =>
509
+ hook.tapAsync(options, (loaderContext, callback) =>
510
+ fn(
511
+ loaderContext.resource,
512
+ /** @type {NormalModule} */ (loaderContext._module),
513
+ callback
514
+ )
515
+ ),
516
+ tapPromise: (options, fn) =>
517
+ hook.tapPromise(options, (loaderContext) =>
518
+ fn(
519
+ loaderContext.resource,
520
+ /** @type {NormalModule} */ (loaderContext._module)
521
+ )
522
+ )
523
+ })
524
+ );
525
+ }),
526
+ /**
527
+ * @since 5.58.0
528
+ */
529
+ readResource,
530
+ /** @type {SyncHook<[AnyLoaderContext, NormalModule]>} */
531
+ loader: new SyncHook(["loaderContext", "module"]),
532
+ /** @type {SyncHook<[LoaderItem[], NormalModule, AnyLoaderContext]>} */
533
+ beforeLoaders: new SyncHook(["loaders", "module", "loaderContext"]),
534
+ /**
535
+ * @type {SyncHook<[NormalModule]>}
536
+ * @since 5.59.0
537
+ */
538
+ beforeParse: new SyncHook(["module"]),
539
+ /**
540
+ * @type {SyncHook<[NormalModule]>}
541
+ * @since 5.59.0
542
+ */
543
+ beforeSnapshot: new SyncHook(["module"]),
544
+ /**
545
+ * @type {SyncWaterfallHook<[Result, NormalModule]>}
546
+ * @since 5.99.0
547
+ */
548
+ processResult: new SyncWaterfallHook(["result", "module"]),
549
+ /**
550
+ * @type {AsyncSeriesBailHook<[NormalModule, NeedBuildContext], boolean>}
551
+ * @since 5.49.0
552
+ */
553
+ needBuild: new AsyncSeriesBailHook(["module", "context"])
554
+ };
555
+ };
556
+
474
557
  /**
475
- * @typedef {object} NormalModuleCompilationHooks
476
- * @property {SyncHook<[AnyLoaderContext, NormalModule]>} loader
477
- * @property {SyncHook<[LoaderItem[], NormalModule, AnyLoaderContext]>} beforeLoaders
478
- * @property {SyncHook<[NormalModule]>} beforeParse
479
- * @property {SyncHook<[NormalModule]>} beforeSnapshot
480
- * @property {DeprecatedReadResourceForScheme} readResourceForScheme
481
- * @property {HookMap<AsyncSeriesBailHook<[AnyLoaderContext], string | Buffer | null>>} readResource
482
- * @property {SyncWaterfallHook<[Result, NormalModule]>} processResult
483
- * @property {AsyncSeriesBailHook<[NormalModule, NeedBuildContext], boolean>} needBuild
558
+ * @typedef {ReturnType<typeof createCompilationHooks>} NormalModuleCompilationHooks
484
559
  */
485
560
 
486
561
  /**
@@ -518,58 +593,13 @@ const asBuffer = (input) => {
518
593
  * @property {FileSystemDependencies=} missingDependencies
519
594
  * @property {FileSystemDependencies=} buildDependencies
520
595
  * @property {ValueCacheVersions=} valueDependencies
521
- * @property {(Snapshot | null)=} snapshot
596
+ * @property {(InstanceType<Snapshot> | null)=} snapshot
522
597
  * @property {string=} resourceIntegrity using in HttpUriPlugin
523
598
  */
524
599
 
525
600
  /** @typedef {BuildInfo & KnownNormalModuleBuildInfo} NormalModuleBuildInfo */
526
601
 
527
- const normalModuleHooksRegistry = createHooksRegistry(() => {
528
- // TODO webpack 6 deprecate
529
- /** @type {Partial<NormalModuleCompilationHooks>} */
530
- const hooks = {};
531
- hooks.readResourceForScheme = new HookMap((scheme) => {
532
- const hook =
533
- /** @type {NormalModuleCompilationHooks} */
534
- (hooks).readResource.for(scheme);
535
- return createFakeHook(
536
- /** @type {AsyncSeriesBailHook<[string, NormalModule], string | Buffer | null>} */ ({
537
- tap: (options, fn) =>
538
- hook.tap(options, (loaderContext) =>
539
- fn(
540
- loaderContext.resource,
541
- /** @type {NormalModule} */ (loaderContext._module)
542
- )
543
- ),
544
- tapAsync: (options, fn) =>
545
- hook.tapAsync(options, (loaderContext, callback) =>
546
- fn(
547
- loaderContext.resource,
548
- /** @type {NormalModule} */ (loaderContext._module),
549
- callback
550
- )
551
- ),
552
- tapPromise: (options, fn) =>
553
- hook.tapPromise(options, (loaderContext) =>
554
- fn(
555
- loaderContext.resource,
556
- /** @type {NormalModule} */ (loaderContext._module)
557
- )
558
- )
559
- })
560
- );
561
- });
562
- hooks.readResource = new HookMap(
563
- () => new AsyncSeriesBailHook(["loaderContext"])
564
- );
565
- hooks.loader = new SyncHook(["loaderContext", "module"]);
566
- hooks.beforeLoaders = new SyncHook(["loaders", "module", "loaderContext"]);
567
- hooks.beforeParse = new SyncHook(["module"]);
568
- hooks.beforeSnapshot = new SyncHook(["module"]);
569
- hooks.processResult = new SyncWaterfallHook(["result", "module"]);
570
- hooks.needBuild = new AsyncSeriesBailHook(["module", "context"]);
571
- return /** @type {NormalModuleCompilationHooks} */ (hooks);
572
- });
602
+ const normalModuleHooksRegistry = createHooksRegistry(createCompilationHooks);
573
603
 
574
604
  class NormalModule extends Module {
575
605
  /**
@@ -651,6 +681,12 @@ class NormalModule extends Module {
651
681
  * @type {Source | null}
652
682
  */
653
683
  this._source = null;
684
+ // Set at build time; declared here so the instance shape is fixed at construction
685
+ /**
686
+ * @private
687
+ * @type {PreparsedAst | null}
688
+ */
689
+ this._ast = null;
654
690
  /**
655
691
  * @private
656
692
  * @type {Map<undefined | SourceType, number> | undefined}
@@ -806,6 +842,29 @@ class NormalModule extends Module {
806
842
  this._sideEffectsStateValue = undefined;
807
843
  }
808
844
 
845
+ /**
846
+ * Releases the cached parser between incremental rebuilds so it doesn't keep
847
+ * the previous compilation alive.
848
+ * @returns {void}
849
+ */
850
+ _cleanupParserForCache() {
851
+ this.parser = undefined;
852
+ }
853
+
854
+ /**
855
+ * Re-acquire factory-derived helpers (parser/generator) for an incremental
856
+ * rebuild so this compilation's plugin hooks apply.
857
+ * @param {NormalModuleFactory} normalModuleFactory the normal module factory
858
+ * @returns {void}
859
+ */
860
+ _restoreParserAndGenerator(normalModuleFactory) {
861
+ this.parser = normalModuleFactory.getParser(this.type, this.parserOptions);
862
+ this.generator = normalModuleFactory.getGenerator(
863
+ this.type,
864
+ this.generatorOptions
865
+ );
866
+ }
867
+
809
868
  /**
810
869
  * Module should be unsafe cached. Get data that's needed for that.
811
870
  * This data will be passed to restoreFromUnsafeCache later.
@@ -1027,10 +1086,10 @@ class NormalModule extends Module {
1027
1086
  /** @type {LoaderContext<EXPECTED_ANY>["emitWarning"]} */
1028
1087
  emitWarning: (warning) => {
1029
1088
  if (!(warning instanceof Error)) {
1030
- warning = new NonErrorEmittedError(warning);
1089
+ warning = new (getNonErrorEmittedError())(warning);
1031
1090
  }
1032
1091
  this.addWarning(
1033
- new ModuleWarning(warning, {
1092
+ new (getModuleWarning())(warning, {
1034
1093
  from: getCurrentLoaderName()
1035
1094
  })
1036
1095
  );
@@ -1038,10 +1097,10 @@ class NormalModule extends Module {
1038
1097
  /** @type {LoaderContext<EXPECTED_ANY>["emitError"]} */
1039
1098
  emitError: (error) => {
1040
1099
  if (!(error instanceof Error)) {
1041
- error = new NonErrorEmittedError(error);
1100
+ error = new (getNonErrorEmittedError())(error);
1042
1101
  }
1043
1102
  this.addError(
1044
- new ModuleError(error, {
1103
+ new (getModuleError())(error, {
1045
1104
  from: getCurrentLoaderName()
1046
1105
  })
1047
1106
  );
@@ -1234,10 +1293,10 @@ class NormalModule extends Module {
1234
1293
  const processResult = (err, result_) => {
1235
1294
  if (err) {
1236
1295
  if (!(err instanceof Error)) {
1237
- err = new NonErrorEmittedError(err);
1296
+ err = new (getNonErrorEmittedError())(err);
1238
1297
  }
1239
1298
  const currentLoader = this.getCurrentLoader(loaderContext);
1240
- const error = new ModuleBuildError(err, {
1299
+ const error = new (getModuleBuildError())(err, {
1241
1300
  from:
1242
1301
  currentLoader &&
1243
1302
  compilation.runtimeTemplate.requestShortener.shorten(
@@ -1266,7 +1325,7 @@ class NormalModule extends Module {
1266
1325
  : "unknown"
1267
1326
  }) didn't return a Buffer or String`
1268
1327
  );
1269
- const error = new ModuleBuildError(err);
1328
+ const error = new (getModuleBuildError())(err);
1270
1329
  return callback(error);
1271
1330
  }
1272
1331
 
@@ -1340,7 +1399,7 @@ class NormalModule extends Module {
1340
1399
  } else {
1341
1400
  if (typeof result !== "string" && !result) {
1342
1401
  return reject(
1343
- new UnhandledSchemeError(
1402
+ new (getUnhandledSchemeError())(
1344
1403
  /** @type {string} */
1345
1404
  (scheme),
1346
1405
  resourcePath
@@ -1388,7 +1447,9 @@ class NormalModule extends Module {
1388
1447
  );
1389
1448
  return callback(null, source, sourceMap);
1390
1449
  } catch (err) {
1391
- this.addWarning(new ModuleWarning(/** @type {Error} */ (err)));
1450
+ this.addWarning(
1451
+ new (getModuleWarning())(/** @type {Error} */ (err))
1452
+ );
1392
1453
  return callback(null, result);
1393
1454
  }
1394
1455
  }
@@ -1566,7 +1627,8 @@ class NormalModule extends Module {
1566
1627
  pureFunctions: undefined,
1567
1628
  inlineExports: undefined,
1568
1629
  moduleConcatenationBailout: undefined,
1569
- needCreateRequire: undefined
1630
+ needCreateRequire: undefined,
1631
+ usesTopLevelUsingDeclaration: undefined
1570
1632
  };
1571
1633
 
1572
1634
  const startTime = compilation.compiler.fsStartTime || Date.now();
@@ -1590,7 +1652,12 @@ class NormalModule extends Module {
1590
1652
  const loaders = this.loaders.map((item) =>
1591
1653
  contextify(options.context, item.loader, compilation.compiler.root)
1592
1654
  );
1593
- const error = new ModuleParseError(source, e, loaders, this.type);
1655
+ const error = new (getModuleParseError())(
1656
+ source,
1657
+ e,
1658
+ loaders,
1659
+ this.type
1660
+ );
1594
1661
  this.markModuleAsErrored(error);
1595
1662
  this._initBuildHash(compilation);
1596
1663
  return callback();
@@ -1770,7 +1837,7 @@ class NormalModule extends Module {
1770
1837
  return walkSideEffects(
1771
1838
  this,
1772
1839
  moduleGraph,
1773
- getHarmonyImportSideEffectDependency()
1840
+ HarmonyImportSideEffectDependency
1774
1841
  );
1775
1842
  }
1776
1843
 
@@ -1848,9 +1915,7 @@ class NormalModule extends Module {
1848
1915
  getData,
1849
1916
  type
1850
1917
  })
1851
- : new RawSource(
1852
- `throw new Error(${JSON.stringify(this.error.message)});`
1853
- )
1918
+ : new RawSource(getGenerator().throwBuildErrorCode(this.error))
1854
1919
  : generator.generate(this, {
1855
1920
  dependencyTemplates,
1856
1921
  runtimeTemplate,