webpack 5.97.1 → 5.104.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 (610) hide show
  1. package/README.md +368 -434
  2. package/bin/webpack.js +15 -9
  3. package/hot/dev-server.js +18 -3
  4. package/hot/emitter-event-target.js +7 -0
  5. package/hot/lazy-compilation-node.js +45 -29
  6. package/hot/lazy-compilation-universal.js +18 -0
  7. package/hot/lazy-compilation-web.js +15 -5
  8. package/hot/load-http.js +7 -0
  9. package/hot/log.js +15 -15
  10. package/hot/only-dev-server.js +19 -4
  11. package/hot/poll.js +1 -0
  12. package/lib/APIPlugin.js +48 -50
  13. package/lib/AbstractMethodError.js +1 -0
  14. package/lib/AsyncDependenciesBlock.js +4 -5
  15. package/lib/AutomaticPrefetchPlugin.js +22 -22
  16. package/lib/BannerPlugin.js +35 -40
  17. package/lib/Cache.js +12 -9
  18. package/lib/CacheFacade.js +13 -13
  19. package/lib/CaseSensitiveModulesWarning.js +6 -6
  20. package/lib/Chunk.js +68 -47
  21. package/lib/ChunkGraph.js +174 -95
  22. package/lib/ChunkGroup.js +32 -24
  23. package/lib/ChunkTemplate.js +8 -8
  24. package/lib/CleanPlugin.js +90 -42
  25. package/lib/CodeGenerationResults.js +12 -9
  26. package/lib/CompatibilityPlugin.js +70 -21
  27. package/lib/Compilation.js +827 -550
  28. package/lib/Compiler.js +137 -109
  29. package/lib/ConcatenationScope.js +45 -8
  30. package/lib/ConditionalInitFragment.js +1 -1
  31. package/lib/ConstPlugin.js +89 -59
  32. package/lib/ContextExclusionPlugin.js +5 -4
  33. package/lib/ContextModule.js +66 -51
  34. package/lib/ContextModuleFactory.js +51 -30
  35. package/lib/ContextReplacementPlugin.js +89 -34
  36. package/lib/CssModule.js +8 -4
  37. package/lib/DefinePlugin.js +209 -57
  38. package/lib/DelegatedModule.js +34 -23
  39. package/lib/DelegatedModuleFactoryPlugin.js +27 -24
  40. package/lib/DelegatedPlugin.js +4 -2
  41. package/lib/DependenciesBlock.js +0 -2
  42. package/lib/Dependency.js +37 -19
  43. package/lib/DependencyTemplate.js +2 -0
  44. package/lib/DependencyTemplates.js +5 -6
  45. package/lib/DllEntryPlugin.js +8 -4
  46. package/lib/DllModule.js +11 -12
  47. package/lib/DllModuleFactory.js +2 -2
  48. package/lib/DllPlugin.js +9 -6
  49. package/lib/DllReferencePlugin.js +60 -65
  50. package/lib/DotenvPlugin.js +462 -0
  51. package/lib/DynamicEntryPlugin.js +8 -8
  52. package/lib/EntryOptionPlugin.js +8 -6
  53. package/lib/EntryPlugin.js +5 -3
  54. package/lib/Entrypoint.js +19 -0
  55. package/lib/EnvironmentNotSupportAsyncWarning.js +0 -3
  56. package/lib/EnvironmentPlugin.js +26 -19
  57. package/lib/ErrorHelpers.js +6 -6
  58. package/lib/EvalDevToolModulePlugin.js +17 -14
  59. package/lib/EvalSourceMapDevToolPlugin.js +156 -142
  60. package/lib/ExportsInfo.js +180 -115
  61. package/lib/ExportsInfoApiPlugin.js +2 -2
  62. package/lib/ExternalModule.js +256 -102
  63. package/lib/ExternalModuleFactoryPlugin.js +66 -29
  64. package/lib/ExternalsPlugin.js +57 -2
  65. package/lib/FileSystemInfo.js +313 -247
  66. package/lib/FlagAllModulesAsUsedPlugin.js +2 -2
  67. package/lib/FlagDependencyExportsPlugin.js +29 -19
  68. package/lib/FlagDependencyUsagePlugin.js +9 -10
  69. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  70. package/lib/Generator.js +43 -10
  71. package/lib/GraphHelpers.js +11 -3
  72. package/lib/HookWebpackError.js +35 -7
  73. package/lib/HotModuleReplacementPlugin.js +149 -108
  74. package/lib/HotUpdateChunk.js +0 -3
  75. package/lib/IgnoreErrorModuleFactory.js +2 -2
  76. package/lib/IgnorePlugin.js +16 -13
  77. package/lib/IgnoreWarningsPlugin.js +6 -4
  78. package/lib/InitFragment.js +41 -23
  79. package/lib/InvalidDependenciesModuleWarning.js +2 -3
  80. package/lib/JavascriptMetaInfoPlugin.js +2 -4
  81. package/lib/LibManifestPlugin.js +12 -13
  82. package/lib/LoaderOptionsPlugin.js +12 -14
  83. package/lib/LoaderTargetPlugin.js +5 -3
  84. package/lib/MainTemplate.js +18 -29
  85. package/lib/ManifestPlugin.js +235 -0
  86. package/lib/Module.js +138 -60
  87. package/lib/ModuleBuildError.js +4 -2
  88. package/lib/ModuleDependencyError.js +4 -3
  89. package/lib/ModuleDependencyWarning.js +4 -3
  90. package/lib/ModuleError.js +1 -1
  91. package/lib/ModuleFactory.js +10 -3
  92. package/lib/ModuleFilenameHelpers.js +63 -60
  93. package/lib/ModuleGraph.js +195 -70
  94. package/lib/ModuleGraphConnection.js +14 -20
  95. package/lib/ModuleInfoHeaderPlugin.js +15 -16
  96. package/lib/ModuleNotFoundError.js +1 -1
  97. package/lib/ModuleParseError.js +8 -4
  98. package/lib/ModuleSourceTypeConstants.js +189 -0
  99. package/lib/ModuleTemplate.js +7 -8
  100. package/lib/ModuleTypeConstants.js +37 -15
  101. package/lib/ModuleWarning.js +1 -1
  102. package/lib/MultiCompiler.js +64 -49
  103. package/lib/MultiStats.js +19 -14
  104. package/lib/MultiWatching.js +7 -11
  105. package/lib/NoEmitOnErrorsPlugin.js +5 -3
  106. package/lib/NodeStuffPlugin.js +438 -126
  107. package/lib/NormalModule.js +322 -201
  108. package/lib/NormalModuleFactory.js +230 -117
  109. package/lib/NormalModuleReplacementPlugin.js +37 -39
  110. package/lib/NullFactory.js +3 -2
  111. package/lib/OptimizationStages.js +1 -1
  112. package/lib/OptionsApply.js +1 -1
  113. package/lib/Parser.js +5 -3
  114. package/lib/PlatformPlugin.js +3 -1
  115. package/lib/PrefetchPlugin.js +6 -4
  116. package/lib/ProgressPlugin.js +48 -49
  117. package/lib/ProvidePlugin.js +7 -5
  118. package/lib/RawModule.js +26 -12
  119. package/lib/RecordIdsPlugin.js +88 -110
  120. package/lib/RequestShortener.js +3 -1
  121. package/lib/ResolverFactory.js +15 -14
  122. package/lib/RuntimeGlobals.js +216 -153
  123. package/lib/RuntimeModule.js +7 -6
  124. package/lib/RuntimePlugin.js +115 -62
  125. package/lib/RuntimeTemplate.js +248 -76
  126. package/lib/SelfModuleFactory.js +2 -2
  127. package/lib/SizeFormatHelpers.js +2 -2
  128. package/lib/SourceMapDevToolModuleOptionsPlugin.js +17 -27
  129. package/lib/SourceMapDevToolPlugin.js +72 -59
  130. package/lib/Stats.js +2 -3
  131. package/lib/Template.js +31 -24
  132. package/lib/TemplatedPathPlugin.js +24 -21
  133. package/lib/UseStrictPlugin.js +1 -1
  134. package/lib/WarnCaseSensitiveModulesPlugin.js +36 -37
  135. package/lib/WarnDeprecatedOptionPlugin.js +7 -8
  136. package/lib/WarnNoModeSetPlugin.js +3 -1
  137. package/lib/WatchIgnorePlugin.js +11 -9
  138. package/lib/Watching.js +27 -29
  139. package/lib/WebpackError.js +10 -3
  140. package/lib/WebpackIsIncludedPlugin.js +4 -5
  141. package/lib/WebpackOptionsApply.js +263 -135
  142. package/lib/asset/AssetBytesGenerator.js +171 -0
  143. package/lib/asset/AssetBytesParser.js +37 -0
  144. package/lib/asset/AssetGenerator.js +285 -223
  145. package/lib/asset/AssetModulesPlugin.js +103 -41
  146. package/lib/asset/AssetParser.js +7 -3
  147. package/lib/asset/AssetSourceGenerator.js +41 -17
  148. package/lib/asset/RawDataUrlModule.js +17 -9
  149. package/lib/async-modules/AsyncModuleHelpers.js +52 -0
  150. package/lib/async-modules/AwaitDependenciesInitFragment.js +39 -24
  151. package/lib/async-modules/InferAsyncModulesPlugin.js +25 -26
  152. package/lib/buildChunkGraph.js +36 -17
  153. package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
  154. package/lib/cache/IdleFileCachePlugin.js +22 -20
  155. package/lib/cache/MemoryCachePlugin.js +3 -3
  156. package/lib/cache/MemoryWithGcCachePlugin.js +17 -11
  157. package/lib/cache/PackFileCacheStrategy.js +198 -170
  158. package/lib/cache/ResolverCachePlugin.js +58 -48
  159. package/lib/cache/getLazyHashedEtag.js +5 -4
  160. package/lib/cli.js +197 -39
  161. package/lib/config/browserslistTargetHandler.js +110 -85
  162. package/lib/config/defaults.js +514 -113
  163. package/lib/config/normalization.js +91 -64
  164. package/lib/config/target.js +30 -18
  165. package/lib/container/ContainerEntryDependency.js +0 -1
  166. package/lib/container/ContainerEntryModule.js +16 -15
  167. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  168. package/lib/container/ContainerPlugin.js +5 -6
  169. package/lib/container/ContainerReferencePlugin.js +27 -30
  170. package/lib/container/FallbackDependency.js +2 -1
  171. package/lib/container/FallbackModule.js +19 -14
  172. package/lib/container/FallbackModuleFactory.js +2 -2
  173. package/lib/container/HoistContainerReferencesPlugin.js +7 -7
  174. package/lib/container/ModuleFederationPlugin.js +4 -4
  175. package/lib/container/RemoteModule.js +14 -14
  176. package/lib/container/RemoteRuntimeModule.js +2 -2
  177. package/lib/container/options.js +9 -9
  178. package/lib/css/CssGenerator.js +366 -74
  179. package/lib/css/CssLoadingRuntimeModule.js +26 -16
  180. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
  181. package/lib/css/CssModulesPlugin.js +191 -142
  182. package/lib/css/CssParser.js +1756 -740
  183. package/lib/css/walkCssTokens.js +180 -67
  184. package/lib/debug/ProfilingPlugin.js +135 -51
  185. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +29 -28
  186. package/lib/dependencies/AMDPlugin.js +18 -11
  187. package/lib/dependencies/AMDRequireArrayDependency.js +5 -4
  188. package/lib/dependencies/AMDRequireContextDependency.js +2 -1
  189. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +35 -26
  190. package/lib/dependencies/AMDRuntimeModules.js +3 -1
  191. package/lib/dependencies/CachedConstDependency.js +24 -18
  192. package/lib/dependencies/CommonJsExportRequireDependency.js +31 -24
  193. package/lib/dependencies/CommonJsExportsDependency.js +2 -1
  194. package/lib/dependencies/CommonJsExportsParserPlugin.js +50 -36
  195. package/lib/dependencies/CommonJsFullRequireDependency.js +7 -13
  196. package/lib/dependencies/CommonJsImportsParserPlugin.js +146 -127
  197. package/lib/dependencies/CommonJsPlugin.js +29 -18
  198. package/lib/dependencies/CommonJsRequireContextDependency.js +4 -3
  199. package/lib/dependencies/CommonJsSelfReferenceDependency.js +4 -4
  200. package/lib/dependencies/ConstDependency.js +2 -2
  201. package/lib/dependencies/ContextDependency.js +10 -5
  202. package/lib/dependencies/ContextDependencyHelpers.js +21 -13
  203. package/lib/dependencies/ContextDependencyTemplateAsId.js +10 -9
  204. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +13 -10
  205. package/lib/dependencies/ContextElementDependency.js +23 -12
  206. package/lib/dependencies/CssIcssExportDependency.js +402 -22
  207. package/lib/dependencies/CssIcssImportDependency.js +116 -51
  208. package/lib/dependencies/CssIcssSymbolDependency.js +33 -35
  209. package/lib/dependencies/CssImportDependency.js +17 -14
  210. package/lib/dependencies/CssUrlDependency.js +8 -13
  211. package/lib/dependencies/DynamicExports.js +19 -19
  212. package/lib/dependencies/ExportsInfoDependency.js +13 -10
  213. package/lib/dependencies/ExternalModuleDependency.js +7 -7
  214. package/lib/dependencies/ExternalModuleInitFragment.js +3 -2
  215. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +96 -0
  216. package/lib/dependencies/HarmonyAcceptDependency.js +96 -5
  217. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -5
  218. package/lib/dependencies/HarmonyCompatibilityDependency.js +0 -1
  219. package/lib/dependencies/HarmonyDetectionParserPlugin.js +10 -30
  220. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +19 -8
  221. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +136 -99
  222. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +152 -61
  224. package/lib/dependencies/HarmonyExportInitFragment.js +2 -2
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +2 -2
  226. package/lib/dependencies/HarmonyExports.js +5 -5
  227. package/lib/dependencies/HarmonyImportDependency.js +92 -45
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +201 -163
  229. package/lib/dependencies/HarmonyImportSideEffectDependency.js +5 -6
  230. package/lib/dependencies/HarmonyImportSpecifierDependency.js +69 -42
  231. package/lib/dependencies/HarmonyModulesPlugin.js +16 -11
  232. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -15
  233. package/lib/dependencies/ImportContextDependency.js +15 -1
  234. package/lib/dependencies/ImportDependency.js +25 -7
  235. package/lib/dependencies/ImportEagerDependency.js +7 -5
  236. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +23 -13
  237. package/lib/dependencies/ImportMetaContextPlugin.js +2 -2
  238. package/lib/dependencies/ImportMetaPlugin.js +172 -20
  239. package/lib/dependencies/ImportParserPlugin.js +327 -49
  240. package/lib/dependencies/ImportPhase.js +121 -0
  241. package/lib/dependencies/ImportPlugin.js +3 -1
  242. package/lib/dependencies/ImportWeakDependency.js +7 -5
  243. package/lib/dependencies/JsonExportsDependency.js +54 -28
  244. package/lib/dependencies/LoaderDependency.js +0 -3
  245. package/lib/dependencies/LoaderImportDependency.js +0 -3
  246. package/lib/dependencies/LoaderPlugin.js +24 -25
  247. package/lib/dependencies/LocalModulesHelpers.js +4 -4
  248. package/lib/dependencies/ModuleDecoratorDependency.js +2 -4
  249. package/lib/dependencies/ModuleDependency.js +14 -13
  250. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  251. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  252. package/lib/dependencies/NullDependency.js +2 -0
  253. package/lib/dependencies/ProvidedDependency.js +8 -10
  254. package/lib/dependencies/PureExpressionDependency.js +1 -2
  255. package/lib/dependencies/RequireContextDependency.js +2 -1
  256. package/lib/dependencies/RequireContextDependencyParserPlugin.js +47 -44
  257. package/lib/dependencies/RequireContextPlugin.js +5 -2
  258. package/lib/dependencies/RequireEnsureDependenciesBlock.js +3 -3
  259. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +101 -99
  260. package/lib/dependencies/RequireEnsurePlugin.js +6 -6
  261. package/lib/dependencies/RequireIncludeDependency.js +2 -2
  262. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
  263. package/lib/dependencies/RequireIncludePlugin.js +1 -0
  264. package/lib/dependencies/RequireResolveContextDependency.js +1 -1
  265. package/lib/dependencies/RequireResolveDependency.js +3 -3
  266. package/lib/dependencies/RuntimeRequirementsDependency.js +3 -4
  267. package/lib/dependencies/StaticExportsDependency.js +3 -5
  268. package/lib/dependencies/SystemPlugin.js +4 -4
  269. package/lib/dependencies/URLContextDependency.js +65 -0
  270. package/lib/dependencies/URLDependency.js +3 -8
  271. package/lib/dependencies/URLPlugin.js +18 -159
  272. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -3
  273. package/lib/dependencies/WebAssemblyImportDependency.js +2 -2
  274. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -3
  275. package/lib/dependencies/WorkerDependency.js +8 -6
  276. package/lib/dependencies/WorkerPlugin.js +131 -67
  277. package/lib/dependencies/getFunctionExpression.js +2 -2
  278. package/lib/dependencies/processExportInfo.js +4 -4
  279. package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -1
  280. package/lib/esm/ModuleChunkFormatPlugin.js +232 -179
  281. package/lib/esm/ModuleChunkLoadingPlugin.js +112 -57
  282. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +102 -28
  283. package/lib/formatLocation.js +2 -2
  284. package/lib/hmr/HotModuleReplacement.runtime.js +41 -29
  285. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  286. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +43 -33
  287. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
  288. package/lib/hmr/LazyCompilationPlugin.js +67 -54
  289. package/lib/hmr/lazyCompilationBackend.js +23 -18
  290. package/lib/ids/ChunkModuleIdRangePlugin.js +14 -11
  291. package/lib/ids/DeterministicChunkIdsPlugin.js +32 -37
  292. package/lib/ids/DeterministicModuleIdsPlugin.js +52 -52
  293. package/lib/ids/HashedModuleIdsPlugin.js +15 -13
  294. package/lib/ids/IdHelpers.js +66 -49
  295. package/lib/ids/NamedChunkIdsPlugin.js +14 -17
  296. package/lib/ids/NamedModuleIdsPlugin.js +12 -14
  297. package/lib/ids/NaturalChunkIdsPlugin.js +6 -4
  298. package/lib/ids/NaturalModuleIdsPlugin.js +4 -3
  299. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -5
  300. package/lib/ids/OccurrenceModuleIdsPlugin.js +8 -7
  301. package/lib/ids/SyncModuleIdsPlugin.js +18 -13
  302. package/lib/index.js +54 -14
  303. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +116 -119
  304. package/lib/javascript/BasicEvaluatedExpression.js +26 -18
  305. package/lib/javascript/ChunkFormatHelpers.js +70 -0
  306. package/lib/javascript/ChunkHelpers.js +17 -5
  307. package/lib/javascript/CommonJsChunkFormatPlugin.js +114 -141
  308. package/lib/javascript/EnableChunkLoadingPlugin.js +7 -4
  309. package/lib/javascript/JavascriptGenerator.js +122 -100
  310. package/lib/javascript/JavascriptModulesPlugin.js +332 -152
  311. package/lib/javascript/JavascriptParser.js +1488 -1052
  312. package/lib/javascript/JavascriptParserHelpers.js +48 -47
  313. package/lib/javascript/StartupHelpers.js +23 -22
  314. package/lib/json/JsonData.js +4 -4
  315. package/lib/json/JsonGenerator.js +66 -32
  316. package/lib/json/JsonModulesPlugin.js +16 -6
  317. package/lib/json/JsonParser.js +23 -8
  318. package/lib/library/AbstractLibraryPlugin.js +45 -10
  319. package/lib/library/AmdLibraryPlugin.js +7 -5
  320. package/lib/library/AssignLibraryPlugin.js +71 -17
  321. package/lib/library/EnableLibraryPlugin.js +51 -25
  322. package/lib/library/ExportPropertyLibraryPlugin.js +12 -18
  323. package/lib/library/JsonpLibraryPlugin.js +5 -2
  324. package/lib/library/ModuleLibraryPlugin.js +230 -18
  325. package/lib/library/SystemLibraryPlugin.js +29 -11
  326. package/lib/library/UmdLibraryPlugin.js +35 -32
  327. package/lib/logging/Logger.js +18 -15
  328. package/lib/logging/createConsoleLogger.js +27 -27
  329. package/lib/logging/runtime.js +11 -11
  330. package/lib/logging/truncateArgs.js +5 -5
  331. package/lib/node/CommonJsChunkLoadingPlugin.js +72 -75
  332. package/lib/node/NodeEnvironmentPlugin.js +9 -3
  333. package/lib/node/NodeTargetPlugin.js +9 -1
  334. package/lib/node/NodeTemplatePlugin.js +2 -2
  335. package/lib/node/NodeWatchFileSystem.js +4 -4
  336. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +22 -38
  337. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +10 -11
  338. package/lib/node/ReadFileCompileWasmPlugin.js +11 -14
  339. package/lib/node/RequireChunkLoadingRuntimeModule.js +22 -30
  340. package/lib/node/nodeConsole.js +12 -7
  341. package/lib/optimize/AggressiveMergingPlugin.js +46 -47
  342. package/lib/optimize/AggressiveSplittingPlugin.js +233 -238
  343. package/lib/optimize/ConcatenatedModule.js +620 -251
  344. package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
  345. package/lib/optimize/FlagIncludedChunksPlugin.js +93 -96
  346. package/lib/optimize/InnerGraph.js +139 -124
  347. package/lib/optimize/InnerGraphPlugin.js +29 -24
  348. package/lib/optimize/LimitChunkCountPlugin.js +32 -8
  349. package/lib/optimize/MangleExportsPlugin.js +22 -22
  350. package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
  351. package/lib/optimize/MinChunkSizePlugin.js +12 -7
  352. package/lib/optimize/ModuleConcatenationPlugin.js +92 -71
  353. package/lib/optimize/RealContentHashPlugin.js +58 -44
  354. package/lib/optimize/RemoveEmptyChunksPlugin.js +8 -5
  355. package/lib/optimize/RemoveParentModulesPlugin.js +7 -4
  356. package/lib/optimize/RuntimeChunkPlugin.js +22 -25
  357. package/lib/optimize/SideEffectsFlagPlugin.js +44 -26
  358. package/lib/optimize/SplitChunksPlugin.js +209 -158
  359. package/lib/performance/AssetsOverSizeLimitWarning.js +1 -1
  360. package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
  361. package/lib/performance/SizeLimitsPlugin.js +8 -5
  362. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +5 -7
  363. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +61 -64
  364. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +3 -4
  365. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  366. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  367. package/lib/rules/BasicEffectRulePlugin.js +14 -5
  368. package/lib/rules/BasicMatcherRulePlugin.js +18 -7
  369. package/lib/rules/ObjectMatcherRulePlugin.js +17 -6
  370. package/lib/rules/RuleSetCompiler.js +73 -32
  371. package/lib/rules/UseEffectRulePlugin.js +61 -25
  372. package/lib/runtime/AsyncModuleRuntimeModule.js +74 -9
  373. package/lib/runtime/AutoPublicPathRuntimeModule.js +9 -4
  374. package/lib/runtime/BaseUriRuntimeModule.js +2 -2
  375. package/lib/runtime/CompatRuntimeModule.js +0 -1
  376. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
  377. package/lib/runtime/GetChunkFilenameRuntimeModule.js +34 -35
  378. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -1
  379. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
  380. package/lib/runtime/LoadScriptRuntimeModule.js +0 -2
  381. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +248 -0
  382. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  383. package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
  384. package/lib/runtime/StartupChunkDependenciesPlugin.js +39 -42
  385. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +10 -9
  386. package/lib/runtime/StartupEntrypointRuntimeModule.js +0 -1
  387. package/lib/runtime/SystemContextRuntimeModule.js +0 -2
  388. package/lib/runtime/ToBinaryRuntimeModule.js +64 -0
  389. package/lib/schemes/DataUriPlugin.js +9 -31
  390. package/lib/schemes/FileUriPlugin.js +11 -6
  391. package/lib/schemes/HttpUriPlugin.js +381 -261
  392. package/lib/schemes/VirtualUrlPlugin.js +222 -0
  393. package/lib/serialization/AggregateErrorSerializer.js +41 -0
  394. package/lib/serialization/BinaryMiddleware.js +51 -33
  395. package/lib/serialization/ErrorObjectSerializer.js +7 -2
  396. package/lib/serialization/FileMiddleware.js +101 -71
  397. package/lib/serialization/NullPrototypeObjectSerializer.js +5 -3
  398. package/lib/serialization/ObjectMiddleware.js +130 -54
  399. package/lib/serialization/PlainObjectSerializer.js +1 -1
  400. package/lib/serialization/Serializer.js +38 -20
  401. package/lib/serialization/SerializerMiddleware.js +121 -49
  402. package/lib/serialization/SingleItemMiddleware.js +9 -7
  403. package/lib/serialization/types.js +1 -1
  404. package/lib/sharing/ConsumeSharedModule.js +9 -9
  405. package/lib/sharing/ConsumeSharedPlugin.js +14 -14
  406. package/lib/sharing/ConsumeSharedRuntimeModule.js +11 -8
  407. package/lib/sharing/ProvideSharedModule.js +9 -11
  408. package/lib/sharing/ProvideSharedModuleFactory.js +5 -3
  409. package/lib/sharing/ProvideSharedPlugin.js +15 -10
  410. package/lib/sharing/SharePlugin.js +3 -4
  411. package/lib/sharing/ShareRuntimeModule.js +7 -6
  412. package/lib/sharing/resolveMatchedConfigs.js +27 -13
  413. package/lib/sharing/utils.js +37 -43
  414. package/lib/stats/DefaultStatsFactoryPlugin.js +455 -286
  415. package/lib/stats/DefaultStatsPresetPlugin.js +77 -46
  416. package/lib/stats/DefaultStatsPrinterPlugin.js +583 -419
  417. package/lib/stats/StatsFactory.js +75 -32
  418. package/lib/stats/StatsPrinter.js +71 -51
  419. package/lib/url/URLParserPlugin.js +264 -0
  420. package/lib/util/ArrayHelpers.js +6 -8
  421. package/lib/util/ArrayQueue.js +1 -1
  422. package/lib/util/AsyncQueue.js +11 -10
  423. package/lib/util/Hash.js +37 -5
  424. package/lib/util/IterableHelpers.js +4 -4
  425. package/lib/util/LazyBucketSortedSet.js +46 -27
  426. package/lib/util/LazySet.js +16 -10
  427. package/lib/util/MapHelpers.js +1 -1
  428. package/lib/util/ParallelismFactorCalculator.js +2 -2
  429. package/lib/util/Semaphore.js +3 -3
  430. package/lib/util/SetHelpers.js +6 -6
  431. package/lib/util/SortableSet.js +11 -9
  432. package/lib/util/StackedCacheMap.js +2 -2
  433. package/lib/util/StackedMap.js +3 -3
  434. package/lib/util/StringXor.js +2 -1
  435. package/lib/util/TupleQueue.js +11 -8
  436. package/lib/util/TupleSet.js +44 -19
  437. package/lib/util/URLAbsoluteSpecifier.js +3 -4
  438. package/lib/util/WeakTupleMap.js +56 -42
  439. package/lib/util/binarySearchBounds.js +4 -3
  440. package/lib/util/chainedImports.js +3 -1
  441. package/lib/util/cleverMerge.js +171 -107
  442. package/lib/util/comparators.js +265 -162
  443. package/lib/util/compileBooleanMatcher.js +120 -41
  444. package/lib/util/concatenate.js +20 -16
  445. package/lib/util/conventions.js +73 -74
  446. package/lib/util/create-schema-validation.js +8 -8
  447. package/lib/util/createHash.js +32 -135
  448. package/lib/util/dataURL.js +39 -0
  449. package/lib/util/deprecation.js +119 -116
  450. package/lib/util/deterministicGrouping.js +56 -47
  451. package/lib/util/extractSourceMap.js +319 -0
  452. package/lib/util/extractUrlAndGlobal.js +1 -1
  453. package/lib/util/findGraphRoots.js +19 -9
  454. package/lib/util/fs.js +169 -141
  455. package/lib/util/hash/BatchedHash.js +50 -10
  456. package/lib/util/hash/BulkUpdateHash.js +138 -0
  457. package/lib/util/hash/DebugHash.js +75 -0
  458. package/lib/util/hash/hash-digest.js +216 -0
  459. package/lib/util/hash/md4.js +2 -2
  460. package/lib/util/hash/wasm-hash.js +59 -17
  461. package/lib/util/identifier.js +124 -61
  462. package/lib/util/internalSerializables.js +4 -6
  463. package/lib/util/magicComment.js +9 -5
  464. package/lib/util/makeSerializable.js +2 -2
  465. package/lib/util/memoize.js +5 -2
  466. package/lib/util/objectToMap.js +3 -2
  467. package/lib/util/processAsyncTree.js +5 -5
  468. package/lib/util/propertyAccess.js +1 -1
  469. package/lib/util/propertyName.js +2 -3
  470. package/lib/util/registerExternalSerializer.js +16 -20
  471. package/lib/util/removeBOM.js +25 -0
  472. package/lib/util/runtime.js +72 -56
  473. package/lib/util/semver.js +44 -33
  474. package/lib/util/serialization.js +56 -56
  475. package/lib/util/smartGrouping.js +42 -27
  476. package/lib/util/source.js +5 -4
  477. package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
  478. package/lib/validateSchema.js +7 -9
  479. package/lib/wasm/EnableWasmLoadingPlugin.js +22 -12
  480. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +9 -5
  481. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +15 -3
  482. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +28 -22
  483. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +47 -57
  484. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -10
  485. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +8 -4
  486. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +23 -17
  487. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +55 -57
  488. package/lib/wasm-sync/WebAssemblyGenerator.js +56 -41
  489. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +6 -3
  490. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +25 -10
  491. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +11 -12
  492. package/lib/wasm-sync/WebAssemblyParser.js +10 -17
  493. package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
  494. package/lib/web/FetchCompileAsyncWasmPlugin.js +4 -4
  495. package/lib/web/FetchCompileWasmPlugin.js +6 -8
  496. package/lib/web/JsonpChunkLoadingPlugin.js +74 -74
  497. package/lib/web/JsonpChunkLoadingRuntimeModule.js +10 -26
  498. package/lib/web/JsonpTemplatePlugin.js +0 -1
  499. package/lib/webpack.js +107 -87
  500. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +79 -75
  501. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +38 -51
  502. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
  503. package/module.d.ts +5 -0
  504. package/package.json +149 -129
  505. package/schemas/WebpackOptions.check.d.ts +1 -1
  506. package/schemas/WebpackOptions.check.js +2 -2
  507. package/schemas/WebpackOptions.json +543 -190
  508. package/schemas/plugins/BannerPlugin.check.d.ts +1 -1
  509. package/schemas/plugins/BannerPlugin.check.js +2 -2
  510. package/schemas/plugins/BannerPlugin.json +4 -0
  511. package/schemas/plugins/DllPlugin.check.d.ts +1 -1
  512. package/schemas/plugins/DllPlugin.check.js +1 -1
  513. package/schemas/plugins/DllReferencePlugin.check.d.ts +1 -1
  514. package/schemas/plugins/DllReferencePlugin.check.js +1 -1
  515. package/schemas/plugins/IgnorePlugin.check.d.ts +1 -1
  516. package/schemas/plugins/IgnorePlugin.check.js +1 -1
  517. package/schemas/plugins/IgnorePlugin.json +1 -1
  518. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +1 -1
  519. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -1
  520. package/schemas/plugins/{HashedModuleIdsPlugin.check.d.ts → ManifestPlugin.check.d.ts} +2 -2
  521. package/schemas/plugins/ManifestPlugin.check.js +6 -0
  522. package/schemas/plugins/ManifestPlugin.json +98 -0
  523. package/schemas/plugins/ProgressPlugin.check.d.ts +1 -1
  524. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  525. package/schemas/plugins/ProgressPlugin.json +1 -1
  526. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +1 -1
  527. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -2
  528. package/schemas/plugins/SourceMapDevToolPlugin.json +23 -6
  529. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +1 -1
  530. package/schemas/plugins/WatchIgnorePlugin.check.js +1 -1
  531. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +1 -1
  532. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
  533. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +1 -1
  534. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
  535. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +1 -1
  536. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
  537. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +1 -1
  538. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
  539. package/schemas/plugins/container/ContainerPlugin.check.d.ts +1 -1
  540. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  541. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +1 -1
  542. package/schemas/plugins/container/ContainerReferencePlugin.check.js +2 -2
  543. package/schemas/plugins/container/ContainerReferencePlugin.json +4 -1
  544. package/schemas/plugins/container/ExternalsType.check.d.ts +1 -1
  545. package/schemas/plugins/container/ExternalsType.check.js +2 -2
  546. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +1 -1
  547. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -2
  548. package/schemas/plugins/container/ModuleFederationPlugin.json +4 -1
  549. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +1 -1
  550. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -1
  551. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +1 -1
  552. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +2 -2
  553. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +1 -1
  554. package/schemas/plugins/css/CssModuleParserOptions.check.js +2 -2
  555. package/schemas/plugins/css/CssParserOptions.check.d.ts +1 -1
  556. package/schemas/plugins/css/CssParserOptions.check.js +2 -2
  557. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +1 -1
  558. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -1
  559. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +7 -0
  560. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +6 -0
  561. package/schemas/plugins/{HashedModuleIdsPlugin.json → ids/HashedModuleIdsPlugin.json} +15 -2
  562. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +1 -1
  563. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -1
  564. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +1 -1
  565. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -1
  566. package/schemas/plugins/{css/CssGlobalParserOptions.check.d.ts → json/JsonModulesPluginGenerator.check.d.ts} +1 -1
  567. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +6 -0
  568. package/schemas/plugins/json/JsonModulesPluginGenerator.json +3 -0
  569. package/schemas/plugins/{css/CssGlobalGeneratorOptions.check.d.ts → json/JsonModulesPluginParser.check.d.ts} +1 -1
  570. package/schemas/plugins/json/JsonModulesPluginParser.check.js +6 -0
  571. package/schemas/plugins/json/JsonModulesPluginParser.json +3 -0
  572. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +1 -1
  573. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
  574. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +1 -1
  575. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
  576. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +1 -1
  577. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -1
  578. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +1 -1
  579. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
  580. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +1 -1
  581. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
  582. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
  583. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
  584. package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
  585. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +1 -1
  586. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +1 -1
  587. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +1 -1
  588. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +1 -1
  589. package/schemas/plugins/sharing/SharePlugin.check.d.ts +1 -1
  590. package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
  591. package/types.d.ts +5115 -1863
  592. package/SECURITY.md +0 -9
  593. package/lib/ModuleSourceTypesConstants.js +0 -112
  594. package/lib/dependencies/CssLocalIdentifierDependency.js +0 -250
  595. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +0 -111
  596. package/lib/library/ModernModuleLibraryPlugin.js +0 -144
  597. package/schemas/plugins/HashedModuleIdsPlugin.check.js +0 -6
  598. package/schemas/plugins/JsonModulesPluginParser.check.d.ts +0 -7
  599. package/schemas/plugins/JsonModulesPluginParser.check.js +0 -6
  600. package/schemas/plugins/JsonModulesPluginParser.json +0 -12
  601. package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
  602. package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
  603. package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
  604. package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +0 -7
  605. package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
  606. package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
  607. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
  608. package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
  609. package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
  610. package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
@@ -11,6 +11,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
11
11
  const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning");
12
12
  const WebpackError = require("../WebpackError");
13
13
  const BasicEvaluatedExpression = require("../javascript/BasicEvaluatedExpression");
14
+ const { VariableInfo } = require("../javascript/JavascriptParser");
14
15
  const {
15
16
  evaluateToIdentifier,
16
17
  evaluateToString,
@@ -37,10 +38,20 @@ const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency
37
38
  /** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
38
39
  /** @typedef {import("../javascript/JavascriptParser").ImportSource} ImportSource */
39
40
  /** @typedef {import("../javascript/JavascriptParser").Range} Range */
41
+ /** @typedef {import("../javascript/JavascriptParser").Members} Members */
42
+ /** @typedef {import("../javascript/JavascriptParser").CalleeMembers} CalleeMembers */
43
+
44
+ /**
45
+ * @typedef {object} CommonJsImportSettings
46
+ * @property {string=} name
47
+ * @property {string} context
48
+ */
40
49
 
41
50
  const createRequireSpecifierTag = Symbol("createRequire");
42
51
  const createdRequireIdentifierTag = Symbol("createRequire()");
43
52
 
53
+ const PLUGIN_NAME = "CommonJsImportsParserPlugin";
54
+
44
55
  class CommonJsImportsParserPlugin {
45
56
  /**
46
57
  * @param {JavascriptParserOptions} options parser options
@@ -55,10 +66,11 @@ class CommonJsImportsParserPlugin {
55
66
  */
56
67
  apply(parser) {
57
68
  const options = this.options;
58
-
59
69
  const getContext = () => {
60
70
  if (parser.currentTagData) {
61
- const { context } = parser.currentTagData;
71
+ const { context } =
72
+ /** @type {CommonJsImportSettings} */
73
+ (parser.currentTagData);
62
74
  return context;
63
75
  }
64
76
  };
@@ -66,38 +78,38 @@ class CommonJsImportsParserPlugin {
66
78
  // #region metadata
67
79
  /**
68
80
  * @param {string} expression expression
69
- * @param {() => string[]} getMembers get members
81
+ * @param {() => Members} getMembers get members
70
82
  */
71
83
  const tapRequireExpression = (expression, getMembers) => {
72
84
  parser.hooks.typeof
73
85
  .for(expression)
74
86
  .tap(
75
- "CommonJsImportsParserPlugin",
87
+ PLUGIN_NAME,
76
88
  toConstantDependency(parser, JSON.stringify("function"))
77
89
  );
78
90
  parser.hooks.evaluateTypeof
79
91
  .for(expression)
80
- .tap("CommonJsImportsParserPlugin", evaluateToString("function"));
92
+ .tap(PLUGIN_NAME, evaluateToString("function"));
81
93
  parser.hooks.evaluateIdentifier
82
94
  .for(expression)
83
95
  .tap(
84
- "CommonJsImportsParserPlugin",
96
+ PLUGIN_NAME,
85
97
  evaluateToIdentifier(expression, "require", getMembers, true)
86
98
  );
87
99
  };
88
100
  /**
89
101
  * @param {string | symbol} tag tag
90
102
  */
91
- const tapRequireExpressionTag = tag => {
103
+ const tapRequireExpressionTag = (tag) => {
92
104
  parser.hooks.typeof
93
105
  .for(tag)
94
106
  .tap(
95
- "CommonJsImportsParserPlugin",
107
+ PLUGIN_NAME,
96
108
  toConstantDependency(parser, JSON.stringify("function"))
97
109
  );
98
110
  parser.hooks.evaluateTypeof
99
111
  .for(tag)
100
- .tap("CommonJsImportsParserPlugin", evaluateToString("function"));
112
+ .tap(PLUGIN_NAME, evaluateToString("function"));
101
113
  };
102
114
  tapRequireExpression("require", () => []);
103
115
  tapRequireExpression("require.resolve", () => ["resolve"]);
@@ -105,30 +117,19 @@ class CommonJsImportsParserPlugin {
105
117
  // #endregion
106
118
 
107
119
  // Weird stuff //
108
- parser.hooks.assign
109
- .for("require")
110
- .tap("CommonJsImportsParserPlugin", expr => {
111
- // to not leak to global "require", we need to define a local require here.
112
- const dep = new ConstDependency("var require;", 0);
113
- dep.loc = /** @type {DependencyLocation} */ (expr.loc);
114
- parser.state.module.addPresentationalDependency(dep);
115
- return true;
116
- });
120
+ parser.hooks.assign.for("require").tap(PLUGIN_NAME, (expr) => {
121
+ // to not leak to global "require", we need to define a local require here.
122
+ const dep = new ConstDependency("var require;", 0);
123
+ dep.loc = /** @type {DependencyLocation} */ (expr.loc);
124
+ parser.state.module.addPresentationalDependency(dep);
125
+ return true;
126
+ });
117
127
 
118
128
  // #region Unsupported
119
- parser.hooks.expression
120
- .for("require.main")
121
- .tap(
122
- "CommonJsImportsParserPlugin",
123
- expressionIsUnsupported(
124
- parser,
125
- "require.main is not supported by webpack."
126
- )
127
- );
128
129
  parser.hooks.call
129
130
  .for("require.main.require")
130
131
  .tap(
131
- "CommonJsImportsParserPlugin",
132
+ PLUGIN_NAME,
132
133
  expressionIsUnsupported(
133
134
  parser,
134
135
  "require.main.require is not supported by webpack."
@@ -137,7 +138,7 @@ class CommonJsImportsParserPlugin {
137
138
  parser.hooks.expression
138
139
  .for("module.parent.require")
139
140
  .tap(
140
- "CommonJsImportsParserPlugin",
141
+ PLUGIN_NAME,
141
142
  expressionIsUnsupported(
142
143
  parser,
143
144
  "module.parent.require is not supported by webpack."
@@ -146,7 +147,7 @@ class CommonJsImportsParserPlugin {
146
147
  parser.hooks.call
147
148
  .for("module.parent.require")
148
149
  .tap(
149
- "CommonJsImportsParserPlugin",
150
+ PLUGIN_NAME,
150
151
  expressionIsUnsupported(
151
152
  parser,
152
153
  "module.parent.require is not supported by webpack."
@@ -159,7 +160,7 @@ class CommonJsImportsParserPlugin {
159
160
  * @param {Expression} expr expression
160
161
  * @returns {boolean} true when set undefined
161
162
  */
162
- const defineUndefined = expr => {
163
+ const defineUndefined = (expr) => {
163
164
  // To avoid "not defined" error, replace the value with undefined
164
165
  const dep = new ConstDependency(
165
166
  "undefined",
@@ -169,12 +170,8 @@ class CommonJsImportsParserPlugin {
169
170
  parser.state.module.addPresentationalDependency(dep);
170
171
  return false;
171
172
  };
172
- parser.hooks.canRename
173
- .for("require")
174
- .tap("CommonJsImportsParserPlugin", () => true);
175
- parser.hooks.rename
176
- .for("require")
177
- .tap("CommonJsImportsParserPlugin", defineUndefined);
173
+ parser.hooks.canRename.for("require").tap(PLUGIN_NAME, () => true);
174
+ parser.hooks.rename.for("require").tap(PLUGIN_NAME, defineUndefined);
178
175
  // #endregion
179
176
 
180
177
  // #region Inspection
@@ -188,9 +185,7 @@ class CommonJsImportsParserPlugin {
188
185
  ]
189
186
  );
190
187
 
191
- parser.hooks.expression
192
- .for("require.cache")
193
- .tap("CommonJsImportsParserPlugin", requireCache);
188
+ parser.hooks.expression.for("require.cache").tap(PLUGIN_NAME, requireCache);
194
189
  // #endregion
195
190
 
196
191
  // #region Require as expression
@@ -198,12 +193,12 @@ class CommonJsImportsParserPlugin {
198
193
  * @param {Expression} expr expression
199
194
  * @returns {boolean} true when handled
200
195
  */
201
- const requireAsExpressionHandler = expr => {
196
+ const requireAsExpressionHandler = (expr) => {
202
197
  const dep = new CommonJsRequireContextDependency(
203
198
  {
204
- request: options.unknownContextRequest,
205
- recursive: options.unknownContextRecursive,
206
- regExp: options.unknownContextRegExp,
199
+ request: /** @type {string} */ (options.unknownContextRequest),
200
+ recursive: /** @type {boolean} */ (options.unknownContextRecursive),
201
+ regExp: /** @type {RegExp} */ (options.unknownContextRegExp),
207
202
  mode: "sync"
208
203
  },
209
204
  /** @type {Range} */ (expr.range),
@@ -221,7 +216,7 @@ class CommonJsImportsParserPlugin {
221
216
  };
222
217
  parser.hooks.expression
223
218
  .for("require")
224
- .tap("CommonJsImportsParserPlugin", requireAsExpressionHandler);
219
+ .tap(PLUGIN_NAME, requireAsExpressionHandler);
225
220
  // #endregion
226
221
 
227
222
  // #region Require
@@ -272,7 +267,7 @@ class CommonJsImportsParserPlugin {
272
267
  * @param {boolean} callNew true, when require is called with new
273
268
  * @returns {(expr: CallExpression | NewExpression) => (boolean | void)} handler
274
269
  */
275
- const createRequireHandler = callNew => expr => {
270
+ const createRequireHandler = (callNew) => (expr) => {
276
271
  if (options.commonjsMagicComments) {
277
272
  const { options: requireOptions, errors: commentErrors } =
278
273
  parser.parseCommentOptions(/** @type {Range} */ (expr.range));
@@ -356,24 +351,24 @@ class CommonJsImportsParserPlugin {
356
351
  };
357
352
  parser.hooks.call
358
353
  .for("require")
359
- .tap("CommonJsImportsParserPlugin", createRequireHandler(false));
354
+ .tap(PLUGIN_NAME, createRequireHandler(false));
360
355
  parser.hooks.new
361
356
  .for("require")
362
- .tap("CommonJsImportsParserPlugin", createRequireHandler(true));
357
+ .tap(PLUGIN_NAME, createRequireHandler(true));
363
358
  parser.hooks.call
364
359
  .for("module.require")
365
- .tap("CommonJsImportsParserPlugin", createRequireHandler(false));
360
+ .tap(PLUGIN_NAME, createRequireHandler(false));
366
361
  parser.hooks.new
367
362
  .for("module.require")
368
- .tap("CommonJsImportsParserPlugin", createRequireHandler(true));
363
+ .tap(PLUGIN_NAME, createRequireHandler(true));
369
364
  // #endregion
370
365
 
371
366
  // #region Require with property access
372
367
  /**
373
368
  * @param {Expression} expr expression
374
- * @param {string[]} calleeMembers callee members
369
+ * @param {CalleeMembers} calleeMembers callee members
375
370
  * @param {CallExpression} callExpr call expression
376
- * @param {string[]} members members
371
+ * @param {Members} members members
377
372
  * @param {Range[]} memberRanges member ranges
378
373
  * @returns {boolean | void} true when handled
379
374
  */
@@ -407,9 +402,9 @@ class CommonJsImportsParserPlugin {
407
402
  };
408
403
  /**
409
404
  * @param {CallExpression} expr expression
410
- * @param {string[]} calleeMembers callee members
405
+ * @param {CalleeMembers} calleeMembers callee members
411
406
  * @param {CallExpression} callExpr call expression
412
- * @param {string[]} members members
407
+ * @param {Members} members members
413
408
  * @param {Range[]} memberRanges member ranges
414
409
  * @returns {boolean | void} true when handled
415
410
  */
@@ -445,16 +440,16 @@ class CommonJsImportsParserPlugin {
445
440
  };
446
441
  parser.hooks.memberChainOfCallMemberChain
447
442
  .for("require")
448
- .tap("CommonJsImportsParserPlugin", chainHandler);
443
+ .tap(PLUGIN_NAME, chainHandler);
449
444
  parser.hooks.memberChainOfCallMemberChain
450
445
  .for("module.require")
451
- .tap("CommonJsImportsParserPlugin", chainHandler);
446
+ .tap(PLUGIN_NAME, chainHandler);
452
447
  parser.hooks.callMemberChainOfCallMemberChain
453
448
  .for("require")
454
- .tap("CommonJsImportsParserPlugin", callChainHandler);
449
+ .tap(PLUGIN_NAME, callChainHandler);
455
450
  parser.hooks.callMemberChainOfCallMemberChain
456
451
  .for("module.require")
457
- .tap("CommonJsImportsParserPlugin", callChainHandler);
452
+ .tap(PLUGIN_NAME, callChainHandler);
458
453
  // #endregion
459
454
 
460
455
  // #region Require.resolve
@@ -464,6 +459,36 @@ class CommonJsImportsParserPlugin {
464
459
  * @returns {boolean | void} true when handled
465
460
  */
466
461
  const processResolve = (expr, weak) => {
462
+ if (!weak && options.commonjsMagicComments) {
463
+ const { options: requireOptions, errors: commentErrors } =
464
+ parser.parseCommentOptions(/** @type {Range} */ (expr.range));
465
+
466
+ if (commentErrors) {
467
+ for (const e of commentErrors) {
468
+ const { comment } = e;
469
+ parser.state.module.addWarning(
470
+ new CommentCompilationWarning(
471
+ `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`,
472
+ /** @type {DependencyLocation} */ (comment.loc)
473
+ )
474
+ );
475
+ }
476
+ }
477
+ if (requireOptions && requireOptions.webpackIgnore !== undefined) {
478
+ if (typeof requireOptions.webpackIgnore !== "boolean") {
479
+ parser.state.module.addWarning(
480
+ new UnsupportedFeatureWarning(
481
+ `\`webpackIgnore\` expected a boolean, but received: ${requireOptions.webpackIgnore}.`,
482
+ /** @type {DependencyLocation} */ (expr.loc)
483
+ )
484
+ );
485
+ } else if (requireOptions.webpackIgnore) {
486
+ // Do not instrument `require()` if `webpackIgnore` is `true`
487
+ return true;
488
+ }
489
+ }
490
+ }
491
+
467
492
  if (expr.arguments.length !== 1) return;
468
493
  const param = parser.evaluateExpression(expr.arguments[0]);
469
494
  if (param.isConditional()) {
@@ -542,10 +567,10 @@ class CommonJsImportsParserPlugin {
542
567
 
543
568
  parser.hooks.call
544
569
  .for("require.resolve")
545
- .tap("CommonJsImportsParserPlugin", expr => processResolve(expr, false));
570
+ .tap(PLUGIN_NAME, (expr) => processResolve(expr, false));
546
571
  parser.hooks.call
547
572
  .for("require.resolveWeak")
548
- .tap("CommonJsImportsParserPlugin", expr => processResolve(expr, true));
573
+ .tap(PLUGIN_NAME, (expr) => processResolve(expr, true));
549
574
  // #endregion
550
575
 
551
576
  // #region Create require
@@ -582,7 +607,7 @@ class CommonJsImportsParserPlugin {
582
607
  tapRequireExpressionTag(createRequireSpecifierTag);
583
608
  parser.hooks.evaluateCallExpression
584
609
  .for(createRequireSpecifierTag)
585
- .tap("CommonJsImportsParserPlugin", expr => {
610
+ .tap(PLUGIN_NAME, (expr) => {
586
611
  const context = parseCreateRequireArguments(expr);
587
612
  if (context === undefined) return;
588
613
  const ident = parser.evaluatedVariable({
@@ -598,7 +623,7 @@ class CommonJsImportsParserPlugin {
598
623
  });
599
624
  parser.hooks.unhandledExpressionMemberChain
600
625
  .for(createdRequireIdentifierTag)
601
- .tap("CommonJsImportsParserPlugin", (expr, members) =>
626
+ .tap(PLUGIN_NAME, (expr, members) =>
602
627
  expressionIsUnsupported(
603
628
  parser,
604
629
  `createRequire().${members.join(".")} is not supported by webpack.`
@@ -606,24 +631,24 @@ class CommonJsImportsParserPlugin {
606
631
  );
607
632
  parser.hooks.canRename
608
633
  .for(createdRequireIdentifierTag)
609
- .tap("CommonJsImportsParserPlugin", () => true);
634
+ .tap(PLUGIN_NAME, () => true);
610
635
  parser.hooks.canRename
611
636
  .for(createRequireSpecifierTag)
612
- .tap("CommonJsImportsParserPlugin", () => true);
637
+ .tap(PLUGIN_NAME, () => true);
613
638
  parser.hooks.rename
614
639
  .for(createRequireSpecifierTag)
615
- .tap("CommonJsImportsParserPlugin", defineUndefined);
640
+ .tap(PLUGIN_NAME, defineUndefined);
616
641
  parser.hooks.expression
617
642
  .for(createdRequireIdentifierTag)
618
- .tap("CommonJsImportsParserPlugin", requireAsExpressionHandler);
643
+ .tap(PLUGIN_NAME, requireAsExpressionHandler);
619
644
  parser.hooks.call
620
645
  .for(createdRequireIdentifierTag)
621
- .tap("CommonJsImportsParserPlugin", createRequireHandler(false));
646
+ .tap(PLUGIN_NAME, createRequireHandler(false));
622
647
  /**
623
648
  * @param {CallExpression} expr call expression
624
649
  * @returns {string | void} context
625
650
  */
626
- const parseCreateRequireArguments = expr => {
651
+ const parseCreateRequireArguments = (expr) => {
627
652
  const args = expr.arguments;
628
653
  if (args.length !== 1) {
629
654
  const err = new WebpackError(
@@ -652,7 +677,7 @@ class CommonJsImportsParserPlugin {
652
677
 
653
678
  parser.hooks.import.tap(
654
679
  {
655
- name: "CommonJsImportsParserPlugin",
680
+ name: PLUGIN_NAME,
656
681
  stage: -10
657
682
  },
658
683
  (statement, source) => {
@@ -662,8 +687,9 @@ class CommonJsImportsParserPlugin {
662
687
  statement.specifiers[0].type !== "ImportSpecifier" ||
663
688
  statement.specifiers[0].imported.type !== "Identifier" ||
664
689
  statement.specifiers[0].imported.name !== specifierName
665
- )
690
+ ) {
666
691
  return;
692
+ }
667
693
  // clear for 'import { createRequire as x } from "module"'
668
694
  // if any other specifier was used import module
669
695
  const clearDep = new ConstDependency(
@@ -680,7 +706,7 @@ class CommonJsImportsParserPlugin {
680
706
  );
681
707
  parser.hooks.importSpecifier.tap(
682
708
  {
683
- name: "CommonJsImportsParserPlugin",
709
+ name: PLUGIN_NAME,
684
710
  stage: -10
685
711
  },
686
712
  (statement, source, id, name) => {
@@ -689,70 +715,62 @@ class CommonJsImportsParserPlugin {
689
715
  return true;
690
716
  }
691
717
  );
692
- parser.hooks.preDeclarator.tap(
693
- "CommonJsImportsParserPlugin",
694
- declarator => {
695
- if (
696
- declarator.id.type !== "Identifier" ||
697
- !declarator.init ||
698
- declarator.init.type !== "CallExpression" ||
699
- declarator.init.callee.type !== "Identifier"
700
- )
701
- return;
702
- const variableInfo =
703
- /** @type {TODO} */
704
- (parser.getVariableInfo(declarator.init.callee.name));
705
- if (
706
- variableInfo &&
707
- variableInfo.tagInfo &&
708
- variableInfo.tagInfo.tag === createRequireSpecifierTag
709
- ) {
710
- const context = parseCreateRequireArguments(declarator.init);
711
- if (context === undefined) return;
712
- parser.tagVariable(declarator.id.name, createdRequireIdentifierTag, {
713
- name: declarator.id.name,
714
- context
715
- });
716
- return true;
717
- }
718
+ parser.hooks.preDeclarator.tap(PLUGIN_NAME, (declarator) => {
719
+ if (
720
+ declarator.id.type !== "Identifier" ||
721
+ !declarator.init ||
722
+ declarator.init.type !== "CallExpression" ||
723
+ declarator.init.callee.type !== "Identifier"
724
+ ) {
725
+ return;
718
726
  }
719
- );
727
+ const variableInfo = parser.getVariableInfo(declarator.init.callee.name);
728
+ if (
729
+ variableInfo instanceof VariableInfo &&
730
+ variableInfo.tagInfo &&
731
+ variableInfo.tagInfo.tag === createRequireSpecifierTag
732
+ ) {
733
+ const context = parseCreateRequireArguments(declarator.init);
734
+ if (context === undefined) return;
735
+ parser.tagVariable(declarator.id.name, createdRequireIdentifierTag, {
736
+ name: declarator.id.name,
737
+ context
738
+ });
739
+ return true;
740
+ }
741
+ });
720
742
 
721
743
  parser.hooks.memberChainOfCallMemberChain
722
744
  .for(createRequireSpecifierTag)
723
- .tap(
724
- "CommonJsImportsParserPlugin",
725
- (expr, calleeMembers, callExpr, members) => {
726
- if (
727
- calleeMembers.length !== 0 ||
728
- members.length !== 1 ||
729
- members[0] !== "cache"
730
- )
731
- return;
732
- // createRequire().cache
733
- const context = parseCreateRequireArguments(callExpr);
734
- if (context === undefined) return;
735
- return requireCache(expr);
745
+ .tap(PLUGIN_NAME, (expr, calleeMembers, callExpr, members) => {
746
+ if (
747
+ calleeMembers.length !== 0 ||
748
+ members.length !== 1 ||
749
+ members[0] !== "cache"
750
+ ) {
751
+ return;
736
752
  }
737
- );
753
+ // createRequire().cache
754
+ const context = parseCreateRequireArguments(callExpr);
755
+ if (context === undefined) return;
756
+ return requireCache(expr);
757
+ });
738
758
  parser.hooks.callMemberChainOfCallMemberChain
739
759
  .for(createRequireSpecifierTag)
740
- .tap(
741
- "CommonJsImportsParserPlugin",
742
- (expr, calleeMembers, innerCallExpression, members) => {
743
- if (
744
- calleeMembers.length !== 0 ||
745
- members.length !== 1 ||
746
- members[0] !== "resolve"
747
- )
748
- return;
749
- // createRequire().resolve()
750
- return processResolve(expr, false);
760
+ .tap(PLUGIN_NAME, (expr, calleeMembers, innerCallExpression, members) => {
761
+ if (
762
+ calleeMembers.length !== 0 ||
763
+ members.length !== 1 ||
764
+ members[0] !== "resolve"
765
+ ) {
766
+ return;
751
767
  }
752
- );
768
+ // createRequire().resolve()
769
+ return processResolve(expr, false);
770
+ });
753
771
  parser.hooks.expressionMemberChain
754
772
  .for(createdRequireIdentifierTag)
755
- .tap("CommonJsImportsParserPlugin", (expr, members) => {
773
+ .tap(PLUGIN_NAME, (expr, members) => {
756
774
  // require.cache
757
775
  if (members.length === 1 && members[0] === "cache") {
758
776
  return requireCache(expr);
@@ -760,7 +778,7 @@ class CommonJsImportsParserPlugin {
760
778
  });
761
779
  parser.hooks.callMemberChain
762
780
  .for(createdRequireIdentifierTag)
763
- .tap("CommonJsImportsParserPlugin", (expr, members) => {
781
+ .tap(PLUGIN_NAME, (expr, members) => {
764
782
  // require.resolve()
765
783
  if (members.length === 1 && members[0] === "resolve") {
766
784
  return processResolve(expr, false);
@@ -768,7 +786,7 @@ class CommonJsImportsParserPlugin {
768
786
  });
769
787
  parser.hooks.call
770
788
  .for(createRequireSpecifierTag)
771
- .tap("CommonJsImportsParserPlugin", expr => {
789
+ .tap(PLUGIN_NAME, (expr) => {
772
790
  const clearDep = new ConstDependency(
773
791
  "/* createRequire() */ undefined",
774
792
  /** @type {Range} */ (expr.range)
@@ -780,4 +798,5 @@ class CommonJsImportsParserPlugin {
780
798
  // #endregion
781
799
  }
782
800
  }
801
+
783
802
  module.exports = CommonJsImportsParserPlugin;
@@ -5,12 +5,24 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const {
9
+ JAVASCRIPT_MODULE_TYPE_AUTO,
10
+ JAVASCRIPT_MODULE_TYPE_DYNAMIC
11
+ } = require("../ModuleTypeConstants");
8
12
  const RuntimeGlobals = require("../RuntimeGlobals");
9
13
  const RuntimeModule = require("../RuntimeModule");
10
14
  const SelfModuleFactory = require("../SelfModuleFactory");
11
15
  const Template = require("../Template");
16
+ const {
17
+ evaluateToIdentifier,
18
+ expressionIsUnsupported,
19
+ toConstantDependency
20
+ } = require("../javascript/JavascriptParserHelpers");
21
+ const CommonJsExportRequireDependency = require("./CommonJsExportRequireDependency");
12
22
  const CommonJsExportsDependency = require("./CommonJsExportsDependency");
23
+ const CommonJsExportsParserPlugin = require("./CommonJsExportsParserPlugin");
13
24
  const CommonJsFullRequireDependency = require("./CommonJsFullRequireDependency");
25
+ const CommonJsImportsParserPlugin = require("./CommonJsImportsParserPlugin");
14
26
  const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
15
27
  const CommonJsRequireDependency = require("./CommonJsRequireDependency");
16
28
  const CommonJsSelfReferenceDependency = require("./CommonJsSelfReferenceDependency");
@@ -21,19 +33,6 @@ const RequireResolveDependency = require("./RequireResolveDependency");
21
33
  const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
22
34
  const RuntimeRequirementsDependency = require("./RuntimeRequirementsDependency");
23
35
 
24
- const CommonJsExportsParserPlugin = require("./CommonJsExportsParserPlugin");
25
- const CommonJsImportsParserPlugin = require("./CommonJsImportsParserPlugin");
26
-
27
- const {
28
- JAVASCRIPT_MODULE_TYPE_AUTO,
29
- JAVASCRIPT_MODULE_TYPE_DYNAMIC
30
- } = require("../ModuleTypeConstants");
31
- const {
32
- evaluateToIdentifier,
33
- toConstantDependency
34
- } = require("../javascript/JavascriptParserHelpers");
35
- const CommonJsExportRequireDependency = require("./CommonJsExportRequireDependency");
36
-
37
36
  /** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
38
37
  /** @typedef {import("../Compilation")} Compilation */
39
38
  /** @typedef {import("../Compiler")} Compiler */
@@ -158,7 +157,7 @@ class CommonJsPlugin {
158
157
 
159
158
  compilation.hooks.runtimeRequirementInTree
160
159
  .for(RuntimeGlobals.harmonyModuleDecorator)
161
- .tap(PLUGIN_NAME, (chunk, set) => {
160
+ .tap(PLUGIN_NAME, (chunk, _set) => {
162
161
  compilation.addRuntimeModule(
163
162
  chunk,
164
163
  new HarmonyModuleDecoratorRuntimeModule()
@@ -167,7 +166,7 @@ class CommonJsPlugin {
167
166
 
168
167
  compilation.hooks.runtimeRequirementInTree
169
168
  .for(RuntimeGlobals.nodeModuleDecorator)
170
- .tap(PLUGIN_NAME, (chunk, set) => {
169
+ .tap(PLUGIN_NAME, (chunk, _set) => {
171
170
  compilation.addRuntimeModule(
172
171
  chunk,
173
172
  new NodeModuleDecoratorRuntimeModule()
@@ -180,8 +179,9 @@ class CommonJsPlugin {
180
179
  * @returns {void}
181
180
  */
182
181
  const handler = (parser, parserOptions) => {
183
- if (parserOptions.commonjs !== undefined && !parserOptions.commonjs)
182
+ if (parserOptions.commonjs !== undefined && !parserOptions.commonjs) {
184
183
  return;
184
+ }
185
185
  parser.hooks.typeof
186
186
  .for("module")
187
187
  .tap(
@@ -199,9 +199,20 @@ class CommonJsPlugin {
199
199
  [RuntimeGlobals.moduleCache, RuntimeGlobals.entryModuleId]
200
200
  )
201
201
  );
202
+
203
+ parser.hooks.expression
204
+ .for("require.extensions")
205
+ .tap(
206
+ PLUGIN_NAME,
207
+ expressionIsUnsupported(
208
+ parser,
209
+ "require.extensions is not supported by webpack. Use a loader instead."
210
+ )
211
+ );
212
+
202
213
  parser.hooks.expression
203
214
  .for(RuntimeGlobals.moduleLoaded)
204
- .tap(PLUGIN_NAME, expr => {
215
+ .tap(PLUGIN_NAME, (expr) => {
205
216
  /** @type {BuildInfo} */
206
217
  (parser.state.module.buildInfo).moduleConcatenationBailout =
207
218
  RuntimeGlobals.moduleLoaded;
@@ -215,7 +226,7 @@ class CommonJsPlugin {
215
226
 
216
227
  parser.hooks.expression
217
228
  .for(RuntimeGlobals.moduleId)
218
- .tap(PLUGIN_NAME, expr => {
229
+ .tap(PLUGIN_NAME, (expr) => {
219
230
  /** @type {BuildInfo} */
220
231
  (parser.state.module.buildInfo).moduleConcatenationBailout =
221
232
  RuntimeGlobals.moduleId;
@@ -12,14 +12,15 @@ const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTempl
12
12
  /** @typedef {import("../javascript/JavascriptParser").Range} Range */
13
13
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
14
14
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
15
+ /** @typedef {import("./ContextDependency").ContextDependencyOptions} ContextDependencyOptions */
15
16
 
16
17
  class CommonJsRequireContextDependency extends ContextDependency {
17
18
  /**
18
- * @param {TODO} options options for the context module
19
+ * @param {ContextDependencyOptions} options options for the context module
19
20
  * @param {Range} range location in source code
20
21
  * @param {Range | undefined} valueRange location of the require call
21
- * @param {boolean | string } inShorthand true or name
22
- * @param {string} context context
22
+ * @param {boolean | string} inShorthand true or name
23
+ * @param {string=} context context
23
24
  */
24
25
  constructor(options, range, valueRange, inShorthand, context) {
25
26
  super(options, context);