@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
@@ -0,0 +1,38 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ */
4
+
5
+ "use strict";
6
+
7
+ const RuntimeGlobals = require("../RuntimeGlobals");
8
+ const Template = require("../Template");
9
+ const HelperRuntimeModule = require("./HelperRuntimeModule");
10
+
11
+ /** @typedef {import("../Compilation")} Compilation */
12
+
13
+ class SetAnonymousDefaultNameRuntimeModule extends HelperRuntimeModule {
14
+ constructor() {
15
+ super("set anonymous default export name");
16
+ }
17
+
18
+ /**
19
+ * Generates runtime code for this runtime module.
20
+ * @returns {string | null} runtime code
21
+ */
22
+ generate() {
23
+ const compilation = /** @type {Compilation} */ (this.compilation);
24
+ const { runtimeTemplate } = compilation;
25
+ const fn = RuntimeGlobals.setAnonymousDefaultName;
26
+ return Template.asString([
27
+ "// set .name for anonymous default exports per ES spec",
28
+ "// skipped when the property is non-configurable (pre-ES2015 engines),",
29
+ "// where Object.defineProperty would throw",
30
+ `${fn} = ${runtimeTemplate.basicFunction("x", [
31
+ 'var descriptor = Object.getOwnPropertyDescriptor(x, "name");',
32
+ 'if (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, "name", { value: "default", configurable: true });'
33
+ ])};`
34
+ ]);
35
+ }
36
+ }
37
+
38
+ module.exports = SetAnonymousDefaultNameRuntimeModule;
@@ -13,6 +13,9 @@ const StartupEntrypointRuntimeModule = require("./StartupEntrypointRuntimeModule
13
13
  /** @typedef {import("../Compiler")} Compiler */
14
14
 
15
15
  /**
16
+ * Options that describe which chunk loading backend should receive startup
17
+ * dependency handling and whether the runtime should wait for those chunks
18
+ * asynchronously.
16
19
  * @typedef {object} Options
17
20
  * @property {ChunkLoadingType} chunkLoading
18
21
  * @property {boolean=} asyncChunkLoading
@@ -20,8 +23,14 @@ const StartupEntrypointRuntimeModule = require("./StartupEntrypointRuntimeModule
20
23
 
21
24
  const PLUGIN_NAME = "StartupChunkDependenciesPlugin";
22
25
 
26
+ /**
27
+ * Adds runtime modules that delay entry startup until entry-dependent chunks
28
+ * required by the selected chunk loading strategy have been loaded.
29
+ */
23
30
  class StartupChunkDependenciesPlugin {
24
31
  /**
32
+ * Configures which chunk loading implementation this plugin should enhance
33
+ * and whether startup waits should use promises or synchronous ensures.
25
34
  * @param {Options} options options
26
35
  */
27
36
  constructor(options) {
@@ -35,7 +44,8 @@ class StartupChunkDependenciesPlugin {
35
44
  }
36
45
 
37
46
  /**
38
- * Apply the plugin
47
+ * Registers compilation hooks that attach the startup dependency runtime
48
+ * modules to entry chunks using the configured chunk loading mechanism.
39
49
  * @param {Compiler} compiler the compiler instance
40
50
  * @returns {void}
41
51
  */
@@ -43,6 +53,8 @@ class StartupChunkDependenciesPlugin {
43
53
  compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
44
54
  const globalChunkLoading = compilation.outputOptions.chunkLoading;
45
55
  /**
56
+ * Determines whether a chunk uses the chunk loading backend that this
57
+ * plugin is responsible for augmenting.
46
58
  * @param {Chunk} chunk chunk to check
47
59
  * @returns {boolean} true, when the plugin is enabled for the chunk
48
60
  */
@@ -24,6 +24,7 @@ class StartupChunkDependenciesRuntimeModule extends RuntimeModule {
24
24
  }
25
25
 
26
26
  /**
27
+ * Generates runtime code for this runtime module.
27
28
  * @returns {string | null} runtime code
28
29
  */
29
30
  generate() {
@@ -35,7 +36,7 @@ class StartupChunkDependenciesRuntimeModule extends RuntimeModule {
35
36
  const compilation = /** @type {Compilation} */ (this.compilation);
36
37
  const { runtimeTemplate } = compilation;
37
38
  return Template.asString([
38
- `var next = ${RuntimeGlobals.startup};`,
39
+ `${runtimeTemplate.renderConst()} next = ${RuntimeGlobals.startup};`,
39
40
  `${RuntimeGlobals.startup} = ${runtimeTemplate.basicFunction(
40
41
  "",
41
42
  !this.asyncChunkLoading
@@ -20,16 +20,18 @@ class StartupEntrypointRuntimeModule extends RuntimeModule {
20
20
  }
21
21
 
22
22
  /**
23
+ * Generates runtime code for this runtime module.
23
24
  * @returns {string | null} runtime code
24
25
  */
25
26
  generate() {
26
27
  const compilation = /** @type {Compilation} */ (this.compilation);
27
28
  const { runtimeTemplate } = compilation;
29
+ const cst = runtimeTemplate.renderConst();
28
30
  return `${
29
31
  RuntimeGlobals.startupEntrypoint
30
32
  } = ${runtimeTemplate.basicFunction("result, chunkIds, fn", [
31
33
  "// arguments: chunkIds, moduleId are deprecated",
32
- "var moduleId = chunkIds;",
34
+ `${cst} moduleId = chunkIds;`,
33
35
  `if(!fn) chunkIds = result, fn = ${runtimeTemplate.returningFunction(
34
36
  `${RuntimeGlobals.require}(${RuntimeGlobals.entryModuleId} = moduleId)`
35
37
  )};`,
@@ -38,13 +40,13 @@ class StartupEntrypointRuntimeModule extends RuntimeModule {
38
40
  `return Promise.all(chunkIds.map(${RuntimeGlobals.ensureChunk}, ${
39
41
  RuntimeGlobals.require
40
42
  })).then(${runtimeTemplate.basicFunction("", [
41
- "var r = fn();",
43
+ `${cst} r = fn();`,
42
44
  "return r === undefined ? result : r;"
43
45
  ])})`
44
46
  ]
45
47
  : [
46
48
  `chunkIds.map(${RuntimeGlobals.ensureChunk}, ${RuntimeGlobals.require})`,
47
- "var r = fn();",
49
+ `${cst} r = fn();`,
48
50
  "return r === undefined ? result : r;"
49
51
  ])
50
52
  ])}`;
@@ -13,6 +13,7 @@ class SystemContextRuntimeModule extends RuntimeModule {
13
13
  }
14
14
 
15
15
  /**
16
+ * Generates runtime code for this runtime module.
16
17
  * @returns {string | null} runtime code
17
18
  */
18
19
  generate() {
@@ -17,6 +17,7 @@ class ToBinaryRuntimeModule extends RuntimeModule {
17
17
  }
18
18
 
19
19
  /**
20
+ * Generates runtime code for this runtime module.
20
21
  * @returns {string | null} runtime code
21
22
  */
22
23
  generate() {
@@ -0,0 +1,33 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ */
4
+
5
+ "use strict";
6
+
7
+ const RuntimeGlobals = require("../RuntimeGlobals");
8
+ const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+
10
+ /** @typedef {import("../Compilation")} Compilation */
11
+
12
+ class WorkerRuntimeModule extends HelperRuntimeModule {
13
+ constructor() {
14
+ super("worker");
15
+ }
16
+
17
+ /**
18
+ * Generates runtime code for this runtime module.
19
+ * @returns {string | null} runtime code
20
+ */
21
+ generate() {
22
+ const compilation = /** @type {Compilation} */ (this.compilation);
23
+ const { runtimeTemplate } = compilation;
24
+ // prefer a global `Worker` when present (web, Bun, polyfills), else `worker_threads.Worker`
25
+ const nodeWorker = runtimeTemplate.getBuiltinModule(
26
+ runtimeTemplate.renderNodePrefixForCoreModule("worker_threads"),
27
+ ".Worker"
28
+ );
29
+ return `${RuntimeGlobals.worker} = typeof Worker !== "undefined" ? Worker : ${nodeWorker};`;
30
+ }
31
+ }
32
+
33
+ module.exports = WorkerRuntimeModule;
@@ -14,7 +14,7 @@ const PLUGIN_NAME = "DataUriPlugin";
14
14
 
15
15
  class DataUriPlugin {
16
16
  /**
17
- * Apply the plugin
17
+ * Applies the plugin by registering its hooks on the compiler.
18
18
  * @param {Compiler} compiler the compiler instance
19
19
  * @returns {void}
20
20
  */
@@ -24,7 +24,7 @@ class DataUriPlugin {
24
24
  (compilation, { normalModuleFactory }) => {
25
25
  normalModuleFactory.hooks.resolveForScheme
26
26
  .for("data")
27
- .tap(PLUGIN_NAME, (resourceData) => {
27
+ .tap(PLUGIN_NAME, (resourceData, resolveData) => {
28
28
  const match = URIRegEx.exec(resourceData.resource);
29
29
  if (match) {
30
30
  resourceData.data.mimetype = match[1] || "";
@@ -34,6 +34,18 @@ class DataUriPlugin {
34
34
  );
35
35
  resourceData.data.encodedContent = match[4] || "";
36
36
  }
37
+ // Inherit the issuer's resolution context so any nested
38
+ // dependencies discovered while parsing the data URI's body
39
+ // (e.g. `url(...)` / `@import` inside an inline CSS data
40
+ // URI) resolve relative to where the URI was referenced
41
+ // from, instead of against the synthetic `data:.../` path
42
+ // that `getContext("data:…")` would otherwise infer.
43
+ if (
44
+ resourceData.context === undefined &&
45
+ resolveData.context !== undefined
46
+ ) {
47
+ resourceData.context = resolveData.context;
48
+ }
37
49
  });
38
50
 
39
51
  NormalModule.getCompilationHooks(compilation)
@@ -14,7 +14,7 @@ const PLUGIN_NAME = "FileUriPlugin";
14
14
 
15
15
  class FileUriPlugin {
16
16
  /**
17
- * Apply the plugin
17
+ * Applies the plugin by registering its hooks on the compiler.
18
18
  * @param {Compiler} compiler the compiler instance
19
19
  * @returns {void}
20
20
  */
@@ -29,6 +29,7 @@ const memoize = require("../util/memoize");
29
29
  /** @typedef {import("../Module").BuildInfo} BuildInfo */
30
30
  /** @typedef {import("../NormalModuleFactory").ResourceDataWithData} ResourceDataWithData */
31
31
  /** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
32
+ /** @typedef {import("../NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
32
33
 
33
34
  const getHttp = memoize(() => require("http"));
34
35
  const getHttps = memoize(() => require("https"));
@@ -38,11 +39,13 @@ const MAX_REDIRECTS = 5;
38
39
  /** @typedef {(url: URL, requestOptions: RequestOptions, callback: (incomingMessage: IncomingMessage) => void) => EventEmitter} Fetch */
39
40
 
40
41
  /**
42
+ * Defines the events map type used by this module.
41
43
  * @typedef {object} EventsMap
42
44
  * @property {[Error]} error
43
45
  */
44
46
 
45
47
  /**
48
+ * Returns fn.
46
49
  * @param {typeof import("http") | typeof import("https")} request request
47
50
  * @param {string | URL | undefined} proxy proxy
48
51
  * @returns {Fetch} fn
@@ -52,6 +55,7 @@ const proxyFetch = (request, proxy) => (url, options, callback) => {
52
55
  const eventEmitter = new EventEmitter();
53
56
 
54
57
  /**
58
+ * Processes the provided socket.
55
59
  * @param {Socket=} socket socket
56
60
  * @returns {void}
57
61
  */
@@ -105,6 +109,7 @@ const proxyFetch = (request, proxy) => (url, options, callback) => {
105
109
  let inProgressWrite;
106
110
 
107
111
  /**
112
+ * Returns safe path.
108
113
  * @param {string} str path
109
114
  * @returns {string} safe path
110
115
  */
@@ -112,6 +117,7 @@ const toSafePath = (str) =>
112
117
  str.replace(/^[^a-z0-9]+|[^a-z0-9]+$/gi, "").replace(/[^a-z0-9._-]+/gi, "_");
113
118
 
114
119
  /**
120
+ * Returns integrity.
115
121
  * @param {Buffer} content content
116
122
  * @returns {string} integrity
117
123
  */
@@ -123,6 +129,7 @@ const computeIntegrity = (content) => {
123
129
  };
124
130
 
125
131
  /**
132
+ * Returns true, if integrity matches.
126
133
  * @param {Buffer} content content
127
134
  * @param {string} integrity integrity
128
135
  * @returns {boolean} true, if integrity matches
@@ -133,6 +140,7 @@ const verifyIntegrity = (content, integrity) => {
133
140
  };
134
141
 
135
142
  /**
143
+ * Parses key value pairs.
136
144
  * @param {string} str input
137
145
  * @returns {Record<string, string>} parsed
138
146
  */
@@ -155,6 +163,7 @@ const parseKeyValuePairs = (str) => {
155
163
  };
156
164
 
157
165
  /**
166
+ * Parses cache control.
158
167
  * @param {string | undefined} cacheControl Cache-Control header
159
168
  * @param {number} requestTime timestamp of request
160
169
  * @returns {{ storeCache: boolean, storeLock: boolean, validUntil: number }} Logic for storing in cache and lockfile cache
@@ -182,6 +191,7 @@ const parseCacheControl = (cacheControl, requestTime) => {
182
191
  };
183
192
 
184
193
  /**
194
+ * Defines the lockfile entry type used by this module.
185
195
  * @typedef {object} LockfileEntry
186
196
  * @property {string} resolved
187
197
  * @property {string} integrity
@@ -189,6 +199,7 @@ const parseCacheControl = (cacheControl, requestTime) => {
189
199
  */
190
200
 
191
201
  /**
202
+ * Are lockfile entries equal.
192
203
  * @param {LockfileEntry} a first lockfile entry
193
204
  * @param {LockfileEntry} b second lockfile entry
194
205
  * @returns {boolean} true when equal, otherwise false
@@ -199,6 +210,7 @@ const areLockfileEntriesEqual = (a, b) =>
199
210
  a.contentType === b.contentType;
200
211
 
201
212
  /**
213
+ * Returns , integrity: ${string}, contentType: ${string}`} stringified entry.
202
214
  * @param {LockfileEntry} entry lockfile entry
203
215
  * @returns {`resolved: ${string}, integrity: ${string}, contentType: ${string}`} stringified entry
204
216
  */
@@ -221,6 +233,36 @@ const sanitizeUrlForError = (href) => {
221
233
  }
222
234
  };
223
235
 
236
+ /**
237
+ * Splits lockfile content containing git merge conflict markers (2-way or
238
+ * diff3) into its two sides so each can be parsed as valid JSON on its own.
239
+ * @param {string} content lockfile content with conflict markers
240
+ * @returns {[string, string]} the "ours" and "theirs" variants
241
+ */
242
+ const splitMergeConflicts = (content) => {
243
+ /** @type {string[]} */
244
+ const ours = [];
245
+ /** @type {string[]} */
246
+ const theirs = [];
247
+ // 0 = shared, 1 = ours, 2 = theirs, 3 = common ancestor (diff3, dropped)
248
+ let side = 0;
249
+ for (const line of content.split(/\r?\n/)) {
250
+ if (line.startsWith("<<<<<<<")) {
251
+ side = 1;
252
+ } else if (line.startsWith("|||||||")) {
253
+ side = 3;
254
+ } else if (line.startsWith("=======")) {
255
+ side = 2;
256
+ } else if (line.startsWith(">>>>>>>")) {
257
+ side = 0;
258
+ } else {
259
+ if (side === 0 || side === 1) ours.push(line);
260
+ if (side === 0 || side === 2) theirs.push(line);
261
+ }
262
+ }
263
+ return [ours.join("\n"), theirs.join("\n")];
264
+ };
265
+
224
266
  class Lockfile {
225
267
  constructor() {
226
268
  /** @type {number} */
@@ -230,11 +272,21 @@ class Lockfile {
230
272
  }
231
273
 
232
274
  /**
275
+ * Parses the provided source and updates the parser state.
233
276
  * @param {string} content content of the lockfile
234
277
  * @returns {Lockfile} lockfile
235
278
  */
236
279
  static parse(content) {
237
- // TODO handle merge conflicts
280
+ // A git merge conflict leaves `<<<<<<<`/`=======`/`>>>>>>>` markers; parse
281
+ // each side and union the entries, since lockfile changes only add keys.
282
+ if (content.includes("<<<<<<<")) {
283
+ const [ours, theirs] = splitMergeConflicts(content);
284
+ const lockfile = Lockfile.parse(ours);
285
+ for (const [key, entry] of Lockfile.parse(theirs).entries) {
286
+ if (!lockfile.entries.has(key)) lockfile.entries.set(key, entry);
287
+ }
288
+ return lockfile;
289
+ }
238
290
  const data = JSON.parse(content);
239
291
  if (data.version !== 1) {
240
292
  throw new Error(`Unsupported lockfile version ${data.version}`);
@@ -257,6 +309,7 @@ class Lockfile {
257
309
  }
258
310
 
259
311
  /**
312
+ * Returns a string representation.
260
313
  * @returns {string} stringified lockfile
261
314
  */
262
315
  toString() {
@@ -281,16 +334,19 @@ class Lockfile {
281
334
  }
282
335
 
283
336
  /**
337
+ * Defines the fn without key callback type used by this module.
284
338
  * @template R
285
339
  * @typedef {(err: Error | null, result?: R) => void} FnWithoutKeyCallback
286
340
  */
287
341
 
288
342
  /**
343
+ * Defines the fn without key type used by this module.
289
344
  * @template R
290
345
  * @typedef {(callback: FnWithoutKeyCallback<R>) => void} FnWithoutKey
291
346
  */
292
347
 
293
348
  /**
349
+ * Caches d without key.
294
350
  * @template R
295
351
  * @param {FnWithoutKey<R>} fn function
296
352
  * @returns {FnWithoutKey<R>} cached function
@@ -324,17 +380,20 @@ const cachedWithoutKey = (fn) => {
324
380
  };
325
381
 
326
382
  /**
383
+ * Defines the fn with key callback type used by this module.
327
384
  * @template R
328
385
  * @typedef {(err: Error | null, result?: R) => void} FnWithKeyCallback
329
386
  */
330
387
 
331
388
  /**
389
+ * Defines the fn with key type used by this module.
332
390
  * @template T
333
391
  * @template R
334
392
  * @typedef {(item: T, callback: FnWithKeyCallback<R>) => void} FnWithKey
335
393
  */
336
394
 
337
395
  /**
396
+ * Returns } cached function.
338
397
  * @template T
339
398
  * @template R
340
399
  * @param {FnWithKey<T, R>} fn function
@@ -343,12 +402,14 @@ const cachedWithoutKey = (fn) => {
343
402
  */
344
403
  const cachedWithKey = (fn, forceFn = fn) => {
345
404
  /**
405
+ * Defines the cache entry type used by this module.
346
406
  * @template R
347
407
  * @typedef {{ result?: R, error?: Error, callbacks?: FnWithKeyCallback<R>[], force?: true }} CacheEntry
348
408
  */
349
409
  /** @type {Map<T, CacheEntry<R>>} */
350
410
  const cache = new Map();
351
411
  /**
412
+ * Processes the provided arg.
352
413
  * @param {T} arg arg
353
414
  * @param {FnWithKeyCallback<R>} callback callback
354
415
  * @returns {void}
@@ -381,6 +442,7 @@ const cachedWithKey = (fn, forceFn = fn) => {
381
442
  });
382
443
  };
383
444
  /**
445
+ * Processes the provided arg.
384
446
  * @param {T} arg arg
385
447
  * @param {FnWithKeyCallback<R>} callback callback
386
448
  * @returns {void}
@@ -417,12 +479,14 @@ const cachedWithKey = (fn, forceFn = fn) => {
417
479
  };
418
480
 
419
481
  /**
482
+ * Defines the lockfile cache type used by this module.
420
483
  * @typedef {object} LockfileCache
421
484
  * @property {Lockfile} lockfile lockfile
422
485
  * @property {Snapshot} snapshot snapshot
423
486
  */
424
487
 
425
488
  /**
489
+ * Defines the resolve content result type used by this module.
426
490
  * @typedef {object} ResolveContentResult
427
491
  * @property {LockfileEntry} entry lockfile entry
428
492
  * @property {Buffer} content content
@@ -440,6 +504,7 @@ const PLUGIN_NAME = "HttpUriPlugin";
440
504
 
441
505
  class HttpUriPlugin {
442
506
  /**
507
+ * Creates an instance of HttpUriPlugin.
443
508
  * @param {HttpUriPluginOptions} options options
444
509
  */
445
510
  constructor(options) {
@@ -448,7 +513,7 @@ class HttpUriPlugin {
448
513
  }
449
514
 
450
515
  /**
451
- * Apply the plugin
516
+ * Applies the plugin by registering its hooks on the compiler.
452
517
  * @param {Compiler} compiler the compiler instance
453
518
  * @returns {void}
454
519
  */
@@ -519,6 +584,7 @@ class HttpUriPlugin {
519
584
  /** @type {Map<string, string>} */
520
585
  const cacheKeyCache = new Map();
521
586
  /**
587
+ * Returns the key.
522
588
  * @param {string} url the url
523
589
  * @returns {string} the key
524
590
  */
@@ -531,6 +597,7 @@ class HttpUriPlugin {
531
597
  };
532
598
 
533
599
  /**
600
+ * Returns the key.
534
601
  * @param {string} url the url
535
602
  * @returns {string} the key
536
603
  */
@@ -552,6 +619,7 @@ class HttpUriPlugin {
552
619
 
553
620
  const getLockfile = cachedWithoutKey(
554
621
  /**
622
+ * Handles the callback logic for this hook.
555
623
  * @param {(err: Error | null, lockfile?: Lockfile) => void} callback callback
556
624
  * @returns {void}
557
625
  */
@@ -604,6 +672,7 @@ class HttpUriPlugin {
604
672
  let lockfileUpdates;
605
673
 
606
674
  /**
675
+ * Stores the provided lockfile.
607
676
  * @param {Lockfile} lockfile lockfile instance
608
677
  * @param {string} url url to store
609
678
  * @param {LockfileEntry | "ignore" | "no-cache"} entry lockfile entry
@@ -643,6 +712,7 @@ class HttpUriPlugin {
643
712
  };
644
713
 
645
714
  /**
715
+ * Stores the provided lockfile.
646
716
  * @param {Lockfile} lockfile lockfile
647
717
  * @param {string} url url
648
718
  * @param {ResolveContentResult} result result
@@ -672,6 +742,7 @@ class HttpUriPlugin {
672
742
 
673
743
  for (const { scheme, fetch } of schemes) {
674
744
  /**
745
+ * Validate redirect location.
675
746
  * @param {string} location Location header value (relative or absolute)
676
747
  * @param {string} base current absolute URL
677
748
  * @returns {string} absolute, validated redirect target
@@ -702,6 +773,7 @@ class HttpUriPlugin {
702
773
  return nextUrl.href;
703
774
  };
704
775
  /**
776
+ * Processes the provided url.
705
777
  * @param {string} url URL
706
778
  * @param {string | null} integrity integrity
707
779
  * @param {(err: Error | null, resolveContentResult?: ResolveContentResult) => void} callback callback
@@ -714,6 +786,7 @@ class HttpUriPlugin {
714
786
  redirectCount = 0
715
787
  ) => {
716
788
  /**
789
+ * Processes the provided err.
717
790
  * @param {Error | null} err error
718
791
  * @param {FetchResult=} _result fetch result
719
792
  * @returns {void}
@@ -772,6 +845,7 @@ class HttpUriPlugin {
772
845
  };
773
846
 
774
847
  /**
848
+ * Processes the provided url.
775
849
  * @param {string} url URL
776
850
  * @param {FetchResult | RedirectFetchResult | undefined} cachedResult result from cache
777
851
  * @param {(err: Error | null, fetchResult?: FetchResult) => void} callback callback
@@ -798,6 +872,7 @@ class HttpUriPlugin {
798
872
  requestTime
799
873
  );
800
874
  /**
875
+ * Processes the provided partial result.
801
876
  * @param {Partial<Pick<FetchResultMeta, "fresh">> & (Pick<RedirectFetchResult, "location"> | Pick<ContentFetchResult, "content" | "entry">)} partialResult result
802
877
  * @returns {void}
803
878
  */
@@ -914,6 +989,7 @@ class HttpUriPlugin {
914
989
  stream.on(
915
990
  "data",
916
991
  /**
992
+ * Handles the callback logic for this hook.
917
993
  * @param {Buffer} chunk chunk
918
994
  */
919
995
  (chunk) => {
@@ -957,6 +1033,7 @@ class HttpUriPlugin {
957
1033
 
958
1034
  const fetchContent = cachedWithKey(
959
1035
  /**
1036
+ * Handles the callback logic for this hook.
960
1037
  * @param {string} url URL
961
1038
  * @param {(err: Error | null, result?: FetchResult) => void} callback callback
962
1039
  * @returns {void}
@@ -975,6 +1052,7 @@ class HttpUriPlugin {
975
1052
  );
976
1053
 
977
1054
  /**
1055
+ * Checks whether this http uri plugin is allowed.
978
1056
  * @param {string} uri uri
979
1057
  * @returns {boolean} true when allowed, otherwise false
980
1058
  */
@@ -1013,6 +1091,7 @@ class HttpUriPlugin {
1013
1091
 
1014
1092
  const getInfo = cachedWithKey(
1015
1093
  /**
1094
+ * Processes the provided url.
1016
1095
  * @param {string} url the url
1017
1096
  * @param {(err: Error | null, info?: Info) => void} callback callback
1018
1097
  * @returns {void}
@@ -1085,6 +1164,7 @@ Remove this line from the lockfile to force upgrading.`
1085
1164
  }
1086
1165
  let entry = entryOrString;
1087
1166
  /**
1167
+ * Processes the provided locked content.
1088
1168
  * @param {Buffer=} lockedContent locked content
1089
1169
  */
1090
1170
  const doFetch = (lockedContent) => {
@@ -1165,6 +1245,7 @@ Remove this line from the lockfile to force upgrading.`
1165
1245
  }
1166
1246
  const content = /** @type {Buffer} */ (result);
1167
1247
  /**
1248
+ * Continue with cached content.
1168
1249
  * @param {Buffer | undefined} _result result
1169
1250
  * @returns {void}
1170
1251
  */
@@ -1262,6 +1343,7 @@ Run build with un-frozen lockfile to automatically fix lockfile.`
1262
1343
  );
1263
1344
 
1264
1345
  /**
1346
+ * Respond with url module.
1265
1347
  * @param {URL} url url
1266
1348
  * @param {ResourceDataWithData} resourceData resource data
1267
1349
  * @param {(err: Error | null, result: true | void) => void} callback callback
@@ -1315,7 +1397,7 @@ Run build with un-frozen lockfile to automatically fix lockfile.`
1315
1397
  if (err) return callback(err);
1316
1398
  const result = /** @type {Info} */ (_result);
1317
1399
  if (module) {
1318
- /** @type {BuildInfo} */
1400
+ /** @type {NormalModuleBuildInfo} */
1319
1401
  (module.buildInfo).resourceIntegrity = result.entry.integrity;
1320
1402
  }
1321
1403
  callback(null, result.content);
@@ -1328,7 +1410,7 @@ Run build with un-frozen lockfile to automatically fix lockfile.`
1328
1410
  const result = /** @type {Info} */ (_result);
1329
1411
  if (
1330
1412
  result.entry.integrity !==
1331
- /** @type {BuildInfo} */
1413
+ /** @type {NormalModuleBuildInfo} */
1332
1414
  (module.buildInfo).resourceIntegrity
1333
1415
  ) {
1334
1416
  return callback(null, true);
@@ -5,10 +5,9 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { getContext } = require("loader-runner");
9
-
10
- const ModuleNotFoundError = require("../ModuleNotFoundError");
11
8
  const NormalModule = require("../NormalModule");
9
+ const ModuleNotFoundError = require("../errors/ModuleNotFoundError");
10
+ const { getContext } = require("../loaders/LoaderRunner");
12
11
  const { isAbsolute, join } = require("../util/fs");
13
12
  const { parseResourceWithoutFragment } = require("../util/identifier");
14
13
 
@@ -17,6 +16,7 @@ const DEFAULT_SCHEME = "virtual";
17
16
  const PLUGIN_NAME = "VirtualUrlPlugin";
18
17
 
19
18
  /**
19
+ * Defines the compiler type used by this module.
20
20
  * @typedef {import("../Compiler")} Compiler
21
21
  * @typedef {import("../../declarations/plugins/schemes/VirtualUrlPlugin").VirtualModule} VirtualModuleConfig
22
22
  * @typedef {import("../../declarations/plugins/schemes/VirtualUrlPlugin").VirtualModuleContent} VirtualModuleInput
@@ -28,6 +28,7 @@ const PLUGIN_NAME = "VirtualUrlPlugin";
28
28
  /** @typedef {{ [key: string]: VirtualModuleInput }} VirtualModules */
29
29
 
30
30
  /**
31
+ * Defines the loader context type used by this module.
31
32
  * @template T
32
33
  * @typedef {import("../../declarations/LoaderContext").LoaderContext<T>} LoaderContext
33
34
  */
@@ -103,6 +104,7 @@ function toCacheKey(id, scheme) {
103
104
 
104
105
  class VirtualUrlPlugin {
105
106
  /**
107
+ * Creates an instance of VirtualUrlPlugin.
106
108
  * @param {VirtualModules} modules The virtual modules
107
109
  * @param {Omit<VirtualUrlOptions, "modules"> | string=} schemeOrOptions The URL scheme to use
108
110
  */
@@ -124,7 +126,7 @@ class VirtualUrlPlugin {
124
126
  }
125
127
 
126
128
  /**
127
- * Apply the plugin
129
+ * Applies the plugin by registering its hooks on the compiler.
128
130
  * @param {Compiler} compiler the compiler instance
129
131
  * @returns {void}
130
132
  */
@@ -156,6 +158,7 @@ class VirtualUrlPlugin {
156
158
  (path, data) => {
157
159
  if (data.filename && this.modules[data.filename]) {
158
160
  /**
161
+ * Returns safe path.
159
162
  * @param {string} str path
160
163
  * @returns {string} safe path
161
164
  */
@@ -261,6 +264,7 @@ class VirtualUrlPlugin {
261
264
  }
262
265
 
263
266
  /**
267
+ * Finds virtual module config by id.
264
268
  * @param {string} id The module id
265
269
  * @returns {VirtualModuleConfig} The virtual module config
266
270
  */