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