@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. package/README.md +9 -11
  2. package/bin/webpack.js +12 -0
  3. package/changes.json +16 -24
  4. package/hot/dev-server.js +2 -0
  5. package/lib/APIPlugin.js +60 -35
  6. package/lib/AsyncDependenciesBlock.js +3 -0
  7. package/lib/AutomaticPrefetchPlugin.js +6 -1
  8. package/lib/BannerPlugin.js +13 -5
  9. package/lib/Cache.js +27 -5
  10. package/lib/CacheFacade.js +41 -0
  11. package/lib/Chunk.js +71 -25
  12. package/lib/ChunkGraph.js +153 -19
  13. package/lib/ChunkGroup.js +115 -28
  14. package/lib/ChunkTemplate.js +9 -0
  15. package/lib/CircularModulesPlugin.js +190 -0
  16. package/lib/CleanPlugin.js +27 -28
  17. package/lib/CodeGenerationResults.js +19 -0
  18. package/lib/CompatibilityPlugin.js +85 -37
  19. package/lib/Compilation.js +656 -112
  20. package/lib/Compiler.js +109 -35
  21. package/lib/ConcatenationScope.js +34 -4
  22. package/lib/ConditionalInitFragment.js +6 -0
  23. package/lib/ConstPlugin.js +15 -12
  24. package/lib/ContextExclusionPlugin.js +3 -1
  25. package/lib/ContextModule.js +345 -55
  26. package/lib/ContextModuleFactory.js +193 -51
  27. package/lib/ContextReplacementPlugin.js +8 -1
  28. package/lib/DefinePlugin.js +537 -139
  29. package/lib/DependenciesBlock.js +6 -1
  30. package/lib/Dependency.js +159 -11
  31. package/lib/DependencyTemplate.js +7 -1
  32. package/lib/DependencyTemplates.js +4 -0
  33. package/lib/DotenvPlugin.js +3 -0
  34. package/lib/DynamicEntryPlugin.js +3 -1
  35. package/lib/EntryOptionPlugin.js +42 -2
  36. package/lib/EntryPlugin.js +4 -1
  37. package/lib/Entrypoint.js +5 -1
  38. package/lib/EnvironmentPlugin.js +3 -2
  39. package/lib/ErrorHelpers.js +7 -0
  40. package/lib/EvalDevToolModulePlugin.js +3 -1
  41. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  42. package/lib/ExportsInfo.js +421 -113
  43. package/lib/ExportsInfoApiPlugin.js +4 -3
  44. package/lib/ExternalModule.js +381 -80
  45. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  46. package/lib/ExternalsPlugin.js +3 -1
  47. package/lib/FileSystemInfo.js +701 -175
  48. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  49. package/lib/FlagDependencyExportsPlugin.js +82 -9
  50. package/lib/FlagDependencyUsagePlugin.js +115 -8
  51. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  52. package/lib/Generator.js +24 -3
  53. package/lib/HotModuleReplacementPlugin.js +110 -44
  54. package/lib/IgnorePlugin.js +5 -2
  55. package/lib/IgnoreWarningsPlugin.js +2 -1
  56. package/lib/InitFragment.js +33 -30
  57. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  58. package/lib/LazyBarrel.js +389 -0
  59. package/lib/LibraryTemplatePlugin.js +2 -1
  60. package/lib/LoaderOptionsPlugin.js +3 -1
  61. package/lib/LoaderTargetPlugin.js +3 -1
  62. package/lib/MainTemplate.js +15 -0
  63. package/lib/ManifestPlugin.js +9 -2
  64. package/lib/Module.js +121 -57
  65. package/lib/ModuleFactory.js +6 -1
  66. package/lib/ModuleFilenameHelpers.js +18 -4
  67. package/lib/ModuleGraph.js +69 -2
  68. package/lib/ModuleGraphConnection.js +9 -0
  69. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  70. package/lib/ModuleNotFoundError.js +3 -83
  71. package/lib/ModuleProfile.js +27 -1
  72. package/lib/ModuleSourceTypeConstants.js +52 -19
  73. package/lib/ModuleTemplate.js +10 -0
  74. package/lib/ModuleTypeConstants.js +20 -4
  75. package/lib/MultiCompiler.js +59 -4
  76. package/lib/MultiStats.js +9 -0
  77. package/lib/MultiWatching.js +6 -0
  78. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  79. package/lib/NodeStuffPlugin.js +78 -46
  80. package/lib/NormalModule.js +519 -206
  81. package/lib/NormalModuleFactory.js +156 -31
  82. package/lib/NormalModuleReplacementPlugin.js +3 -1
  83. package/lib/NullFactory.js +1 -0
  84. package/lib/OptionsApply.js +1 -0
  85. package/lib/Parser.js +3 -1
  86. package/lib/PlatformPlugin.js +2 -1
  87. package/lib/PrefetchPlugin.js +4 -1
  88. package/lib/ProgressPlugin.js +351 -161
  89. package/lib/ProvidePlugin.js +6 -3
  90. package/lib/RawModule.js +32 -16
  91. package/lib/RecordIdsPlugin.js +9 -0
  92. package/lib/RequestShortener.js +8 -0
  93. package/lib/ResolverFactory.js +5 -0
  94. package/lib/RuntimeGlobals.js +58 -5
  95. package/lib/RuntimeModule.js +22 -7
  96. package/lib/RuntimePlugin.js +123 -118
  97. package/lib/RuntimeTemplate.js +616 -37
  98. package/lib/SelfModuleFactory.js +3 -0
  99. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  100. package/lib/SourceMapDevToolPlugin.js +341 -63
  101. package/lib/Stats.js +6 -0
  102. package/lib/Template.js +52 -6
  103. package/lib/TemplatedPathPlugin.js +505 -138
  104. package/lib/UseStrictPlugin.js +3 -2
  105. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  106. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  107. package/lib/WarnNoModeSetPlugin.js +18 -2
  108. package/lib/WatchIgnorePlugin.js +5 -1
  109. package/lib/Watching.js +25 -3
  110. package/lib/WebpackError.js +3 -74
  111. package/lib/WebpackIsIncludedPlugin.js +4 -2
  112. package/lib/WebpackOptionsApply.js +88 -25
  113. package/lib/WebpackOptionsDefaulter.js +1 -0
  114. package/lib/asset/AssetBytesGenerator.js +28 -10
  115. package/lib/asset/AssetBytesParser.js +1 -0
  116. package/lib/asset/AssetGenerator.js +199 -60
  117. package/lib/asset/AssetModule.js +47 -0
  118. package/lib/asset/AssetModulesPlugin.js +115 -24
  119. package/lib/asset/AssetParser.js +4 -2
  120. package/lib/asset/AssetSourceGenerator.js +26 -8
  121. package/lib/asset/AssetSourceParser.js +1 -0
  122. package/lib/asset/RawDataUrlModule.js +23 -13
  123. package/lib/asset/WebManifestGenerator.js +164 -0
  124. package/lib/asset/WebManifestParser.js +130 -0
  125. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  126. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  127. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  128. package/lib/async-modules/isGeneratorLowered.js +26 -0
  129. package/lib/buildChunkGraph.js +107 -15
  130. package/lib/bun/BunTargetPlugin.js +42 -0
  131. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  132. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  133. package/lib/cache/IdleFileCachePlugin.js +6 -1
  134. package/lib/cache/MemoryCachePlugin.js +1 -1
  135. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  136. package/lib/cache/PackFileCacheStrategy.js +302 -12
  137. package/lib/cache/ResolverCachePlugin.js +12 -1
  138. package/lib/cache/getLazyHashedEtag.js +13 -2
  139. package/lib/cache/mergeEtags.js +4 -0
  140. package/lib/cli.js +142 -20
  141. package/lib/config/browserslistTargetHandler.js +141 -0
  142. package/lib/config/defaults.js +612 -43
  143. package/lib/config/defineConfig.js +31 -0
  144. package/lib/config/normalization.js +46 -1
  145. package/lib/config/target.js +200 -2
  146. package/lib/container/ContainerEntryDependency.js +2 -0
  147. package/lib/container/ContainerEntryModule.js +27 -14
  148. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  149. package/lib/container/ContainerExposedDependency.js +6 -2
  150. package/lib/container/ContainerPlugin.js +2 -1
  151. package/lib/container/ContainerReferencePlugin.js +3 -2
  152. package/lib/container/FallbackDependency.js +9 -7
  153. package/lib/container/FallbackItemDependency.js +1 -0
  154. package/lib/container/FallbackModule.js +22 -9
  155. package/lib/container/FallbackModuleFactory.js +1 -0
  156. package/lib/container/HoistContainerReferencesPlugin.js +47 -55
  157. package/lib/container/ModuleFederationPlugin.js +21 -29
  158. package/lib/container/RemoteModule.js +33 -10
  159. package/lib/container/RemoteRuntimeModule.js +15 -12
  160. package/lib/container/RemoteToExternalDependency.js +1 -0
  161. package/lib/container/options.js +7 -0
  162. package/lib/css/CssGenerator.js +540 -272
  163. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  164. package/lib/css/CssLoadingRuntimeModule.js +173 -81
  165. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  166. package/lib/css/CssModulesPlugin.js +371 -208
  167. package/lib/css/CssParser.js +3538 -1963
  168. package/lib/css/syntax.js +4155 -0
  169. package/lib/debug/ProfilingPlugin.js +33 -2
  170. package/lib/deno/DenoTargetPlugin.js +41 -0
  171. package/lib/dependencies/AMDDefineDependency.js +29 -17
  172. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  173. package/lib/dependencies/AMDPlugin.js +6 -3
  174. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  175. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  176. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  177. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  178. package/lib/dependencies/AMDRequireDependency.js +28 -20
  179. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  180. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  181. package/lib/dependencies/CachedConstDependency.js +9 -1
  182. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  183. package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
  184. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  185. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  186. package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
  187. package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
  188. package/lib/dependencies/CommonJsPlugin.js +7 -4
  189. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  190. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  191. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  192. package/lib/dependencies/ConstDependency.js +22 -12
  193. package/lib/dependencies/ContextDependency.js +13 -2
  194. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  195. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  196. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  197. package/lib/dependencies/ContextElementDependency.js +27 -14
  198. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  199. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  200. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  201. package/lib/dependencies/CssIcssExportDependency.js +681 -367
  202. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  203. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  204. package/lib/dependencies/CssImportDependency.js +37 -1
  205. package/lib/dependencies/CssUrlDependency.js +87 -14
  206. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  207. package/lib/dependencies/DllEntryDependency.js +12 -13
  208. package/lib/dependencies/DynamicExports.js +5 -0
  209. package/lib/dependencies/EntryDependency.js +1 -0
  210. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  211. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  212. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  213. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  214. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  215. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  216. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  217. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  218. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  219. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
  220. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  221. package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
  222. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
  224. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  226. package/lib/dependencies/HarmonyExports.js +6 -1
  227. package/lib/dependencies/HarmonyImportDependency.js +60 -4
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  229. package/lib/dependencies/HarmonyImportGuard.js +427 -0
  230. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  231. package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
  232. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  233. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  234. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  235. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  236. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  237. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  238. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  239. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  240. package/lib/dependencies/ImportContextDependency.js +9 -9
  241. package/lib/dependencies/ImportDependency.js +92 -3
  242. package/lib/dependencies/ImportEagerDependency.js +2 -0
  243. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  244. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  245. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  246. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  247. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  248. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  249. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  250. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  251. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  252. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  253. package/lib/dependencies/ImportParserPlugin.js +114 -27
  254. package/lib/dependencies/ImportPhase.js +17 -11
  255. package/lib/dependencies/ImportPlugin.js +2 -1
  256. package/lib/dependencies/ImportWeakDependency.js +3 -0
  257. package/lib/dependencies/JsonExportsDependency.js +15 -10
  258. package/lib/dependencies/LoaderDependency.js +2 -0
  259. package/lib/dependencies/LoaderImportDependency.js +3 -0
  260. package/lib/dependencies/LoaderPlugin.js +9 -2
  261. package/lib/dependencies/LocalModule.js +15 -12
  262. package/lib/dependencies/LocalModuleDependency.js +15 -13
  263. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  264. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  265. package/lib/dependencies/ModuleDependency.js +14 -0
  266. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  267. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  268. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  269. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  270. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  271. package/lib/dependencies/NullDependency.js +2 -0
  272. package/lib/dependencies/PrefetchDependency.js +1 -0
  273. package/lib/dependencies/ProvidedDependency.js +36 -27
  274. package/lib/dependencies/PureExpressionDependency.js +14 -10
  275. package/lib/dependencies/RequireContextDependency.js +1 -0
  276. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  277. package/lib/dependencies/RequireContextPlugin.js +2 -1
  278. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  279. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  280. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  281. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  282. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  283. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  284. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  285. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  286. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  287. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  288. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  289. package/lib/dependencies/RequireResolveDependency.js +2 -0
  290. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  291. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  292. package/lib/dependencies/StaticExportsDependency.js +13 -10
  293. package/lib/dependencies/SystemPlugin.js +9 -6
  294. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  295. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  296. package/lib/dependencies/URLContextDependency.js +8 -7
  297. package/lib/dependencies/URLDependency.js +157 -33
  298. package/lib/dependencies/URLPlugin.js +2 -0
  299. package/lib/dependencies/UnsupportedDependency.js +12 -13
  300. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  301. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  302. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  303. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  304. package/lib/dependencies/WorkerDependency.js +111 -27
  305. package/lib/dependencies/WorkletDependency.js +278 -0
  306. package/lib/dependencies/getFunctionExpression.js +1 -0
  307. package/lib/dependencies/processExportInfo.js +14 -11
  308. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  309. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  310. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  311. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  312. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  313. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  314. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  315. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  316. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  317. package/lib/electron/ElectronTargetPlugin.js +24 -5
  318. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  319. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  320. package/lib/errors/BuildCycleError.js +1 -1
  321. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  322. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  323. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  324. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  325. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  326. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  327. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  328. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  329. package/lib/errors/JSONParseError.js +115 -0
  330. package/lib/errors/LoaderLoadingError.js +20 -0
  331. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  332. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  333. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  334. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  335. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  336. package/lib/errors/ModuleNotFoundError.js +94 -0
  337. package/lib/errors/ModuleParseError.js +141 -0
  338. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  339. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  340. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  341. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  342. package/lib/errors/NonErrorEmittedError.js +30 -0
  343. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  344. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  345. package/lib/errors/WebpackError.js +84 -0
  346. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  347. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  348. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  349. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
  350. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  351. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  352. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  353. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  354. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  355. package/lib/hmr/lazyCompilationBackend.js +53 -12
  356. package/lib/html/HtmlGenerator.js +1490 -0
  357. package/lib/html/HtmlModule.js +41 -0
  358. package/lib/html/HtmlModulesPlugin.js +1129 -0
  359. package/lib/html/HtmlParser.js +1970 -0
  360. package/lib/html/favicon.svg +1 -0
  361. package/lib/html/syntax.js +9106 -0
  362. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  363. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  364. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  365. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  366. package/lib/ids/IdHelpers.js +49 -12
  367. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  368. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  369. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  370. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  371. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  372. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  373. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  374. package/lib/index.js +66 -15
  375. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  376. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  377. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  378. package/lib/javascript/ChunkHelpers.js +1 -0
  379. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  380. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  381. package/lib/javascript/JavascriptGenerator.js +213 -51
  382. package/lib/javascript/JavascriptModule.js +54 -0
  383. package/lib/javascript/JavascriptModulesPlugin.js +628 -198
  384. package/lib/javascript/JavascriptParser.js +1334 -471
  385. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  386. package/lib/javascript/StartupHelpers.js +5 -0
  387. package/lib/javascript/syntax.js +5037 -0
  388. package/lib/json/JsonData.js +5 -0
  389. package/lib/json/JsonGenerator.js +21 -0
  390. package/lib/json/JsonModule.js +40 -0
  391. package/lib/json/JsonModulesPlugin.js +8 -1
  392. package/lib/json/JsonParser.js +18 -27
  393. package/lib/library/AbstractLibraryPlugin.js +17 -2
  394. package/lib/library/AmdLibraryPlugin.js +8 -0
  395. package/lib/library/AssignLibraryPlugin.js +21 -3
  396. package/lib/library/EnableLibraryPlugin.js +8 -2
  397. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  398. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  399. package/lib/library/JsonpLibraryPlugin.js +8 -0
  400. package/lib/library/ModuleLibraryPlugin.js +154 -7
  401. package/lib/library/SystemLibraryPlugin.js +11 -3
  402. package/lib/library/UmdLibraryPlugin.js +16 -0
  403. package/lib/loaders/LoaderRunner.js +714 -0
  404. package/lib/loaders/loadLoader.js +100 -0
  405. package/lib/logging/Logger.js +17 -0
  406. package/lib/logging/createConsoleLogger.js +7 -0
  407. package/lib/logging/runtime.js +2 -0
  408. package/lib/logging/truncateArgs.js +2 -0
  409. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  410. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  411. package/lib/node/NodeSourcePlugin.js +1 -1
  412. package/lib/node/NodeTargetPlugin.js +4 -63
  413. package/lib/node/NodeTemplatePlugin.js +3 -1
  414. package/lib/node/NodeWatchFileSystem.js +40 -22
  415. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  416. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
  417. package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
  418. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  419. package/lib/node/nodeBuiltins.js +80 -0
  420. package/lib/node/nodeConsole.js +116 -64
  421. package/lib/optimize/AggressiveMergingPlugin.js +22 -16
  422. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  423. package/lib/optimize/ConcatenatedModule.js +603 -130
  424. package/lib/optimize/ConstExportsPlugin.js +211 -0
  425. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  426. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  427. package/lib/optimize/InlineExports.js +178 -0
  428. package/lib/optimize/InnerGraph.js +374 -262
  429. package/lib/optimize/InnerGraphPlugin.js +246 -117
  430. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  431. package/lib/optimize/MangleExportsPlugin.js +5 -1
  432. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  433. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  434. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  435. package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
  436. package/lib/optimize/RealContentHashPlugin.js +130 -52
  437. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  438. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  439. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  440. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  441. package/lib/optimize/SplitChunksPlugin.js +200 -50
  442. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  443. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  444. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  445. package/lib/performance/SizeLimitsPlugin.js +8 -2
  446. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  448. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  449. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  450. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  451. package/lib/prefetch/ResourceHintPlugin.js +687 -0
  452. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  453. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  454. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  455. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  456. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  457. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  458. package/lib/rules/RuleSetCompiler.js +132 -0
  459. package/lib/rules/UseEffectRulePlugin.js +10 -3
  460. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  461. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  462. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  463. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  464. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  465. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  466. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  467. package/lib/runtime/CompatRuntimeModule.js +2 -0
  468. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  469. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  470. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  471. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  472. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  473. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  474. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  475. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  476. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  477. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  478. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  479. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  480. package/lib/runtime/HelperRuntimeModule.js +5 -0
  481. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  482. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  483. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  484. package/lib/runtime/NonceRuntimeModule.js +1 -0
  485. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  486. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  487. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  488. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  489. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  490. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  491. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  492. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  493. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  494. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  495. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  496. package/lib/schemes/DataUriPlugin.js +14 -2
  497. package/lib/schemes/FileUriPlugin.js +1 -1
  498. package/lib/schemes/HttpUriPlugin.js +86 -4
  499. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  500. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  501. package/lib/serialization/ArraySerializer.js +6 -8
  502. package/lib/serialization/BinaryMiddleware.js +427 -1006
  503. package/lib/serialization/DateObjectSerializer.js +4 -2
  504. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  505. package/lib/serialization/FileMiddleware.js +345 -59
  506. package/lib/serialization/MapObjectSerializer.js +7 -9
  507. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  508. package/lib/serialization/ObjectMiddleware.js +73 -13
  509. package/lib/serialization/PlainObjectSerializer.js +16 -8
  510. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  511. package/lib/serialization/Serializer.js +6 -0
  512. package/lib/serialization/SerializerMiddleware.js +14 -2
  513. package/lib/serialization/SetObjectSerializer.js +6 -8
  514. package/lib/serialization/SingleItemMiddleware.js +3 -0
  515. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  516. package/lib/sharing/ConsumeSharedModule.js +21 -7
  517. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  518. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  519. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  520. package/lib/sharing/ProvideSharedDependency.js +34 -15
  521. package/lib/sharing/ProvideSharedModule.js +42 -12
  522. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  523. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  524. package/lib/sharing/SharePlugin.js +5 -1
  525. package/lib/sharing/ShareRuntimeModule.js +19 -16
  526. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  527. package/lib/sharing/utils.js +9 -1
  528. package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
  529. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  530. package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
  531. package/lib/stats/StatsFactory.js +70 -27
  532. package/lib/stats/StatsPrinter.js +16 -2
  533. package/lib/typescript/TypeScriptPlugin.js +210 -0
  534. package/lib/url/URLParserPlugin.js +111 -23
  535. package/lib/util/ArrayHelpers.js +1 -0
  536. package/lib/util/ArrayQueue.js +10 -5
  537. package/lib/util/AsyncQueue.js +154 -74
  538. package/lib/util/Hash.js +2 -2
  539. package/lib/util/IterableHelpers.js +3 -0
  540. package/lib/util/LazyBucketSortedSet.js +26 -0
  541. package/lib/util/LazySet.js +45 -4
  542. package/lib/util/LocConverter.js +64 -0
  543. package/lib/util/ParallelismFactorCalculator.js +1 -0
  544. package/lib/util/Queue.js +6 -3
  545. package/lib/util/Semaphore.js +15 -1
  546. package/lib/util/SetHelpers.js +4 -1
  547. package/lib/util/SortableSet.js +7 -1
  548. package/lib/util/SourceProcessor.js +119 -0
  549. package/lib/util/StackedCacheMap.js +20 -3
  550. package/lib/util/StackedMap.js +162 -43
  551. package/lib/util/StringXor.js +1 -1
  552. package/lib/util/TupleQueue.js +7 -3
  553. package/lib/util/TupleSet.js +14 -0
  554. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  555. package/lib/util/WeakTupleMap.js +60 -1
  556. package/lib/util/binarySearchBounds.js +3 -2
  557. package/lib/util/chainedImports.js +3 -3
  558. package/lib/util/cleverMerge.js +19 -2
  559. package/lib/util/comparators.js +35 -4
  560. package/lib/util/compileBooleanMatcher.js +9 -0
  561. package/lib/util/concatenate.js +80 -24
  562. package/lib/util/conventions.js +46 -1
  563. package/lib/util/createHash.js +0 -1
  564. package/lib/util/createHooksRegistry.js +43 -0
  565. package/lib/util/createMappings.js +118 -0
  566. package/lib/util/dataURL.js +3 -2
  567. package/lib/util/deprecation.js +19 -0
  568. package/lib/util/deterministicGrouping.js +46 -17
  569. package/lib/util/extractSourceMap.js +2 -1
  570. package/lib/util/extractUrlAndGlobal.js +1 -0
  571. package/lib/util/findGraphRoots.js +7 -0
  572. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  573. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  574. package/lib/util/fs.js +87 -14
  575. package/lib/util/generateDebugId.js +1 -0
  576. package/lib/util/globUtils.js +710 -0
  577. package/lib/util/hash/BatchedHash.js +1 -0
  578. package/lib/util/hash/BulkUpdateHash.js +1 -0
  579. package/lib/util/hash/DebugHash.js +1 -0
  580. package/lib/util/hash/hash-digest.js +32 -15
  581. package/lib/util/hash/md4.js +1 -1
  582. package/lib/util/hash/wasm-hash.js +5 -0
  583. package/lib/util/hash/xxhash64.js +1 -1
  584. package/lib/util/identifier.js +118 -7
  585. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  586. package/lib/util/internalSerializables.js +102 -60
  587. package/lib/util/magicComment.js +149 -7
  588. package/lib/util/makeSerializable.js +7 -0
  589. package/lib/util/memoize.js +2 -0
  590. package/lib/util/mimeTypes.js +176 -0
  591. package/lib/util/nonNumericOnlyHash.js +31 -1
  592. package/lib/util/numberHash.js +2 -2
  593. package/lib/util/parseJson.js +41 -0
  594. package/lib/util/processAsyncTree.js +8 -0
  595. package/lib/util/property.js +9 -2
  596. package/lib/util/publicPathPlaceholder.js +64 -0
  597. package/lib/util/registerExternalSerializer.js +24 -4
  598. package/lib/util/removeBOM.js +1 -0
  599. package/lib/util/runtime.js +32 -0
  600. package/lib/util/semver.js +15 -0
  601. package/lib/util/serialization.js +2 -0
  602. package/lib/util/smartGrouping.js +8 -0
  603. package/lib/util/source.js +23 -0
  604. package/lib/util/topologicalSort.js +69 -0
  605. package/lib/validateSchema.js +1 -0
  606. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  607. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  608. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  609. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  610. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  611. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  612. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  613. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  614. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  615. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  616. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  617. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  618. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  619. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  620. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  621. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  622. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  623. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  624. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  625. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  626. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  627. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  628. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  629. package/lib/web/JsonpTemplatePlugin.js +2 -1
  630. package/lib/webpack.js +78 -1
  631. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  632. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  633. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  634. package/module.d.ts +21 -0
  635. package/package.json +79 -77
  636. package/schemas/WebpackOptions.check.js +1 -1
  637. package/schemas/WebpackOptions.json +1173 -80
  638. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  639. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  640. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  641. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  642. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  643. package/schemas/plugins/HtmlParserOptions.json +3 -0
  644. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  645. package/schemas/plugins/ProgressPlugin.json +38 -0
  646. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  647. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  648. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  649. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  650. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  652. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  653. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  654. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  655. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  656. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  657. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  658. package/types.d.ts +11053 -3019
  659. package/lib/CaseSensitiveModulesWarning.js +0 -72
  660. package/lib/GraphHelpers.js +0 -46
  661. package/lib/ModuleParseError.js +0 -125
  662. package/lib/NoModeWarning.js +0 -23
  663. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  664. package/lib/css/walkCssTokens.js +0 -1843
  665. package/lib/util/AppendOnlyStackedSet.js +0 -78
  666. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  668. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  669. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -24,14 +24,16 @@ const PLUGIN_NAME = "ProvidePlugin";
24
24
 
25
25
  class ProvidePlugin {
26
26
  /**
27
+ * Creates an instance of ProvidePlugin.
27
28
  * @param {Record<string, string | string[]>} definitions the provided identifiers
28
29
  */
29
30
  constructor(definitions) {
31
+ /** @type {Record<string, string | string[]>} */
30
32
  this.definitions = definitions;
31
33
  }
32
34
 
33
35
  /**
34
- * Apply the plugin
36
+ * Applies the plugin by registering its hooks on the compiler.
35
37
  * @param {Compiler} compiler the compiler instance
36
38
  * @returns {void}
37
39
  */
@@ -53,6 +55,7 @@ class ProvidePlugin {
53
55
  new ProvidedDependency.Template()
54
56
  );
55
57
  /**
58
+ * Handles the hook callback for this code path.
56
59
  * @param {JavascriptParser} parser the parser
57
60
  * @param {JavascriptParserOptions} parserOptions options
58
61
  * @returns {void}
@@ -82,7 +85,7 @@ class ProvidePlugin {
82
85
  request.slice(1),
83
86
  /** @type {Range} */ (expr.range)
84
87
  );
85
- dep.loc = /** @type {DependencyLocation} */ (expr.loc);
88
+ dep.loc = parser.getLocation(expr);
86
89
  parser.state.module.addDependency(dep);
87
90
  return true;
88
91
  });
@@ -97,7 +100,7 @@ class ProvidePlugin {
97
100
  request.slice(1),
98
101
  /** @type {Range} */ (expr.callee.range)
99
102
  );
100
- dep.loc = /** @type {DependencyLocation} */ (expr.callee.loc);
103
+ dep.loc = parser.getLocation(expr.callee);
101
104
  parser.state.module.addDependency(dep);
102
105
  parser.walkExpressions(expr.arguments);
103
106
  return true;
package/lib/RawModule.js CHANGED
@@ -29,13 +29,14 @@ const makeSerializable = require("./util/makeSerializable");
29
29
  /** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */
30
30
  /** @typedef {import("./RequestShortener")} RequestShortener */
31
31
  /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
32
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
33
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
32
+ /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string, string, ReadOnlyRuntimeRequirements | null]>} ObjectDeserializerContext */
33
+ /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext<[string, string, string, ReadOnlyRuntimeRequirements | null]>} ObjectSerializerContext */
34
34
  /** @typedef {import("./util/Hash")} Hash */
35
35
  /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
36
36
 
37
37
  class RawModule extends Module {
38
38
  /**
39
+ * Creates an instance of RawModule.
39
40
  * @param {string} source source code
40
41
  * @param {string} identifier unique identifier
41
42
  * @param {string=} readableIdentifier readable identifier
@@ -43,13 +44,18 @@ class RawModule extends Module {
43
44
  */
44
45
  constructor(source, identifier, readableIdentifier, runtimeRequirements) {
45
46
  super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);
47
+ /** @type {string} */
46
48
  this.sourceStr = source;
49
+ /** @type {string} */
47
50
  this.identifierStr = identifier || this.sourceStr;
51
+ /** @type {string} */
48
52
  this.readableIdentifierStr = readableIdentifier || this.identifierStr;
53
+ /** @type {ReadOnlyRuntimeRequirements | null} */
49
54
  this.runtimeRequirements = runtimeRequirements || null;
50
55
  }
51
56
 
52
57
  /**
58
+ * Returns the source types this module can generate.
53
59
  * @returns {SourceTypes} types available (do not mutate)
54
60
  */
55
61
  getSourceTypes() {
@@ -57,6 +63,7 @@ class RawModule extends Module {
57
63
  }
58
64
 
59
65
  /**
66
+ * Returns the unique identifier used to reference this module.
60
67
  * @returns {string} a unique identifier of the module
61
68
  */
62
69
  identifier() {
@@ -64,6 +71,7 @@ class RawModule extends Module {
64
71
  }
65
72
 
66
73
  /**
74
+ * Returns the estimated size for the requested source type.
67
75
  * @param {string=} type the source type for which the size should be estimated
68
76
  * @returns {number} the estimated size of the module (must be non-zero)
69
77
  */
@@ -72,6 +80,7 @@ class RawModule extends Module {
72
80
  }
73
81
 
74
82
  /**
83
+ * Returns a human-readable identifier for this module.
75
84
  * @param {RequestShortener} requestShortener the request shortener
76
85
  * @returns {string} a user readable identifier of the module
77
86
  */
@@ -82,6 +91,7 @@ class RawModule extends Module {
82
91
  }
83
92
 
84
93
  /**
94
+ * Checks whether the module needs to be rebuilt for the current build state.
85
95
  * @param {NeedBuildContext} context context info
86
96
  * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
87
97
  * @returns {void}
@@ -91,6 +101,7 @@ class RawModule extends Module {
91
101
  }
92
102
 
93
103
  /**
104
+ * Builds the module using the provided compilation context.
94
105
  * @param {WebpackOptions} options webpack options
95
106
  * @param {Compilation} compilation the compilation
96
107
  * @param {ResolverWithOptions} resolver the resolver
@@ -107,6 +118,7 @@ class RawModule extends Module {
107
118
  }
108
119
 
109
120
  /**
121
+ * Gets side effects connection state.
110
122
  * @param {ModuleGraph} moduleGraph the module graph
111
123
  * @returns {ConnectionState} how this module should be connected to referencing modules when consumed for side-effects only
112
124
  */
@@ -119,6 +131,7 @@ class RawModule extends Module {
119
131
  }
120
132
 
121
133
  /**
134
+ * Generates code and runtime requirements for this module.
122
135
  * @param {CodeGenerationContext} context context for code generation
123
136
  * @returns {CodeGenerationResult} result
124
137
  */
@@ -137,6 +150,7 @@ class RawModule extends Module {
137
150
  }
138
151
 
139
152
  /**
153
+ * Updates the hash with the data contributed by this instance.
140
154
  * @param {Hash} hash the hash used to track dependencies
141
155
  * @param {UpdateHashContext} context context
142
156
  * @returns {void}
@@ -147,31 +161,33 @@ class RawModule extends Module {
147
161
  }
148
162
 
149
163
  /**
164
+ * Serializes this instance into the provided serializer context.
150
165
  * @param {ObjectSerializerContext} context context
151
166
  */
152
167
  serialize(context) {
153
- const { write } = context;
154
-
155
- write(this.sourceStr);
156
- write(this.identifierStr);
157
- write(this.readableIdentifierStr);
158
- write(this.runtimeRequirements);
168
+ context
169
+ .write(this.sourceStr)
170
+ .write(this.identifierStr)
171
+ .write(this.readableIdentifierStr)
172
+ .write(this.runtimeRequirements);
159
173
 
160
174
  super.serialize(context);
161
175
  }
162
176
 
163
177
  /**
178
+ * Restores this instance from the provided deserializer context.
164
179
  * @param {ObjectDeserializerContext} context context
165
180
  */
166
181
  deserialize(context) {
167
- const { read } = context;
168
-
169
- this.sourceStr = read();
170
- this.identifierStr = read();
171
- this.readableIdentifierStr = read();
172
- this.runtimeRequirements = read();
173
-
174
- super.deserialize(context);
182
+ this.sourceStr = context.read();
183
+ const c1 = context.rest;
184
+ this.identifierStr = c1.read();
185
+ const c2 = c1.rest;
186
+ this.readableIdentifierStr = c2.read();
187
+ const c3 = c2.rest;
188
+ this.runtimeRequirements = c3.read();
189
+
190
+ super.deserialize(c3.rest);
175
191
  }
176
192
  }
177
193
 
@@ -13,6 +13,7 @@ const identifierUtils = require("./util/identifier");
13
13
  /** @typedef {import("./Module")} Module */
14
14
 
15
15
  /**
16
+ * Defines the records chunks type used by this module.
16
17
  * @typedef {object} RecordsChunks
17
18
  * @property {Record<string, number>=} byName
18
19
  * @property {Record<string, number>=} bySource
@@ -20,18 +21,21 @@ const identifierUtils = require("./util/identifier");
20
21
  */
21
22
 
22
23
  /**
24
+ * Defines the records modules type used by this module.
23
25
  * @typedef {object} RecordsModules
24
26
  * @property {Record<string, number>=} byIdentifier
25
27
  * @property {number[]=} usedIds
26
28
  */
27
29
 
28
30
  /**
31
+ * Defines the records type used by this module.
29
32
  * @typedef {object} Records
30
33
  * @property {RecordsChunks=} chunks
31
34
  * @property {RecordsModules=} modules
32
35
  */
33
36
 
34
37
  /**
38
+ * Defines the record ids plugin options type used by this module.
35
39
  * @typedef {object} RecordIdsPluginOptions
36
40
  * @property {boolean=} portableIds true, when ids need to be portable
37
41
  */
@@ -42,13 +46,16 @@ const PLUGIN_NAME = "RecordIdsPlugin";
42
46
 
43
47
  class RecordIdsPlugin {
44
48
  /**
49
+ * Creates an instance of RecordIdsPlugin.
45
50
  * @param {RecordIdsPluginOptions=} options object
46
51
  */
47
52
  constructor(options) {
53
+ /** @type {RecordIdsPluginOptions} */
48
54
  this.options = options || {};
49
55
  }
50
56
 
51
57
  /**
58
+ * Applies the plugin by registering its hooks on the compiler.
52
59
  * @param {Compiler} compiler the Compiler
53
60
  * @returns {void}
54
61
  */
@@ -62,6 +69,7 @@ class RecordIdsPlugin {
62
69
  );
63
70
 
64
71
  /**
72
+ * Gets module identifier.
65
73
  * @param {Module} module the module
66
74
  * @returns {string} the (portable) identifier
67
75
  */
@@ -113,6 +121,7 @@ class RecordIdsPlugin {
113
121
  /** @typedef {string[]} ChunkSources */
114
122
 
115
123
  /**
124
+ * Gets chunk sources.
116
125
  * @param {Chunk} chunk the chunk
117
126
  * @returns {ChunkSources} sources of the chunk
118
127
  */
@@ -9,8 +9,14 @@ const { contextify } = require("./util/identifier");
9
9
 
10
10
  /** @typedef {import("./util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
11
11
 
12
+ /**
13
+ * Shortens absolute or verbose request strings so diagnostics and stats output
14
+ * can be rendered relative to a chosen base directory.
15
+ */
12
16
  class RequestShortener {
13
17
  /**
18
+ * Binds a context-aware shortening function to the provided directory and
19
+ * optional cache owner.
14
20
  * @param {string} dir the directory
15
21
  * @param {AssociatedObjectForCache=} associatedObjectForCache an object to which the cache will be attached
16
22
  */
@@ -22,6 +28,8 @@ class RequestShortener {
22
28
  }
23
29
 
24
30
  /**
31
+ * Returns a request string rewritten relative to the configured directory
32
+ * when one is provided.
25
33
  * @param {string | undefined | null} request the request to shorten
26
34
  * @returns {string | undefined | null} the shortened request
27
35
  */
@@ -20,6 +20,7 @@ const {
20
20
 
21
21
  /** @typedef {WebpackResolveOptions & { dependencyType?: string, resolveToContext?: boolean }} ResolveOptionsWithDependencyType */
22
22
  /**
23
+ * Defines the with options type used by this module.
23
24
  * @typedef {object} WithOptions
24
25
  * @property {(options: Partial<ResolveOptionsWithDependencyType>) => ResolverWithOptions} withOptions create a resolver with additional/different options
25
26
  */
@@ -31,6 +32,7 @@ const {
31
32
  const EMPTY_RESOLVE_OPTIONS = {};
32
33
 
33
34
  /**
35
+ * Convert to resolve options.
34
36
  * @param {ResolveOptionsWithDependencyType} resolveOptionsWithDepType enhanced options
35
37
  * @returns {ResolveOptions} merged options
36
38
  */
@@ -69,6 +71,7 @@ const convertToResolveOptions = (resolveOptionsWithDepType) => {
69
71
  };
70
72
 
71
73
  /**
74
+ * Represents the resolver factory runtime component.
72
75
  * @typedef {object} ResolverCache
73
76
  * @property {WeakMap<ResolveOptionsWithDependencyType, ResolverWithOptions>} direct
74
77
  * @property {Map<string, ResolverWithOptions>} stringified
@@ -91,6 +94,7 @@ module.exports = class ResolverFactory {
91
94
  }
92
95
 
93
96
  /**
97
+ * Returns the resolver.
94
98
  * @param {string} type type of resolver
95
99
  * @param {ResolveOptionsWithDependencyType=} resolveOptions options
96
100
  * @returns {ResolverWithOptions} the resolver
@@ -121,6 +125,7 @@ module.exports = class ResolverFactory {
121
125
  }
122
126
 
123
127
  /**
128
+ * Returns the resolver.
124
129
  * @param {string} type type of resolver
125
130
  * @param {ResolveOptionsWithDependencyType} resolveOptionsWithDepType options
126
131
  * @returns {ResolverWithOptions} the resolver
@@ -15,6 +15,13 @@ module.exports.amdDefine = "__webpack_require__.amdD";
15
15
  */
16
16
  module.exports.amdOptions = "__webpack_require__.amdO";
17
17
 
18
+ /**
19
+ * analyzable single-chunk `import()` that keeps `ensureChunk` timing and deduplication:
20
+ * resolves immediately for an installed chunk, else runs the literal import and installs it
21
+ * Signature: (chunkId, () => Promise) => Promise
22
+ */
23
+ module.exports.analyzableChunkImport = "__webpack_require__.ei";
24
+
18
25
  /**
19
26
  * Creates an async module. The body function must be a async function.
20
27
  * "module.exports" will be decorated with an AsyncModulePromise.
@@ -39,6 +46,15 @@ module.exports.asyncModuleDoneSymbol = "__webpack_require__.aD";
39
46
  */
40
47
  module.exports.asyncModuleExportSymbol = "__webpack_require__.aE";
41
48
 
49
+ /**
50
+ * Drives an async module body written as a generator function (used when the
51
+ * target environment supports generators but not `async`/`await`).
52
+ * It runs the generator, resolving each `yield`ed dependency promise, so the
53
+ * body reads like a plain `async` function without emitting `async`/`await`.
54
+ * Signature: function(body: GeneratorFunction) => (handleDependencies, result) => void
55
+ */
56
+ module.exports.asyncModuleGenerator = "__webpack_require__.aG";
57
+
42
58
  /**
43
59
  * the baseURI of current document
44
60
  */
@@ -54,6 +70,11 @@ module.exports.chunkCallback = "webpackChunk";
54
70
  */
55
71
  module.exports.chunkName = "__webpack_require__.cn";
56
72
 
73
+ /**
74
+ * wrap and eagerly execute a CommonJS module body, returning its exports
75
+ */
76
+ module.exports.commonJsWrap = "__webpack_require__.cjs";
77
+
57
78
  /**
58
79
  * compatibility get default export
59
80
  */
@@ -83,12 +104,7 @@ module.exports.createScript = "__webpack_require__.ts";
83
104
  */
84
105
  module.exports.createScriptUrl = "__webpack_require__.tu";
85
106
 
86
- /**
87
- * merge multiple CSS stylesheets (CSSStyleSheet or string) into one CSS text string
88
- * Arguments: (sheets: Array<CSSStyleSheet | string> | CSSStyleSheet | string) => string
89
- */
90
107
  module.exports.cssInjectStyle = "__webpack_require__.is";
91
- module.exports.cssMergeStyleSheets = "__webpack_require__.mcs";
92
108
 
93
109
  /**
94
110
  * The current scope when getting a module from a remote
@@ -200,6 +216,12 @@ module.exports.getTrustedTypesPolicy = "__webpack_require__.tt";
200
216
  */
201
217
  module.exports.getUpdateManifestFilename = "__webpack_require__.hmrF";
202
218
 
219
+ /**
220
+ * the object url of the worklet bootstrap script (sets up `self`, `location` and
221
+ * a throwing `importScripts` before worklet chunks are added)
222
+ */
223
+ module.exports.getWorkletBootstrap = "__webpack_require__.wb";
224
+
203
225
  /**
204
226
  * the global object
205
227
  */
@@ -336,6 +358,12 @@ module.exports.nodeModuleDecorator = "__webpack_require__.nmd";
336
358
  */
337
359
  module.exports.onChunksLoaded = "__webpack_require__.O";
338
360
 
361
+ /**
362
+ * the asset prefetch function: injects a
363
+ * `<link rel="prefetch">` for an asset module URL
364
+ */
365
+ module.exports.prefetchAsset = "__webpack_require__.PA";
366
+
339
367
  /**
340
368
  * the chunk prefetch function
341
369
  */
@@ -346,6 +374,12 @@ module.exports.prefetchChunk = "__webpack_require__.E";
346
374
  */
347
375
  module.exports.prefetchChunkHandlers = "__webpack_require__.F";
348
376
 
377
+ /**
378
+ * the asset preload function: injects a
379
+ * `<link rel="preload">` for an asset module URL
380
+ */
381
+ module.exports.preloadAsset = "__webpack_require__.LA";
382
+
349
383
  /**
350
384
  * the chunk preload function
351
385
  */
@@ -391,6 +425,11 @@ module.exports.runtimeId = "__webpack_require__.j";
391
425
  */
392
426
  module.exports.scriptNonce = "__webpack_require__.nc";
393
427
 
428
+ /**
429
+ * set .name to "default" for anonymous default exports per ES spec
430
+ */
431
+ module.exports.setAnonymousDefaultName = "__webpack_require__.dn";
432
+
394
433
  /**
395
434
  * an object with all share scopes
396
435
  */
@@ -402,6 +441,14 @@ module.exports.shareScopeMap = "__webpack_require__.S";
402
441
  */
403
442
  module.exports.startup = "__webpack_require__.x";
404
443
 
444
+ /**
445
+ * marker requirement that adds the startup runtime module which fires
446
+ * `<link rel="prefetch|preload">` for `new URL(..., import.meta.url)`
447
+ * assets with `webpackPrefetch` / `webpackPreload` hints, before any
448
+ * chunk module evaluates
449
+ */
450
+ module.exports.startupAssetHints = "__webpack_require__.SAH";
451
+
405
452
  /**
406
453
  * method to startup an entrypoint with needed chunks.
407
454
  * Signature: (moduleId: Id, chunkIds: Id[]) => any.
@@ -410,6 +457,7 @@ module.exports.startup = "__webpack_require__.x";
410
457
  module.exports.startupEntrypoint = "__webpack_require__.X";
411
458
 
412
459
  /**
460
+ * Describes how this item operation behaves.
413
461
  * @deprecated
414
462
  * creating a default startup function with the entry modules
415
463
  */
@@ -454,3 +502,8 @@ module.exports.uncaughtErrorHandler = "__webpack_require__.oe";
454
502
  * an object containing all installed WebAssembly.Instance export objects keyed by module id
455
503
  */
456
504
  module.exports.wasmInstances = "__webpack_require__.w";
505
+
506
+ /**
507
+ * the Worker constructor for universal targets (global Worker or worker_threads)
508
+ */
509
+ module.exports.worker = "__webpack_require__.wc";
@@ -36,6 +36,7 @@ const { WEBPACK_MODULE_TYPE_RUNTIME } = require("./ModuleTypeConstants");
36
36
 
37
37
  class RuntimeModule extends Module {
38
38
  /**
39
+ * Creates an instance of RuntimeModule.
39
40
  * @param {string} name a readable name
40
41
  * @param {number=} stage an optional stage
41
42
  */
@@ -64,6 +65,7 @@ class RuntimeModule extends Module {
64
65
  }
65
66
 
66
67
  /**
68
+ * Processes the provided compilation.
67
69
  * @param {Compilation} compilation the compilation
68
70
  * @param {Chunk} chunk the chunk
69
71
  * @param {ChunkGraph} chunkGraph the chunk graph
@@ -76,6 +78,7 @@ class RuntimeModule extends Module {
76
78
  }
77
79
 
78
80
  /**
81
+ * Returns the unique identifier used to reference this module.
79
82
  * @returns {string} a unique identifier of the module
80
83
  */
81
84
  identifier() {
@@ -83,6 +86,7 @@ class RuntimeModule extends Module {
83
86
  }
84
87
 
85
88
  /**
89
+ * Returns a human-readable identifier for this module.
86
90
  * @param {RequestShortener} requestShortener the request shortener
87
91
  * @returns {string} a user readable identifier of the module
88
92
  */
@@ -91,6 +95,7 @@ class RuntimeModule extends Module {
91
95
  }
92
96
 
93
97
  /**
98
+ * Checks whether the module needs to be rebuilt for the current build state.
94
99
  * @param {NeedBuildContext} context context info
95
100
  * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
96
101
  * @returns {void}
@@ -100,6 +105,7 @@ class RuntimeModule extends Module {
100
105
  }
101
106
 
102
107
  /**
108
+ * Builds the module using the provided compilation context.
103
109
  * @param {WebpackOptions} options webpack options
104
110
  * @param {Compilation} compilation the compilation
105
111
  * @param {ResolverWithOptions} resolver the resolver
@@ -114,6 +120,7 @@ class RuntimeModule extends Module {
114
120
  }
115
121
 
116
122
  /**
123
+ * Updates the hash with the data contributed by this instance.
117
124
  * @param {Hash} hash the hash used to track dependencies
118
125
  * @param {UpdateHashContext} context context
119
126
  * @returns {void}
@@ -122,12 +129,14 @@ class RuntimeModule extends Module {
122
129
  hash.update(this.name);
123
130
  hash.update(`${this.stage}`);
124
131
  try {
125
- if (this.fullHash || this.dependentHash) {
126
- // Do not use getGeneratedCode here, because i. e. compilation hash might be not
127
- // ready at this point. We will cache it later instead.
128
- hash.update(/** @type {string} */ (this.generate()));
129
- } else {
130
- hash.update(/** @type {string} */ (this.getGeneratedCode()));
132
+ const code =
133
+ this.fullHash || this.dependentHash
134
+ ? // Do not use getGeneratedCode here, because i. e. compilation hash might be not
135
+ // ready at this point. We will cache it later instead.
136
+ this.generate()
137
+ : this.getGeneratedCode();
138
+ if (code !== null && code !== undefined) {
139
+ hash.update(code);
131
140
  }
132
141
  } catch (err) {
133
142
  hash.update(/** @type {Error} */ (err).message);
@@ -136,6 +145,7 @@ class RuntimeModule extends Module {
136
145
  }
137
146
 
138
147
  /**
148
+ * Returns the source types this module can generate.
139
149
  * @returns {SourceTypes} types available (do not mutate)
140
150
  */
141
151
  getSourceTypes() {
@@ -156,6 +166,7 @@ class RuntimeModule extends Module {
156
166
  }
157
167
 
158
168
  /**
169
+ * Generates code and runtime requirements for this module.
159
170
  * @param {CodeGenerationContext} context context for code generation
160
171
  * @returns {CodeGenerationResult} result
161
172
  */
@@ -178,6 +189,7 @@ class RuntimeModule extends Module {
178
189
  }
179
190
 
180
191
  /**
192
+ * Returns the estimated size for the requested source type.
181
193
  * @param {string=} type the source type for which the size should be estimated
182
194
  * @returns {number} the estimated size of the module (must be non-zero)
183
195
  */
@@ -192,16 +204,18 @@ class RuntimeModule extends Module {
192
204
 
193
205
  /* istanbul ignore next */
194
206
  /**
207
+ * Generates runtime code for this runtime module.
195
208
  * @abstract
196
209
  * @returns {string | null} runtime code
197
210
  */
198
211
  generate() {
199
- const AbstractMethodError = require("./AbstractMethodError");
212
+ const AbstractMethodError = require("./errors/AbstractMethodError");
200
213
 
201
214
  throw new AbstractMethodError();
202
215
  }
203
216
 
204
217
  /**
218
+ * Gets generated code.
205
219
  * @returns {string | null} runtime code
206
220
  */
207
221
  getGeneratedCode() {
@@ -212,6 +226,7 @@ class RuntimeModule extends Module {
212
226
  }
213
227
 
214
228
  /**
229
+ * Returns true, if the runtime module should get it's own scope.
215
230
  * @returns {boolean} true, if the runtime module should get it's own scope
216
231
  */
217
232
  shouldIsolate() {