webpack 5.106.1 → 5.107.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (600) hide show
  1. package/README.md +2 -2
  2. package/lib/APIPlugin.js +4 -2
  3. package/lib/AsyncDependenciesBlock.js +3 -0
  4. package/lib/AutomaticPrefetchPlugin.js +6 -1
  5. package/lib/BannerPlugin.js +10 -1
  6. package/lib/Cache.js +27 -5
  7. package/lib/CacheFacade.js +26 -0
  8. package/lib/Chunk.js +46 -0
  9. package/lib/ChunkGraph.js +111 -0
  10. package/lib/ChunkGroup.js +57 -13
  11. package/lib/ChunkTemplate.js +9 -0
  12. package/lib/CleanPlugin.js +14 -1
  13. package/lib/CodeGenerationResults.js +19 -0
  14. package/lib/CompatibilityPlugin.js +23 -8
  15. package/lib/Compilation.js +161 -27
  16. package/lib/Compiler.js +41 -17
  17. package/lib/ConcatenationScope.js +24 -1
  18. package/lib/ConditionalInitFragment.js +6 -0
  19. package/lib/ConstPlugin.js +4 -1
  20. package/lib/ContextExclusionPlugin.js +2 -1
  21. package/lib/ContextModule.js +14 -2
  22. package/lib/ContextModuleFactory.js +10 -0
  23. package/lib/ContextReplacementPlugin.js +4 -1
  24. package/lib/DefinePlugin.js +22 -9
  25. package/lib/DependenciesBlock.js +6 -1
  26. package/lib/Dependency.js +48 -4
  27. package/lib/DependencyTemplate.js +7 -1
  28. package/lib/DependencyTemplates.js +4 -0
  29. package/lib/DotenvPlugin.js +3 -0
  30. package/lib/DynamicEntryPlugin.js +3 -1
  31. package/lib/EntryOptionPlugin.js +3 -0
  32. package/lib/EntryPlugin.js +2 -1
  33. package/lib/Entrypoint.js +4 -0
  34. package/lib/EnvironmentPlugin.js +3 -2
  35. package/lib/ErrorHelpers.js +7 -0
  36. package/lib/EvalDevToolModulePlugin.js +3 -1
  37. package/lib/EvalSourceMapDevToolPlugin.js +11 -10
  38. package/lib/ExportsInfo.js +56 -2
  39. package/lib/ExportsInfoApiPlugin.js +2 -1
  40. package/lib/ExternalModule.js +114 -15
  41. package/lib/ExternalModuleFactoryPlugin.js +15 -0
  42. package/lib/ExternalsPlugin.js +2 -1
  43. package/lib/FileSystemInfo.js +291 -71
  44. package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
  45. package/lib/FlagDependencyExportsPlugin.js +4 -1
  46. package/lib/FlagDependencyUsagePlugin.js +5 -1
  47. package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
  48. package/lib/Generator.js +16 -3
  49. package/lib/HotModuleReplacementPlugin.js +35 -9
  50. package/lib/IgnorePlugin.js +4 -2
  51. package/lib/IgnoreWarningsPlugin.js +2 -1
  52. package/lib/InitFragment.js +10 -0
  53. package/lib/JavascriptMetaInfoPlugin.js +2 -1
  54. package/lib/LibraryTemplatePlugin.js +2 -1
  55. package/lib/LoaderOptionsPlugin.js +3 -1
  56. package/lib/LoaderTargetPlugin.js +2 -1
  57. package/lib/MainTemplate.js +15 -0
  58. package/lib/ManifestPlugin.js +9 -2
  59. package/lib/Module.js +101 -19
  60. package/lib/ModuleFactory.js +6 -1
  61. package/lib/ModuleFilenameHelpers.js +3 -0
  62. package/lib/ModuleGraph.js +66 -0
  63. package/lib/ModuleGraphConnection.js +9 -0
  64. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  65. package/lib/ModuleSourceTypeConstants.js +32 -1
  66. package/lib/ModuleTemplate.js +8 -0
  67. package/lib/ModuleTypeConstants.js +12 -3
  68. package/lib/MultiCompiler.js +30 -2
  69. package/lib/MultiStats.js +8 -0
  70. package/lib/MultiWatching.js +3 -0
  71. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  72. package/lib/NodeStuffPlugin.js +11 -2
  73. package/lib/NormalModule.js +43 -33
  74. package/lib/NormalModuleFactory.js +35 -2
  75. package/lib/NormalModuleReplacementPlugin.js +1 -1
  76. package/lib/NullFactory.js +1 -0
  77. package/lib/OptionsApply.js +1 -0
  78. package/lib/Parser.js +3 -1
  79. package/lib/PlatformPlugin.js +2 -1
  80. package/lib/PrefetchPlugin.js +2 -1
  81. package/lib/ProgressPlugin.js +158 -68
  82. package/lib/ProvidePlugin.js +3 -1
  83. package/lib/RawModule.js +12 -0
  84. package/lib/RecordIdsPlugin.js +8 -0
  85. package/lib/RequestShortener.js +8 -0
  86. package/lib/ResolverFactory.js +5 -0
  87. package/lib/RuntimeGlobals.js +6 -5
  88. package/lib/RuntimeModule.js +22 -7
  89. package/lib/RuntimePlugin.js +13 -0
  90. package/lib/RuntimeTemplate.js +35 -1
  91. package/lib/SelfModuleFactory.js +2 -0
  92. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  93. package/lib/SourceMapDevToolPlugin.js +3 -1
  94. package/lib/Stats.js +5 -0
  95. package/lib/Template.js +20 -0
  96. package/lib/TemplatedPathPlugin.js +10 -3
  97. package/lib/UseStrictPlugin.js +2 -1
  98. package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
  99. package/lib/WarnDeprecatedOptionPlugin.js +2 -2
  100. package/lib/WarnNoModeSetPlugin.js +17 -2
  101. package/lib/WatchIgnorePlugin.js +4 -1
  102. package/lib/Watching.js +16 -3
  103. package/lib/WebpackError.js +3 -74
  104. package/lib/WebpackIsIncludedPlugin.js +3 -1
  105. package/lib/WebpackOptionsApply.js +14 -1
  106. package/lib/WebpackOptionsDefaulter.js +1 -0
  107. package/lib/asset/AssetBytesGenerator.js +12 -2
  108. package/lib/asset/AssetBytesParser.js +1 -0
  109. package/lib/asset/AssetGenerator.js +42 -10
  110. package/lib/asset/AssetModulesPlugin.js +7 -2
  111. package/lib/asset/AssetParser.js +2 -0
  112. package/lib/asset/AssetSourceGenerator.js +12 -2
  113. package/lib/asset/AssetSourceParser.js +1 -0
  114. package/lib/asset/RawDataUrlModule.js +11 -0
  115. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  116. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
  117. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  118. package/lib/buildChunkGraph.js +19 -6
  119. package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
  120. package/lib/cache/AddManagedPathsPlugin.js +2 -1
  121. package/lib/cache/IdleFileCachePlugin.js +2 -1
  122. package/lib/cache/MemoryCachePlugin.js +1 -1
  123. package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
  124. package/lib/cache/PackFileCacheStrategy.js +33 -4
  125. package/lib/cache/ResolverCachePlugin.js +10 -1
  126. package/lib/cache/getLazyHashedEtag.js +4 -0
  127. package/lib/cache/mergeEtags.js +2 -0
  128. package/lib/cli.js +33 -1
  129. package/lib/config/browserslistTargetHandler.js +2 -0
  130. package/lib/config/defaults.js +232 -12
  131. package/lib/config/normalization.js +15 -1
  132. package/lib/config/target.js +11 -0
  133. package/lib/container/ContainerEntryDependency.js +2 -0
  134. package/lib/container/ContainerEntryModule.js +12 -0
  135. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  136. package/lib/container/ContainerExposedDependency.js +4 -0
  137. package/lib/container/ContainerPlugin.js +2 -1
  138. package/lib/container/ContainerReferencePlugin.js +2 -1
  139. package/lib/container/FallbackDependency.js +4 -0
  140. package/lib/container/FallbackItemDependency.js +1 -0
  141. package/lib/container/FallbackModule.js +12 -0
  142. package/lib/container/FallbackModuleFactory.js +1 -0
  143. package/lib/container/ModuleFederationPlugin.js +3 -1
  144. package/lib/container/RemoteModule.js +13 -0
  145. package/lib/container/RemoteRuntimeModule.js +1 -0
  146. package/lib/container/RemoteToExternalDependency.js +1 -0
  147. package/lib/container/options.js +7 -0
  148. package/lib/css/CssGenerator.js +336 -100
  149. package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
  150. package/lib/css/CssLoadingRuntimeModule.js +23 -4
  151. package/lib/{CssModule.js → css/CssModule.js} +21 -15
  152. package/lib/css/CssModulesPlugin.js +235 -89
  153. package/lib/css/CssParser.js +616 -261
  154. package/lib/css/walkCssTokens.js +179 -2
  155. package/lib/debug/ProfilingPlugin.js +19 -1
  156. package/lib/dependencies/AMDDefineDependency.js +7 -0
  157. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
  158. package/lib/dependencies/AMDPlugin.js +4 -1
  159. package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
  160. package/lib/dependencies/AMDRequireContextDependency.js +3 -0
  161. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  162. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +14 -1
  163. package/lib/dependencies/AMDRequireDependency.js +4 -0
  164. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  165. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  166. package/lib/dependencies/CachedConstDependency.js +6 -1
  167. package/lib/dependencies/CommonJsDependencyHelpers.js +64 -0
  168. package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
  169. package/lib/dependencies/CommonJsExportsDependency.js +4 -0
  170. package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
  171. package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
  172. package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
  173. package/lib/dependencies/CommonJsPlugin.js +4 -1
  174. package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
  175. package/lib/dependencies/CommonJsRequireDependency.js +70 -4
  176. package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
  177. package/lib/dependencies/ConstDependency.js +6 -1
  178. package/lib/dependencies/ContextDependency.js +9 -2
  179. package/lib/dependencies/ContextDependencyHelpers.js +4 -1
  180. package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
  181. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  182. package/lib/dependencies/ContextElementDependency.js +4 -0
  183. package/lib/dependencies/CreateRequireParserPlugin.js +7 -1
  184. package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
  185. package/lib/dependencies/CriticalDependencyWarning.js +2 -1
  186. package/lib/dependencies/CssIcssExportDependency.js +339 -66
  187. package/lib/dependencies/CssIcssImportDependency.js +53 -8
  188. package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
  189. package/lib/dependencies/CssImportDependency.js +12 -0
  190. package/lib/dependencies/CssUrlDependency.js +32 -0
  191. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  192. package/lib/dependencies/DllEntryDependency.js +3 -0
  193. package/lib/dependencies/DynamicExports.js +5 -0
  194. package/lib/dependencies/EntryDependency.js +1 -0
  195. package/lib/dependencies/ExportsInfoDependency.js +6 -0
  196. package/lib/dependencies/ExternalModuleDependency.js +5 -0
  197. package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
  198. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
  199. package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
  200. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
  201. package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
  202. package/lib/dependencies/HarmonyDetectionParserPlugin.js +4 -1
  203. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
  204. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
  205. package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
  206. package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
  207. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
  208. package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
  209. package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
  210. package/lib/dependencies/HarmonyExports.js +2 -0
  211. package/lib/dependencies/HarmonyImportDependency.js +21 -2
  212. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
  213. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
  214. package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
  215. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
  216. package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
  217. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
  218. package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
  219. package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
  220. package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
  221. package/lib/dependencies/HtmlSourceDependency.js +127 -0
  222. package/lib/dependencies/ImportContextDependency.js +4 -0
  223. package/lib/dependencies/ImportDependency.js +5 -0
  224. package/lib/dependencies/ImportEagerDependency.js +2 -0
  225. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  226. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -1
  227. package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
  228. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
  229. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
  230. package/lib/dependencies/ImportMetaPlugin.js +6 -0
  231. package/lib/dependencies/ImportParserPlugin.js +9 -2
  232. package/lib/dependencies/ImportPhase.js +7 -3
  233. package/lib/dependencies/ImportPlugin.js +2 -1
  234. package/lib/dependencies/ImportWeakDependency.js +2 -0
  235. package/lib/dependencies/JsonExportsDependency.js +6 -1
  236. package/lib/dependencies/LoaderDependency.js +2 -0
  237. package/lib/dependencies/LoaderImportDependency.js +2 -0
  238. package/lib/dependencies/LoaderPlugin.js +4 -1
  239. package/lib/dependencies/LocalModule.js +4 -0
  240. package/lib/dependencies/LocalModuleDependency.js +4 -0
  241. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  242. package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
  243. package/lib/dependencies/ModuleDependency.js +7 -0
  244. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  245. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  246. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
  247. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
  248. package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
  249. package/lib/dependencies/NullDependency.js +2 -0
  250. package/lib/dependencies/PrefetchDependency.js +1 -0
  251. package/lib/dependencies/ProvidedDependency.js +6 -1
  252. package/lib/dependencies/PureExpressionDependency.js +7 -1
  253. package/lib/dependencies/RequireContextDependency.js +1 -0
  254. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
  255. package/lib/dependencies/RequireContextPlugin.js +2 -1
  256. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  257. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
  258. package/lib/dependencies/RequireEnsureDependency.js +4 -0
  259. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  260. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  261. package/lib/dependencies/RequireHeaderDependency.js +4 -0
  262. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  263. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +4 -1
  264. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  265. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  266. package/lib/dependencies/RequireResolveContextDependency.js +3 -0
  267. package/lib/dependencies/RequireResolveDependency.js +1 -0
  268. package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
  269. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
  270. package/lib/dependencies/StaticExportsDependency.js +3 -0
  271. package/lib/dependencies/SystemPlugin.js +5 -2
  272. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  273. package/lib/dependencies/URLContextDependency.js +3 -0
  274. package/lib/dependencies/URLDependency.js +6 -0
  275. package/lib/dependencies/URLPlugin.js +2 -0
  276. package/lib/dependencies/UnsupportedDependency.js +4 -0
  277. package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
  278. package/lib/dependencies/WebAssemblyImportDependency.js +5 -2
  279. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
  280. package/lib/dependencies/WorkerDependency.js +6 -1
  281. package/lib/dependencies/WorkerPlugin.js +11 -3
  282. package/lib/dependencies/getFunctionExpression.js +1 -0
  283. package/lib/dependencies/processExportInfo.js +1 -0
  284. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
  285. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
  286. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
  287. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
  288. package/lib/{DllModule.js → dll/DllModule.js} +35 -24
  289. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  290. package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
  291. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
  292. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
  293. package/lib/electron/ElectronTargetPlugin.js +2 -1
  294. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  295. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  296. package/lib/errors/BuildCycleError.js +1 -1
  297. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  298. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  299. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  300. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
  301. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
  302. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
  303. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
  304. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
  305. package/lib/errors/JSONParseError.js +114 -0
  306. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
  307. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
  308. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
  309. package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
  310. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
  311. package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
  312. package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
  313. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
  314. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
  315. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
  316. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
  317. package/lib/errors/NonErrorEmittedError.js +28 -0
  318. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -2
  319. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  320. package/lib/errors/WebpackError.js +84 -0
  321. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  322. package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
  323. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
  324. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
  325. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  326. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  327. package/lib/hmr/LazyCompilationPlugin.js +20 -1
  328. package/lib/hmr/lazyCompilationBackend.js +2 -0
  329. package/lib/html/HtmlGenerator.js +379 -0
  330. package/lib/html/HtmlModulesPlugin.js +433 -0
  331. package/lib/html/HtmlParser.js +1489 -0
  332. package/lib/html/walkHtmlTokens.js +2733 -0
  333. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  334. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  335. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  336. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  337. package/lib/ids/IdHelpers.js +22 -1
  338. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  339. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  340. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  341. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  342. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  343. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  344. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  345. package/lib/index.js +39 -15
  346. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
  347. package/lib/javascript/BasicEvaluatedExpression.js +4 -2
  348. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  349. package/lib/javascript/ChunkHelpers.js +1 -0
  350. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  351. package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
  352. package/lib/javascript/JavascriptGenerator.js +10 -0
  353. package/lib/javascript/JavascriptModulesPlugin.js +112 -9
  354. package/lib/javascript/JavascriptParser.js +360 -16
  355. package/lib/javascript/JavascriptParserHelpers.js +7 -1
  356. package/lib/javascript/StartupHelpers.js +5 -0
  357. package/lib/json/JsonData.js +5 -0
  358. package/lib/json/JsonGenerator.js +21 -0
  359. package/lib/json/JsonModulesPlugin.js +1 -1
  360. package/lib/json/JsonParser.js +14 -25
  361. package/lib/library/AbstractLibraryPlugin.js +17 -2
  362. package/lib/library/AmdLibraryPlugin.js +8 -0
  363. package/lib/library/AssignLibraryPlugin.js +16 -0
  364. package/lib/library/EnableLibraryPlugin.js +8 -2
  365. package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
  366. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
  367. package/lib/library/JsonpLibraryPlugin.js +8 -0
  368. package/lib/library/ModuleLibraryPlugin.js +86 -1
  369. package/lib/library/SystemLibraryPlugin.js +8 -0
  370. package/lib/library/UmdLibraryPlugin.js +16 -0
  371. package/lib/logging/Logger.js +17 -0
  372. package/lib/logging/createConsoleLogger.js +7 -0
  373. package/lib/logging/runtime.js +2 -0
  374. package/lib/logging/truncateArgs.js +2 -0
  375. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  376. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  377. package/lib/node/NodeSourcePlugin.js +1 -1
  378. package/lib/node/NodeTargetPlugin.js +2 -1
  379. package/lib/node/NodeTemplatePlugin.js +3 -1
  380. package/lib/node/NodeWatchFileSystem.js +2 -0
  381. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
  382. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
  383. package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
  384. package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
  385. package/lib/node/nodeConsole.js +116 -64
  386. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  387. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  388. package/lib/optimize/ConcatenatedModule.js +62 -6
  389. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  390. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
  391. package/lib/optimize/InnerGraph.js +16 -1
  392. package/lib/optimize/InnerGraphPlugin.js +14 -2
  393. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  394. package/lib/optimize/MangleExportsPlugin.js +5 -1
  395. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  396. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  397. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  398. package/lib/optimize/ModuleConcatenationPlugin.js +36 -8
  399. package/lib/optimize/RealContentHashPlugin.js +104 -26
  400. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  401. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  402. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  403. package/lib/optimize/SideEffectsFlagPlugin.js +118 -4
  404. package/lib/optimize/SplitChunksPlugin.js +50 -2
  405. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  406. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  407. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  408. package/lib/performance/SizeLimitsPlugin.js +8 -2
  409. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  410. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
  411. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  412. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  413. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
  414. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  415. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  416. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  417. package/lib/rules/RuleSetCompiler.js +18 -0
  418. package/lib/rules/UseEffectRulePlugin.js +10 -3
  419. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
  420. package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
  421. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  422. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  423. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
  424. package/lib/runtime/CompatRuntimeModule.js +2 -0
  425. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
  426. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  427. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  428. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
  429. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  430. package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
  431. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  432. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  433. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
  434. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  435. package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
  436. package/lib/runtime/HelperRuntimeModule.js +5 -0
  437. package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
  438. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +121 -13
  439. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
  440. package/lib/runtime/NonceRuntimeModule.js +1 -0
  441. package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
  442. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  443. package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
  444. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  445. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
  446. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  447. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
  448. package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
  449. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  450. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  451. package/lib/schemes/DataUriPlugin.js +14 -2
  452. package/lib/schemes/FileUriPlugin.js +1 -1
  453. package/lib/schemes/HttpUriPlugin.js +43 -1
  454. package/lib/schemes/VirtualUrlPlugin.js +7 -2
  455. package/lib/serialization/AggregateErrorSerializer.js +2 -0
  456. package/lib/serialization/ArraySerializer.js +2 -0
  457. package/lib/serialization/BinaryMiddleware.js +20 -1
  458. package/lib/serialization/DateObjectSerializer.js +2 -0
  459. package/lib/serialization/ErrorObjectSerializer.js +3 -0
  460. package/lib/serialization/FileMiddleware.js +21 -0
  461. package/lib/serialization/MapObjectSerializer.js +2 -0
  462. package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
  463. package/lib/serialization/ObjectMiddleware.js +23 -0
  464. package/lib/serialization/PlainObjectSerializer.js +7 -0
  465. package/lib/serialization/RegExpObjectSerializer.js +2 -0
  466. package/lib/serialization/Serializer.js +5 -0
  467. package/lib/serialization/SerializerMiddleware.js +14 -2
  468. package/lib/serialization/SetObjectSerializer.js +2 -0
  469. package/lib/serialization/SingleItemMiddleware.js +3 -0
  470. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  471. package/lib/sharing/ConsumeSharedModule.js +15 -0
  472. package/lib/sharing/ConsumeSharedPlugin.js +8 -3
  473. package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
  474. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  475. package/lib/sharing/ProvideSharedDependency.js +4 -0
  476. package/lib/sharing/ProvideSharedModule.js +12 -1
  477. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  478. package/lib/sharing/ProvideSharedPlugin.js +5 -2
  479. package/lib/sharing/SharePlugin.js +2 -1
  480. package/lib/sharing/ShareRuntimeModule.js +1 -0
  481. package/lib/sharing/resolveMatchedConfigs.js +4 -1
  482. package/lib/sharing/utils.js +8 -0
  483. package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
  484. package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
  485. package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
  486. package/lib/stats/StatsFactory.js +13 -1
  487. package/lib/stats/StatsPrinter.js +7 -0
  488. package/lib/typescript/TypeScriptPlugin.js +210 -0
  489. package/lib/url/URLParserPlugin.js +8 -2
  490. package/lib/util/AppendOnlyStackedSet.js +15 -0
  491. package/lib/util/ArrayHelpers.js +1 -0
  492. package/lib/util/ArrayQueue.js +10 -5
  493. package/lib/util/AsyncQueue.js +22 -2
  494. package/lib/util/Hash.js +2 -2
  495. package/lib/util/IterableHelpers.js +3 -0
  496. package/lib/util/LazyBucketSortedSet.js +21 -0
  497. package/lib/util/LazySet.js +39 -0
  498. package/lib/util/LocConverter.js +53 -0
  499. package/lib/util/ParallelismFactorCalculator.js +1 -0
  500. package/lib/util/Queue.js +6 -3
  501. package/lib/util/Semaphore.js +14 -1
  502. package/lib/util/SetHelpers.js +3 -0
  503. package/lib/util/SortableSet.js +7 -1
  504. package/lib/util/StackedCacheMap.js +20 -3
  505. package/lib/util/StackedMap.js +45 -0
  506. package/lib/util/StringXor.js +1 -1
  507. package/lib/util/TupleQueue.js +7 -3
  508. package/lib/util/TupleSet.js +13 -0
  509. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  510. package/lib/util/WeakTupleMap.js +33 -0
  511. package/lib/util/binarySearchBounds.js +1 -0
  512. package/lib/util/cleverMerge.js +19 -2
  513. package/lib/util/comparators.js +34 -3
  514. package/lib/util/compileBooleanMatcher.js +9 -0
  515. package/lib/util/concatenate.js +9 -3
  516. package/lib/util/conventions.js +46 -1
  517. package/lib/util/createMappings.js +118 -0
  518. package/lib/util/dataURL.js +1 -0
  519. package/lib/util/deprecation.js +19 -0
  520. package/lib/util/deterministicGrouping.js +20 -0
  521. package/lib/util/extractSourceMap.js +1 -0
  522. package/lib/util/extractUrlAndGlobal.js +1 -0
  523. package/lib/util/findGraphRoots.js +5 -0
  524. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  525. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
  526. package/lib/util/fs.js +71 -8
  527. package/lib/util/generateDebugId.js +1 -0
  528. package/lib/util/hash/BatchedHash.js +1 -0
  529. package/lib/util/hash/BulkUpdateHash.js +1 -0
  530. package/lib/util/hash/hash-digest.js +8 -0
  531. package/lib/util/hash/md4.js +1 -1
  532. package/lib/util/hash/wasm-hash.js +5 -0
  533. package/lib/util/hash/xxhash64.js +1 -1
  534. package/lib/util/identifier.js +67 -0
  535. package/lib/util/internalSerializables.js +35 -19
  536. package/lib/util/magicComment.js +10 -6
  537. package/lib/util/makeSerializable.js +6 -0
  538. package/lib/util/memoize.js +2 -0
  539. package/lib/util/mimeTypes.js +176 -0
  540. package/lib/util/nonNumericOnlyHash.js +1 -0
  541. package/lib/util/parseJson.js +41 -0
  542. package/lib/util/processAsyncTree.js +8 -0
  543. package/lib/util/property.js +1 -0
  544. package/lib/util/registerExternalSerializer.js +20 -0
  545. package/lib/util/removeBOM.js +1 -0
  546. package/lib/util/runtime.js +32 -0
  547. package/lib/util/semver.js +15 -0
  548. package/lib/util/serialization.js +2 -0
  549. package/lib/util/smartGrouping.js +8 -0
  550. package/lib/util/source.js +23 -0
  551. package/lib/util/topologicalSort.js +69 -0
  552. package/lib/validateSchema.js +1 -0
  553. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  554. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
  555. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
  556. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  557. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
  558. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +12 -3
  559. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
  560. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
  561. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
  562. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
  563. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
  564. package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
  565. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
  566. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  567. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
  568. package/lib/wasm-sync/WebAssemblyParser.js +2 -0
  569. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  570. package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
  571. package/lib/web/FetchCompileWasmPlugin.js +13 -1
  572. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  573. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
  574. package/lib/web/JsonpTemplatePlugin.js +2 -1
  575. package/lib/webpack.js +13 -1
  576. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  577. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
  578. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  579. package/package.json +31 -31
  580. package/schemas/WebpackOptions.check.js +1 -1
  581. package/schemas/WebpackOptions.json +161 -57
  582. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  583. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  584. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  585. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  586. package/schemas/plugins/ProgressPlugin.json +22 -0
  587. package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
  588. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  589. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  590. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  591. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  592. package/types.d.ts +5325 -353
  593. package/lib/CaseSensitiveModulesWarning.js +0 -72
  594. package/lib/GraphHelpers.js +0 -46
  595. package/lib/NoModeWarning.js +0 -23
  596. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  597. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  598. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  599. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  600. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -5,7 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const { makeCacheable } = require("../util/identifier");
9
+
8
10
  /**
11
+ * Defines the css token callbacks type used by this module.
9
12
  * @typedef {object} CssTokenCallbacks
10
13
  * @property {((input: string, start: number, end: number) => number)=} comment
11
14
  * @property {((input: string, start: number, end: number) => number)=} whitespace
@@ -111,6 +114,7 @@ const consumeSpace = (input, pos, callbacks) => {
111
114
  // Replace any U+000D CARRIAGE RETURN (CR) code points, U+000C FORM FEED (FF) code points, or pairs of U+000D CARRIAGE RETURN (CR) followed by U+000A LINE FEED (LF) in input by a single U+000A LINE FEED (LF) code point.
112
115
 
113
116
  /**
117
+ * Checks whether newline true, if cc is a newline.
114
118
  * @param {number} cc char code
115
119
  * @returns {boolean} true, if cc is a newline
116
120
  */
@@ -118,6 +122,7 @@ const _isNewline = (cc) =>
118
122
  cc === CC_LINE_FEED || cc === CC_CARRIAGE_RETURN || cc === CC_FORM_FEED;
119
123
 
120
124
  /**
125
+ * Consume extra newline.
121
126
  * @param {number} cc char code
122
127
  * @param {string} input input
123
128
  * @param {number} pos position
@@ -132,12 +137,14 @@ const consumeExtraNewline = (cc, input, pos) => {
132
137
  };
133
138
 
134
139
  /**
140
+ * Checks whether space true, if cc is a space (U+0009 CHARACTER TABULATION or U+0020 SPACE).
135
141
  * @param {number} cc char code
136
142
  * @returns {boolean} true, if cc is a space (U+0009 CHARACTER TABULATION or U+0020 SPACE)
137
143
  */
138
144
  const _isSpace = (cc) => cc === CC_TAB || cc === CC_SPACE;
139
145
 
140
146
  /**
147
+ * Checks whether white space true, if cc is a whitespace.
141
148
  * @param {number} cc char code
142
149
  * @returns {boolean} true, if cc is a whitespace
143
150
  */
@@ -156,6 +163,143 @@ const isIdentStartCodePoint = (cc) =>
156
163
  cc === CC_LOW_LINE ||
157
164
  cc >= 0x80;
158
165
 
166
+ const REGEX_SINGLE_ESCAPE = /[ -,./:-@[\]^`{-~]/;
167
+ const REGEX_EXCESSIVE_SPACES = /(^|\\+)?(\\[A-F0-9]{1,6}) (?![a-fA-F0-9 ])/g;
168
+ const REGEX_CTRL_WHITESPACE = /[\t\n\f\r\v]/;
169
+ const REGEX_LEADING_HYPHEN_DIGIT = /^-[-\d]/;
170
+ const REGEX_DIGIT = /\d/;
171
+ const CONTAINS_ESCAPE = /\\/;
172
+
173
+ /**
174
+ * Returns escaped identifier.
175
+ * @param {string} str string
176
+ * @returns {string} escaped identifier
177
+ */
178
+ const _escapeIdentifier = (str) => {
179
+ let output = "";
180
+ let counter = 0;
181
+
182
+ while (counter < str.length) {
183
+ const character = str.charAt(counter++);
184
+
185
+ /** @type {string} */
186
+ let value;
187
+
188
+ if (REGEX_CTRL_WHITESPACE.test(character)) {
189
+ const codePoint = character.charCodeAt(0);
190
+
191
+ value = `\\${codePoint.toString(16).toUpperCase()} `;
192
+ } else if (character === "\\" || REGEX_SINGLE_ESCAPE.test(character)) {
193
+ value = `\\${character}`;
194
+ } else {
195
+ value = character;
196
+ }
197
+
198
+ output += value;
199
+ }
200
+
201
+ const firstChar = str.charAt(0);
202
+
203
+ if (REGEX_LEADING_HYPHEN_DIGIT.test(output)) {
204
+ output = `\\-${output.slice(1)}`;
205
+ } else if (REGEX_DIGIT.test(firstChar)) {
206
+ output = `\\3${firstChar} ${output.slice(1)}`;
207
+ }
208
+
209
+ // Remove spaces after `\HEX` escapes that are not followed by a hex digit,
210
+ // since they’re redundant. Note that this is only possible if the escape
211
+ // sequence isn’t preceded by an odd number of backslashes.
212
+ output = output.replace(REGEX_EXCESSIVE_SPACES, ($0, $1, $2) => {
213
+ if ($1 && $1.length % 2) {
214
+ // It’s not safe to remove the space, so don’t.
215
+ return $0;
216
+ }
217
+
218
+ // Strip the space.
219
+ return ($1 || "") + $2;
220
+ });
221
+
222
+ return output;
223
+ };
224
+
225
+ /**
226
+ * Returns hex.
227
+ * @param {string} str string
228
+ * @returns {[string, number] | undefined} hex
229
+ */
230
+ const gobbleHex = (str) => {
231
+ const lower = str.toLowerCase();
232
+ let hex = "";
233
+ let spaceTerminated = false;
234
+
235
+ for (let i = 0; i < 6 && lower[i] !== undefined; i++) {
236
+ const code = lower.charCodeAt(i);
237
+ // check to see if we are dealing with a valid hex char [a-f|0-9]
238
+ const valid = (code >= 97 && code <= 102) || (code >= 48 && code <= 57);
239
+ // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point
240
+ spaceTerminated = code === 32;
241
+ if (!valid) break;
242
+ hex += lower[i];
243
+ }
244
+
245
+ if (hex.length === 0) return undefined;
246
+
247
+ const codePoint = Number.parseInt(hex, 16);
248
+ const isSurrogate = codePoint >= 0xd800 && codePoint <= 0xdfff;
249
+
250
+ // Add special case for
251
+ // "If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point"
252
+ // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point
253
+ if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10ffff) {
254
+ return ["�", hex.length + (spaceTerminated ? 1 : 0)];
255
+ }
256
+
257
+ return [
258
+ String.fromCodePoint(codePoint),
259
+ hex.length + (spaceTerminated ? 1 : 0)
260
+ ];
261
+ };
262
+
263
+ /**
264
+ * Unescape identifier.
265
+ * @param {string} str string
266
+ * @returns {string} unescaped string
267
+ */
268
+ const _unescapeIdentifier = (str) => {
269
+ const needToProcess = CONTAINS_ESCAPE.test(str);
270
+ if (!needToProcess) return str;
271
+ let ret = "";
272
+ for (let i = 0; i < str.length; i++) {
273
+ if (str[i] === "\\") {
274
+ const gobbled = gobbleHex(str.slice(i + 1, i + 7));
275
+ if (gobbled !== undefined) {
276
+ ret += gobbled[0];
277
+ i += gobbled[1];
278
+ continue;
279
+ }
280
+ // Retain a pair of \\ if double escaped `\\\\`
281
+ // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e
282
+ if (str[i + 1] === "\\") {
283
+ ret += "\\";
284
+ i += 1;
285
+ continue;
286
+ }
287
+ // if \\ is at the end of the string retain it
288
+ // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb
289
+ if (str.length === i + 1) {
290
+ ret += str[i];
291
+ }
292
+ continue;
293
+ }
294
+ ret += str[i];
295
+ }
296
+
297
+ return ret;
298
+ };
299
+
300
+ const escapeIdentifier = makeCacheable(_escapeIdentifier);
301
+ const unescapeIdentifier = makeCacheable(_unescapeIdentifier);
302
+
159
303
  /** @type {CharHandler} */
160
304
  const consumeDelimToken = (input, pos, callbacks) => {
161
305
  // Return a <delim-token> with its value set to the current input code point.
@@ -207,6 +351,7 @@ const consumeComments = (input, pos, callbacks) => {
207
351
  };
208
352
 
209
353
  /**
354
+ * Checks whether hex digit true, if cc is a hex digit.
210
355
  * @param {number} cc char code
211
356
  * @returns {boolean} true, if cc is a hex digit
212
357
  */
@@ -216,6 +361,7 @@ const _isHexDigit = (cc) =>
216
361
  (cc >= CC_LOWER_A && cc <= CC_LOWER_F);
217
362
 
218
363
  /**
364
+ * Consume an escaped code point.
219
365
  * @param {string} input input
220
366
  * @param {number} pos position
221
367
  * @returns {number} position
@@ -339,6 +485,7 @@ const consumeAStringToken = (input, pos, callbacks) => {
339
485
  };
340
486
 
341
487
  /**
488
+ * Checks whether this object is non ascii code point.
342
489
  * @param {number} cc char code
343
490
  * @param {number} q char code
344
491
  * @returns {boolean} is non-ASCII code point
@@ -348,6 +495,7 @@ const isNonASCIICodePoint = (cc, q) =>
348
495
  cc > 0x80;
349
496
 
350
497
  /**
498
+ * Checks whether this object is letter.
351
499
  * @param {number} cc char code
352
500
  * @returns {boolean} is letter
353
501
  */
@@ -356,6 +504,7 @@ const isLetter = (cc) =>
356
504
  (cc >= CC_UPPER_A && cc <= CC_UPPER_Z);
357
505
 
358
506
  /**
507
+ * Is ident start code point.
359
508
  * @param {number} cc char code
360
509
  * @param {number} q char code
361
510
  * @returns {boolean} is identifier start code
@@ -364,6 +513,7 @@ const _isIdentStartCodePoint = (cc, q) =>
364
513
  isLetter(cc) || isNonASCIICodePoint(cc, q) || cc === CC_LOW_LINE;
365
514
 
366
515
  /**
516
+ * Is ident code point.
367
517
  * @param {number} cc char code
368
518
  * @param {number} q char code
369
519
  * @returns {boolean} is identifier code
@@ -371,12 +521,14 @@ const _isIdentStartCodePoint = (cc, q) =>
371
521
  const _isIdentCodePoint = (cc, q) =>
372
522
  _isIdentStartCodePoint(cc, q) || _isDigit(cc) || cc === CC_HYPHEN_MINUS;
373
523
  /**
524
+ * Checks whether digit is digit.
374
525
  * @param {number} cc char code
375
526
  * @returns {boolean} is digit
376
527
  */
377
528
  const _isDigit = (cc) => cc >= CC_0 && cc <= CC_9;
378
529
 
379
530
  /**
531
+ * If two code points are valid escape.
380
532
  * @param {string} input input
381
533
  * @param {number} pos position
382
534
  * @param {number=} f first code point
@@ -401,6 +553,7 @@ const _ifTwoCodePointsAreValidEscape = (input, pos, f, s) => {
401
553
  };
402
554
 
403
555
  /**
556
+ * If three code points would start an ident sequence.
404
557
  * @param {string} input input
405
558
  * @param {number} pos position
406
559
  * @param {number=} f first
@@ -453,6 +606,7 @@ const _ifThreeCodePointsWouldStartAnIdentSequence = (input, pos, f, s, t) => {
453
606
  };
454
607
 
455
608
  /**
609
+ * If three code points would start a number.
456
610
  * @param {string} input input
457
611
  * @param {number} pos position
458
612
  * @param {number=} f first
@@ -873,6 +1027,7 @@ const _consumeAnIdentSequence = (input, pos) => {
873
1027
  };
874
1028
 
875
1029
  /**
1030
+ * Is non printable code point.
876
1031
  * @param {number} cc char code
877
1032
  * @returns {boolean} true, when cc is the non-printable code point, otherwise false
878
1033
  */
@@ -883,6 +1038,7 @@ const _isNonPrintableCodePoint = (cc) =>
883
1038
  cc === 0x7f;
884
1039
 
885
1040
  /**
1041
+ * Consume the remnants of a bad url.
886
1042
  * @param {string} input input
887
1043
  * @param {number} pos position
888
1044
  * @returns {number} position
@@ -924,6 +1080,7 @@ const consumeTheRemnantsOfABadUrl = (input, pos) => {
924
1080
  };
925
1081
 
926
1082
  /**
1083
+ * Consume a url token.
927
1084
  * @param {string} input input
928
1085
  * @param {number} pos position
929
1086
  * @param {number} fnStart start
@@ -1285,6 +1442,7 @@ const consumeAToken = (input, pos, callbacks) => {
1285
1442
  };
1286
1443
 
1287
1444
  /**
1445
+ * Returns pos.
1288
1446
  * @param {string} input input css
1289
1447
  * @param {number=} pos pos
1290
1448
  * @param {CssTokenCallbacks=} callbacks callbacks
@@ -1309,6 +1467,7 @@ module.exports = (input, pos = 0, callbacks = {}) => {
1309
1467
  };
1310
1468
 
1311
1469
  /**
1470
+ * Returns pos.
1312
1471
  * @param {string} input input css
1313
1472
  * @param {number} pos pos
1314
1473
  * @param {CssTokenCallbacks} callbacks callbacks
@@ -1411,6 +1570,7 @@ const consumeUntil = (input, pos, callbacks, additional, options = {}) => {
1411
1570
  };
1412
1571
 
1413
1572
  /**
1573
+ * Returns position after comments.
1414
1574
  * @param {string} input input
1415
1575
  * @param {number} pos position
1416
1576
  * @returns {number} position after comments
@@ -1428,6 +1588,7 @@ const eatComments = (input, pos) => {
1428
1588
  };
1429
1589
 
1430
1590
  /**
1591
+ * Returns position after whitespace.
1431
1592
  * @param {string} input input
1432
1593
  * @param {number} pos position
1433
1594
  * @returns {number} position after whitespace
@@ -1441,6 +1602,7 @@ const eatWhitespace = (input, pos) => {
1441
1602
  };
1442
1603
 
1443
1604
  /**
1605
+ * Eat whitespace and comments.
1444
1606
  * @param {string} input input
1445
1607
  * @param {number} pos position
1446
1608
  * @returns {[number, boolean]} position after whitespace and comments
@@ -1466,6 +1628,7 @@ const eatWhitespaceAndComments = (input, pos) => {
1466
1628
  };
1467
1629
 
1468
1630
  /**
1631
+ * Returns position after whitespace.
1469
1632
  * @param {string} input input
1470
1633
  * @param {number} pos position
1471
1634
  * @returns {number} position after whitespace
@@ -1486,6 +1649,7 @@ const eatWhiteLine = (input, pos) => {
1486
1649
  };
1487
1650
 
1488
1651
  /**
1652
+ * Skip comments and eat ident sequence.
1489
1653
  * @param {string} input input
1490
1654
  * @param {number} pos position
1491
1655
  * @returns {[number, number] | undefined} positions of ident sequence
@@ -1511,6 +1675,7 @@ const skipCommentsAndEatIdentSequence = (input, pos) => {
1511
1675
  };
1512
1676
 
1513
1677
  /**
1678
+ * Returns positions of ident sequence.
1514
1679
  * @param {string} input input
1515
1680
  * @param {number} pos position
1516
1681
  * @returns {[number, number] | undefined} positions of ident sequence
@@ -1531,6 +1696,7 @@ const eatString = (input, pos) => {
1531
1696
  };
1532
1697
 
1533
1698
  /**
1699
+ * Eat image set strings.
1534
1700
  * @param {string} input input
1535
1701
  * @param {number} pos position
1536
1702
  * @param {CssTokenCallbacks} cbs callbacks
@@ -1601,14 +1767,15 @@ const eatImageSetStrings = (input, pos, cbs) => {
1601
1767
  };
1602
1768
 
1603
1769
  /**
1770
+ * Returns positions of top level tokens.
1604
1771
  * @param {string} input input
1605
1772
  * @param {number} pos position
1606
1773
  * @param {CssTokenCallbacks} cbs callbacks
1607
- * @returns {[[number, number, number, number] | undefined, [number, number] | undefined, [number, number] | undefined, [number, number] | undefined]} positions of top level tokens
1774
+ * @returns {[[number, number, number, number, boolean?] | undefined, [number, number] | undefined, [number, number] | undefined, [number, number] | undefined]} positions of top level tokens — the URL tuple's optional 5th element is `true` when the URL was given as an identifier (CSS Modules `@value` reference)
1608
1775
  */
1609
1776
  const eatImportTokens = (input, pos, cbs) => {
1610
1777
  const result =
1611
- /** @type {[[number, number, number, number] | undefined, [number, number] | undefined, [number, number] | undefined, [number, number] | undefined]} */
1778
+ /** @type {[[number, number, number, number, boolean?] | undefined, [number, number] | undefined, [number, number] | undefined, [number, number] | undefined]} */
1612
1779
  (Array.from({ length: 4 }));
1613
1780
 
1614
1781
  /** @type {0 | 1 | 2 | undefined} */
@@ -1712,6 +1879,11 @@ const eatImportTokens = (input, pos, cbs) => {
1712
1879
  if (name === "layer") {
1713
1880
  result[1] = [start, end];
1714
1881
  scope = undefined;
1882
+ } else if (result[0] === undefined) {
1883
+ // Capture as URL identifier (e.g. `@import myValue;` where
1884
+ // `myValue` is a CSS Modules `@value` definition).
1885
+ result[0] = [start, end, start, end, true];
1886
+ scope = undefined;
1715
1887
  }
1716
1888
  }
1717
1889
 
@@ -1744,6 +1916,7 @@ const eatImportTokens = (input, pos, cbs) => {
1744
1916
  };
1745
1917
 
1746
1918
  /**
1919
+ * Eat ident sequence.
1747
1920
  * @param {string} input input
1748
1921
  * @param {number} pos position
1749
1922
  * @returns {[number, number] | undefined} positions of ident sequence
@@ -1769,6 +1942,7 @@ const eatIdentSequence = (input, pos) => {
1769
1942
  };
1770
1943
 
1771
1944
  /**
1945
+ * Eat ident sequence or string.
1772
1946
  * @param {string} input input
1773
1947
  * @param {number} pos position
1774
1948
  * @returns {[number, number, boolean] | undefined} positions of ident sequence or string
@@ -1799,6 +1973,7 @@ const eatIdentSequenceOrString = (input, pos) => {
1799
1973
  };
1800
1974
 
1801
1975
  /**
1976
+ * Returns function to eat characters.
1802
1977
  * @param {string} chars characters
1803
1978
  * @returns {(input: string, pos: number) => number} function to eat characters
1804
1979
  */
@@ -1837,7 +2012,9 @@ module.exports.eatUntil = eatUntil;
1837
2012
  module.exports.eatWhiteLine = eatWhiteLine;
1838
2013
  module.exports.eatWhitespace = eatWhitespace;
1839
2014
  module.exports.eatWhitespaceAndComments = eatWhitespaceAndComments;
2015
+ module.exports.escapeIdentifier = escapeIdentifier;
1840
2016
  module.exports.isIdentStartCodePoint = isIdentStartCodePoint;
1841
2017
  module.exports.isWhiteSpace = _isWhiteSpace;
1842
2018
  module.exports.skipCommentsAndEatIdentSequence =
1843
2019
  skipCommentsAndEatIdentSequence;
2020
+ module.exports.unescapeIdentifier = unescapeIdentifier;
@@ -23,21 +23,25 @@ const { dirname, mkdirpSync } = require("../util/fs");
23
23
  /** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
24
24
 
25
25
  /**
26
+ * Defines the hook type used by this module.
26
27
  * @template T, R
27
28
  * @typedef {import("tapable").Hook<T, R>} Hook
28
29
  */
29
30
 
30
31
  /**
32
+ * Defines the fake hook type used by this module.
31
33
  * @template T
32
34
  * @typedef {import("../util/deprecation").FakeHook<T>} FakeHook
33
35
  */
34
36
 
35
37
  /**
38
+ * Defines the hook map type used by this module.
36
39
  * @template T
37
40
  * @typedef {import("tapable").HookMap<T>} HookMap
38
41
  */
39
42
 
40
43
  /**
44
+ * Defines the hook interceptor type used by this module.
41
45
  * @template T, R
42
46
  * @typedef {import("tapable").HookInterceptor<T, R>} HookInterceptor
43
47
  */
@@ -57,6 +61,7 @@ try {
57
61
 
58
62
  class Profiler {
59
63
  /**
64
+ * Creates an instance of Profiler.
60
65
  * @param {Inspector} inspector inspector
61
66
  */
62
67
  constructor(inspector) {
@@ -97,6 +102,7 @@ class Profiler {
97
102
  }
98
103
 
99
104
  /**
105
+ * Returns promise for the result.
100
106
  * @param {string} method method name
101
107
  * @param {EXPECTED_OBJECT=} params params
102
108
  * @returns {Promise<EXPECTED_ANY | void>} Promise for the result
@@ -127,6 +133,7 @@ class Profiler {
127
133
  }
128
134
 
129
135
  /**
136
+ * Returns }>} profile result.
130
137
  * @returns {Promise<{ profile: { startTime: number, endTime: number } }>} profile result
131
138
  */
132
139
  stopProfiling() {
@@ -161,6 +168,7 @@ class Profiler {
161
168
  */
162
169
 
163
170
  /**
171
+ * Creates a trace from the provided f.
164
172
  * @param {IntermediateFileSystem} fs filesystem used for output
165
173
  * @param {string} outputPath The location where to write the log.
166
174
  * @returns {Trace} The trace object
@@ -229,6 +237,7 @@ const PLUGIN_NAME = "ProfilingPlugin";
229
237
 
230
238
  class ProfilingPlugin {
231
239
  /**
240
+ * Creates an instance of ProfilingPlugin.
232
241
  * @param {ProfilingPluginOptions=} options options object
233
242
  */
234
243
  constructor(options = {}) {
@@ -237,7 +246,7 @@ class ProfilingPlugin {
237
246
  }
238
247
 
239
248
  /**
240
- * Apply the plugin
249
+ * Applies the plugin by registering its hooks on the compiler.
241
250
  * @param {Compiler} compiler the compiler instance
242
251
  * @returns {void}
243
252
  */
@@ -376,6 +385,7 @@ class ProfilingPlugin {
376
385
  /** @typedef {Record<string, Hook<EXPECTED_ANY, EXPECTED_ANY> | FakeHook<EXPECTED_ANY> | HookMap<EXPECTED_ANY>>} Hooks */
377
386
 
378
387
  /**
388
+ * Intercept all hooks for.
379
389
  * @param {EXPECTED_OBJECT & { hooks?: Hooks }} instance instance
380
390
  * @param {Trace} tracer tracer
381
391
  * @param {string} logLabel log label
@@ -393,6 +403,7 @@ const interceptAllHooksFor = (instance, tracer, logLabel) => {
393
403
  };
394
404
 
395
405
  /**
406
+ * Intercept all parser hooks.
396
407
  * @param {NormalModuleFactory} moduleFactory normal module factory
397
408
  * @param {Trace} tracer tracer
398
409
  */
@@ -414,6 +425,7 @@ const interceptAllParserHooks = (moduleFactory, tracer) => {
414
425
  };
415
426
 
416
427
  /**
428
+ * Intercept all generator hooks.
417
429
  * @param {NormalModuleFactory} moduleFactory normal module factory
418
430
  * @param {Trace} tracer tracer
419
431
  */
@@ -435,6 +447,7 @@ const interceptAllGeneratorHooks = (moduleFactory, tracer) => {
435
447
  };
436
448
 
437
449
  /**
450
+ * Intercept all javascript modules plugin hooks.
438
451
  * @param {Compilation} compilation compilation
439
452
  * @param {Trace} tracer tracer
440
453
  */
@@ -452,6 +465,7 @@ const interceptAllJavascriptModulesPluginHooks = (compilation, tracer) => {
452
465
  };
453
466
 
454
467
  /**
468
+ * Intercept all css modules plugin hooks.
455
469
  * @param {Compilation} compilation compilation
456
470
  * @param {Trace} tracer tracer
457
471
  */
@@ -468,6 +482,7 @@ const interceptAllCssModulesPluginHooks = (compilation, tracer) => {
468
482
  /** @typedef {(...args: EXPECTED_ANY[]) => EXPECTED_ANY | Promise<(...args: EXPECTED_ANY[]) => EXPECTED_ANY>} PluginFunction */
469
483
 
470
484
  /**
485
+ * Creates interceptor for.
471
486
  * @template T
472
487
  * @param {string} instance instance
473
488
  * @param {Trace} tracer tracer
@@ -475,6 +490,7 @@ const interceptAllCssModulesPluginHooks = (compilation, tracer) => {
475
490
  */
476
491
  const makeInterceptorFor = (instance, tracer) => (hookName) => ({
477
492
  /**
493
+ * Returns modified full tap.
478
494
  * @param {FullTap} tapInfo tap info
479
495
  * @returns {FullTap} modified full tap
480
496
  */
@@ -494,6 +510,7 @@ const makeInterceptorFor = (instance, tracer) => (hookName) => ({
494
510
  });
495
511
 
496
512
  /**
513
+ * Creates new profiled tap fn.
497
514
  * @param {string} hookName Name of the hook to profile.
498
515
  * @param {Trace} tracer The trace object.
499
516
  * @param {object} options Options for the profiled fn.
@@ -538,6 +555,7 @@ const makeNewProfiledTapFn = (hookName, tracer, { name, type, fn }) => {
538
555
  fn(
539
556
  ...args,
540
557
  /**
558
+ * Handles the cat callback for this hook.
541
559
  * @param {...EXPECTED_ANY[]} r result
542
560
  */
543
561
  (...r) => {
@@ -108,6 +108,7 @@ const DEFINITIONS = {
108
108
 
109
109
  class AMDDefineDependency extends NullDependency {
110
110
  /**
111
+ * Creates an instance of AMDDefineDependency.
111
112
  * @param {Range} range range
112
113
  * @param {Range | null} arrayRange array range
113
114
  * @param {Range | null} functionRange function range
@@ -130,6 +131,7 @@ class AMDDefineDependency extends NullDependency {
130
131
  }
131
132
 
132
133
  /**
134
+ * Serializes this instance into the provided serializer context.
133
135
  * @param {ObjectSerializerContext} context context
134
136
  */
135
137
  serialize(context) {
@@ -144,6 +146,7 @@ class AMDDefineDependency extends NullDependency {
144
146
  }
145
147
 
146
148
  /**
149
+ * Restores this instance from the provided deserializer context.
147
150
  * @param {ObjectDeserializerContext} context context
148
151
  */
149
152
  deserialize(context) {
@@ -167,6 +170,7 @@ AMDDefineDependency.Template = class AMDDefineDependencyTemplate extends (
167
170
  NullDependency.Template
168
171
  ) {
169
172
  /**
173
+ * Applies the plugin by registering its hooks on the compiler.
170
174
  * @param {Dependency} dependency the dependency for which the template should be applied
171
175
  * @param {ReplaceSource} source the current replace source which can be modified
172
176
  * @param {DependencyTemplateContext} templateContext the context object
@@ -183,6 +187,7 @@ AMDDefineDependency.Template = class AMDDefineDependencyTemplate extends (
183
187
  }
184
188
 
185
189
  /**
190
+ * Returns variable name.
186
191
  * @param {AMDDefineDependency} dependency dependency
187
192
  * @returns {string | false | null} variable name
188
193
  */
@@ -195,6 +200,7 @@ AMDDefineDependency.Template = class AMDDefineDependencyTemplate extends (
195
200
  }
196
201
 
197
202
  /**
203
+ * Returns branch.
198
204
  * @param {AMDDefineDependency} dependency dependency
199
205
  * @returns {string} branch
200
206
  */
@@ -207,6 +213,7 @@ AMDDefineDependency.Template = class AMDDefineDependencyTemplate extends (
207
213
  }
208
214
 
209
215
  /**
216
+ * Processes the provided dependency.
210
217
  * @param {AMDDefineDependency} dependency dependency
211
218
  * @param {ReplaceSource} source source
212
219
  * @param {string} definition definition
@@ -35,6 +35,7 @@ const { addLocalModule, getLocalModule } = require("./LocalModulesHelpers");
35
35
  /** @typedef {import("./LocalModule")} LocalModule */
36
36
 
37
37
  /**
38
+ * Checks whether this object is bound function expression.
38
39
  * @param {Expression | SpreadElement} expr expression
39
40
  * @returns {expr is CallExpression} true if it's a bound function expression
40
41
  */
@@ -51,6 +52,7 @@ const isBoundFunctionExpression = (expr) => {
51
52
  /** @typedef {FunctionExpression | ArrowFunctionExpression} UnboundFunctionExpression */
52
53
 
53
54
  /**
55
+ * Checks whether this object is unbound function expression.
54
56
  * @param {Expression | SpreadElement} expr expression
55
57
  * @returns {expr is FunctionExpression | ArrowFunctionExpression} true when unbound function expression
56
58
  */
@@ -61,6 +63,7 @@ const isUnboundFunctionExpression = (expr) => {
61
63
  };
62
64
 
63
65
  /**
66
+ * Checks whether this object is callable.
64
67
  * @param {Expression | SpreadElement} expr expression
65
68
  * @returns {expr is FunctionExpression | ArrowFunctionExpression | CallExpression} true when callable
66
69
  */
@@ -76,6 +79,7 @@ const PLUGIN_NAME = "AMDDefineDependencyParserPlugin";
76
79
 
77
80
  class AMDDefineDependencyParserPlugin {
78
81
  /**
82
+ * Creates an instance of AMDDefineDependencyParserPlugin.
79
83
  * @param {JavascriptParserOptions} options parserOptions
80
84
  */
81
85
  constructor(options) {
@@ -83,6 +87,7 @@ class AMDDefineDependencyParserPlugin {
83
87
  }
84
88
 
85
89
  /**
90
+ * Applies the plugin by registering its hooks on the compiler.
86
91
  * @param {JavascriptParser} parser the parser
87
92
  * @returns {void}
88
93
  */
@@ -93,6 +98,7 @@ class AMDDefineDependencyParserPlugin {
93
98
  }
94
99
 
95
100
  /**
101
+ * Processes the provided parser.
96
102
  * @param {JavascriptParser} parser the parser
97
103
  * @param {CallExpression} expr call expression
98
104
  * @param {BasicEvaluatedExpression} param param
@@ -160,6 +166,7 @@ class AMDDefineDependencyParserPlugin {
160
166
  }
161
167
 
162
168
  /**
169
+ * Processes the provided parser.
163
170
  * @param {JavascriptParser} parser the parser
164
171
  * @param {CallExpression} expr call expression
165
172
  * @param {BasicEvaluatedExpression} param param
@@ -226,6 +233,7 @@ class AMDDefineDependencyParserPlugin {
226
233
  }
227
234
 
228
235
  /**
236
+ * Processes the provided parser.
229
237
  * @param {JavascriptParser} parser the parser
230
238
  * @param {CallExpression} expr call expression
231
239
  * @param {BasicEvaluatedExpression} param param
@@ -251,6 +259,7 @@ class AMDDefineDependencyParserPlugin {
251
259
  }
252
260
 
253
261
  /**
262
+ * Process call define.
254
263
  * @param {JavascriptParser} parser the parser
255
264
  * @param {CallExpression} expr call expression
256
265
  * @returns {boolean | undefined} result
@@ -464,6 +473,7 @@ class AMDDefineDependencyParserPlugin {
464
473
  }
465
474
 
466
475
  /**
476
+ * New define dependency.
467
477
  * @param {Range} range range
468
478
  * @param {Range | null} arrayRange array range
469
479
  * @param {Range | null} functionRange function range
@@ -488,6 +498,7 @@ class AMDDefineDependencyParserPlugin {
488
498
  }
489
499
 
490
500
  /**
501
+ * New require array dependency.
491
502
  * @param {(string | LocalModuleDependency | AMDRequireItemDependency)[]} depsArray deps array
492
503
  * @param {Range} range range
493
504
  * @returns {AMDRequireArrayDependency} AMDRequireArrayDependency
@@ -497,6 +508,7 @@ class AMDDefineDependencyParserPlugin {
497
508
  }
498
509
 
499
510
  /**
511
+ * New require item dependency.
500
512
  * @param {string} request request
501
513
  * @param {Range=} range range
502
514
  * @returns {AMDRequireItemDependency} AMDRequireItemDependency