@depup/webpack 5.109.0-depup.0 → 5.110.1-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 (641) hide show
  1. package/README.md +7 -7
  2. package/bin/webpack.js +12 -0
  3. package/changes.json +10 -10
  4. package/lib/APIPlugin.js +123 -17
  5. package/lib/AsyncDependenciesBlock.js +10 -7
  6. package/lib/AutomaticPrefetchPlugin.js +1 -1
  7. package/lib/BannerPlugin.js +10 -6
  8. package/lib/CacheFacade.js +6 -6
  9. package/lib/Chunk.js +14 -11
  10. package/lib/ChunkGraph.js +43 -32
  11. package/lib/ChunkGroup.js +7 -7
  12. package/lib/ChunkTemplate.js +35 -44
  13. package/lib/CircularModulesPlugin.js +205 -28
  14. package/lib/CleanPlugin.js +15 -16
  15. package/lib/CodeGenerationResults.js +11 -8
  16. package/lib/CompatibilityPlugin.js +38 -7
  17. package/lib/Compilation.js +709 -414
  18. package/lib/Compiler.js +69 -42
  19. package/lib/ConcatenationScope.js +117 -8
  20. package/lib/ConditionalInitFragment.js +3 -3
  21. package/lib/ConstPlugin.js +13 -11
  22. package/lib/ContextExclusionPlugin.js +1 -1
  23. package/lib/ContextModule.js +146 -54
  24. package/lib/ContextModuleFactory.js +46 -14
  25. package/lib/ContextReplacementPlugin.js +12 -14
  26. package/lib/DefinePlugin.js +168 -57
  27. package/lib/DependenciesBlock.js +9 -6
  28. package/lib/Dependency.js +36 -16
  29. package/lib/DependencyTemplate.js +11 -12
  30. package/lib/DependencyTemplates.js +3 -3
  31. package/lib/DotenvPlugin.js +50 -13
  32. package/lib/DynamicEntryPlugin.js +8 -4
  33. package/lib/EntryOptionPlugin.js +8 -4
  34. package/lib/EntryPlugin.js +2 -2
  35. package/lib/Entrypoint.js +6 -2
  36. package/lib/EnvironmentPlugin.js +2 -2
  37. package/lib/EvalDevToolModulePlugin.js +8 -4
  38. package/lib/EvalSourceMapDevToolPlugin.js +15 -8
  39. package/lib/ExportsInfo.js +123 -19
  40. package/lib/ExportsInfoApiPlugin.js +2 -4
  41. package/lib/ExternalModule.js +242 -84
  42. package/lib/ExternalModuleFactoryPlugin.js +97 -38
  43. package/lib/ExternalsPlugin.js +10 -6
  44. package/lib/FileSystemInfo.js +116 -42
  45. package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
  46. package/lib/FlagDependencyExportsPlugin.js +76 -19
  47. package/lib/FlagDependencyUsagePlugin.js +63 -57
  48. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  49. package/lib/Generator.js +36 -15
  50. package/lib/HotModuleReplacementPlugin.js +16 -44
  51. package/lib/IgnorePlugin.js +8 -4
  52. package/lib/IgnoreWarningsPlugin.js +2 -2
  53. package/lib/InitFragment.js +28 -36
  54. package/lib/JavascriptMetaInfoPlugin.js +35 -4
  55. package/lib/LazyBarrel.js +3 -4
  56. package/lib/LibraryTemplatePlugin.js +10 -6
  57. package/lib/LoaderOptionsPlugin.js +7 -3
  58. package/lib/LoaderTargetPlugin.js +1 -1
  59. package/lib/MainTemplate.js +49 -42
  60. package/lib/ManifestPlugin.js +12 -11
  61. package/lib/Module.js +62 -33
  62. package/lib/ModuleFactory.js +3 -3
  63. package/lib/ModuleFilenameHelpers.js +22 -6
  64. package/lib/ModuleGraph.js +195 -21
  65. package/lib/ModuleGraphConnection.js +6 -13
  66. package/lib/ModuleInfoHeaderPlugin.js +8 -10
  67. package/lib/ModuleTemplate.js +62 -63
  68. package/lib/MultiCompiler.js +130 -64
  69. package/lib/MultiStats.js +40 -9
  70. package/lib/MultiWatching.js +3 -3
  71. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  72. package/lib/NodeStuffPlugin.js +29 -19
  73. package/lib/NormalModule.js +221 -156
  74. package/lib/NormalModuleFactory.js +563 -112
  75. package/lib/NormalModuleReplacementPlugin.js +5 -8
  76. package/lib/NullFactory.js +6 -2
  77. package/lib/OptionsApply.js +7 -3
  78. package/lib/Parser.js +7 -3
  79. package/lib/PlatformPlugin.js +2 -2
  80. package/lib/PrefetchPlugin.js +1 -1
  81. package/lib/ProgressPlugin.js +16 -13
  82. package/lib/ProvidePlugin.js +3 -5
  83. package/lib/RawModule.js +25 -17
  84. package/lib/RecordIdsPlugin.js +3 -3
  85. package/lib/RequestShortener.js +1 -1
  86. package/lib/ResolverFactory.js +2 -2
  87. package/lib/RuntimeGlobals.js +22 -10
  88. package/lib/RuntimeModule.js +29 -19
  89. package/lib/RuntimePlugin.js +346 -256
  90. package/lib/RuntimeTemplate.js +2792 -352
  91. package/lib/SelfModuleFactory.js +7 -3
  92. package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
  93. package/lib/SourceMapDevToolPlugin.js +30 -20
  94. package/lib/Stats.js +3 -4
  95. package/lib/Template.js +55 -25
  96. package/lib/TemplatedPathPlugin.js +96 -14
  97. package/lib/UseStrictPlugin.js +4 -6
  98. package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
  99. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  100. package/lib/WarnNoModeSetPlugin.js +1 -1
  101. package/lib/WatchIgnorePlugin.js +8 -6
  102. package/lib/Watching.js +8 -8
  103. package/lib/WebpackIsIncludedPlugin.js +2 -4
  104. package/lib/WebpackOptionsApply.js +308 -18
  105. package/lib/WebpackOptionsDefaulter.js +6 -2
  106. package/lib/asset/AssetBytesGenerator.js +12 -10
  107. package/lib/asset/AssetBytesParser.js +2 -4
  108. package/lib/asset/AssetGenerator.js +188 -95
  109. package/lib/asset/AssetModule.js +7 -3
  110. package/lib/asset/AssetModulesPlugin.js +110 -38
  111. package/lib/asset/AssetParser.js +9 -7
  112. package/lib/asset/AssetSourceGenerator.js +60 -13
  113. package/lib/asset/AssetSourceParser.js +2 -4
  114. package/lib/asset/RawDataUrlModule.js +24 -16
  115. package/lib/asset/WebManifestGenerator.js +8 -10
  116. package/lib/asset/WebManifestParser.js +24 -10
  117. package/lib/async-modules/AsyncModuleHelpers.js +2 -2
  118. package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
  119. package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
  120. package/lib/async-modules/isGeneratorLowered.js +4 -4
  121. package/lib/buildChunkGraph.js +36 -27
  122. package/lib/bun/BunTargetPlugin.js +1 -1
  123. package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
  124. package/lib/cache/AddManagedPathsPlugin.js +1 -1
  125. package/lib/cache/IdleFileCachePlugin.js +2 -2
  126. package/lib/cache/MemoryCachePlugin.js +18 -10
  127. package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
  128. package/lib/cache/PackFileCacheStrategy.js +289 -28
  129. package/lib/cache/ResolverCachePlugin.js +38 -18
  130. package/lib/cache/getLazyHashedEtag.js +1 -2
  131. package/lib/cache/mergeEtags.js +1 -1
  132. package/lib/cli.js +1 -3
  133. package/lib/config/browserslistTargetHandler.js +41 -5
  134. package/lib/config/defaults.js +282 -81
  135. package/lib/config/defineConfig.js +10 -2
  136. package/lib/config/getClaimedAssetTypes.js +65 -0
  137. package/lib/config/normalization.js +36 -16
  138. package/lib/config/target.js +46 -3
  139. package/lib/container/ContainerEntryDependency.js +1 -1
  140. package/lib/container/ContainerEntryModule.js +24 -15
  141. package/lib/container/ContainerEntryModuleFactory.js +7 -3
  142. package/lib/container/ContainerPlugin.js +9 -10
  143. package/lib/container/ContainerReferencePlugin.js +6 -2
  144. package/lib/container/FallbackDependency.js +1 -1
  145. package/lib/container/FallbackModule.js +24 -17
  146. package/lib/container/FallbackModuleFactory.js +7 -3
  147. package/lib/container/HoistContainerReferencesPlugin.js +53 -66
  148. package/lib/container/ModuleFederationPlugin.js +7 -18
  149. package/lib/container/RemoteModule.js +27 -19
  150. package/lib/container/RemoteRuntimeModule.js +10 -8
  151. package/lib/container/moduleFederationHooks.js +32 -0
  152. package/lib/css/CssGenerator.js +178 -44
  153. package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
  154. package/lib/css/CssLoadingRuntimeModule.js +82 -36
  155. package/lib/css/CssModule.js +10 -7
  156. package/lib/css/CssModulesPlugin.js +197 -106
  157. package/lib/css/CssParser.js +1248 -618
  158. package/lib/css/CssServerStylesRuntimeModule.js +54 -0
  159. package/lib/css/cssMinify.js +168 -0
  160. package/lib/css/data.js +5324 -0
  161. package/lib/css/syntax.js +10396 -952
  162. package/lib/debug/ProfilingPlugin.js +14 -9
  163. package/lib/deno/DenoTargetPlugin.js +1 -1
  164. package/lib/dependencies/AMDDefineDependency.js +112 -87
  165. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
  166. package/lib/dependencies/AMDPlugin.js +9 -7
  167. package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
  168. package/lib/dependencies/AMDRequireContextDependency.js +2 -2
  169. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
  170. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
  171. package/lib/dependencies/AMDRequireDependency.js +8 -7
  172. package/lib/dependencies/AMDRequireItemDependency.js +1 -1
  173. package/lib/dependencies/AMDRuntimeModules.js +21 -1
  174. package/lib/dependencies/BuildTimeConstDependency.js +102 -0
  175. package/lib/dependencies/CachedConstDependency.js +11 -8
  176. package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
  177. package/lib/dependencies/CommonJsExportRequireDependency.js +140 -45
  178. package/lib/dependencies/CommonJsExportsDependency.js +53 -49
  179. package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
  180. package/lib/dependencies/CommonJsFullRequireDependency.js +140 -26
  181. package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -48
  182. package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
  183. package/lib/dependencies/CommonJsPlugin.js +35 -6
  184. package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
  185. package/lib/dependencies/CommonJsRequireDependency.js +156 -27
  186. package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
  187. package/lib/dependencies/ConstDependency.js +8 -9
  188. package/lib/dependencies/ContextDependency.js +12 -8
  189. package/lib/dependencies/ContextDependencyHelpers.js +14 -9
  190. package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
  191. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
  192. package/lib/dependencies/ContextElementDependency.js +31 -12
  193. package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
  194. package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
  195. package/lib/dependencies/CssIcssExportDependency.js +56 -28
  196. package/lib/dependencies/CssIcssImportDependency.js +17 -13
  197. package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
  198. package/lib/dependencies/CssImportDependency.js +18 -9
  199. package/lib/dependencies/CssUrlDependency.js +17 -13
  200. package/lib/dependencies/DllEntryDependency.js +1 -1
  201. package/lib/dependencies/DynamicExports.js +2 -2
  202. package/lib/dependencies/ExportBindingInitFragment.js +36 -9
  203. package/lib/dependencies/ExportsInfoDependency.js +7 -8
  204. package/lib/dependencies/ExternalModuleDependency.js +9 -5
  205. package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
  206. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
  207. package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
  208. package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
  209. package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
  210. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +15 -11
  211. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
  212. package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
  213. package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
  214. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +159 -71
  215. package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
  216. package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
  217. package/lib/dependencies/HarmonyExports.js +7 -4
  218. package/lib/dependencies/HarmonyImportDependency.js +28 -20
  219. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
  220. package/lib/dependencies/HarmonyImportGuard.js +21 -30
  221. package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
  222. package/lib/dependencies/HarmonyImportSpecifierDependency.js +106 -55
  223. package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
  224. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
  225. package/lib/dependencies/HtmlEntryDependency.js +37 -29
  226. package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
  227. package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
  228. package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
  229. package/lib/dependencies/HtmlSourceDependency.js +22 -14
  230. package/lib/dependencies/ImportContextDependency.js +2 -2
  231. package/lib/dependencies/ImportDependency.js +24 -20
  232. package/lib/dependencies/ImportEagerDependency.js +6 -9
  233. package/lib/dependencies/ImportMetaContextDependency.js +2 -2
  234. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
  235. package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
  236. package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
  237. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
  238. package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
  239. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
  240. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
  241. package/lib/dependencies/ImportMetaPlugin.js +154 -71
  242. package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
  243. package/lib/dependencies/ImportParserPlugin.js +49 -35
  244. package/lib/dependencies/ImportPhase.js +12 -5
  245. package/lib/dependencies/ImportPlugin.js +7 -3
  246. package/lib/dependencies/ImportWeakDependency.js +6 -9
  247. package/lib/dependencies/JsonExportsDependency.js +11 -7
  248. package/lib/dependencies/LoaderDependency.js +2 -2
  249. package/lib/dependencies/LoaderImportDependency.js +2 -2
  250. package/lib/dependencies/LoaderPlugin.js +11 -7
  251. package/lib/dependencies/LocalModuleDependency.js +5 -5
  252. package/lib/dependencies/LocalModulesHelpers.js +1 -1
  253. package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
  254. package/lib/dependencies/ModuleDependency.js +9 -6
  255. package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
  256. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
  257. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  258. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
  259. package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
  260. package/lib/dependencies/NullDependency.js +3 -3
  261. package/lib/dependencies/ProvidedDependency.js +14 -10
  262. package/lib/dependencies/PureExpressionDependency.js +9 -10
  263. package/lib/dependencies/RequireContextDependency.js +2 -2
  264. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
  265. package/lib/dependencies/RequireContextPlugin.js +8 -4
  266. package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
  267. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
  268. package/lib/dependencies/RequireEnsureDependency.js +8 -7
  269. package/lib/dependencies/RequireEnsurePlugin.js +7 -3
  270. package/lib/dependencies/RequireHeaderDependency.js +51 -12
  271. package/lib/dependencies/RequireIncludeDependency.js +6 -6
  272. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
  273. package/lib/dependencies/RequireIncludePlugin.js +7 -3
  274. package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
  275. package/lib/dependencies/RequireResolveContextDependency.js +2 -2
  276. package/lib/dependencies/RequireResolveDependency.js +4 -4
  277. package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
  278. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
  279. package/lib/dependencies/StaticExportsDependency.js +2 -2
  280. package/lib/dependencies/SystemPlugin.js +10 -6
  281. package/lib/dependencies/SystemRuntimeModule.js +10 -0
  282. package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
  283. package/lib/dependencies/URLContextDependency.js +2 -2
  284. package/lib/dependencies/URLDependency.js +110 -64
  285. package/lib/dependencies/URLPlugin.js +7 -3
  286. package/lib/dependencies/UnsupportedDependency.js +4 -4
  287. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
  288. package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
  289. package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
  290. package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
  291. package/lib/dependencies/WorkerDependency.js +28 -22
  292. package/lib/dependencies/WorkletDependency.js +15 -14
  293. package/lib/dependencies/getFunctionExpression.js +8 -4
  294. package/lib/dependencies/processExportInfo.js +5 -5
  295. package/lib/dll/DelegatedModule.js +34 -22
  296. package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
  297. package/lib/dll/DelegatedPlugin.js +2 -2
  298. package/lib/dll/DllEntryPlugin.js +2 -2
  299. package/lib/dll/DllModule.js +22 -15
  300. package/lib/dll/DllModuleFactory.js +7 -3
  301. package/lib/dll/DllPlugin.js +7 -5
  302. package/lib/dll/DllReferencePlugin.js +10 -7
  303. package/lib/dll/LibManifestPlugin.js +5 -5
  304. package/lib/electron/ElectronTargetPlugin.js +53 -49
  305. package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
  306. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  307. package/lib/errors/BroadContextsWarning.js +43 -0
  308. package/lib/errors/BuildCycleError.js +1 -1
  309. package/lib/errors/CacheEffectivenessWarning.js +55 -0
  310. package/lib/errors/ChunkRenderError.js +1 -1
  311. package/lib/errors/CircularDependenciesWarning.js +38 -0
  312. package/lib/errors/CodeGenerationError.js +1 -1
  313. package/lib/errors/CommentCompilationWarning.js +1 -1
  314. package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
  315. package/lib/errors/DuplicateModulesWarning.js +45 -0
  316. package/lib/errors/DynamicExportsWarning.js +30 -0
  317. package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
  318. package/lib/errors/EntrypointOverlapWarning.js +45 -0
  319. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  320. package/lib/errors/EvalUsageWarning.js +28 -0
  321. package/lib/errors/HookWebpackError.js +5 -5
  322. package/lib/errors/HotspotsWarning.js +57 -0
  323. package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
  324. package/lib/errors/InlinedAssetsWarning.js +36 -0
  325. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  326. package/lib/errors/LargeModulesWarning.js +45 -0
  327. package/lib/errors/LegacyJavascriptWarning.js +48 -0
  328. package/lib/errors/MissingSideEffectsWarning.js +36 -0
  329. package/lib/errors/MixedExportsWarning.js +41 -0
  330. package/lib/errors/ModuleDependencyError.js +13 -16
  331. package/lib/errors/ModuleDependencyWarning.js +5 -15
  332. package/lib/errors/ModuleHashingError.js +1 -1
  333. package/lib/errors/ModuleNotFoundError.js +2 -2
  334. package/lib/errors/ModuleParseError.js +1 -2
  335. package/lib/errors/ModuleRestoreError.js +1 -1
  336. package/lib/errors/ModuleStoreError.js +1 -1
  337. package/lib/errors/NodeStuffInWebError.js +1 -1
  338. package/lib/errors/OsDependentRuleWarning.js +31 -0
  339. package/lib/errors/PureAnnotationsWarning.js +36 -0
  340. package/lib/errors/RedundantDynamicImportWarning.js +31 -0
  341. package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
  342. package/lib/errors/SplitChunksCappedWarning.js +41 -0
  343. package/lib/errors/TinyChunksWarning.js +40 -0
  344. package/lib/errors/TopLevelThisWarning.js +34 -0
  345. package/lib/errors/UnsplitVendorsWarning.js +42 -0
  346. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  347. package/lib/errors/UnusedAliasesWarning.js +29 -0
  348. package/lib/errors/UnusedDefinesWarning.js +29 -0
  349. package/lib/errors/UnusedExternalsWarning.js +29 -0
  350. package/lib/errors/UnusedReexportsWarning.js +42 -0
  351. package/lib/errors/UnusedRuleWarning.js +29 -0
  352. package/lib/errors/WebpackError.js +9 -5
  353. package/lib/errors/deriveStackFromNestedError.js +90 -0
  354. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  355. package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
  356. package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
  357. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +170 -71
  358. package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
  359. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  360. package/lib/hmr/LazyCompilationPlugin.js +45 -24
  361. package/lib/hmr/lazyCompilationBackend.js +28 -10
  362. package/lib/hmr/parserHooks.js +56 -0
  363. package/lib/html/HtmlGenerator.js +299 -79
  364. package/lib/html/HtmlModule.js +7 -3
  365. package/lib/html/HtmlModulesPlugin.js +312 -174
  366. package/lib/html/HtmlParser.js +31 -86
  367. package/lib/html/data.js +1928 -0
  368. package/lib/html/htmlMinify.js +288 -0
  369. package/lib/html/syntax.js +7819 -3331
  370. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
  371. package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
  372. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  373. package/lib/ids/HashedModuleIdsPlugin.js +6 -2
  374. package/lib/ids/IdHelpers.js +31 -18
  375. package/lib/ids/NamedChunkIdsPlugin.js +1 -1
  376. package/lib/ids/NamedModuleIdsPlugin.js +1 -1
  377. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  378. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  379. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
  380. package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
  381. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  382. package/lib/index.js +10 -0
  383. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
  384. package/lib/javascript/BasicEvaluatedExpression.js +18 -14
  385. package/lib/javascript/ChunkFormatHelpers.js +6 -6
  386. package/lib/javascript/ChunkHelpers.js +1 -1
  387. package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
  388. package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
  389. package/lib/javascript/JavascriptGenerator.js +65 -165
  390. package/lib/javascript/JavascriptModule.js +9 -3
  391. package/lib/javascript/JavascriptModulesPlugin.js +181 -162
  392. package/lib/javascript/JavascriptParser.js +291 -112
  393. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  394. package/lib/javascript/ScopeAnalyzer.js +1094 -0
  395. package/lib/javascript/StartupHelpers.js +55 -9
  396. package/lib/javascript/syntax.js +3403 -300
  397. package/lib/json/JsonData.js +8 -4
  398. package/lib/json/JsonGenerator.js +38 -16
  399. package/lib/json/JsonModule.js +7 -3
  400. package/lib/json/JsonModulesPlugin.js +1 -1
  401. package/lib/json/JsonParser.js +5 -6
  402. package/lib/library/AbstractLibraryPlugin.js +20 -14
  403. package/lib/library/AmdLibraryPlugin.js +11 -7
  404. package/lib/library/AssignLibraryPlugin.js +19 -13
  405. package/lib/library/EnableLibraryPlugin.js +2 -2
  406. package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
  407. package/lib/library/JsonpLibraryPlugin.js +11 -7
  408. package/lib/library/ModuleLibraryPlugin.js +256 -64
  409. package/lib/library/SystemLibraryPlugin.js +12 -8
  410. package/lib/library/UmdLibraryPlugin.js +62 -25
  411. package/lib/loaders/LoaderRunner.js +14 -1
  412. package/lib/loaders/loadLoader.js +8 -4
  413. package/lib/logging/createConsoleLogger.js +7 -4
  414. package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
  415. package/lib/node/NodeEnvironmentPlugin.js +17 -3
  416. package/lib/node/NodeSourcePlugin.js +1 -1
  417. package/lib/node/NodeTargetPlugin.js +4 -3
  418. package/lib/node/NodeTemplatePlugin.js +1 -1
  419. package/lib/node/NodeWatchFileSystem.js +70 -9
  420. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
  421. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +81 -20
  422. package/lib/node/ReadFileCompileWasmPlugin.js +37 -17
  423. package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
  424. package/lib/node/nodeConsole.js +7 -3
  425. package/lib/optimize/AggressiveMergingPlugin.js +21 -17
  426. package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
  427. package/lib/optimize/ConcatenatedModule.js +996 -477
  428. package/lib/optimize/ConstExportsPlugin.js +11 -7
  429. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  430. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
  431. package/lib/optimize/InlineExports.js +9 -5
  432. package/lib/optimize/InnerGraph.js +28 -12
  433. package/lib/optimize/InnerGraphPlugin.js +23 -18
  434. package/lib/optimize/LimitChunkCountPlugin.js +7 -3
  435. package/lib/optimize/MangleExportsPlugin.js +7 -8
  436. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
  437. package/lib/optimize/MinChunkSizePlugin.js +7 -3
  438. package/lib/optimize/ModuleConcatenationPlugin.js +124 -59
  439. package/lib/optimize/RealContentHashPlugin.js +20 -13
  440. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  441. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  442. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  443. package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
  444. package/lib/optimize/SplitChunksPlugin.js +232 -68
  445. package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
  446. package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
  447. package/lib/performance/BroadContextsPlugin.js +142 -0
  448. package/lib/performance/CacheEffectivenessPlugin.js +125 -0
  449. package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
  450. package/lib/performance/DuplicateModulesPlugin.js +93 -0
  451. package/lib/performance/DuplicatePackagesPlugin.js +119 -0
  452. package/lib/performance/DuplicatePackagesWarning.js +84 -0
  453. package/lib/performance/DynamicExportsPlugin.js +120 -0
  454. package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
  455. package/lib/performance/EntrypointOverlapPlugin.js +122 -0
  456. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
  457. package/lib/performance/EvalUsagePlugin.js +115 -0
  458. package/lib/performance/HotspotsPlugin.js +296 -0
  459. package/lib/performance/InlinedAssetsPlugin.js +99 -0
  460. package/lib/performance/LargeModulesPlugin.js +126 -0
  461. package/lib/performance/LegacyJavascriptPlugin.js +139 -0
  462. package/lib/performance/MissingSideEffectsPlugin.js +138 -0
  463. package/lib/performance/MixedExportsPlugin.js +136 -0
  464. package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
  465. package/lib/performance/PureAnnotationsPlugin.js +219 -0
  466. package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
  467. package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
  468. package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
  469. package/lib/performance/SizeLimitsPlugin.js +139 -7
  470. package/lib/performance/SplitChunksCappedPlugin.js +99 -0
  471. package/lib/performance/TinyChunksPlugin.js +128 -0
  472. package/lib/performance/TopLevelThisPlugin.js +208 -0
  473. package/lib/performance/UnsplitVendorsPlugin.js +112 -0
  474. package/lib/performance/UnusedAliasesPlugin.js +253 -0
  475. package/lib/performance/UnusedDefinesPlugin.js +87 -0
  476. package/lib/performance/UnusedExternalsPlugin.js +110 -0
  477. package/lib/performance/UnusedReexportsPlugin.js +159 -0
  478. package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
  479. package/lib/performance/getModuleSize.js +22 -0
  480. package/lib/performance/getSourceModules.js +22 -0
  481. package/lib/performance/hasOnlyUnusedExports.js +40 -0
  482. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
  483. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
  484. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
  485. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  486. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  487. package/lib/prefetch/ResourceHintPlugin.js +377 -136
  488. package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
  489. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
  490. package/lib/prefetch/parseResourceHintOptions.js +31 -4
  491. package/lib/rules/BasicEffectRulePlugin.js +2 -2
  492. package/lib/rules/BasicMatcherRulePlugin.js +8 -4
  493. package/lib/rules/GlobMatcherRulePlugin.js +68 -0
  494. package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
  495. package/lib/rules/RuleSetCompiler.js +146 -12
  496. package/lib/rules/UseEffectRulePlugin.js +18 -11
  497. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
  498. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  499. package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
  500. package/lib/runtime/BaseUriRuntimeModule.js +33 -7
  501. package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
  502. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
  503. package/lib/runtime/CompatRuntimeModule.js +5 -3
  504. package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
  505. package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
  506. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
  507. package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
  508. package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
  509. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
  510. package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
  511. package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
  512. package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
  513. package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
  514. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
  515. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
  516. package/lib/runtime/GlobalRuntimeModule.js +18 -0
  517. package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
  518. package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
  519. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
  520. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
  521. package/lib/runtime/NonceRuntimeModule.js +10 -0
  522. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
  523. package/lib/runtime/PublicPathRuntimeModule.js +12 -2
  524. package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
  525. package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
  526. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
  527. package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
  528. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  529. package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
  530. package/lib/runtime/SystemContextRuntimeModule.js +10 -0
  531. package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
  532. package/lib/runtime/WorkerRuntimeModule.js +11 -1
  533. package/lib/runtime/baseUri.js +63 -0
  534. package/lib/schemes/DataUriPlugin.js +1 -1
  535. package/lib/schemes/FileUriPlugin.js +1 -1
  536. package/lib/schemes/HttpUriPlugin.js +24 -15
  537. package/lib/schemes/VirtualUrlPlugin.js +13 -7
  538. package/lib/serialization/AggregateErrorSerializer.js +1 -1
  539. package/lib/serialization/BinaryMiddleware.js +274 -942
  540. package/lib/serialization/ErrorObjectSerializer.js +1 -1
  541. package/lib/serialization/FileMiddleware.js +305 -66
  542. package/lib/serialization/ObjectMiddleware.js +139 -114
  543. package/lib/serialization/PlainObjectSerializer.js +19 -16
  544. package/lib/sharing/ConsumeSharedModule.js +30 -21
  545. package/lib/sharing/ConsumeSharedPlugin.js +18 -10
  546. package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
  547. package/lib/sharing/ProvideSharedModule.js +25 -16
  548. package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
  549. package/lib/sharing/ProvideSharedPlugin.js +8 -4
  550. package/lib/sharing/SharePlugin.js +17 -5
  551. package/lib/sharing/ShareRuntimeModule.js +4 -4
  552. package/lib/sharing/resolveMatchedConfigs.js +9 -6
  553. package/lib/sharing/utils.js +1 -3
  554. package/lib/stats/DefaultStatsFactoryPlugin.js +253 -226
  555. package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
  556. package/lib/stats/DefaultStatsPrinterPlugin.js +60 -192
  557. package/lib/stats/StatsFactory.js +56 -35
  558. package/lib/stats/StatsPrinter.js +16 -12
  559. package/lib/typescript/TypeScriptPlugin.js +12 -14
  560. package/lib/url/URLParserPlugin.js +26 -13
  561. package/lib/util/AsyncQueue.js +4 -3
  562. package/lib/util/Hash.js +5 -1
  563. package/lib/util/LazySet.js +35 -22
  564. package/lib/util/LocConverter.js +36 -13
  565. package/lib/util/SourceProcessor.js +1050 -24
  566. package/lib/util/StringXor.js +1 -1
  567. package/lib/util/chainedImports.js +9 -5
  568. package/lib/util/cleverMerge.js +1 -1
  569. package/lib/util/comparators.js +45 -14
  570. package/lib/util/concatenate.js +203 -77
  571. package/lib/util/conventions.js +5 -1
  572. package/lib/util/createHash.js +2 -2
  573. package/lib/util/createHooksRegistry.js +8 -10
  574. package/lib/util/dataURL.js +225 -1
  575. package/lib/util/extractSourceMap.js +4 -3
  576. package/lib/util/findCaseMismatch.js +139 -0
  577. package/lib/util/formatLocation.js +1 -2
  578. package/lib/util/fs.js +22 -5
  579. package/lib/util/globUtils.js +298 -24
  580. package/lib/util/hash/BatchedHash.js +5 -1
  581. package/lib/util/hash/BulkUpdateHash.js +5 -1
  582. package/lib/util/hash/DebugHash.js +5 -1
  583. package/lib/util/hash/hash-digest.js +6 -2
  584. package/lib/util/identifier.js +25 -1
  585. package/lib/util/implicitTypeLoaderFallback.js +1 -1
  586. package/lib/util/internalSerializables.js +6 -0
  587. package/lib/util/lazyModule.js +56 -0
  588. package/lib/util/makeSerializable.js +7 -3
  589. package/lib/util/matchAlias.js +25 -0
  590. package/lib/util/mimeTypes.js +11 -5
  591. package/lib/util/nonNumericOnlyHash.js +4 -3
  592. package/lib/util/parseJson.js +5 -3
  593. package/lib/util/preloadModuleType.js +32 -0
  594. package/lib/util/registerExternalSerializer.js +7 -5
  595. package/lib/util/runtime.js +2 -2
  596. package/lib/util/semver.js +1 -1
  597. package/lib/util/serialization.js +28 -28
  598. package/lib/util/source.js +2 -2
  599. package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
  600. package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
  601. package/lib/wasm/wasmModuleFilename.js +54 -0
  602. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
  603. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
  604. package/lib/wasm-async/AsyncWasmModule.js +3 -3
  605. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
  606. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
  607. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
  608. package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
  609. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
  610. package/lib/wasm-sync/SyncWasmModule.js +2 -2
  611. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
  612. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
  613. package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
  614. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
  615. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
  616. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
  617. package/lib/wasm-sync/WebAssemblyParser.js +4 -6
  618. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  619. package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
  620. package/lib/web/FetchCompileWasmPlugin.js +46 -16
  621. package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
  622. package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
  623. package/lib/web/JsonpTemplatePlugin.js +2 -2
  624. package/lib/webpack.js +22 -11
  625. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
  626. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
  627. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  628. package/module.d.ts +1 -0
  629. package/package.json +37 -30
  630. package/schemas/WebpackOptions.check.js +1 -1
  631. package/schemas/WebpackOptions.json +780 -91
  632. package/schemas/plugins/HtmlParserOptions.check.js +1 -1
  633. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  634. package/schemas/plugins/container/ContainerPlugin.json +10 -0
  635. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  636. package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
  637. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
  638. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  639. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  640. package/types.d.ts +4013 -738
  641. package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
@@ -5,9 +5,13 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @typedef {import("./ModuleFactory").ModuleFactoryCallback} ModuleFactoryCallback */
9
- /** @typedef {import("./ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
10
- /** @typedef {import("./ModuleGraph")} ModuleGraph */
8
+ /**
9
+ * @import {
10
+ * ModuleFactoryCallback,
11
+ * ModuleFactoryCreateData
12
+ * } from "./ModuleFactory"
13
+ */
14
+ /** @import ModuleGraph from "./ModuleGraph" */
11
15
 
12
16
  class SelfModuleFactory {
13
17
  /**
@@ -7,8 +7,12 @@
7
7
 
8
8
  const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
9
9
 
10
- /** @typedef {import("../declarations/plugins/SourceMapDevToolPlugin").SourceMapDevToolPluginOptions} SourceMapDevToolPluginOptions */
11
- /** @typedef {import("./Compilation")} Compilation */
10
+ /**
11
+ * @import {
12
+ * SourceMapDevToolPluginOptions
13
+ * } from "../declarations/plugins/SourceMapDevToolPlugin"
14
+ */
15
+ /** @import Compilation from "./Compilation" */
12
16
 
13
17
  const PLUGIN_NAME = "SourceMapDevToolModuleOptionsPlugin";
14
18
 
@@ -17,22 +17,31 @@ const { dirname, relative } = require("./util/fs");
17
17
  const generateDebugId = require("./util/generateDebugId");
18
18
  const { makePathsAbsolute } = require("./util/identifier");
19
19
 
20
- /** @typedef {import("webpack-sources").MapOptions} MapOptions */
21
- /** @typedef {import("webpack-sources").Source} Source */
22
- /** @typedef {import("../declarations/WebpackOptions").DevtoolNamespace} DevtoolNamespace */
23
- /** @typedef {import("../declarations/WebpackOptions").DevtoolModuleFilenameTemplate} DevtoolModuleFilenameTemplate */
24
- /** @typedef {import("../declarations/WebpackOptions").DevtoolFallbackModuleFilenameTemplate} DevtoolFallbackModuleFilenameTemplate */
25
- /** @typedef {import("../declarations/plugins/SourceMapDevToolPlugin").SourceMapDevToolPluginOptions} SourceMapDevToolPluginOptions */
26
- /** @typedef {import("../declarations/plugins/SourceMapDevToolPlugin").Rules} Rules */
27
- /** @typedef {import("./CacheFacade").ItemCacheFacade} ItemCacheFacade */
28
- /** @typedef {import("./Chunk")} Chunk */
29
- /** @typedef {import("./Compilation").Asset} Asset */
30
- /** @typedef {import("./Compilation").AssetInfo} AssetInfo */
31
- /** @typedef {import("./Compiler")} Compiler */
32
- /** @typedef {import("./Module")} Module */
33
- /** @typedef {import("./NormalModule").RawSourceMap} RawSourceMap */
34
- /** @typedef {import("./TemplatedPathPlugin").TemplatePath} SourceMappingURLComment */
35
- /** @typedef {import("./util/fs").OutputFileSystem} OutputFileSystem */
20
+ /** @import { MapOptions, Source, RawSourceMap } from "webpack-sources" */
21
+ /**
22
+ * @import {
23
+ * DevtoolNamespace,
24
+ * DevtoolModuleFilenameTemplate,
25
+ * DevtoolFallbackModuleFilenameTemplate
26
+ * } from "../declarations/WebpackOptions"
27
+ */
28
+ /**
29
+ * @import {
30
+ * SourceMapDevToolPluginOptions,
31
+ * Rules
32
+ * } from "../declarations/plugins/SourceMapDevToolPlugin"
33
+ */
34
+ /** @import { ItemCacheFacade } from "./CacheFacade" */
35
+ /** @import Chunk from "./Chunk" */
36
+ /** @import { Asset, AssetInfo } from "./Compilation" */
37
+ /** @import Compiler from "./Compiler" */
38
+ /** @import Module from "./Module" */
39
+ /**
40
+ * @import {
41
+ * TemplatePath as SourceMappingURLComment
42
+ * } from "./TemplatedPathPlugin"
43
+ */
44
+ /** @import { OutputFileSystem } from "./util/fs" */
36
45
 
37
46
  /**
38
47
  * Defines the source map task type used by this module.
@@ -43,7 +52,7 @@ const { makePathsAbsolute } = require("./util/identifier");
43
52
  * @property {string} file
44
53
  * @property {RawSourceMap} sourceMap
45
54
  * @property {Source} mapSource the Source instance whose `sourceAndMap` we called (the current asset or, when its map was already stripped, the pinned original from `originalSources`) — what `clearCache` should target
46
- * @property {ItemCacheFacade} cacheItem cache item
55
+ * @property {InstanceType<ItemCacheFacade>} cacheItem cache item
47
56
  */
48
57
 
49
58
  const METACHARACTERS_REGEXP = /[-[\]\\/{}()*+?.^$|]/g;
@@ -164,7 +173,7 @@ const extractSourceAndMap = (file, asset, options, registry) => {
164
173
  * @param {AssetInfo} assetInfo the asset info
165
174
  * @param {MapOptions} options source map options
166
175
  * @param {Compilation} compilation compilation instance
167
- * @param {ItemCacheFacade} cacheItem cache item
176
+ * @param {InstanceType<ItemCacheFacade>} cacheItem cache item
168
177
  * @param {Map<string, Source>} registry compilation-scoped original-source registry
169
178
  * @returns {SourceMapTask | undefined} created task instance or `undefined`
170
179
  */
@@ -243,11 +252,12 @@ class SourceMapDevToolPlugin {
243
252
  options.append || "\n//# source" + "MappingURL=[url]";
244
253
  /** @type {DevtoolModuleFilenameTemplate} */
245
254
  this.moduleFilenameTemplate =
246
- options.moduleFilenameTemplate || "webpack://[namespace]/[resourcePath]";
255
+ options.moduleFilenameTemplate ||
256
+ ModuleFilenameHelpers.DEFAULT_MODULE_FILENAME_TEMPLATE;
247
257
  /** @type {DevtoolFallbackModuleFilenameTemplate} */
248
258
  this.fallbackModuleFilenameTemplate =
249
259
  options.fallbackModuleFilenameTemplate ||
250
- "webpack://[namespace]/[resourcePath]?[hash]";
260
+ ModuleFilenameHelpers.DEFAULT_FALLBACK_MODULE_FILENAME_TEMPLATE;
251
261
  /** @type {DevtoolNamespace} */
252
262
  this.namespace = options.namespace || "";
253
263
  /** @type {SourceMapDevToolPluginOptions} */
package/lib/Stats.js CHANGED
@@ -5,10 +5,9 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @typedef {import("../declarations/WebpackOptions").StatsOptions} StatsOptions */
9
- /** @typedef {import("../declarations/WebpackOptions").StatsValue} StatsValue */
10
- /** @typedef {import("./Compilation")} Compilation */
11
- /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsCompilation} StatsCompilation */
8
+ /** @import { StatsValue } from "../declarations/WebpackOptions" */
9
+ /** @import Compilation from "./Compilation" */
10
+ /** @import { StatsCompilation } from "./stats/DefaultStatsFactoryPlugin" */
12
11
 
13
12
  class Stats {
14
13
  /**
package/lib/Template.js CHANGED
@@ -9,23 +9,28 @@ const { ConcatSource, PrefixSource } = require("webpack-sources");
9
9
  const { WEBPACK_MODULE_TYPE_RUNTIME } = require("./ModuleTypeConstants");
10
10
  const RuntimeGlobals = require("./RuntimeGlobals");
11
11
 
12
- /** @typedef {import("webpack-sources").Source} Source */
13
- /** @typedef {import("./config/defaults").OutputNormalizedWithDefaults} OutputOptions */
14
- /** @typedef {import("./Chunk")} Chunk */
15
- /** @typedef {import("./ChunkGraph")} ChunkGraph */
16
- /** @typedef {import("./ChunkGraph").ModuleId} ModuleId */
17
- /** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */
18
- /** @typedef {import("./Compilation").AssetInfo} AssetInfo */
19
- /** @typedef {import("./Compilation").PathData} PathData */
20
- /** @typedef {import("./DependencyTemplates")} DependencyTemplates */
21
- /** @typedef {import("./Module")} Module */
22
- /** @typedef {import("./ModuleGraph")} ModuleGraph */
23
- /** @typedef {import("./ModuleTemplate")} ModuleTemplate */
24
- /** @typedef {import("./RuntimeModule")} RuntimeModule */
25
- /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
26
- /** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */
27
- /** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
28
- /** @typedef {import("./javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
12
+ /** @import { Source } from "webpack-sources" */
13
+ /**
14
+ * @import {
15
+ * OutputNormalizedWithDefaults as OutputOptions
16
+ * } from "./config/defaults"
17
+ */
18
+ /** @import Chunk from "./Chunk" */
19
+ /** @import ChunkGraph, { ModuleId } from "./ChunkGraph" */
20
+ /** @import CodeGenerationResults from "./CodeGenerationResults" */
21
+ /** @import { AssetInfo, PathData } from "./Compilation" */
22
+ /** @import DependencyTemplates from "./DependencyTemplates" */
23
+ /** @import Module from "./Module" */
24
+ /** @import ModuleGraph from "./ModuleGraph" */
25
+ /** @import ModuleTemplate from "./ModuleTemplate" */
26
+ /** @import RuntimeModule from "./RuntimeModule" */
27
+ /** @import RuntimeTemplate from "./RuntimeTemplate" */
28
+ /**
29
+ * @import {
30
+ * ChunkRenderContext,
31
+ * RenderContext
32
+ * } from "./javascript/JavascriptModulesPlugin"
33
+ */
29
34
 
30
35
  const START_LOWERCASE_ALPHABET_CODE = "a".charCodeAt(0);
31
36
  const START_UPPERCASE_ALPHABET_CODE = "A".charCodeAt(0);
@@ -39,6 +44,9 @@ const FUNCTION_CONTENT_REGEX = /^function\s?\(\)\s?\{\r?\n?|\r?\n?\}$/g;
39
44
  const JSDOC_LINE_REGEX = /^[ \t]*\/\*\*(?:[^*]|\*(?!\/))*\*\/[ \t]*\r?\n/gm;
40
45
  const JSDOC_INLINE_REGEX = /\/\*\*(?:[^*]|\*(?!\/))*\*\/[ \t]*/g;
41
46
  const INDENT_MULTILINE_REGEX = /^\t/gm;
47
+ // Start of every non-blank line after the first. A lookahead keeps the next
48
+ // character out of the match, so the replacement neither captures nor re-emits it.
49
+ const LINE_START_REGEX = /\n(?=[^\n])/g;
42
50
  const LINE_SEPARATOR_REGEX = /\r?\n/g;
43
51
  const IDENTIFIER_NAME_REPLACE_REGEX = /^([^a-z$_])/i;
44
52
  const IDENTIFIER_ALPHA_NUMERIC_NAME_REPLACE_REGEX = /[^a-z0-9$]+/gi;
@@ -46,6 +54,22 @@ const COMMENT_END_REGEX = /\*\//g;
46
54
  const PATH_NAME_NORMALIZE_REPLACE_REGEX = /[^a-z0-9_!§$()=\-^°]+/gi;
47
55
  const MATCH_PADDED_HYPHENS_REPLACE_REGEX = /^-|-$/g;
48
56
 
57
+ /**
58
+ * Decimal digit count of a non-negative integer, without allocating a string.
59
+ * @param {number} n non-negative integer
60
+ * @returns {number} number of decimal digits
61
+ */
62
+ const numberLength = (n) => {
63
+ if (n < 10) return 1;
64
+ if (n < 100) return 2;
65
+ if (n < 1000) return 3;
66
+ if (n < 10000) return 4;
67
+ if (n < 100000) return 5;
68
+ if (n < 1000000) return 6;
69
+ if (n < 10000000) return 7;
70
+ return String(n).length;
71
+ };
72
+
49
73
  /**
50
74
  * Defines the render manifest options type used by this module.
51
75
  * @typedef {object} RenderManifestOptions
@@ -240,7 +264,7 @@ class Template {
240
264
  const str = s.trimEnd();
241
265
  if (!str) return "";
242
266
  const ind = str[0] === "\n" ? "" : "\t";
243
- return ind + str.replace(/\n([^\n])/g, "\n\t$1");
267
+ return ind + str.replace(LINE_START_REGEX, "\n\t");
244
268
  }
245
269
 
246
270
  /**
@@ -253,6 +277,8 @@ class Template {
253
277
  const str = Template.asString(s).trim();
254
278
  if (!str) return "";
255
279
  const ind = str[0] === "\n" ? "" : prefix;
280
+ // Keeps the capture group: `prefix` is caller-supplied and may itself hold
281
+ // `$&`/`$1`, which expand differently against a zero-width lookahead.
256
282
  return ind + str.replace(/\n([^\n])/g, `\n${prefix}$1`);
257
283
  }
258
284
 
@@ -296,11 +322,15 @@ class Template {
296
322
  // start with -1 because the first module needs no comma
297
323
  let objectOverhead = -1;
298
324
  for (const module of modules) {
299
- // module id + colon + comma
300
- objectOverhead += `${module.id}`.length + 2;
325
+ // module id digits + colon + comma; ids are non-negative integers here
326
+ // (non-number ids already returned false above), so count digits
327
+ // arithmetically instead of allocating a string per module.
328
+ const id = /** @type {number} */ (module.id);
329
+ objectOverhead += numberLength(id) + 2;
301
330
  }
302
331
  // number of commas, or when starting non-zero the length of Array(minId).concat()
303
- const arrayOverhead = minId === 0 ? maxId : 16 + `${minId}`.length + maxId;
332
+ const arrayOverhead =
333
+ minId === 0 ? maxId : 16 + numberLength(minId) + maxId;
304
334
  return arrayOverhead < objectOverhead ? [minId, maxId] : false;
305
335
  }
306
336
 
@@ -446,8 +476,8 @@ class Template {
446
476
  }
447
477
  }
448
478
 
449
- module.exports = Template;
450
- module.exports.NUMBER_OF_IDENTIFIER_CONTINUATION_CHARS =
479
+ Template.NUMBER_OF_IDENTIFIER_CONTINUATION_CHARS =
451
480
  NUMBER_OF_IDENTIFIER_CONTINUATION_CHARS;
452
- module.exports.NUMBER_OF_IDENTIFIER_START_CHARS =
453
- NUMBER_OF_IDENTIFIER_START_CHARS;
481
+ Template.NUMBER_OF_IDENTIFIER_START_CHARS = NUMBER_OF_IDENTIFIER_START_CHARS;
482
+
483
+ module.exports = Template;
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { basename, extname } = require("path");
8
+ const { basename, extname, posix } = require("path");
9
9
  const util = require("util");
10
10
  const Chunk = require("./Chunk");
11
11
  const Module = require("./Module");
@@ -13,19 +13,27 @@ const {
13
13
  decode: decodeBase,
14
14
  encode: encodeBase
15
15
  } = require("./util/hash/hash-digest");
16
- const { parseResource } = require("./util/identifier");
16
+ const {
17
+ ABSOLUTE_PATH_REGEXP,
18
+ WINDOWS_ABS_PATH_REGEXP,
19
+ WINDOWS_PATH_SEPARATOR_REGEXP,
20
+ parseResource
21
+ } = require("./util/identifier");
17
22
  const memoize = require("./util/memoize");
18
23
 
19
24
  const getMimeTypes = memoize(() => require("./util/mimeTypes"));
20
25
 
21
- /** @typedef {import("./ChunkGraph")} ChunkGraph */
22
- /** @typedef {import("./ChunkGraph").ModuleId} ModuleId */
23
- /** @typedef {import("./Compilation").AssetInfo} AssetInfo */
24
- /** @typedef {import("./Compilation").HashWithDigestFunction} HashWithDigestFunction */
25
- /** @typedef {import("./Compilation").PathData} PathData */
26
- /** @typedef {import("./Compilation").PathDataChunk} PathDataChunk */
27
- /** @typedef {import("./Compilation").PathDataModule} PathDataModule */
28
- /** @typedef {import("./Compiler")} Compiler */
26
+ /** @import ChunkGraph, { ModuleId } from "./ChunkGraph" */
27
+ /**
28
+ * @import Compilation, {
29
+ * AssetInfo,
30
+ * HashWithDigestFunction,
31
+ * PathData,
32
+ * PathDataChunk,
33
+ * PathDataModule
34
+ * } from "./Compilation"
35
+ */
36
+ /** @import Compiler from "./Compiler" */
29
37
 
30
38
  const REGEXP = /\[\\*([\w:]+)\\*\]/g;
31
39
 
@@ -69,6 +77,56 @@ const getPresentKinds = (path) => {
69
77
  return kinds;
70
78
  };
71
79
 
80
+ // `[fullhash:<digest>]`/`[hash:<digest>]` — a non-numeric first argument is a digest
81
+ // (a numeric one is just a length). A digest re-encodes the hash rather than reading
82
+ // it, so no stand-in or runtime expression can take its place: the settled value has
83
+ // to be inlined instead.
84
+ const FULL_HASH_DIGEST_REGEXP = /\[(?:fullhash|hash):(?!\d+\])\w/;
85
+
86
+ /**
87
+ * @param {string} template path template
88
+ * @returns {boolean} true when it references `[fullhash:<digest>]`/`[hash:<digest>]`
89
+ */
90
+ const usesFullHashDigest = (template) => FULL_HASH_DIGEST_REGEXP.test(template);
91
+
92
+ const PARENT_SEGMENTS_REGEXP = /^(?:\.\.\/)+/;
93
+
94
+ /**
95
+ * Maps a `[path]`/`[file]` value into the output directory: an absolute root or
96
+ * a leading `..` becomes `_` (as `file-loader` did), so a module resolved
97
+ * outside of `context` can't emit its asset outside of `output.path`.
98
+ * @param {string} path relative path of the source file
99
+ * @returns {string} path that stays inside the output directory
100
+ */
101
+ const toContainedPath = (path) => {
102
+ if (!path) return path;
103
+ // A resource on another Windows drive stays absolute and win32-separated
104
+ // when made relative to the context.
105
+ const normalized = posix.normalize(
106
+ WINDOWS_ABS_PATH_REGEXP.test(path)
107
+ ? path.replace(WINDOWS_PATH_SEPARATOR_REGEXP, "/")
108
+ : path
109
+ );
110
+ return normalized
111
+ .replace(ABSOLUTE_PATH_REGEXP, "_/")
112
+ .replace(PARENT_SEGMENTS_REGEXP, (match) => "_/".repeat(match.length / 3));
113
+ };
114
+
115
+ /**
116
+ * Source file name a filename template sees. `[path]`/`[file]` of a module
117
+ * resolved outside of `context` start with `..` and would emit the asset
118
+ * outside of `output.path`, so they are contained like
119
+ * `[containedpath]`/`[containedfile]` with `experiments.futureDefaults`.
120
+ * @param {string} sourceFilename context-relative path of the source file
121
+ * @param {Compilation} compilation compilation
122
+ * @returns {string} source file name for the filename template
123
+ */
124
+ const toTemplateSourceFileName = (sourceFilename, compilation) =>
125
+ // TODO webpack 6: remove the check, always contain
126
+ compilation.options.experiments.futureDefaults
127
+ ? toContainedPath(sourceFilename)
128
+ : sourceFilename;
129
+
72
130
  /** @type {PathData["prepareId"]} */
73
131
  const prepareId = (id) => {
74
132
  if (typeof id !== "string") return id;
@@ -376,6 +434,9 @@ const interpolate = (path, data, assetInfo) => {
376
434
  // [path] - /some/path/
377
435
  // [name] - file
378
436
  // [ext] - .js
437
+ //
438
+ // [containedfile] and [containedpath] are [file] and [path] kept inside
439
+ // `output.path`
379
440
  if (
380
441
  typeof data.filename === "string" &&
381
442
  (presentKinds.has("file") ||
@@ -385,7 +446,9 @@ const interpolate = (path, data, assetInfo) => {
385
446
  presentKinds.has("base") ||
386
447
  presentKinds.has("name") ||
387
448
  presentKinds.has("ext") ||
388
- presentKinds.has("filebase"))
449
+ presentKinds.has("filebase") ||
450
+ presentKinds.has("containedfile") ||
451
+ presentKinds.has("containedpath"))
389
452
  ) {
390
453
  // check that filename is data uri
391
454
  const match = data.filename.match(/^data:([^;,]+)/);
@@ -405,6 +468,12 @@ const interpolate = (path, data, assetInfo) => {
405
468
  replacements.set("fragment", emptyReplacer);
406
469
  }
407
470
  if (presentKinds.has("path")) replacements.set("path", emptyReplacer);
471
+ if (presentKinds.has("containedfile")) {
472
+ replacements.set("containedfile", emptyReplacer);
473
+ }
474
+ if (presentKinds.has("containedpath")) {
475
+ replacements.set("containedpath", emptyReplacer);
476
+ }
408
477
  if (presentKinds.has("base")) replacements.set("base", baseReplacer);
409
478
  if (presentKinds.has("name")) replacements.set("name", baseReplacer);
410
479
  if (presentKinds.has("ext")) {
@@ -439,6 +508,15 @@ const interpolate = (path, data, assetInfo) => {
439
508
  if (presentKinds.has("path")) {
440
509
  replacements.set("path", replacer(path, true));
441
510
  }
511
+ if (presentKinds.has("containedfile")) {
512
+ replacements.set("containedfile", replacer(toContainedPath(file)));
513
+ }
514
+ if (presentKinds.has("containedpath")) {
515
+ replacements.set(
516
+ "containedpath",
517
+ replacer(toContainedPath(path), true)
518
+ );
519
+ }
442
520
  if (presentKinds.has("base")) replacements.set("base", replacer(base));
443
521
  if (presentKinds.has("name")) replacements.set("name", replacer(name));
444
522
  if (presentKinds.has("ext")) replacements.set("ext", replacer(ext, true));
@@ -762,7 +840,11 @@ class TemplatedPathPlugin {
762
840
  }
763
841
  }
764
842
 
843
+ TemplatedPathPlugin.getPresentKinds = getPresentKinds;
844
+ TemplatedPathPlugin.interpolate = interpolate;
845
+ TemplatedPathPlugin.reEncodeDigest = reEncodeDigest;
846
+ TemplatedPathPlugin.toContainedPath = toContainedPath;
847
+ TemplatedPathPlugin.toTemplateSourceFileName = toTemplateSourceFileName;
848
+ TemplatedPathPlugin.usesFullHashDigest = usesFullHashDigest;
849
+
765
850
  module.exports = TemplatedPathPlugin;
766
- module.exports.getPresentKinds = getPresentKinds;
767
- module.exports.interpolate = interpolate;
768
- module.exports.reEncodeDigest = reEncodeDigest;
@@ -12,12 +12,10 @@ const {
12
12
  } = require("./ModuleTypeConstants");
13
13
  const ConstDependency = require("./dependencies/ConstDependency");
14
14
 
15
- /** @typedef {import("../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
16
- /** @typedef {import("./Compiler")} Compiler */
17
- /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
18
- /** @typedef {import("./Module").BuildInfo} BuildInfo */
19
- /** @typedef {import("./javascript/JavascriptParser")} JavascriptParser */
20
- /** @typedef {import("./javascript/JavascriptParser").Range} Range */
15
+ /** @import { JavascriptParserOptions } from "../declarations/WebpackOptions" */
16
+ /** @import Compiler from "./Compiler" */
17
+ /** @import { BuildInfo } from "./Module" */
18
+ /** @import JavascriptParser, { Range } from "./javascript/JavascriptParser" */
21
19
 
22
20
  const PLUGIN_NAME = "UseStrictPlugin";
23
21
 
@@ -5,10 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @typedef {import("./Compiler")} Compiler */
9
- /** @typedef {import("./Module")} Module */
10
- /** @typedef {import("./ModuleGraph")} ModuleGraph */
11
- /** @typedef {import("./NormalModule")} NormalModule */
8
+ /** @import Compiler from "./Compiler" */
9
+ /** @import Module from "./Module" */
10
+ /** @import ModuleGraph from "./ModuleGraph" */
11
+ /** @import NormalModule from "./NormalModule" */
12
12
 
13
13
  const WebpackError = require("./errors/WebpackError");
14
14
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  const WebpackError = require("./errors/WebpackError");
9
9
 
10
- /** @typedef {import("./Compiler")} Compiler */
10
+ /** @import Compiler from "./Compiler" */
11
11
 
12
12
  const PLUGIN_NAME = "WarnDeprecatedOptionPlugin";
13
13
 
@@ -23,7 +23,7 @@ class NoModeWarning extends WebpackError {
23
23
  }
24
24
  }
25
25
 
26
- /** @typedef {import("./Compiler")} Compiler */
26
+ /** @import Compiler from "./Compiler" */
27
27
 
28
28
  const PLUGIN_NAME = "WarnNoModeSetPlugin";
29
29
 
@@ -7,12 +7,14 @@
7
7
 
8
8
  const { groupBy } = require("./util/ArrayHelpers");
9
9
 
10
- /** @typedef {import("watchpack").TimeInfoEntries} TimeInfoEntries */
11
- /** @typedef {import("../declarations/plugins/WatchIgnorePlugin").WatchIgnorePluginOptions} WatchIgnorePluginOptions */
12
- /** @typedef {import("./Compiler")} Compiler */
13
- /** @typedef {import("./util/fs").WatchFileSystem} WatchFileSystem */
14
- /** @typedef {import("./util/fs").WatchMethod} WatchMethod */
15
- /** @typedef {import("./util/fs").Watcher} Watcher */
10
+ /** @import { TimeInfoEntries } from "watchpack" */
11
+ /**
12
+ * @import {
13
+ * WatchIgnorePluginOptions
14
+ * } from "../declarations/plugins/WatchIgnorePlugin"
15
+ */
16
+ /** @import Compiler from "./Compiler" */
17
+ /** @import { WatchFileSystem, WatchMethod, Watcher } from "./util/fs" */
16
18
 
17
19
  const IGNORE_TIME_ENTRY = "ignore";
18
20
 
package/lib/Watching.js CHANGED
@@ -7,14 +7,12 @@
7
7
 
8
8
  const Stats = require("./Stats");
9
9
 
10
- /** @typedef {import("../declarations/WebpackOptions").WatchOptions} WatchOptions */
11
- /** @typedef {import("./Compilation")} Compilation */
12
- /** @typedef {import("./Compiler")} Compiler */
13
- /** @typedef {import("./Compiler").ErrorCallback} ErrorCallback */
14
- /** @typedef {import("./logging/Logger").Logger} Logger */
15
- /** @typedef {import("./util/fs").TimeInfoEntries} TimeInfoEntries */
16
- /** @typedef {import("./util/fs").WatchFileSystem} WatchFileSystem */
17
- /** @typedef {import("./util/fs").Watcher} Watcher */
10
+ /** @import { WatchOptions } from "../declarations/WebpackOptions" */
11
+ /** @import Compilation from "./Compilation" */
12
+ /** @import Compiler from "./Compiler" */
13
+ /** @import { Logger } from "./logging/Logger" */
14
+ /** @import { TimeInfoEntries, WatchFileSystem, Watcher } from "./util/fs" */
15
+ /** @import { ErrorCallback } from "./webpack" */
18
16
 
19
17
  /**
20
18
  * Defines the callback type used by this module.
@@ -126,6 +124,8 @@ class Watching {
126
124
  _go(fileTimeInfoEntries, contextTimeInfoEntries, changedFiles, removedFiles) {
127
125
  this._initial = false;
128
126
  if (this.startTime === null) this.startTime = Date.now();
127
+ // Whatever held this back let go — a build is starting.
128
+ this.blocked = false;
129
129
  this.running = true;
130
130
  if (this.watcher) {
131
131
  this.pausedWatcher = this.watcher;
@@ -16,10 +16,8 @@ const {
16
16
  toConstantDependency
17
17
  } = require("./javascript/JavascriptParserHelpers");
18
18
 
19
- /** @typedef {import("./Compiler")} Compiler */
20
- /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
21
- /** @typedef {import("./javascript/JavascriptParser")} JavascriptParser */
22
- /** @typedef {import("./javascript/JavascriptParser").Range} Range */
19
+ /** @import Compiler from "./Compiler" */
20
+ /** @import JavascriptParser, { Range } from "./javascript/JavascriptParser" */
23
21
 
24
22
  const PLUGIN_NAME = "WebpackIsIncludedPlugin";
25
23