@depup/webpack 5.111.1-depup.2 → 5.112.0-depup.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (775) hide show
  1. package/README.md +6 -8
  2. package/changes.json +8 -16
  3. package/lib/Chunk.js +3 -966
  4. package/lib/Compilation.js +224 -106
  5. package/lib/Compiler.js +19 -19
  6. package/lib/Dependency.js +3 -551
  7. package/lib/DependencyTemplate.js +3 -70
  8. package/lib/EntryPlugin.js +3 -68
  9. package/lib/Entrypoint.js +3 -121
  10. package/lib/ExternalsPlugin.js +3 -92
  11. package/lib/FileSystemInfo.js +3 -4629
  12. package/lib/InitFragment.js +3 -204
  13. package/lib/LibraryTemplatePlugin.js +3 -46
  14. package/lib/ModuleFilenameHelpers.js +3 -400
  15. package/lib/ModuleNotFoundError.js +2 -2
  16. package/lib/MultiCompiler.js +37 -8
  17. package/lib/NormalModule.js +3 -2242
  18. package/lib/NullFactory.js +3 -22
  19. package/lib/ProgressPlugin.js +3 -908
  20. package/lib/RawModule.js +3 -197
  21. package/lib/RequestShortener.js +3 -37
  22. package/lib/SingleEntryPlugin.js +1 -1
  23. package/lib/WebpackError.js +2 -2
  24. package/lib/asset/AssetBytesGenerator.js +8 -8
  25. package/lib/asset/AssetBytesParser.js +3 -3
  26. package/lib/asset/AssetGenerator.js +36 -22
  27. package/lib/asset/AssetModule.js +2 -2
  28. package/lib/asset/AssetModulesPlugin.js +6 -9
  29. package/lib/asset/AssetParser.js +3 -3
  30. package/lib/asset/AssetSourceGenerator.js +8 -8
  31. package/lib/asset/AssetSourceParser.js +3 -3
  32. package/lib/asset/RawDataUrlModule.js +17 -10
  33. package/lib/asset/WebManifestGenerator.js +7 -7
  34. package/lib/asset/WebManifestParser.js +5 -5
  35. package/lib/async-modules/AsyncModuleHelpers.js +6 -5
  36. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  37. package/lib/async-modules/InferAsyncModulesPlugin.js +4 -3
  38. package/lib/async-modules/isGeneratorLowered.js +3 -3
  39. package/lib/bun/BunTargetPlugin.js +1 -1
  40. package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
  41. package/lib/{Cache.js → cache/Cache.js} +1 -1
  42. package/lib/{CacheFacade.js → cache/CacheFacade.js} +5 -5
  43. package/lib/cache/IdleFileCachePlugin.js +2 -2
  44. package/lib/cache/MemoryCachePlugin.js +2 -2
  45. package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
  46. package/lib/cache/PackFileCacheStrategy.js +8 -10
  47. package/lib/cache/ResolverCachePlugin.js +8 -4
  48. package/lib/cache/mergeEtags.js +1 -1
  49. package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
  50. package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
  51. package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +217 -200
  52. package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
  53. package/lib/config/browserslistTargetHandler.js +1 -1
  54. package/lib/{cli.js → config/cli.js} +5 -158
  55. package/lib/config/defaults.js +144 -48
  56. package/lib/config/getClaimedAssetTypes.js +21 -13
  57. package/lib/config/normalization.js +18 -7
  58. package/lib/config/target.js +10 -0
  59. package/lib/container/ContainerEntryDependency.js +1 -1
  60. package/lib/container/ContainerEntryModule.js +13 -11
  61. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  62. package/lib/container/ContainerExposedDependency.js +1 -1
  63. package/lib/container/ContainerPlugin.js +178 -5
  64. package/lib/container/ContainerReferencePlugin.js +75 -14
  65. package/lib/container/FallbackDependency.js +1 -1
  66. package/lib/container/FallbackItemDependency.js +1 -1
  67. package/lib/container/FallbackModule.js +12 -10
  68. package/lib/container/FallbackModuleFactory.js +2 -2
  69. package/lib/container/HoistContainerReferencesPlugin.js +10 -11
  70. package/lib/container/ModuleFederationPlugin.js +306 -7
  71. package/lib/container/RemoteModule.js +14 -10
  72. package/lib/container/RemoteRuntimeModule.js +5 -5
  73. package/lib/container/RemoteToExternalDependency.js +1 -1
  74. package/lib/container/moduleFederationHooks.js +1 -1
  75. package/lib/context/ContextModule.js +36 -25
  76. package/lib/context/ContextModuleFactory.js +13 -10
  77. package/lib/context/ContextReplacementPlugin.js +3 -3
  78. package/lib/css/CssGenerator.js +38 -31
  79. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  80. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  81. package/lib/css/CssModule.js +27 -29
  82. package/lib/css/CssModulesPlugin.js +128 -44
  83. package/lib/css/CssParser.js +682 -291
  84. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  85. package/lib/css/cssMinify.js +110 -37
  86. package/lib/css/data.js +6985 -5125
  87. package/lib/css/syntax-parser.js +19873 -0
  88. package/lib/css/syntax-printer.js +6037 -0
  89. package/lib/css/syntax.js +37 -18686
  90. package/lib/debug/ProfilingPlugin.js +52 -19
  91. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
  92. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +9 -9
  93. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
  94. package/lib/deno/DenoTargetPlugin.js +1 -1
  95. package/lib/dependencies/ConstDependency.js +3 -120
  96. package/lib/dependencies/ContextElementDependency.js +5 -172
  97. package/lib/dependencies/NullDependency.js +3 -37
  98. package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
  99. package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -10
  100. package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
  101. package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
  102. package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
  103. package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
  104. package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +10 -10
  105. package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
  106. package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
  107. package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
  108. package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
  109. package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
  110. package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
  111. package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
  112. package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
  113. package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
  114. package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -33
  115. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  116. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
  117. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  118. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +35 -30
  119. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
  120. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
  121. package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
  122. package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
  123. package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
  124. package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
  125. package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
  126. package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +5 -5
  127. package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
  128. package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
  129. package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
  130. package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
  131. package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
  132. package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
  133. package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
  134. package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
  135. package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
  136. package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
  137. package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
  138. package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
  139. package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
  140. package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
  141. package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
  142. package/lib/dependencies/context/ContextElementDependency.js +198 -0
  143. package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
  144. package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +9 -9
  145. package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
  146. package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
  147. package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +4 -4
  148. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
  149. package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
  150. package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
  151. package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
  152. package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +12 -11
  153. package/lib/dependencies/core/ConstDependency.js +131 -0
  154. package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
  155. package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
  156. package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
  157. package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
  158. package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
  159. package/lib/dependencies/core/NullDependency.js +44 -0
  160. package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
  161. package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
  162. package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +369 -92
  163. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +23 -16
  164. package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
  165. package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
  166. package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +23 -16
  167. package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
  168. package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
  169. package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
  170. package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
  171. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +19 -17
  172. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  173. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
  174. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
  175. package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
  176. package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
  177. package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +133 -118
  178. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
  179. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +60 -36
  180. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
  181. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  182. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
  183. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +99 -84
  184. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
  185. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
  186. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +94 -59
  187. package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
  188. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  189. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
  190. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
  191. package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
  192. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  193. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  194. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  195. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  196. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  197. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  198. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +51 -141
  199. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
  200. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -19
  201. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -15
  202. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  203. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  204. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  205. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  206. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
  207. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  208. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  209. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  210. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  211. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  212. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +119 -98
  213. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  214. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  215. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  216. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  217. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
  218. package/lib/{url → dependencies/url}/URLParserPlugin.js +16 -18
  219. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  220. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  221. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  222. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  223. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +31 -33
  224. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
  225. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
  226. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  227. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  228. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  229. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  230. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +154 -26
  231. package/lib/{util → devtool}/generateDebugId.js +1 -1
  232. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  233. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  234. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  235. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  236. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  237. package/lib/dll/DelegatedModule.js +20 -18
  238. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  239. package/lib/dll/DelegatedPlugin.js +1 -1
  240. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  241. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  242. package/lib/dll/DllEntryPlugin.js +3 -3
  243. package/lib/dll/DllModule.js +11 -9
  244. package/lib/dll/DllModuleFactory.js +3 -3
  245. package/lib/dll/DllPlugin.js +18 -6
  246. package/lib/dll/DllReferencePlugin.js +102 -26
  247. package/lib/dll/LibManifestPlugin.js +9 -7
  248. package/lib/electron/ElectronTargetPlugin.js +2 -2
  249. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  250. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  251. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  252. package/lib/entry/EntryPlugin.js +75 -0
  253. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  254. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  255. package/lib/errors/BuildCycleError.js +1 -1
  256. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  257. package/lib/errors/ChunkRenderError.js +1 -1
  258. package/lib/errors/CodeGenerationError.js +1 -1
  259. package/lib/errors/CommentCompilationWarning.js +1 -1
  260. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  261. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  262. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  263. package/lib/errors/DllManifestError.js +26 -0
  264. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  265. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  266. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  267. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  268. package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +7 -5
  269. package/lib/errors/ExternalStarReexportError.js +2 -2
  270. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  271. package/lib/errors/HookWebpackError.js +4 -4
  272. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  273. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  274. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  275. package/lib/errors/ModuleBuildError.js +1 -1
  276. package/lib/errors/ModuleDependencyError.js +2 -2
  277. package/lib/errors/ModuleDependencyWarning.js +2 -2
  278. package/lib/errors/ModuleError.js +1 -1
  279. package/lib/errors/ModuleHashingError.js +1 -1
  280. package/lib/errors/ModuleNotFoundError.js +3 -3
  281. package/lib/errors/ModuleParseError.js +1 -1
  282. package/lib/errors/ModuleRestoreError.js +1 -1
  283. package/lib/errors/ModuleStoreError.js +1 -1
  284. package/lib/errors/ModuleWarning.js +1 -1
  285. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  286. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  287. package/lib/errors/NodeStuffInWebError.js +7 -2
  288. package/lib/errors/PathVariableError.js +31 -0
  289. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  290. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  291. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  292. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  293. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  294. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  295. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  296. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  297. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  298. package/lib/errors/WebpackError.js +12 -3
  299. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  300. package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
  301. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  302. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  303. package/lib/{ExternalModule.js → externals/ExternalModule.js} +79 -55
  304. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
  305. package/lib/externals/ExternalsPlugin.js +99 -0
  306. package/lib/fs/FileSystemInfo.js +4642 -0
  307. package/lib/{util → fs}/fs.js +22 -9
  308. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  309. package/lib/graph/Chunk.js +985 -0
  310. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
  311. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  312. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  313. package/lib/graph/Dependency.js +628 -0
  314. package/lib/graph/Entrypoint.js +136 -0
  315. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +130 -82
  316. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  317. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +30 -30
  318. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  319. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +152 -57
  320. package/lib/{util → graph}/findGraphRoots.js +14 -8
  321. package/lib/graph/isDependencyKind.js +23 -0
  322. package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
  323. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +47 -47
  324. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  325. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
  326. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  327. package/lib/hmr/LazyCompilationPlugin.js +31 -21
  328. package/lib/html/HtmlGenerator.js +107 -43
  329. package/lib/html/HtmlModule.js +6 -2
  330. package/lib/html/HtmlModulesPlugin.js +172 -76
  331. package/lib/html/HtmlParser.js +503 -153
  332. package/lib/html/builtinEmbeddedRenderer.js +60 -13
  333. package/lib/html/data.js +2 -1
  334. package/lib/html/htmlMinify.js +111 -41
  335. package/lib/html/syntax-parser.js +15796 -0
  336. package/lib/html/syntax-printer.js +1034 -0
  337. package/lib/html/syntax.js +37 -13952
  338. package/lib/html/xmlMinify.js +67 -0
  339. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  340. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  341. package/lib/ids/HashedModuleIdsPlugin.js +31 -4
  342. package/lib/ids/IdHelpers.js +4 -4
  343. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  344. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  345. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  346. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  347. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  348. package/lib/{util → ids}/numberHash.js +1 -1
  349. package/lib/index.js +303 -97
  350. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +25 -25
  351. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  352. package/lib/javascript/BasicEvaluatedExpression.js +4 -4
  353. package/lib/javascript/ChunkHelpers.js +64 -4
  354. package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
  355. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
  356. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +74 -7
  357. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  358. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  359. package/lib/javascript/JavascriptGenerator.js +17 -17
  360. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
  361. package/lib/javascript/JavascriptModule.js +4 -3
  362. package/lib/javascript/JavascriptModulesPlugin.js +440 -211
  363. package/lib/javascript/JavascriptParser.js +220 -134
  364. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  365. package/lib/javascript/MergedEntryExports.js +196 -0
  366. package/lib/javascript/ScopeAnalyzer.js +3840 -5
  367. package/lib/javascript/StartupHelpers.js +6 -6
  368. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
  369. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  370. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  371. package/lib/javascript/data.js +533 -122
  372. package/lib/javascript/jsMinify.js +272 -0
  373. package/lib/javascript/regexp.js +67 -32
  374. package/lib/javascript/syntax-parser.js +18561 -0
  375. package/lib/javascript/syntax-printer-data.js +933 -0
  376. package/lib/javascript/syntax-printer.js +47106 -0
  377. package/lib/javascript/syntax.js +20 -11274
  378. package/lib/json/JsonData.js +1 -1
  379. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  380. package/lib/json/JsonGenerator.js +10 -10
  381. package/lib/json/JsonModule.js +2 -2
  382. package/lib/json/JsonModulesPlugin.js +1 -1
  383. package/lib/json/JsonParser.js +5 -5
  384. package/lib/json/jsonMinify.js +69 -0
  385. package/lib/library/AbstractLibraryPlugin.js +28 -15
  386. package/lib/library/AmdLibraryPlugin.js +4 -4
  387. package/lib/library/AssignLibraryPlugin.js +27 -11
  388. package/lib/library/EnableLibraryPlugin.js +1 -1
  389. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  390. package/lib/library/JsonpLibraryPlugin.js +1 -1
  391. package/lib/library/LibraryTemplatePlugin.js +53 -0
  392. package/lib/library/ModuleLibraryPlugin.js +160 -166
  393. package/lib/library/SystemLibraryPlugin.js +6 -8
  394. package/lib/library/UmdLibraryPlugin.js +3 -4
  395. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  396. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  397. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  398. package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
  399. package/lib/loaders/LoaderRunner.js +31 -21
  400. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  401. package/lib/logging/Logger.js +7 -9
  402. package/lib/logging/ProgressPlugin.js +957 -0
  403. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  404. package/lib/{Generator.js → module/Generator.js} +16 -14
  405. package/lib/{Module.js → module/Module.js} +119 -51
  406. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  407. package/lib/module/NormalModule.js +2348 -0
  408. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
  409. package/lib/module/NullFactory.js +29 -0
  410. package/lib/{Parser.js → module/Parser.js} +3 -3
  411. package/lib/module/RawModule.js +208 -0
  412. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  413. package/lib/{util → module}/extractSourceMap.js +2 -2
  414. package/lib/{util → module}/findCaseMismatch.js +2 -2
  415. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  416. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  417. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
  418. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  419. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  420. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  421. package/lib/node/NodeTargetPlugin.js +1 -1
  422. package/lib/node/NodeWatchFileSystem.js +58 -6
  423. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  424. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
  425. package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
  426. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  427. package/lib/node/nodeConsole.js +2 -4
  428. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  429. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  430. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
  431. package/lib/optimize/ConcatenatedModule.js +229 -214
  432. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  433. package/lib/optimize/ConstExportsPlugin.js +7 -7
  434. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  435. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  436. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +17 -17
  437. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +17 -17
  438. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  439. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
  440. package/lib/optimize/InlineExports.js +11 -3
  441. package/lib/optimize/InnerGraph.js +5 -13
  442. package/lib/optimize/InnerGraphPlugin.js +10 -10
  443. package/lib/optimize/LazyBarrels.js +584 -0
  444. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  445. package/lib/optimize/LimitChunkCountPlugin.js +16 -7
  446. package/lib/optimize/MangleExportsPlugin.js +5 -5
  447. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  448. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  449. package/lib/optimize/ModuleConcatenationPlugin.js +20 -12
  450. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  451. package/lib/optimize/RealContentHashPlugin.js +16 -7
  452. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  453. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  454. package/lib/optimize/SideEffectsFlagPlugin.js +18 -18
  455. package/lib/optimize/SplitChunksPlugin.js +713 -155
  456. package/lib/{util → optimize}/TupleQueue.js +9 -9
  457. package/lib/optimize/chunkSetIntersections.js +437 -0
  458. package/lib/{util → optimize}/deterministicGrouping.js +17 -17
  459. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  460. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
  461. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
  462. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  463. package/lib/output/SSRManifestPlugin.js +349 -0
  464. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  465. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  466. package/lib/performance/BroadContextsPlugin.js +4 -4
  467. package/lib/performance/CacheEffectivenessPlugin.js +2 -3
  468. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  469. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  470. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  471. package/lib/performance/DynamicExportsPlugin.js +2 -2
  472. package/lib/performance/EvalUsagePlugin.js +3 -3
  473. package/lib/performance/HotspotsPlugin.js +11 -10
  474. package/lib/performance/LargeModulesPlugin.js +2 -3
  475. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  476. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  477. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  478. package/lib/performance/PureAnnotationsPlugin.js +3 -3
  479. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  480. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  481. package/lib/performance/SizeLimitsPlugin.js +11 -12
  482. package/lib/performance/TopLevelThisPlugin.js +8 -7
  483. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  484. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  485. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  486. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  487. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  488. package/lib/performance/UnusedFederationPlugin.js +2 -4
  489. package/lib/performance/UnusedModulesPlugin.js +5 -4
  490. package/lib/performance/getModuleSize.js +1 -1
  491. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  492. package/lib/performance/isOnlyReexported.js +7 -6
  493. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  494. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  495. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
  496. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  497. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  498. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  499. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  500. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  501. package/lib/prefetch/ResourceHintPlugin.js +65 -44
  502. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  503. package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
  504. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  505. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  506. package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
  507. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  508. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  509. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  510. package/lib/resolve/getResolveOptionsKey.js +59 -0
  511. package/lib/rules/RuleSetCompiler.js +27 -46
  512. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  513. package/lib/runtime/AsyncModuleRuntimeModule.js +7 -4
  514. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  515. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  516. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  517. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  518. package/lib/runtime/CompatRuntimeModule.js +4 -4
  519. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  520. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  521. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  522. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  523. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  524. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  525. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  526. package/lib/runtime/GetChunkFilenameRuntimeModule.js +6 -6
  527. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  528. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  529. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  530. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  531. package/lib/runtime/GlobalRuntimeModule.js +3 -3
  532. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  533. package/lib/runtime/HelperRuntimeModule.js +16 -1
  534. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  535. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
  536. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  537. package/lib/runtime/NonceRuntimeModule.js +2 -2
  538. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  539. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  540. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  541. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
  542. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  543. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  544. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
  545. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  546. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  547. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  548. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  549. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  550. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  551. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  552. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  553. package/lib/runtime/baseUri.js +1 -1
  554. package/lib/schemes/DataUriPlugin.js +1 -1
  555. package/lib/schemes/HttpUriPlugin.js +67 -11
  556. package/lib/schemes/VirtualUrlPlugin.js +50 -16
  557. package/lib/serialization/AggregateErrorSerializer.js +2 -2
  558. package/lib/serialization/FileMiddleware.js +3 -3
  559. package/lib/serialization/ObjectMiddleware.js +47 -16
  560. package/lib/serialization/SerializerMiddleware.js +2 -2
  561. package/lib/serialization/SingleItemMiddleware.js +4 -2
  562. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  563. package/lib/sharing/ConsumeSharedModule.js +18 -14
  564. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  565. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  566. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  567. package/lib/sharing/ProvideSharedDependency.js +1 -1
  568. package/lib/sharing/ProvideSharedModule.js +11 -9
  569. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  570. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  571. package/lib/sharing/SharePlugin.js +102 -9
  572. package/lib/sharing/ShareRuntimeModule.js +6 -6
  573. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  574. package/lib/{util → sharing}/semver.js +14 -16
  575. package/lib/sharing/utils.js +59 -2
  576. package/lib/stats/DefaultStatsFactoryPlugin.js +22 -19
  577. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  578. package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
  579. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  580. package/lib/{Stats.js → stats/Stats.js} +4 -4
  581. package/lib/stats/StatsFactory.js +14 -13
  582. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  583. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  584. package/lib/template/DependencyTemplate.js +77 -0
  585. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  586. package/lib/template/InitFragment.js +223 -0
  587. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  588. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  589. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  590. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +145 -63
  591. package/lib/{Template.js → template/Template.js} +13 -11
  592. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
  593. package/lib/typescript/TypeScriptPlugin.js +3 -3
  594. package/lib/util/RequestShortener.js +44 -0
  595. package/lib/util/SortableSet.js +87 -22
  596. package/lib/util/SourceProcessor.js +349 -44
  597. package/lib/util/TupleSet.js +27 -27
  598. package/lib/util/WeakTupleMap.js +10 -12
  599. package/lib/util/buildDiagnostics.js +2 -2
  600. package/lib/util/comparators.js +10 -10
  601. package/lib/util/concatenate.js +28 -147
  602. package/lib/util/createMappings.js +111 -0
  603. package/lib/util/dataURL.js +94 -15
  604. package/lib/util/deprecation.js +1 -1
  605. package/lib/util/extractComments.js +118 -0
  606. package/lib/util/formatLocation.js +1 -1
  607. package/lib/util/globUtils.js +197 -16
  608. package/lib/util/haltVisitors.js +51 -0
  609. package/lib/util/handlerKeys.js +2 -2
  610. package/lib/util/identifier.js +117 -1
  611. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  612. package/lib/util/internalSerializables.js +294 -102
  613. package/lib/util/magicComment.js +12 -7
  614. package/lib/util/makeSerializable.js +23 -4
  615. package/lib/util/parseJson.js +1 -1
  616. package/lib/util/preloadModuleType.js +5 -2
  617. package/lib/util/registerExternalSerializer.js +2 -2
  618. package/lib/util/removeBOM.js +1 -1
  619. package/lib/util/runtime.js +1 -1
  620. package/lib/util/serialization.js +4 -1
  621. package/lib/util/source.js +2 -2
  622. package/lib/util/terminalColors.js +161 -0
  623. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  624. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  625. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
  626. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +5 -5
  627. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +11 -10
  628. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  629. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
  630. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  631. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
  632. package/lib/wasm/wasmModuleFilename.js +2 -2
  633. package/lib/wasm-sync/SyncWasmModule.js +3 -3
  634. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
  635. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  636. package/lib/wasm-sync/WebAssemblyGenerator.js +9 -8
  637. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +14 -15
  638. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  639. package/lib/wasm-sync/WebAssemblyParser.js +6 -6
  640. package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
  641. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  642. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  643. package/lib/{Watching.js → watch/Watching.js} +8 -8
  644. package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
  645. package/lib/web/FetchCompileWasmPlugin.js +6 -4
  646. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  647. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  648. package/lib/web/JsonpTemplatePlugin.js +1 -1
  649. package/lib/webpack.js +27 -17
  650. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  651. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  652. package/package.json +55 -40
  653. package/schemas/WebpackOptions.check.js +2 -1
  654. package/schemas/WebpackOptions.d.json.ts +2 -0
  655. package/schemas/WebpackOptions.json +294 -74
  656. package/schemas/plugins/BannerPlugin.check.js +2 -1
  657. package/schemas/plugins/BannerPlugin.json +29 -2
  658. package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
  659. package/schemas/plugins/HtmlParserOptions.check.js +2 -1
  660. package/schemas/plugins/IgnorePlugin.check.js +1 -0
  661. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  662. package/schemas/plugins/IgnorePlugin.json +1 -1
  663. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
  664. package/schemas/plugins/ManifestPlugin.check.js +1 -0
  665. package/schemas/plugins/ManifestPlugin.json +3 -3
  666. package/schemas/plugins/ProgressPlugin.check.js +2 -1
  667. package/schemas/plugins/ProgressPlugin.json +2 -7
  668. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  669. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  670. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
  671. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  672. package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
  673. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  674. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
  675. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
  676. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
  677. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
  678. package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
  679. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  680. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
  681. package/schemas/plugins/container/ExternalsType.check.js +1 -0
  682. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
  683. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  684. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
  685. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
  686. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
  687. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
  688. package/schemas/plugins/css/CssParserOptions.check.js +1 -0
  689. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
  690. package/schemas/plugins/dll/DllPlugin.check.js +1 -0
  691. package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
  692. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  693. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
  694. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
  695. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
  696. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
  697. package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
  698. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
  699. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
  700. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
  701. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
  702. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
  703. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
  704. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
  705. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  706. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
  707. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  708. package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
  709. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  710. package/types.d.ts +19355 -13873
  711. package/lib/LazyBarrel.js +0 -388
  712. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  713. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  714. package/lib/javascript/ChunkFormatHelpers.js +0 -72
  715. package/lib/javascript/grammar.js +0 -5546
  716. package/lib/javascript/parser.js +0 -1500
  717. package/lib/javascript/regexpData.js +0 -51
  718. package/lib/performance/getSourceModules.js +0 -22
  719. package/lib/util/Semaphore.js +0 -65
  720. package/lib/util/objectToMap.js +0 -15
  721. package/schemas/WebpackOptions.check.d.ts +0 -7
  722. package/schemas/_container.json +0 -155
  723. package/schemas/_sharing.json +0 -118
  724. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  725. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  726. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  727. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  728. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  729. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  730. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  731. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  732. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  733. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  734. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  735. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  736. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  737. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  738. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  739. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  740. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  741. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  742. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  743. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  744. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  745. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  746. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  747. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  748. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  749. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  750. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  751. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  752. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  753. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  754. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  755. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  756. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  757. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  758. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  759. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  760. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  761. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  762. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  763. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  764. /package/lib/{util → css}/conventions.js +0 -0
  765. /package/lib/{util → css}/topologicalSort.js +0 -0
  766. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  767. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  768. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  769. /package/lib/{util → javascript}/StackedMap.js +0 -0
  770. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  771. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  772. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  773. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  774. /package/lib/{util → optimize}/Queue.js +0 -0
  775. /package/lib/{util → stats}/smartGrouping.js +0 -0
@@ -5,21 +5,28 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RuntimeGlobals = require("../RuntimeGlobals");
9
- const { evaluateToString } = require("../javascript/JavascriptParserHelpers");
10
- const { recordOptimizationBailout } = require("../util/buildDiagnostics");
11
- const formatLocation = require("../util/formatLocation");
12
- const { propertyAccess } = require("../util/property");
8
+ const isDependencyKind = require("../../graph/isDependencyKind");
9
+ const {
10
+ evaluateToString
11
+ } = require("../../javascript/JavascriptParserHelpers");
12
+ const RuntimeGlobals = require("../../runtime/RuntimeGlobals");
13
+ const { recordOptimizationBailout } = require("../../util/buildDiagnostics");
14
+ const formatLocation = require("../../util/formatLocation");
15
+ const memoize = require("../../util/memoize");
16
+ const { propertyAccess } = require("../../util/property");
17
+
18
+ const RuntimeRequirementsDependency = require("../core/RuntimeRequirementsDependency");
19
+ const ESMExports = require("../esm/ESMExports");
20
+ const DynamicExports = require("../helpers/DynamicExports");
13
21
  const CommonJsExportRequireDependency = require("./CommonJsExportRequireDependency");
14
22
  const CommonJsExportsDependency = require("./CommonJsExportsDependency");
15
- const CommonJsFullRequireDependency = require("./CommonJsFullRequireDependency");
16
23
  const CommonJsObjectExportDependency = require("./CommonJsObjectExportDependency");
17
- const CommonJsRequireDependency = require("./CommonJsRequireDependency");
18
24
  const CommonJsSelfReferenceDependency = require("./CommonJsSelfReferenceDependency");
19
- const DynamicExports = require("./DynamicExports");
20
- const HarmonyExports = require("./HarmonyExports");
21
25
  const ModuleDecoratorDependency = require("./ModuleDecoratorDependency");
22
- const RuntimeRequirementsDependency = require("./RuntimeRequirementsDependency");
26
+
27
+ const getRequireBindingTag = memoize(
28
+ () => require("./CommonJsImportsParserPlugin").REQUIRE_BINDING_TAG
29
+ );
23
30
 
24
31
  const FUNCTION_PROPERTY_DROP_HEAD =
25
32
  CommonJsObjectExportDependency.FUNCTION_PROPERTY_DROP_HEAD;
@@ -38,15 +45,21 @@ const FUNCTION_PROPERTY_DROP_HEAD =
38
45
  * ThisExpression
39
46
  * } from "estree"
40
47
  */
41
- /** @import { ExportInfoName } from "../Dependency" */
42
- /** @import { BuildInfo } from "../Module" */
43
- /** @import BasicEvaluatedExpression from "../javascript/BasicEvaluatedExpression" */
48
+ /**
49
+ * @import {
50
+ * JavascriptParserOptions
51
+ * } from "../../../declarations/WebpackOptions"
52
+ */
53
+ /** @import CommonJsRequireDependency from "./CommonJsRequireDependency" */
54
+ /** @import { ExportInfoName } from "../../graph/Dependency" */
55
+ /** @import { BuildInfo } from "../../module/Module" */
56
+
44
57
  /**
45
58
  * @import JavascriptParser, {
46
59
  * Range,
47
60
  * Members,
48
61
  * StatementPath
49
- * } from "../javascript/JavascriptParser"
62
+ * } from "../../javascript/JavascriptParser"
50
63
  */
51
64
  /**
52
65
  * @import {
@@ -58,10 +71,11 @@ const FUNCTION_PROPERTY_DROP_HEAD =
58
71
  * CommonJsObjectExportKind
59
72
  * } from "./CommonJsObjectExportDependency"
60
73
  */
74
+ /** @import { RequireBindingData } from "./CommonJsImportsParserPlugin" */
61
75
  /**
62
76
  * @import {
63
77
  * JavascriptModuleBuildMeta
64
- * } from "../javascript/JavascriptModule"
78
+ * } from "../../javascript/JavascriptModule"
65
79
  */
66
80
 
67
81
  /**
@@ -92,13 +106,27 @@ const getValueOfPropertyDescription = (expr) => {
92
106
  }
93
107
  };
94
108
 
109
+ const DESCRIPTOR_ATTRIBUTES = new Set([
110
+ "enumerable",
111
+ "configurable",
112
+ "writable"
113
+ ]);
114
+
115
+ /**
116
+ * Whether an attribute value names no binding, like `true` or a minifier's `!0`.
117
+ * @param {Expression} expr attribute value
118
+ * @returns {boolean} true, when the value is a literal, possibly under a unary operator
119
+ */
120
+ const isConstantAttribute = (expr) =>
121
+ expr.type === "Literal" ||
122
+ (expr.type === "UnaryExpression" && expr.argument.type === "Literal");
123
+
95
124
  /**
96
125
  * Extracts the re-exportable expression from a property descriptor, handling
97
126
  * both the eager `{ value: <expr> }` form and the lazy
98
127
  * `{ get: () => <expr> }` / `{ get() { return <expr>; } }` accessor form used
99
- * by barrel files (e.g. webpack's own `lib/index.js`). A `set` accessor cannot
100
- * be reproduced by the rewritten descriptor, so descriptors with a setter are
101
- * left to the generic handler (which keeps the descriptor verbatim).
128
+ * by barrel files (e.g. webpack's own `lib/index.js`). Any other property must
129
+ * be a literal attribute, since the descriptor is kept as written but not walked.
102
130
  * @param {Expression} expr property descriptor expression
103
131
  * @returns {{ expr: Expression, getter: boolean } | undefined} the value expression and whether it is a lazy getter
104
132
  */
@@ -109,15 +137,19 @@ const getReexportOfPropertyDescriptor = (expr) => {
109
137
  /** @type {Expression | undefined} */
110
138
  let getFn;
111
139
  for (const property of expr.properties) {
112
- if (property.type === "SpreadElement" || property.computed) continue;
140
+ if (property.type === "SpreadElement" || property.computed) return;
113
141
  const key = property.key;
114
- if (key.type !== "Identifier") continue;
115
- // A setter would be silently dropped by the rewrite — bail out.
116
- if (key.name === "set") return;
142
+ if (key.type !== "Identifier") return;
117
143
  if (key.name === "value") {
118
144
  valueExpr = /** @type {Expression} */ (property.value);
119
145
  } else if (key.name === "get") {
120
146
  getFn = /** @type {Expression} */ (property.value);
147
+ } else if (
148
+ !DESCRIPTOR_ATTRIBUTES.has(key.name) ||
149
+ !isConstantAttribute(/** @type {Expression} */ (property.value))
150
+ ) {
151
+ // a setter, an unknown key or a computed attribute: not a plain re-export
152
+ return;
121
153
  }
122
154
  }
123
155
  if (valueExpr) return { expr: valueExpr, getter: false };
@@ -126,6 +158,11 @@ const getReexportOfPropertyDescriptor = (expr) => {
126
158
  (getFn.type === "FunctionExpression" ||
127
159
  getFn.type === "ArrowFunctionExpression")
128
160
  ) {
161
+ // A parameter or the function's own name would shadow a `const` binding the body names.
162
+ if (getFn.params.length > 0) return;
163
+ if (getFn.type === "FunctionExpression" && getFn.id) return;
164
+ // An async or generator getter returns a wrapper, not the re-exported value.
165
+ if (getFn.async || getFn.generator) return;
129
166
  // Arrow with expression body: `() => require("./x")`.
130
167
  if (getFn.body.type !== "BlockStatement") {
131
168
  return { expr: /** @type {Expression} */ (getFn.body), getter: true };
@@ -176,10 +213,10 @@ const isFalsyLiteral = (expr) => {
176
213
  };
177
214
 
178
215
  /**
179
- * Parses require call.
216
+ * Parses a `require()` call, or a `const` binding of one, under a static member chain.
180
217
  * @param {JavascriptParser} parser the parser
181
218
  * @param {Expression} expr expression
182
- * @returns {{ argument: BasicEvaluatedExpression, ids: ExportInfoName[] } | undefined} parsed call
219
+ * @returns {{ request: string, ids: ExportInfoName[], binding?: { range: Range, dep: CommonJsRequireDependency } } | undefined} parsed call, with the binding it reads
183
220
  */
184
221
  const parseRequireCall = (parser, expr) => {
185
222
  /** @type {ExportInfoName[]} */
@@ -197,6 +234,18 @@ const parseRequireCall = (parser, expr) => {
197
234
  }
198
235
  expr = expr.object;
199
236
  }
237
+ if (expr.type === "Identifier") {
238
+ const binding =
239
+ /** @type {RequireBindingData | undefined} */
240
+ (parser.getTagData(expr.name, getRequireBindingTag()));
241
+ // No dependency: `webpackIgnore`, a local module, or not walked yet.
242
+ if (!binding || !binding.dep) return;
243
+ return {
244
+ request: binding.request,
245
+ ids: ids.reverse(),
246
+ binding: { range: /** @type {Range} */ (expr.range), dep: binding.dep }
247
+ };
248
+ }
200
249
  if (expr.type !== "CallExpression" || expr.arguments.length !== 1) return;
201
250
  const callee = expr.callee;
202
251
  if (
@@ -208,7 +257,11 @@ const parseRequireCall = (parser, expr) => {
208
257
  const arg = expr.arguments[0];
209
258
  if (arg.type === "SpreadElement") return;
210
259
  const argValue = parser.evaluateExpression(arg);
211
- return { argument: argValue, ids: ids.reverse() };
260
+ if (!argValue.isString()) return;
261
+ return {
262
+ request: /** @type {string} */ (argValue.string),
263
+ ids: ids.reverse()
264
+ };
212
265
  };
213
266
 
214
267
  /**
@@ -358,12 +411,22 @@ const getObjectExportKind = (property) => {
358
411
  const PLUGIN_NAME = "CommonJsExportsParserPlugin";
359
412
 
360
413
  class CommonJsExportsParserPlugin {
414
+ /**
415
+ * Creates an instance of CommonJsExportsParserPlugin.
416
+ * @param {JavascriptParserOptions["topLevelThis"]} topLevelThis what top-level `this` refers to
417
+ */
418
+ constructor(topLevelThis) {
419
+ /** @type {boolean} */
420
+ this.thisAsExports = topLevelThis !== "global";
421
+ }
422
+
361
423
  /**
362
424
  * Applies the plugin by registering its hooks on the compiler.
363
425
  * @param {JavascriptParser} parser the parser
364
426
  * @returns {void}
365
427
  */
366
428
  apply(parser) {
429
+ const { thisAsExports } = this;
367
430
  const enableStructuredExports = () => {
368
431
  DynamicExports.enable(parser.state);
369
432
  };
@@ -452,12 +515,14 @@ class CommonJsExportsParserPlugin {
452
515
  * @returns {boolean | undefined} true, when the expression was handled
453
516
  */
454
517
  const handleAssignExport = (expr, base, members) => {
455
- if (HarmonyExports.isEnabled(parser.state)) return;
456
- // Handle reexporting
457
- const requireCall = parseRequireCall(parser, expr.right);
518
+ if (ESMExports.isEnabled(parser.state)) return;
519
+ // Handle reexporting; `+=` and the like combine with the current value
520
+ const requireCall =
521
+ expr.operator === "="
522
+ ? parseRequireCall(parser, expr.right)
523
+ : undefined;
458
524
  if (
459
525
  requireCall &&
460
- requireCall.argument.isString() &&
461
526
  (members.length === 0 || members[0] !== "__esModule")
462
527
  ) {
463
528
  enableStructuredExports();
@@ -468,10 +533,14 @@ class CommonJsExportsParserPlugin {
468
533
  null,
469
534
  base,
470
535
  members,
471
- /** @type {string} */ (requireCall.argument.string),
536
+ requireCall.request,
472
537
  requireCall.ids,
473
538
  !parser.isStatementLevelExpression(expr)
474
539
  );
540
+ if (requireCall.binding) {
541
+ dep.bindingRange = requireCall.binding.range;
542
+ dep.bindingDependency = requireCall.binding.dep;
543
+ }
475
544
  dep.asiSafe = !parser.isAsiPosition(
476
545
  /** @type {Range} */ (expr.range)[0]
477
546
  );
@@ -598,10 +667,7 @@ class CommonJsExportsParserPlugin {
598
667
  const usedByExports = new Set([name]);
599
668
  for (let j = start; j < module.dependencies.length; j++) {
600
669
  const nested = module.dependencies[j];
601
- if (
602
- nested instanceof CommonJsRequireDependency ||
603
- nested instanceof CommonJsFullRequireDependency
604
- ) {
670
+ if (isDependencyKind(nested, "commonjs-require")) {
605
671
  nested.usedByExports = usedByExports;
606
672
  }
607
673
  }
@@ -614,12 +680,14 @@ class CommonJsExportsParserPlugin {
614
680
  .tap(PLUGIN_NAME, (expr, members) =>
615
681
  handleAssignExport(expr, "exports", members)
616
682
  );
617
- parser.hooks.assignMemberChain
618
- .for("this")
619
- .tap(PLUGIN_NAME, (expr, members) => {
620
- if (!parser.scope.topLevelScope) return;
621
- return handleAssignExport(expr, "this", members);
622
- });
683
+ if (thisAsExports) {
684
+ parser.hooks.assignMemberChain
685
+ .for("this")
686
+ .tap(PLUGIN_NAME, (expr, members) => {
687
+ if (!parser.scope.topLevelScope) return;
688
+ return handleAssignExport(expr, "this", members);
689
+ });
690
+ }
623
691
  parser.hooks.assignMemberChain
624
692
  .for("module")
625
693
  .tap(PLUGIN_NAME, (expr, members) => {
@@ -640,7 +708,9 @@ class CommonJsExportsParserPlugin {
640
708
  if (
641
709
  exportsArg.identifier !== "exports" &&
642
710
  exportsArg.identifier !== "module.exports" &&
643
- (exportsArg.identifier !== "this" || !parser.scope.topLevelScope)
711
+ (exportsArg.identifier !== "this" ||
712
+ !thisAsExports ||
713
+ !parser.scope.topLevelScope)
644
714
  ) {
645
715
  return;
646
716
  }
@@ -655,17 +725,22 @@ class CommonJsExportsParserPlugin {
655
725
  const reexport = getReexportOfPropertyDescriptor(descArg);
656
726
  const requireCall =
657
727
  reexport && parseRequireCall(parser, reexport.expr);
658
- if (reexport && requireCall && requireCall.argument.isString()) {
728
+ if (reexport && requireCall) {
659
729
  const dep = new CommonJsExportRequireDependency(
660
730
  /** @type {Range} */ (expr.range),
661
731
  /** @type {Range} */ (reexport.expr.range),
662
732
  `Object.defineProperty(${exportsArg.identifier})`,
663
733
  [property],
664
- /** @type {string} */ (requireCall.argument.string),
734
+ requireCall.request,
665
735
  requireCall.ids,
666
736
  false
667
737
  );
668
738
  dep.getter = reexport.getter;
739
+ dep.descriptorStart = /** @type {Range} */ (descArg.range)[0];
740
+ if (requireCall.binding) {
741
+ dep.bindingRange = requireCall.binding.range;
742
+ dep.bindingDependency = requireCall.binding.dep;
743
+ }
669
744
  dep.asiSafe = !parser.isAsiPosition(
670
745
  /** @type {Range} */ (expr.range)[0]
671
746
  );
@@ -724,7 +799,7 @@ class CommonJsExportsParserPlugin {
724
799
  * @returns {boolean | void} true, when the expression was handled
725
800
  */
726
801
  const handleAccessExport = (expr, base, members, call) => {
727
- if (HarmonyExports.isEnabled(parser.state)) return;
802
+ if (ESMExports.isEnabled(parser.state)) return;
728
803
  if (members.length === 0) {
729
804
  bailout(
730
805
  `${base} is used directly at ${formatLocation(
@@ -793,27 +868,29 @@ class CommonJsExportsParserPlugin {
793
868
  .tap(PLUGIN_NAME, (expr) =>
794
869
  handleAccessExport(expr, "module.exports", [])
795
870
  );
796
- parser.hooks.callMemberChain
797
- .for("this")
798
- .tap(PLUGIN_NAME, (expr, members) => {
799
- if (!parser.scope.topLevelScope) return;
800
- return handleAccessExport(expr.callee, "this", members, expr);
801
- });
802
- parser.hooks.expressionMemberChain
803
- .for("this")
804
- .tap(PLUGIN_NAME, (expr, members) => {
871
+ if (thisAsExports) {
872
+ parser.hooks.callMemberChain
873
+ .for("this")
874
+ .tap(PLUGIN_NAME, (expr, members) => {
875
+ if (!parser.scope.topLevelScope) return;
876
+ return handleAccessExport(expr.callee, "this", members, expr);
877
+ });
878
+ parser.hooks.expressionMemberChain
879
+ .for("this")
880
+ .tap(PLUGIN_NAME, (expr, members) => {
881
+ if (!parser.scope.topLevelScope) return;
882
+ return handleAccessExport(expr, "this", members);
883
+ });
884
+ parser.hooks.expression.for("this").tap(PLUGIN_NAME, (expr) => {
805
885
  if (!parser.scope.topLevelScope) return;
806
- return handleAccessExport(expr, "this", members);
886
+ return handleAccessExport(expr, "this", []);
807
887
  });
808
- parser.hooks.expression.for("this").tap(PLUGIN_NAME, (expr) => {
809
- if (!parser.scope.topLevelScope) return;
810
- return handleAccessExport(expr, "this", []);
811
- });
888
+ }
812
889
 
813
890
  // Bailouts //
814
891
  parser.hooks.expression.for("module").tap(PLUGIN_NAME, (expr) => {
815
- const isHarmony = HarmonyExports.isEnabled(parser.state);
816
- // Silent under ESM, where `HarmonyExports` governs and nothing was lost.
892
+ const isHarmony = ESMExports.isEnabled(parser.state);
893
+ // Silent under ESM, where `ESMExports` governs and nothing was lost.
817
894
  bailout(
818
895
  isHarmony
819
896
  ? undefined
@@ -823,7 +900,7 @@ class CommonJsExportsParserPlugin {
823
900
  );
824
901
  const dep = new ModuleDecoratorDependency(
825
902
  isHarmony
826
- ? RuntimeGlobals.harmonyModuleDecorator
903
+ ? RuntimeGlobals.esmModuleDecorator
827
904
  : RuntimeGlobals.nodeModuleDecorator,
828
905
  !isHarmony
829
906
  );
@@ -5,39 +5,40 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Template = require("../Template");
9
8
  const {
10
9
  getDependencyUsedByExportsCondition
11
- } = require("../optimize/InnerGraph");
12
- const { equals } = require("../util/ArrayHelpers");
13
- const { getTrimmedIdsAndRange } = require("../util/chainedImports");
14
- const makeSerializable = require("../util/makeSerializable");
15
- const { propertyAccess } = require("../util/property");
10
+ } = require("../../optimize/InnerGraph");
11
+ const Template = require("../../template/Template");
12
+ const { equals } = require("../../util/ArrayHelpers");
13
+ const makeSerializable = require("../../util/makeSerializable");
14
+ const { propertyAccess } = require("../../util/property");
15
+ const ModuleDependency = require("../core/ModuleDependency");
16
+ const ESMImportGuard = require("../esm/ESMImportGuard");
17
+ const { getTrimmedIdsAndRange } = require("../helpers/chainedImports");
16
18
  const {
17
19
  ESM_MODULE_EXPORTS_NAME,
18
20
  getRequireEsmModuleExportsAccess,
19
21
  isRequireEsmModuleExportsModule
20
22
  } = require("./CommonJsDependencyHelpers");
21
- const HarmonyImportGuard = require("./HarmonyImportGuard");
22
- const ModuleDependency = require("./ModuleDependency");
23
23
 
24
24
  /** @import { ReplaceSource } from "webpack-sources" */
25
25
  /**
26
26
  * @import Dependency, {
27
27
  * GetConditionFn,
28
28
  * ReferencedExports,
29
- * ExportInfoName
30
- * } from "../Dependency"
29
+ * ExportInfoName,
30
+ * DependencyKinds
31
+ * } from "../../graph/Dependency"
31
32
  */
32
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
33
- /** @import ModuleGraph from "../ModuleGraph" */
34
- /** @import { Range } from "../javascript/JavascriptParser" */
35
- /** @import { UsedByExports } from "../optimize/InnerGraph" */
36
- /** @import { RuntimeSpec } from "../util/runtime" */
37
- /** @import { IdRanges } from "../util/chainedImports" */
38
- /** @import { DependencyGuard } from "./HarmonyImportGuard" */
39
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[ExportInfoName[], IdRanges | undefined, boolean, undefined | boolean, DependencyGuard[] | undefined, boolean, boolean, UsedByExports | undefined]>} ObjectDeserializerContext */
40
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[ExportInfoName[], IdRanges | undefined, boolean, undefined | boolean, DependencyGuard[] | undefined, boolean, boolean, UsedByExports | undefined]>} ObjectSerializerContext */
33
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
34
+ /** @import ModuleGraph from "../../graph/ModuleGraph" */
35
+ /** @import { Range } from "../../javascript/JavascriptParser" */
36
+ /** @import { UsedByExports } from "../../optimize/InnerGraph" */
37
+ /** @import { RuntimeSpec } from "../../util/runtime" */
38
+ /** @import { IdRanges } from "../helpers/chainedImports" */
39
+ /** @import { DependencyGuard } from "../esm/ESMImportGuard" */
40
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectDeserializerContext<[ExportInfoName[], IdRanges | undefined, boolean, undefined | boolean, DependencyGuard[] | undefined, boolean, boolean, UsedByExports | undefined]>} ObjectDeserializerContext */
41
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectSerializerContext<[ExportInfoName[], IdRanges | undefined, boolean, undefined | boolean, DependencyGuard[] | undefined, boolean, boolean, UsedByExports | undefined]>} ObjectSerializerContext */
41
42
 
42
43
  class CommonJsFullRequireDependency extends ModuleDependency {
43
44
  /**
@@ -51,7 +52,7 @@ class CommonJsFullRequireDependency extends ModuleDependency {
51
52
  request,
52
53
  range,
53
54
  names,
54
- idRanges /* TODO webpack 6 make this non-optional. It must always be set to properly trim ids. */
55
+ idRanges /* TODO in the next major release: make this non-optional. It must always be set to properly trim ids. */
55
56
  ) {
56
57
  super(request);
57
58
  this.range = range;
@@ -95,7 +96,7 @@ class CommonJsFullRequireDependency extends ModuleDependency {
95
96
  }
96
97
  return !(
97
98
  guards !== undefined &&
98
- HarmonyImportGuard.isDeadByGuards(guards, moduleGraph, runtime)
99
+ ESMImportGuard.isDeadByGuards(guards, moduleGraph, runtime)
99
100
  );
100
101
  };
101
102
  }
@@ -303,9 +304,16 @@ CommonJsFullRequireDependency.Template = class CommonJsFullRequireDependencyTemp
303
304
  }
304
305
  };
305
306
 
306
- makeSerializable(
307
- CommonJsFullRequireDependency,
307
+ makeSerializable(CommonJsFullRequireDependency, [
308
+ "webpack/lib/dependencies/commonjs/CommonJsFullRequireDependency",
309
+ // TODO in the next major release: remove, they restore pre-move cache packs
308
310
  "webpack/lib/dependencies/CommonJsFullRequireDependency"
309
- );
311
+ ]);
312
+
313
+ /** @type {Set<keyof DependencyKinds>} */
314
+ CommonJsFullRequireDependency.KINDS = new Set([
315
+ ...ModuleDependency.KINDS,
316
+ "commonjs-require"
317
+ ]);
310
318
 
311
319
  module.exports = CommonJsFullRequireDependency;
@@ -5,53 +5,53 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RuntimeGlobals = require("../RuntimeGlobals");
9
-
10
8
  const {
11
9
  evaluateToIdentifier,
12
10
  evaluateToString,
13
11
  expressionIsUnsupported,
14
12
  toConstantDependency
15
- } = require("../javascript/JavascriptParserHelpers");
16
- const memoize = require("../util/memoize");
17
- const traverseDestructuringAssignmentProperties = require("../util/traverseDestructuringAssignmentProperties");
13
+ } = require("../../javascript/JavascriptParserHelpers");
14
+ const RuntimeGlobals = require("../../runtime/RuntimeGlobals");
15
+
16
+ const memoize = require("../../util/memoize");
17
+ const LocalModuleDependency = require("../amd/LocalModuleDependency");
18
+ const { getLocalModule } = require("../amd/LocalModulesHelpers");
19
+ const ContextDependencyHelpers = require("../context/ContextDependencyHelpers");
20
+ const ConstDependency = require("../core/ConstDependency");
21
+ const ESMImportGuard = require("../esm/ESMImportGuard");
22
+ const traverseDestructuringAssignmentProperties = require("../helpers/traverseDestructuringAssignmentProperties");
18
23
  const CommonJsFullRequireDependency = require("./CommonJsFullRequireDependency");
19
24
  const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
20
25
  const CommonJsRequireDependency = require("./CommonJsRequireDependency");
21
- const ConstDependency = require("./ConstDependency");
22
- const ContextDependencyHelpers = require("./ContextDependencyHelpers");
23
- const HarmonyImportGuard = require("./HarmonyImportGuard");
24
- const LocalModuleDependency = require("./LocalModuleDependency");
25
- const { getLocalModule } = require("./LocalModulesHelpers");
26
26
  const RequireHeaderDependency = require("./RequireHeaderDependency");
27
27
  const RequireResolveContextDependency = require("./RequireResolveContextDependency");
28
28
  const RequireResolveDependency = require("./RequireResolveDependency");
29
29
  const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
30
30
 
31
31
  const getUnsupportedFeatureWarning = memoize(() =>
32
- require("../errors/UnsupportedFeatureWarning")
32
+ require("../../errors/UnsupportedFeatureWarning")
33
33
  );
34
34
 
35
35
  const getCommentCompilationWarning = memoize(() =>
36
- require("../errors/CommentCompilationWarning")
36
+ require("../../errors/CommentCompilationWarning")
37
37
  );
38
38
 
39
39
  /** @import { CallExpression, Expression, NewExpression } from "estree" */
40
40
  /**
41
41
  * @import {
42
42
  * JavascriptParserOptions
43
- * } from "../../declarations/WebpackOptions"
43
+ * } from "../../../declarations/WebpackOptions"
44
44
  */
45
- /** @import { RawReferencedExports } from "../Dependency" */
45
+ /** @import { RawReferencedExports } from "../../graph/Dependency" */
46
46
  /**
47
47
  * @import JavascriptParser, {
48
48
  * Range,
49
49
  * Members,
50
50
  * CalleeMembers
51
- * } from "../javascript/JavascriptParser"
51
+ * } from "../../javascript/JavascriptParser"
52
52
  */
53
- /** @import BasicEvaluatedExpression from "../javascript/BasicEvaluatedExpression" */
54
- /** @import LocalModule from "./LocalModule" */
53
+ /** @import BasicEvaluatedExpression from "../../javascript/BasicEvaluatedExpression" */
54
+ /** @import LocalModule from "../amd/LocalModule" */
55
55
 
56
56
  /**
57
57
  * Defines the common js import settings type used by this module.
@@ -65,6 +65,7 @@ const getCommentCompilationWarning = memoize(() =>
65
65
  * member-access references on `NAME` to the `CommonJsRequireDependency`
66
66
  * created for the `require()` call.
67
67
  * @typedef {object} RequireBindingData
68
+ * @property {string} request request passed to `require()`
68
69
  * @property {RawReferencedExports | null} referencedExports mutable list, pushed to as `NAME.x.y` accesses are walked; null means the whole namespace is used. Separate from `dep` so a deferred require (walked after accesses on `NAME`) still collects them; becomes the dep's shared list on creation.
69
70
  * @property {InstanceType<typeof import("./CommonJsRequireDependency")> | null} dep dependency for the `require()` call, null until the `require()` is walked; kept so a later whole-namespace use can null its list directly
70
71
  */
@@ -216,7 +217,7 @@ const createRequireCallHandler = (
216
217
  dep.loc = parser.getLocation(expr);
217
218
  dep.optional = Boolean(parser.scope.inTry);
218
219
  parser.state.current.addDependency(dep);
219
- HarmonyImportGuard.attachDependencyGuards(parser, dep);
220
+ ESMImportGuard.attachDependencyGuards(parser, dep);
220
221
  return dep;
221
222
  }
222
223
  };
@@ -433,6 +434,18 @@ const createProcessResolveHandler = (parser, options, getContext) => {
433
434
 
434
435
  if (expr.arguments.length !== 1) return;
435
436
  const param = parser.evaluateExpression(expr.arguments[0]);
437
+ const range = /** @type {Range} */ (expr.range);
438
+ const argumentRange = /** @type {Range} */ (expr.arguments[0].range);
439
+ const header = new RequireResolveHeaderDependency([
440
+ range[0],
441
+ argumentRange[0]
442
+ ]);
443
+ header.loc = parser.getLocation(expr);
444
+ parser.state.module.addPresentationalDependency(header);
445
+ // A parenthesized expression cannot retain the call's trailing comma.
446
+ const closing = new ConstDependency(")", [argumentRange[1], range[1]]);
447
+ closing.loc = parser.getLocation(expr);
448
+ parser.state.module.addPresentationalDependency(closing);
436
449
  if (param.isConditional()) {
437
450
  for (const option of /** @type {BasicEvaluatedExpression[]} */ (
438
451
  param.options
@@ -442,22 +455,12 @@ const createProcessResolveHandler = (parser, options, getContext) => {
442
455
  processResolveContext(expr, option, weak);
443
456
  }
444
457
  }
445
- const dep = new RequireResolveHeaderDependency(
446
- /** @type {Range} */ (expr.callee.range)
447
- );
448
- dep.loc = parser.getLocation(expr);
449
- parser.state.module.addPresentationalDependency(dep);
450
458
  return true;
451
459
  }
452
460
  const result = processResolveItem(expr, param, weak);
453
461
  if (result === undefined) {
454
462
  processResolveContext(expr, param, weak);
455
463
  }
456
- const dep = new RequireResolveHeaderDependency(
457
- /** @type {Range} */ (expr.callee.range)
458
- );
459
- dep.loc = parser.getLocation(expr);
460
- parser.state.module.addPresentationalDependency(dep);
461
464
  return true;
462
465
  };
463
466
  };
@@ -675,7 +678,7 @@ class CommonJsImportsParserPlugin {
675
678
  dep._canConcatenate = true;
676
679
  dep.loc = parser.getLocation(expr);
677
680
  parser.state.current.addDependency(dep);
678
- HarmonyImportGuard.attachDependencyGuards(parser, dep);
681
+ ESMImportGuard.attachDependencyGuards(parser, dep);
679
682
  return true;
680
683
  }
681
684
  };
@@ -718,7 +721,7 @@ class CommonJsImportsParserPlugin {
718
721
  dep._canConcatenate = true;
719
722
  dep.loc = parser.getLocation(expr.callee);
720
723
  parser.state.current.addDependency(dep);
721
- HarmonyImportGuard.attachDependencyGuards(parser, dep);
724
+ ESMImportGuard.attachDependencyGuards(parser, dep);
722
725
  parser.walkExpressions(expr.arguments);
723
726
  return true;
724
727
  }
@@ -764,6 +767,7 @@ class CommonJsImportsParserPlugin {
764
767
  if (!requireInfo || requireInfo.name !== "require") return;
765
768
  /** @type {RequireBindingData} */
766
769
  const binding = {
770
+ request: arg.value,
767
771
  referencedExports: [],
768
772
  dep: null
769
773
  };
@@ -883,5 +887,6 @@ CommonJsImportsParserPlugin.createRequireAsExpressionHandler =
883
887
  CommonJsImportsParserPlugin.createRequireCacheDependency =
884
888
  createRequireCacheDependency;
885
889
  CommonJsImportsParserPlugin.createRequireHandler = createRequireCallHandler;
890
+ CommonJsImportsParserPlugin.REQUIRE_BINDING_TAG = REQUIRE_BINDING_TAG;
886
891
 
887
892
  module.exports = CommonJsImportsParserPlugin;