@depup/webpack 5.109.2-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 (640) hide show
  1. package/README.md +5 -5
  2. package/changes.json +7 -7
  3. package/lib/APIPlugin.js +123 -17
  4. package/lib/AsyncDependenciesBlock.js +10 -7
  5. package/lib/AutomaticPrefetchPlugin.js +1 -1
  6. package/lib/BannerPlugin.js +10 -6
  7. package/lib/CacheFacade.js +6 -6
  8. package/lib/Chunk.js +14 -11
  9. package/lib/ChunkGraph.js +26 -17
  10. package/lib/ChunkGroup.js +7 -7
  11. package/lib/ChunkTemplate.js +35 -44
  12. package/lib/CircularModulesPlugin.js +205 -28
  13. package/lib/CleanPlugin.js +4 -7
  14. package/lib/CodeGenerationResults.js +11 -8
  15. package/lib/CompatibilityPlugin.js +7 -7
  16. package/lib/Compilation.js +688 -409
  17. package/lib/Compiler.js +53 -38
  18. package/lib/ConcatenationScope.js +117 -8
  19. package/lib/ConditionalInitFragment.js +3 -3
  20. package/lib/ConstPlugin.js +13 -11
  21. package/lib/ContextExclusionPlugin.js +1 -1
  22. package/lib/ContextModule.js +146 -54
  23. package/lib/ContextModuleFactory.js +46 -14
  24. package/lib/ContextReplacementPlugin.js +12 -14
  25. package/lib/DefinePlugin.js +121 -37
  26. package/lib/DependenciesBlock.js +9 -6
  27. package/lib/Dependency.js +36 -16
  28. package/lib/DependencyTemplate.js +11 -12
  29. package/lib/DependencyTemplates.js +3 -3
  30. package/lib/DotenvPlugin.js +50 -13
  31. package/lib/DynamicEntryPlugin.js +8 -4
  32. package/lib/EntryOptionPlugin.js +8 -4
  33. package/lib/EntryPlugin.js +2 -2
  34. package/lib/Entrypoint.js +6 -2
  35. package/lib/EnvironmentPlugin.js +2 -2
  36. package/lib/EvalDevToolModulePlugin.js +8 -4
  37. package/lib/EvalSourceMapDevToolPlugin.js +15 -8
  38. package/lib/ExportsInfo.js +101 -14
  39. package/lib/ExportsInfoApiPlugin.js +2 -4
  40. package/lib/ExternalModule.js +232 -77
  41. package/lib/ExternalModuleFactoryPlugin.js +97 -38
  42. package/lib/ExternalsPlugin.js +10 -6
  43. package/lib/FileSystemInfo.js +44 -70
  44. package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
  45. package/lib/FlagDependencyExportsPlugin.js +76 -19
  46. package/lib/FlagDependencyUsagePlugin.js +32 -47
  47. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  48. package/lib/Generator.js +36 -15
  49. package/lib/HotModuleReplacementPlugin.js +16 -44
  50. package/lib/IgnorePlugin.js +8 -4
  51. package/lib/IgnoreWarningsPlugin.js +2 -2
  52. package/lib/InitFragment.js +8 -4
  53. package/lib/JavascriptMetaInfoPlugin.js +35 -4
  54. package/lib/LazyBarrel.js +3 -4
  55. package/lib/LibraryTemplatePlugin.js +10 -6
  56. package/lib/LoaderOptionsPlugin.js +7 -3
  57. package/lib/LoaderTargetPlugin.js +1 -1
  58. package/lib/MainTemplate.js +49 -42
  59. package/lib/ManifestPlugin.js +12 -11
  60. package/lib/Module.js +62 -33
  61. package/lib/ModuleFactory.js +3 -3
  62. package/lib/ModuleFilenameHelpers.js +9 -4
  63. package/lib/ModuleGraph.js +195 -21
  64. package/lib/ModuleGraphConnection.js +6 -13
  65. package/lib/ModuleInfoHeaderPlugin.js +8 -10
  66. package/lib/ModuleTemplate.js +62 -63
  67. package/lib/MultiCompiler.js +130 -64
  68. package/lib/MultiStats.js +40 -9
  69. package/lib/MultiWatching.js +3 -3
  70. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  71. package/lib/NodeStuffPlugin.js +29 -19
  72. package/lib/NormalModule.js +141 -85
  73. package/lib/NormalModuleFactory.js +555 -110
  74. package/lib/NormalModuleReplacementPlugin.js +5 -8
  75. package/lib/NullFactory.js +6 -2
  76. package/lib/OptionsApply.js +7 -3
  77. package/lib/Parser.js +7 -3
  78. package/lib/PlatformPlugin.js +2 -2
  79. package/lib/PrefetchPlugin.js +1 -1
  80. package/lib/ProgressPlugin.js +16 -13
  81. package/lib/ProvidePlugin.js +3 -5
  82. package/lib/RawModule.js +25 -17
  83. package/lib/RecordIdsPlugin.js +3 -3
  84. package/lib/RequestShortener.js +1 -1
  85. package/lib/ResolverFactory.js +2 -2
  86. package/lib/RuntimeGlobals.js +22 -10
  87. package/lib/RuntimeModule.js +29 -19
  88. package/lib/RuntimePlugin.js +332 -169
  89. package/lib/RuntimeTemplate.js +2792 -352
  90. package/lib/SelfModuleFactory.js +7 -3
  91. package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
  92. package/lib/SourceMapDevToolPlugin.js +30 -20
  93. package/lib/Stats.js +3 -4
  94. package/lib/Template.js +32 -22
  95. package/lib/TemplatedPathPlugin.js +96 -14
  96. package/lib/UseStrictPlugin.js +4 -6
  97. package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
  98. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  99. package/lib/WarnNoModeSetPlugin.js +1 -1
  100. package/lib/WatchIgnorePlugin.js +8 -6
  101. package/lib/Watching.js +8 -8
  102. package/lib/WebpackIsIncludedPlugin.js +2 -4
  103. package/lib/WebpackOptionsApply.js +308 -18
  104. package/lib/WebpackOptionsDefaulter.js +6 -2
  105. package/lib/asset/AssetBytesGenerator.js +12 -10
  106. package/lib/asset/AssetBytesParser.js +2 -4
  107. package/lib/asset/AssetGenerator.js +188 -95
  108. package/lib/asset/AssetModule.js +7 -3
  109. package/lib/asset/AssetModulesPlugin.js +110 -38
  110. package/lib/asset/AssetParser.js +9 -7
  111. package/lib/asset/AssetSourceGenerator.js +60 -13
  112. package/lib/asset/AssetSourceParser.js +2 -4
  113. package/lib/asset/RawDataUrlModule.js +24 -16
  114. package/lib/asset/WebManifestGenerator.js +8 -10
  115. package/lib/asset/WebManifestParser.js +24 -10
  116. package/lib/async-modules/AsyncModuleHelpers.js +2 -2
  117. package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
  118. package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
  119. package/lib/async-modules/isGeneratorLowered.js +4 -4
  120. package/lib/buildChunkGraph.js +36 -27
  121. package/lib/bun/BunTargetPlugin.js +1 -1
  122. package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
  123. package/lib/cache/AddManagedPathsPlugin.js +1 -1
  124. package/lib/cache/IdleFileCachePlugin.js +2 -2
  125. package/lib/cache/MemoryCachePlugin.js +18 -10
  126. package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
  127. package/lib/cache/PackFileCacheStrategy.js +30 -23
  128. package/lib/cache/ResolverCachePlugin.js +38 -18
  129. package/lib/cache/getLazyHashedEtag.js +1 -2
  130. package/lib/cache/mergeEtags.js +1 -1
  131. package/lib/cli.js +1 -3
  132. package/lib/config/browserslistTargetHandler.js +41 -5
  133. package/lib/config/defaults.js +261 -79
  134. package/lib/config/defineConfig.js +10 -2
  135. package/lib/config/getClaimedAssetTypes.js +65 -0
  136. package/lib/config/normalization.js +36 -16
  137. package/lib/config/target.js +46 -3
  138. package/lib/container/ContainerEntryDependency.js +1 -1
  139. package/lib/container/ContainerEntryModule.js +24 -15
  140. package/lib/container/ContainerEntryModuleFactory.js +7 -3
  141. package/lib/container/ContainerPlugin.js +9 -10
  142. package/lib/container/ContainerReferencePlugin.js +6 -2
  143. package/lib/container/FallbackDependency.js +1 -1
  144. package/lib/container/FallbackModule.js +24 -17
  145. package/lib/container/FallbackModuleFactory.js +7 -3
  146. package/lib/container/HoistContainerReferencesPlugin.js +6 -11
  147. package/lib/container/ModuleFederationPlugin.js +7 -24
  148. package/lib/container/RemoteModule.js +27 -19
  149. package/lib/container/RemoteRuntimeModule.js +10 -8
  150. package/lib/container/moduleFederationHooks.js +32 -0
  151. package/lib/css/CssGenerator.js +171 -43
  152. package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
  153. package/lib/css/CssLoadingRuntimeModule.js +57 -24
  154. package/lib/css/CssModule.js +10 -7
  155. package/lib/css/CssModulesPlugin.js +168 -88
  156. package/lib/css/CssParser.js +1113 -568
  157. package/lib/css/CssServerStylesRuntimeModule.js +54 -0
  158. package/lib/css/cssMinify.js +168 -0
  159. package/lib/css/data.js +5324 -0
  160. package/lib/css/syntax.js +9579 -232
  161. package/lib/debug/ProfilingPlugin.js +14 -9
  162. package/lib/deno/DenoTargetPlugin.js +1 -1
  163. package/lib/dependencies/AMDDefineDependency.js +112 -87
  164. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
  165. package/lib/dependencies/AMDPlugin.js +9 -7
  166. package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
  167. package/lib/dependencies/AMDRequireContextDependency.js +2 -2
  168. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
  169. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
  170. package/lib/dependencies/AMDRequireDependency.js +8 -7
  171. package/lib/dependencies/AMDRequireItemDependency.js +1 -1
  172. package/lib/dependencies/AMDRuntimeModules.js +21 -1
  173. package/lib/dependencies/BuildTimeConstDependency.js +102 -0
  174. package/lib/dependencies/CachedConstDependency.js +11 -8
  175. package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
  176. package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
  177. package/lib/dependencies/CommonJsExportsDependency.js +53 -49
  178. package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
  179. package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
  180. package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
  181. package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
  182. package/lib/dependencies/CommonJsPlugin.js +35 -6
  183. package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
  184. package/lib/dependencies/CommonJsRequireDependency.js +156 -27
  185. package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
  186. package/lib/dependencies/ConstDependency.js +8 -9
  187. package/lib/dependencies/ContextDependency.js +12 -8
  188. package/lib/dependencies/ContextDependencyHelpers.js +14 -9
  189. package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
  190. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
  191. package/lib/dependencies/ContextElementDependency.js +31 -12
  192. package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
  193. package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
  194. package/lib/dependencies/CssIcssExportDependency.js +56 -28
  195. package/lib/dependencies/CssIcssImportDependency.js +17 -13
  196. package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
  197. package/lib/dependencies/CssImportDependency.js +18 -9
  198. package/lib/dependencies/CssUrlDependency.js +17 -13
  199. package/lib/dependencies/DllEntryDependency.js +1 -1
  200. package/lib/dependencies/DynamicExports.js +2 -2
  201. package/lib/dependencies/ExportBindingInitFragment.js +36 -9
  202. package/lib/dependencies/ExportsInfoDependency.js +7 -8
  203. package/lib/dependencies/ExternalModuleDependency.js +9 -5
  204. package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
  205. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
  206. package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
  207. package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
  208. package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
  209. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +13 -10
  210. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
  211. package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
  212. package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
  213. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -63
  214. package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
  215. package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
  216. package/lib/dependencies/HarmonyExports.js +7 -4
  217. package/lib/dependencies/HarmonyImportDependency.js +27 -19
  218. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
  219. package/lib/dependencies/HarmonyImportGuard.js +20 -30
  220. package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
  221. package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
  222. package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
  223. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
  224. package/lib/dependencies/HtmlEntryDependency.js +37 -29
  225. package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
  226. package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
  227. package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
  228. package/lib/dependencies/HtmlSourceDependency.js +22 -14
  229. package/lib/dependencies/ImportContextDependency.js +2 -2
  230. package/lib/dependencies/ImportDependency.js +24 -20
  231. package/lib/dependencies/ImportEagerDependency.js +6 -9
  232. package/lib/dependencies/ImportMetaContextDependency.js +2 -2
  233. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
  234. package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
  235. package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
  236. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
  237. package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
  238. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
  239. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
  240. package/lib/dependencies/ImportMetaPlugin.js +154 -71
  241. package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
  242. package/lib/dependencies/ImportParserPlugin.js +49 -35
  243. package/lib/dependencies/ImportPhase.js +12 -5
  244. package/lib/dependencies/ImportPlugin.js +7 -3
  245. package/lib/dependencies/ImportWeakDependency.js +6 -9
  246. package/lib/dependencies/JsonExportsDependency.js +11 -7
  247. package/lib/dependencies/LoaderDependency.js +2 -2
  248. package/lib/dependencies/LoaderImportDependency.js +2 -2
  249. package/lib/dependencies/LoaderPlugin.js +11 -7
  250. package/lib/dependencies/LocalModuleDependency.js +5 -5
  251. package/lib/dependencies/LocalModulesHelpers.js +1 -1
  252. package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
  253. package/lib/dependencies/ModuleDependency.js +9 -6
  254. package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
  255. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
  256. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  257. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
  258. package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
  259. package/lib/dependencies/NullDependency.js +3 -3
  260. package/lib/dependencies/ProvidedDependency.js +14 -10
  261. package/lib/dependencies/PureExpressionDependency.js +9 -10
  262. package/lib/dependencies/RequireContextDependency.js +2 -2
  263. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
  264. package/lib/dependencies/RequireContextPlugin.js +8 -4
  265. package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
  266. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
  267. package/lib/dependencies/RequireEnsureDependency.js +8 -7
  268. package/lib/dependencies/RequireEnsurePlugin.js +7 -3
  269. package/lib/dependencies/RequireHeaderDependency.js +51 -12
  270. package/lib/dependencies/RequireIncludeDependency.js +6 -6
  271. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
  272. package/lib/dependencies/RequireIncludePlugin.js +7 -3
  273. package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
  274. package/lib/dependencies/RequireResolveContextDependency.js +2 -2
  275. package/lib/dependencies/RequireResolveDependency.js +4 -4
  276. package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
  277. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
  278. package/lib/dependencies/StaticExportsDependency.js +2 -2
  279. package/lib/dependencies/SystemPlugin.js +10 -6
  280. package/lib/dependencies/SystemRuntimeModule.js +10 -0
  281. package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
  282. package/lib/dependencies/URLContextDependency.js +2 -2
  283. package/lib/dependencies/URLDependency.js +110 -64
  284. package/lib/dependencies/URLPlugin.js +7 -3
  285. package/lib/dependencies/UnsupportedDependency.js +4 -4
  286. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
  287. package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
  288. package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
  289. package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
  290. package/lib/dependencies/WorkerDependency.js +28 -22
  291. package/lib/dependencies/WorkletDependency.js +15 -14
  292. package/lib/dependencies/getFunctionExpression.js +8 -4
  293. package/lib/dependencies/processExportInfo.js +5 -5
  294. package/lib/dll/DelegatedModule.js +34 -22
  295. package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
  296. package/lib/dll/DelegatedPlugin.js +2 -2
  297. package/lib/dll/DllEntryPlugin.js +2 -2
  298. package/lib/dll/DllModule.js +22 -15
  299. package/lib/dll/DllModuleFactory.js +7 -3
  300. package/lib/dll/DllPlugin.js +7 -5
  301. package/lib/dll/DllReferencePlugin.js +10 -7
  302. package/lib/dll/LibManifestPlugin.js +5 -5
  303. package/lib/electron/ElectronTargetPlugin.js +53 -49
  304. package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
  305. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  306. package/lib/errors/BroadContextsWarning.js +43 -0
  307. package/lib/errors/BuildCycleError.js +1 -1
  308. package/lib/errors/CacheEffectivenessWarning.js +55 -0
  309. package/lib/errors/ChunkRenderError.js +1 -1
  310. package/lib/errors/CircularDependenciesWarning.js +38 -0
  311. package/lib/errors/CodeGenerationError.js +1 -1
  312. package/lib/errors/CommentCompilationWarning.js +1 -1
  313. package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
  314. package/lib/errors/DuplicateModulesWarning.js +45 -0
  315. package/lib/errors/DynamicExportsWarning.js +30 -0
  316. package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
  317. package/lib/errors/EntrypointOverlapWarning.js +45 -0
  318. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  319. package/lib/errors/EvalUsageWarning.js +28 -0
  320. package/lib/errors/HookWebpackError.js +5 -5
  321. package/lib/errors/HotspotsWarning.js +57 -0
  322. package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
  323. package/lib/errors/InlinedAssetsWarning.js +36 -0
  324. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  325. package/lib/errors/LargeModulesWarning.js +45 -0
  326. package/lib/errors/LegacyJavascriptWarning.js +48 -0
  327. package/lib/errors/MissingSideEffectsWarning.js +36 -0
  328. package/lib/errors/MixedExportsWarning.js +41 -0
  329. package/lib/errors/ModuleDependencyError.js +13 -16
  330. package/lib/errors/ModuleDependencyWarning.js +5 -15
  331. package/lib/errors/ModuleHashingError.js +1 -1
  332. package/lib/errors/ModuleNotFoundError.js +2 -2
  333. package/lib/errors/ModuleParseError.js +1 -2
  334. package/lib/errors/ModuleRestoreError.js +1 -1
  335. package/lib/errors/ModuleStoreError.js +1 -1
  336. package/lib/errors/NodeStuffInWebError.js +1 -1
  337. package/lib/errors/OsDependentRuleWarning.js +31 -0
  338. package/lib/errors/PureAnnotationsWarning.js +36 -0
  339. package/lib/errors/RedundantDynamicImportWarning.js +31 -0
  340. package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
  341. package/lib/errors/SplitChunksCappedWarning.js +41 -0
  342. package/lib/errors/TinyChunksWarning.js +40 -0
  343. package/lib/errors/TopLevelThisWarning.js +34 -0
  344. package/lib/errors/UnsplitVendorsWarning.js +42 -0
  345. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  346. package/lib/errors/UnusedAliasesWarning.js +29 -0
  347. package/lib/errors/UnusedDefinesWarning.js +29 -0
  348. package/lib/errors/UnusedExternalsWarning.js +29 -0
  349. package/lib/errors/UnusedReexportsWarning.js +42 -0
  350. package/lib/errors/UnusedRuleWarning.js +29 -0
  351. package/lib/errors/WebpackError.js +9 -5
  352. package/lib/errors/deriveStackFromNestedError.js +90 -0
  353. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  354. package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
  355. package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
  356. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +155 -62
  357. package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
  358. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  359. package/lib/hmr/LazyCompilationPlugin.js +45 -24
  360. package/lib/hmr/lazyCompilationBackend.js +9 -6
  361. package/lib/hmr/parserHooks.js +56 -0
  362. package/lib/html/HtmlGenerator.js +277 -77
  363. package/lib/html/HtmlModule.js +7 -3
  364. package/lib/html/HtmlModulesPlugin.js +282 -162
  365. package/lib/html/HtmlParser.js +31 -86
  366. package/lib/html/data.js +1928 -0
  367. package/lib/html/htmlMinify.js +288 -0
  368. package/lib/html/syntax.js +5557 -1155
  369. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
  370. package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
  371. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  372. package/lib/ids/HashedModuleIdsPlugin.js +6 -2
  373. package/lib/ids/IdHelpers.js +7 -8
  374. package/lib/ids/NamedChunkIdsPlugin.js +1 -1
  375. package/lib/ids/NamedModuleIdsPlugin.js +1 -1
  376. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  377. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  378. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
  379. package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
  380. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  381. package/lib/index.js +10 -0
  382. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
  383. package/lib/javascript/BasicEvaluatedExpression.js +18 -14
  384. package/lib/javascript/ChunkFormatHelpers.js +6 -6
  385. package/lib/javascript/ChunkHelpers.js +1 -1
  386. package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
  387. package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
  388. package/lib/javascript/JavascriptGenerator.js +65 -165
  389. package/lib/javascript/JavascriptModule.js +9 -3
  390. package/lib/javascript/JavascriptModulesPlugin.js +98 -113
  391. package/lib/javascript/JavascriptParser.js +242 -99
  392. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  393. package/lib/javascript/ScopeAnalyzer.js +1094 -0
  394. package/lib/javascript/StartupHelpers.js +55 -9
  395. package/lib/javascript/syntax.js +2678 -232
  396. package/lib/json/JsonData.js +8 -4
  397. package/lib/json/JsonGenerator.js +38 -16
  398. package/lib/json/JsonModule.js +7 -3
  399. package/lib/json/JsonModulesPlugin.js +1 -1
  400. package/lib/json/JsonParser.js +5 -6
  401. package/lib/library/AbstractLibraryPlugin.js +20 -14
  402. package/lib/library/AmdLibraryPlugin.js +11 -7
  403. package/lib/library/AssignLibraryPlugin.js +19 -13
  404. package/lib/library/EnableLibraryPlugin.js +2 -2
  405. package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
  406. package/lib/library/JsonpLibraryPlugin.js +11 -7
  407. package/lib/library/ModuleLibraryPlugin.js +256 -64
  408. package/lib/library/SystemLibraryPlugin.js +12 -8
  409. package/lib/library/UmdLibraryPlugin.js +62 -25
  410. package/lib/loaders/LoaderRunner.js +14 -1
  411. package/lib/loaders/loadLoader.js +8 -4
  412. package/lib/logging/createConsoleLogger.js +7 -4
  413. package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
  414. package/lib/node/NodeEnvironmentPlugin.js +17 -3
  415. package/lib/node/NodeSourcePlugin.js +1 -1
  416. package/lib/node/NodeTargetPlugin.js +4 -3
  417. package/lib/node/NodeTemplatePlugin.js +1 -1
  418. package/lib/node/NodeWatchFileSystem.js +70 -9
  419. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
  420. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +72 -19
  421. package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
  422. package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
  423. package/lib/node/nodeConsole.js +7 -3
  424. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  425. package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
  426. package/lib/optimize/ConcatenatedModule.js +985 -470
  427. package/lib/optimize/ConstExportsPlugin.js +11 -7
  428. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  429. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
  430. package/lib/optimize/InlineExports.js +9 -5
  431. package/lib/optimize/InnerGraph.js +28 -12
  432. package/lib/optimize/InnerGraphPlugin.js +23 -18
  433. package/lib/optimize/LimitChunkCountPlugin.js +7 -3
  434. package/lib/optimize/MangleExportsPlugin.js +7 -8
  435. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
  436. package/lib/optimize/MinChunkSizePlugin.js +7 -3
  437. package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
  438. package/lib/optimize/RealContentHashPlugin.js +10 -6
  439. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  440. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  441. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  442. package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
  443. package/lib/optimize/SplitChunksPlugin.js +86 -24
  444. package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
  445. package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
  446. package/lib/performance/BroadContextsPlugin.js +142 -0
  447. package/lib/performance/CacheEffectivenessPlugin.js +125 -0
  448. package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
  449. package/lib/performance/DuplicateModulesPlugin.js +93 -0
  450. package/lib/performance/DuplicatePackagesPlugin.js +119 -0
  451. package/lib/performance/DuplicatePackagesWarning.js +84 -0
  452. package/lib/performance/DynamicExportsPlugin.js +120 -0
  453. package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
  454. package/lib/performance/EntrypointOverlapPlugin.js +122 -0
  455. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
  456. package/lib/performance/EvalUsagePlugin.js +115 -0
  457. package/lib/performance/HotspotsPlugin.js +296 -0
  458. package/lib/performance/InlinedAssetsPlugin.js +99 -0
  459. package/lib/performance/LargeModulesPlugin.js +126 -0
  460. package/lib/performance/LegacyJavascriptPlugin.js +139 -0
  461. package/lib/performance/MissingSideEffectsPlugin.js +138 -0
  462. package/lib/performance/MixedExportsPlugin.js +136 -0
  463. package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
  464. package/lib/performance/PureAnnotationsPlugin.js +219 -0
  465. package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
  466. package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
  467. package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
  468. package/lib/performance/SizeLimitsPlugin.js +139 -7
  469. package/lib/performance/SplitChunksCappedPlugin.js +99 -0
  470. package/lib/performance/TinyChunksPlugin.js +128 -0
  471. package/lib/performance/TopLevelThisPlugin.js +208 -0
  472. package/lib/performance/UnsplitVendorsPlugin.js +112 -0
  473. package/lib/performance/UnusedAliasesPlugin.js +253 -0
  474. package/lib/performance/UnusedDefinesPlugin.js +87 -0
  475. package/lib/performance/UnusedExternalsPlugin.js +110 -0
  476. package/lib/performance/UnusedReexportsPlugin.js +159 -0
  477. package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
  478. package/lib/performance/getModuleSize.js +22 -0
  479. package/lib/performance/getSourceModules.js +22 -0
  480. package/lib/performance/hasOnlyUnusedExports.js +40 -0
  481. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
  482. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
  483. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
  484. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  485. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  486. package/lib/prefetch/ResourceHintPlugin.js +295 -78
  487. package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
  488. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
  489. package/lib/prefetch/parseResourceHintOptions.js +31 -4
  490. package/lib/rules/BasicEffectRulePlugin.js +2 -2
  491. package/lib/rules/BasicMatcherRulePlugin.js +8 -4
  492. package/lib/rules/GlobMatcherRulePlugin.js +68 -0
  493. package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
  494. package/lib/rules/RuleSetCompiler.js +146 -12
  495. package/lib/rules/UseEffectRulePlugin.js +18 -11
  496. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
  497. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  498. package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
  499. package/lib/runtime/BaseUriRuntimeModule.js +33 -7
  500. package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
  501. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
  502. package/lib/runtime/CompatRuntimeModule.js +5 -3
  503. package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
  504. package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
  505. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
  506. package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
  507. package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
  508. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
  509. package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
  510. package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
  511. package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
  512. package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
  513. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
  514. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
  515. package/lib/runtime/GlobalRuntimeModule.js +18 -0
  516. package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
  517. package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
  518. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
  519. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
  520. package/lib/runtime/NonceRuntimeModule.js +10 -0
  521. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
  522. package/lib/runtime/PublicPathRuntimeModule.js +12 -2
  523. package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
  524. package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
  525. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
  526. package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
  527. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  528. package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
  529. package/lib/runtime/SystemContextRuntimeModule.js +10 -0
  530. package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
  531. package/lib/runtime/WorkerRuntimeModule.js +11 -1
  532. package/lib/runtime/baseUri.js +63 -0
  533. package/lib/schemes/DataUriPlugin.js +1 -1
  534. package/lib/schemes/FileUriPlugin.js +1 -1
  535. package/lib/schemes/HttpUriPlugin.js +24 -15
  536. package/lib/schemes/VirtualUrlPlugin.js +13 -7
  537. package/lib/serialization/AggregateErrorSerializer.js +1 -1
  538. package/lib/serialization/BinaryMiddleware.js +4 -4
  539. package/lib/serialization/ErrorObjectSerializer.js +1 -1
  540. package/lib/serialization/FileMiddleware.js +7 -7
  541. package/lib/serialization/ObjectMiddleware.js +139 -114
  542. package/lib/serialization/PlainObjectSerializer.js +19 -16
  543. package/lib/sharing/ConsumeSharedModule.js +30 -21
  544. package/lib/sharing/ConsumeSharedPlugin.js +18 -10
  545. package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
  546. package/lib/sharing/ProvideSharedModule.js +25 -16
  547. package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
  548. package/lib/sharing/ProvideSharedPlugin.js +8 -4
  549. package/lib/sharing/SharePlugin.js +17 -5
  550. package/lib/sharing/ShareRuntimeModule.js +4 -4
  551. package/lib/sharing/resolveMatchedConfigs.js +9 -6
  552. package/lib/sharing/utils.js +1 -3
  553. package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
  554. package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
  555. package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
  556. package/lib/stats/StatsFactory.js +25 -26
  557. package/lib/stats/StatsPrinter.js +16 -12
  558. package/lib/typescript/TypeScriptPlugin.js +12 -14
  559. package/lib/url/URLParserPlugin.js +26 -13
  560. package/lib/util/AsyncQueue.js +4 -3
  561. package/lib/util/Hash.js +5 -1
  562. package/lib/util/LazySet.js +35 -22
  563. package/lib/util/LocConverter.js +36 -13
  564. package/lib/util/SourceProcessor.js +1050 -24
  565. package/lib/util/StringXor.js +1 -1
  566. package/lib/util/chainedImports.js +9 -5
  567. package/lib/util/cleverMerge.js +1 -1
  568. package/lib/util/comparators.js +45 -14
  569. package/lib/util/concatenate.js +203 -77
  570. package/lib/util/conventions.js +5 -1
  571. package/lib/util/createHash.js +2 -2
  572. package/lib/util/createHooksRegistry.js +8 -10
  573. package/lib/util/dataURL.js +225 -1
  574. package/lib/util/extractSourceMap.js +4 -3
  575. package/lib/util/findCaseMismatch.js +139 -0
  576. package/lib/util/formatLocation.js +1 -2
  577. package/lib/util/fs.js +22 -5
  578. package/lib/util/globUtils.js +298 -24
  579. package/lib/util/hash/BatchedHash.js +5 -1
  580. package/lib/util/hash/BulkUpdateHash.js +5 -1
  581. package/lib/util/hash/DebugHash.js +5 -1
  582. package/lib/util/hash/hash-digest.js +6 -2
  583. package/lib/util/identifier.js +4 -0
  584. package/lib/util/implicitTypeLoaderFallback.js +1 -1
  585. package/lib/util/internalSerializables.js +6 -0
  586. package/lib/util/lazyModule.js +56 -0
  587. package/lib/util/makeSerializable.js +7 -3
  588. package/lib/util/matchAlias.js +25 -0
  589. package/lib/util/mimeTypes.js +11 -5
  590. package/lib/util/nonNumericOnlyHash.js +4 -3
  591. package/lib/util/parseJson.js +5 -3
  592. package/lib/util/preloadModuleType.js +32 -0
  593. package/lib/util/registerExternalSerializer.js +7 -5
  594. package/lib/util/runtime.js +2 -2
  595. package/lib/util/semver.js +1 -1
  596. package/lib/util/serialization.js +28 -28
  597. package/lib/util/source.js +2 -2
  598. package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
  599. package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
  600. package/lib/wasm/wasmModuleFilename.js +54 -0
  601. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
  602. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
  603. package/lib/wasm-async/AsyncWasmModule.js +3 -3
  604. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
  605. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
  606. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
  607. package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
  608. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
  609. package/lib/wasm-sync/SyncWasmModule.js +2 -2
  610. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
  611. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
  612. package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
  613. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
  614. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
  615. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
  616. package/lib/wasm-sync/WebAssemblyParser.js +4 -6
  617. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  618. package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
  619. package/lib/web/FetchCompileWasmPlugin.js +46 -16
  620. package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
  621. package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
  622. package/lib/web/JsonpTemplatePlugin.js +2 -2
  623. package/lib/webpack.js +22 -11
  624. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
  625. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
  626. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  627. package/module.d.ts +1 -0
  628. package/package.json +32 -25
  629. package/schemas/WebpackOptions.check.js +1 -1
  630. package/schemas/WebpackOptions.json +670 -36
  631. package/schemas/plugins/HtmlParserOptions.check.js +1 -1
  632. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  633. package/schemas/plugins/container/ContainerPlugin.json +10 -0
  634. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  635. package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
  636. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
  637. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  638. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  639. package/types.d.ts +3144 -454
  640. package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
@@ -16,20 +16,26 @@ const ConstDependency = require("./dependencies/ConstDependency");
16
16
  const ExternalModuleDependency = require("./dependencies/ExternalModuleDependency");
17
17
  const ExternalModuleInitFragmentDependency = require("./dependencies/ExternalModuleInitFragmentDependency");
18
18
  const ImportMetaPlugin = require("./dependencies/ImportMetaPlugin");
19
- const NodeStuffInWebError = require("./errors/NodeStuffInWebError");
20
19
  const { evaluateToString } = require("./javascript/JavascriptParserHelpers");
21
20
  const { relative } = require("./util/fs");
22
21
  const { parseResource } = require("./util/identifier");
23
-
24
- /** @typedef {import("../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
25
- /** @typedef {import("../declarations/WebpackOptions").NodeOptions} NodeOptions */
26
- /** @typedef {import("./Compiler")} Compiler */
27
- /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
28
- /** @typedef {import("./NormalModule")} NormalModule */
29
- /** @typedef {import("./javascript/JavascriptParser")} JavascriptParser */
30
- /** @typedef {import("./javascript/JavascriptParser").Expression} Expression */
31
- /** @typedef {import("./javascript/JavascriptParser").Range} Range */
32
- /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
22
+ const memoize = require("./util/memoize");
23
+
24
+ const getNodeStuffInWebError = memoize(() =>
25
+ require("./errors/NodeStuffInWebError")
26
+ );
27
+
28
+ /** @import { Expression } from "estree" */
29
+ /**
30
+ * @import {
31
+ * JavascriptParserOptions,
32
+ * NodeOptions
33
+ * } from "../declarations/WebpackOptions"
34
+ */
35
+ /** @import Compiler from "./Compiler" */
36
+ /** @import NormalModule from "./NormalModule" */
37
+ /** @import JavascriptParser, { Range } from "./javascript/JavascriptParser" */
38
+ /** @import { InputFileSystem } from "./util/fs" */
33
39
 
34
40
  const PLUGIN_NAME = "NodeStuffPlugin";
35
41
  const URL_MODULE_CONSTANT_FUNCTION_NAME = "__webpack_fileURLToPath__";
@@ -103,7 +109,7 @@ class NodeStuffPlugin {
103
109
 
104
110
  if (withWarning) {
105
111
  parser.state.module.addWarning(
106
- new NodeStuffInWebError(
112
+ new (getNodeStuffInWebError())(
107
113
  dep.loc,
108
114
  "global",
109
115
  "The global namespace object is a Node.js feature and isn't available in browsers."
@@ -125,7 +131,7 @@ class NodeStuffPlugin {
125
131
  /**
126
132
  * Sets module constant.
127
133
  * @param {JavascriptParser} parser the parser
128
- * @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
134
+ * @param {string} expressionName expression name
129
135
  * @param {(module: NormalModule) => string} fn function
130
136
  * @param {"filename" | "dirname"} property a property
131
137
  * @returns {void}
@@ -159,7 +165,7 @@ class NodeStuffPlugin {
159
165
  /**
160
166
  * Sets cached module constant.
161
167
  * @param {JavascriptParser} parser the parser
162
- * @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
168
+ * @param {string} expressionName expression name
163
169
  * @param {(module: NormalModule) => string} fn function
164
170
  * @param {"filename" | "dirname"} property a property
165
171
  * @param {string=} warning warning
@@ -186,7 +192,11 @@ class NodeStuffPlugin {
186
192
 
187
193
  if (warning) {
188
194
  parser.state.module.addWarning(
189
- new NodeStuffInWebError(dep.loc, expressionName, warning)
195
+ new (getNodeStuffInWebError())(
196
+ dep.loc,
197
+ expressionName,
198
+ warning
199
+ )
190
200
  );
191
201
  }
192
202
 
@@ -201,7 +211,7 @@ class NodeStuffPlugin {
201
211
  if (property === usingProperty.id) {
202
212
  if (warning) {
203
213
  parser.state.module.addWarning(
204
- new NodeStuffInWebError(
214
+ new (getNodeStuffInWebError())(
205
215
  parser.getLocation(usingProperty),
206
216
  expressionName,
207
217
  warning
@@ -220,7 +230,7 @@ class NodeStuffPlugin {
220
230
  /**
221
231
  * Updates constant using the provided parser.
222
232
  * @param {JavascriptParser} parser the parser
223
- * @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
233
+ * @param {string} expressionName expression name
224
234
  * @param {string} value value
225
235
  * @param {"filename" | "dirname"} property a property
226
236
  * @param {string=} warning warning
@@ -244,7 +254,7 @@ class NodeStuffPlugin {
244
254
  /**
245
255
  * Sets url module constant.
246
256
  * @param {JavascriptParser} parser the parser
247
- * @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
257
+ * @param {string} expressionName expression name
248
258
  * @param {"dirname" | "filename"} property property
249
259
  * @param {() => string} value function to get value
250
260
  * @returns {void}
@@ -358,7 +368,7 @@ class NodeStuffPlugin {
358
368
  * Dirname and filename handler.
359
369
  * @param {JavascriptParser} parser the parser
360
370
  * @param {NodeOptions} nodeOptions options
361
- * @param {{ dirname: "__dirname" | "import.meta.dirname", filename: "__filename" | "import.meta.filename", dirnameEnabled?: boolean, filenameEnabled?: boolean }} identifiers options
371
+ * @param {{ dirname: string, filename: string, dirnameEnabled?: boolean, filenameEnabled?: boolean }} identifiers options
362
372
  * @returns {void}
363
373
  */
364
374
  const dirnameAndFilenameHandler = (
@@ -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,
@@ -58,57 +53,101 @@ 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
@@ -566,7 +593,7 @@ const createCompilationHooks = () => {
566
593
  * @property {FileSystemDependencies=} missingDependencies
567
594
  * @property {FileSystemDependencies=} buildDependencies
568
595
  * @property {ValueCacheVersions=} valueDependencies
569
- * @property {(Snapshot | null)=} snapshot
596
+ * @property {(InstanceType<Snapshot> | null)=} snapshot
570
597
  * @property {string=} resourceIntegrity using in HttpUriPlugin
571
598
  */
572
599
 
@@ -815,6 +842,29 @@ class NormalModule extends Module {
815
842
  this._sideEffectsStateValue = undefined;
816
843
  }
817
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
+
818
868
  /**
819
869
  * Module should be unsafe cached. Get data that's needed for that.
820
870
  * This data will be passed to restoreFromUnsafeCache later.
@@ -1036,10 +1086,10 @@ class NormalModule extends Module {
1036
1086
  /** @type {LoaderContext<EXPECTED_ANY>["emitWarning"]} */
1037
1087
  emitWarning: (warning) => {
1038
1088
  if (!(warning instanceof Error)) {
1039
- warning = new NonErrorEmittedError(warning);
1089
+ warning = new (getNonErrorEmittedError())(warning);
1040
1090
  }
1041
1091
  this.addWarning(
1042
- new ModuleWarning(warning, {
1092
+ new (getModuleWarning())(warning, {
1043
1093
  from: getCurrentLoaderName()
1044
1094
  })
1045
1095
  );
@@ -1047,10 +1097,10 @@ class NormalModule extends Module {
1047
1097
  /** @type {LoaderContext<EXPECTED_ANY>["emitError"]} */
1048
1098
  emitError: (error) => {
1049
1099
  if (!(error instanceof Error)) {
1050
- error = new NonErrorEmittedError(error);
1100
+ error = new (getNonErrorEmittedError())(error);
1051
1101
  }
1052
1102
  this.addError(
1053
- new ModuleError(error, {
1103
+ new (getModuleError())(error, {
1054
1104
  from: getCurrentLoaderName()
1055
1105
  })
1056
1106
  );
@@ -1243,10 +1293,10 @@ class NormalModule extends Module {
1243
1293
  const processResult = (err, result_) => {
1244
1294
  if (err) {
1245
1295
  if (!(err instanceof Error)) {
1246
- err = new NonErrorEmittedError(err);
1296
+ err = new (getNonErrorEmittedError())(err);
1247
1297
  }
1248
1298
  const currentLoader = this.getCurrentLoader(loaderContext);
1249
- const error = new ModuleBuildError(err, {
1299
+ const error = new (getModuleBuildError())(err, {
1250
1300
  from:
1251
1301
  currentLoader &&
1252
1302
  compilation.runtimeTemplate.requestShortener.shorten(
@@ -1275,7 +1325,7 @@ class NormalModule extends Module {
1275
1325
  : "unknown"
1276
1326
  }) didn't return a Buffer or String`
1277
1327
  );
1278
- const error = new ModuleBuildError(err);
1328
+ const error = new (getModuleBuildError())(err);
1279
1329
  return callback(error);
1280
1330
  }
1281
1331
 
@@ -1349,7 +1399,7 @@ class NormalModule extends Module {
1349
1399
  } else {
1350
1400
  if (typeof result !== "string" && !result) {
1351
1401
  return reject(
1352
- new UnhandledSchemeError(
1402
+ new (getUnhandledSchemeError())(
1353
1403
  /** @type {string} */
1354
1404
  (scheme),
1355
1405
  resourcePath
@@ -1397,7 +1447,9 @@ class NormalModule extends Module {
1397
1447
  );
1398
1448
  return callback(null, source, sourceMap);
1399
1449
  } catch (err) {
1400
- this.addWarning(new ModuleWarning(/** @type {Error} */ (err)));
1450
+ this.addWarning(
1451
+ new (getModuleWarning())(/** @type {Error} */ (err))
1452
+ );
1401
1453
  return callback(null, result);
1402
1454
  }
1403
1455
  }
@@ -1575,7 +1627,8 @@ class NormalModule extends Module {
1575
1627
  pureFunctions: undefined,
1576
1628
  inlineExports: undefined,
1577
1629
  moduleConcatenationBailout: undefined,
1578
- needCreateRequire: undefined
1630
+ needCreateRequire: undefined,
1631
+ usesTopLevelUsingDeclaration: undefined
1579
1632
  };
1580
1633
 
1581
1634
  const startTime = compilation.compiler.fsStartTime || Date.now();
@@ -1599,7 +1652,12 @@ class NormalModule extends Module {
1599
1652
  const loaders = this.loaders.map((item) =>
1600
1653
  contextify(options.context, item.loader, compilation.compiler.root)
1601
1654
  );
1602
- const error = new ModuleParseError(source, e, loaders, this.type);
1655
+ const error = new (getModuleParseError())(
1656
+ source,
1657
+ e,
1658
+ loaders,
1659
+ this.type
1660
+ );
1603
1661
  this.markModuleAsErrored(error);
1604
1662
  this._initBuildHash(compilation);
1605
1663
  return callback();
@@ -1779,7 +1837,7 @@ class NormalModule extends Module {
1779
1837
  return walkSideEffects(
1780
1838
  this,
1781
1839
  moduleGraph,
1782
- getHarmonyImportSideEffectDependency()
1840
+ HarmonyImportSideEffectDependency
1783
1841
  );
1784
1842
  }
1785
1843
 
@@ -1857,9 +1915,7 @@ class NormalModule extends Module {
1857
1915
  getData,
1858
1916
  type
1859
1917
  })
1860
- : new RawSource(
1861
- `throw new Error(${JSON.stringify(this.error.message)});`
1862
- )
1918
+ : new RawSource(getGenerator().throwBuildErrorCode(this.error))
1863
1919
  : generator.generate(this, {
1864
1920
  dependencyTemplates,
1865
1921
  runtimeTemplate,