webpack 5.107.2 → 5.108.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 (357) hide show
  1. package/hot/dev-server.js +2 -0
  2. package/lib/APIPlugin.js +8 -4
  3. package/lib/CacheFacade.js +7 -0
  4. package/lib/Chunk.js +4 -0
  5. package/lib/ChunkGraph.js +30 -9
  6. package/lib/CircularModulesPlugin.js +190 -0
  7. package/lib/CleanPlugin.js +2 -1
  8. package/lib/Compilation.js +396 -65
  9. package/lib/Compiler.js +25 -11
  10. package/lib/ConcatenationScope.js +10 -3
  11. package/lib/ContextExclusionPlugin.js +1 -0
  12. package/lib/ContextModule.js +92 -47
  13. package/lib/ContextReplacementPlugin.js +4 -0
  14. package/lib/DefinePlugin.js +89 -15
  15. package/lib/Dependency.js +111 -7
  16. package/lib/EntryOptionPlugin.js +39 -2
  17. package/lib/EntryPlugin.js +2 -0
  18. package/lib/ExportsInfo.js +314 -73
  19. package/lib/ExternalModule.js +82 -34
  20. package/lib/ExternalModuleFactoryPlugin.js +1 -0
  21. package/lib/ExternalsPlugin.js +1 -0
  22. package/lib/FileSystemInfo.js +173 -23
  23. package/lib/FlagAllModulesAsUsedPlugin.js +1 -5
  24. package/lib/FlagDependencyExportsPlugin.js +23 -0
  25. package/lib/FlagDependencyUsagePlugin.js +87 -5
  26. package/lib/FlagEntryExportAsUsedPlugin.js +2 -0
  27. package/lib/Generator.js +8 -0
  28. package/lib/HotModuleReplacementPlugin.js +65 -28
  29. package/lib/IgnorePlugin.js +1 -0
  30. package/lib/InitFragment.js +5 -0
  31. package/lib/JavascriptMetaInfoPlugin.js +7 -5
  32. package/lib/LazyBarrel.js +361 -0
  33. package/lib/LoaderTargetPlugin.js +1 -0
  34. package/lib/Module.js +21 -42
  35. package/lib/ModuleGraph.js +3 -2
  36. package/lib/ModuleProfile.js +27 -1
  37. package/lib/ModuleTemplate.js +2 -0
  38. package/lib/MultiCompiler.js +2 -0
  39. package/lib/MultiStats.js +1 -0
  40. package/lib/MultiWatching.js +2 -0
  41. package/lib/NodeStuffPlugin.js +22 -17
  42. package/lib/NormalModule.js +142 -80
  43. package/lib/NormalModuleReplacementPlugin.js +2 -0
  44. package/lib/PrefetchPlugin.js +2 -0
  45. package/lib/ProgressPlugin.js +8 -0
  46. package/lib/ProvidePlugin.js +1 -0
  47. package/lib/RawModule.js +20 -16
  48. package/lib/RecordIdsPlugin.js +1 -0
  49. package/lib/RuntimeGlobals.js +5 -0
  50. package/lib/RuntimePlugin.js +58 -26
  51. package/lib/RuntimeTemplate.js +278 -21
  52. package/lib/SelfModuleFactory.js +1 -0
  53. package/lib/SourceMapDevToolPlugin.js +3 -5
  54. package/lib/Stats.js +1 -0
  55. package/lib/Template.js +8 -2
  56. package/lib/TemplatedPathPlugin.js +473 -131
  57. package/lib/WarnCaseSensitiveModulesPlugin.js +1 -0
  58. package/lib/WarnDeprecatedOptionPlugin.js +4 -0
  59. package/lib/WarnNoModeSetPlugin.js +1 -0
  60. package/lib/WatchIgnorePlugin.js +1 -0
  61. package/lib/Watching.js +9 -0
  62. package/lib/WebpackOptionsApply.js +50 -5
  63. package/lib/asset/AssetBytesGenerator.js +11 -3
  64. package/lib/asset/AssetGenerator.js +47 -22
  65. package/lib/asset/AssetModule.js +47 -0
  66. package/lib/asset/AssetModulesPlugin.js +14 -14
  67. package/lib/asset/AssetParser.js +2 -2
  68. package/lib/asset/AssetSourceGenerator.js +8 -0
  69. package/lib/asset/RawDataUrlModule.js +12 -13
  70. package/lib/buildChunkGraph.js +64 -7
  71. package/lib/bun/BunTargetPlugin.js +48 -0
  72. package/lib/cache/AddBuildDependenciesPlugin.js +1 -0
  73. package/lib/cache/AddManagedPathsPlugin.js +3 -0
  74. package/lib/cache/IdleFileCachePlugin.js +4 -0
  75. package/lib/cache/MemoryWithGcCachePlugin.js +1 -0
  76. package/lib/cache/PackFileCacheStrategy.js +1 -0
  77. package/lib/cache/ResolverCachePlugin.js +2 -0
  78. package/lib/cache/mergeEtags.js +2 -0
  79. package/lib/cli.js +109 -19
  80. package/lib/config/browserslistTargetHandler.js +99 -0
  81. package/lib/config/defaults.js +147 -7
  82. package/lib/config/defineConfig.js +31 -0
  83. package/lib/config/normalization.js +5 -0
  84. package/lib/config/target.js +181 -2
  85. package/lib/container/ContainerEntryModule.js +15 -14
  86. package/lib/container/ContainerExposedDependency.js +2 -2
  87. package/lib/container/ContainerReferencePlugin.js +1 -1
  88. package/lib/container/FallbackDependency.js +5 -7
  89. package/lib/container/FallbackModule.js +10 -9
  90. package/lib/container/RemoteModule.js +20 -10
  91. package/lib/container/RemoteRuntimeModule.js +14 -12
  92. package/lib/css/CssGenerator.js +353 -327
  93. package/lib/css/CssInjectStyleRuntimeModule.js +36 -8
  94. package/lib/css/CssLoadingRuntimeModule.js +118 -47
  95. package/lib/css/CssModule.js +52 -23
  96. package/lib/css/CssModulesPlugin.js +107 -124
  97. package/lib/css/CssParser.js +2759 -2205
  98. package/lib/css/syntax.js +2859 -0
  99. package/lib/debug/ProfilingPlugin.js +2 -0
  100. package/lib/deno/DenoTargetPlugin.js +47 -0
  101. package/lib/dependencies/AMDDefineDependency.js +22 -17
  102. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +1 -0
  103. package/lib/dependencies/AMDRequireArrayDependency.js +7 -11
  104. package/lib/dependencies/AMDRequireContextDependency.js +7 -11
  105. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +1 -0
  106. package/lib/dependencies/AMDRequireDependency.js +24 -20
  107. package/lib/dependencies/CachedConstDependency.js +3 -0
  108. package/lib/dependencies/CommonJsDependencyHelpers.js +1 -0
  109. package/lib/dependencies/CommonJsExportRequireDependency.js +79 -31
  110. package/lib/dependencies/CommonJsExportsDependency.js +21 -16
  111. package/lib/dependencies/CommonJsExportsParserPlugin.js +230 -7
  112. package/lib/dependencies/CommonJsFullRequireDependency.js +27 -19
  113. package/lib/dependencies/CommonJsImportsParserPlugin.js +51 -16
  114. package/lib/dependencies/CommonJsPlugin.js +1 -1
  115. package/lib/dependencies/CommonJsRequireContextDependency.js +10 -13
  116. package/lib/dependencies/CommonJsRequireDependency.js +42 -11
  117. package/lib/dependencies/CommonJsSelfReferenceDependency.js +22 -14
  118. package/lib/dependencies/ConstDependency.js +16 -11
  119. package/lib/dependencies/ContextDependency.js +4 -0
  120. package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -1
  121. package/lib/dependencies/ContextElementDependency.js +23 -14
  122. package/lib/dependencies/CreateRequireParserPlugin.js +1 -0
  123. package/lib/dependencies/CreateScriptUrlDependency.js +5 -7
  124. package/lib/dependencies/CriticalDependencyWarning.js +1 -0
  125. package/lib/dependencies/CssIcssExportDependency.js +512 -574
  126. package/lib/dependencies/CssIcssImportDependency.js +9 -9
  127. package/lib/dependencies/CssIcssSymbolDependency.js +22 -15
  128. package/lib/dependencies/CssImportDependency.js +25 -1
  129. package/lib/dependencies/CssUrlDependency.js +23 -14
  130. package/lib/dependencies/DllEntryDependency.js +9 -13
  131. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  132. package/lib/dependencies/ExportsInfoDependency.js +12 -12
  133. package/lib/dependencies/ExternalModuleDependency.js +8 -5
  134. package/lib/dependencies/ExternalModuleInitFragment.js +7 -5
  135. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +13 -10
  136. package/lib/dependencies/HarmonyAcceptDependency.js +11 -11
  137. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
  138. package/lib/dependencies/HarmonyDetectionParserPlugin.js +47 -22
  139. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +28 -2
  140. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +46 -22
  141. package/lib/dependencies/HarmonyExportExpressionDependency.js +107 -30
  142. package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -9
  143. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +109 -31
  144. package/lib/dependencies/HarmonyExportInitFragment.js +18 -15
  145. package/lib/dependencies/HarmonyExportSpecifierDependency.js +83 -18
  146. package/lib/dependencies/HarmonyExports.js +4 -1
  147. package/lib/dependencies/HarmonyImportDependency.js +24 -0
  148. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +110 -74
  149. package/lib/dependencies/HarmonyImportGuard.js +254 -0
  150. package/lib/dependencies/HarmonyImportSideEffectDependency.js +18 -1
  151. package/lib/dependencies/HarmonyImportSpecifierDependency.js +118 -14
  152. package/lib/dependencies/HarmonyLinkingError.js +1 -0
  153. package/lib/dependencies/HarmonyModulesPlugin.js +1 -0
  154. package/lib/dependencies/{HtmlScriptSrcDependency.js → HtmlEntryDependency.js} +261 -109
  155. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  156. package/lib/dependencies/HtmlInlineScriptDependency.js +17 -13
  157. package/lib/dependencies/HtmlInlineStyleDependency.js +45 -11
  158. package/lib/dependencies/ImportContextDependency.js +5 -9
  159. package/lib/dependencies/ImportDependency.js +44 -2
  160. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
  161. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
  162. package/lib/dependencies/ImportMetaPlugin.js +74 -30
  163. package/lib/dependencies/ImportParserPlugin.js +19 -0
  164. package/lib/dependencies/ImportWeakDependency.js +1 -0
  165. package/lib/dependencies/JsonExportsDependency.js +9 -9
  166. package/lib/dependencies/LoaderImportDependency.js +1 -0
  167. package/lib/dependencies/LocalModule.js +11 -12
  168. package/lib/dependencies/LocalModuleDependency.js +11 -13
  169. package/lib/dependencies/ModuleDecoratorDependency.js +9 -9
  170. package/lib/dependencies/ModuleDependency.js +7 -0
  171. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
  172. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
  173. package/lib/dependencies/ModuleInitFragmentDependency.js +15 -11
  174. package/lib/dependencies/ProvidedDependency.js +31 -27
  175. package/lib/dependencies/PureExpressionDependency.js +7 -9
  176. package/lib/dependencies/RequireEnsureDependency.js +12 -13
  177. package/lib/dependencies/RequireHeaderDependency.js +3 -4
  178. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -0
  179. package/lib/dependencies/RequireResolveContextDependency.js +7 -11
  180. package/lib/dependencies/RequireResolveDependency.js +1 -0
  181. package/lib/dependencies/RequireResolveHeaderDependency.js +3 -5
  182. package/lib/dependencies/RuntimeRequirementsDependency.js +6 -7
  183. package/lib/dependencies/StaticExportsDependency.js +10 -10
  184. package/lib/dependencies/SystemPlugin.js +2 -0
  185. package/lib/dependencies/URLContextDependency.js +5 -7
  186. package/lib/dependencies/URLDependency.js +14 -16
  187. package/lib/dependencies/UnsupportedDependency.js +8 -13
  188. package/lib/dependencies/WebAssemblyExportImportedDependency.js +11 -16
  189. package/lib/dependencies/WebAssemblyImportDependency.js +14 -16
  190. package/lib/dependencies/WebpackIsIncludedDependency.js +1 -0
  191. package/lib/dependencies/WorkerDependency.js +19 -8
  192. package/lib/dependencies/WorkerPlugin.js +22 -6
  193. package/lib/dependencies/processExportInfo.js +13 -11
  194. package/lib/dll/DelegatedModule.js +29 -15
  195. package/lib/dll/DelegatedModuleFactoryPlugin.js +1 -0
  196. package/lib/dll/DelegatedPlugin.js +1 -0
  197. package/lib/dll/DllEntryPlugin.js +3 -0
  198. package/lib/dll/DllModule.js +3 -2
  199. package/lib/dll/DllPlugin.js +16 -0
  200. package/lib/dll/DllReferencePlugin.js +3 -0
  201. package/lib/dll/LibManifestPlugin.js +1 -0
  202. package/lib/electron/ElectronTargetPlugin.js +22 -4
  203. package/lib/errors/ConcurrentCompilationError.js +1 -0
  204. package/lib/errors/HookWebpackError.js +11 -13
  205. package/lib/errors/IgnoreErrorModuleFactory.js +1 -0
  206. package/lib/errors/InvalidDependenciesModuleWarning.js +2 -0
  207. package/lib/errors/JSONParseError.js +9 -8
  208. package/lib/errors/ModuleBuildError.js +16 -13
  209. package/lib/errors/ModuleDependencyError.js +8 -1
  210. package/lib/errors/ModuleDependencyWarning.js +8 -1
  211. package/lib/errors/ModuleError.js +5 -11
  212. package/lib/errors/ModuleHashingError.js +4 -0
  213. package/lib/errors/ModuleNotFoundError.js +3 -0
  214. package/lib/errors/ModuleParseError.js +5 -11
  215. package/lib/errors/ModuleRestoreError.js +2 -0
  216. package/lib/errors/ModuleStoreError.js +3 -0
  217. package/lib/errors/ModuleWarning.js +7 -11
  218. package/lib/errors/NodeStuffInWebError.js +1 -0
  219. package/lib/errors/NonErrorEmittedError.js +2 -0
  220. package/lib/errors/UnhandledSchemeError.js +1 -0
  221. package/lib/esm/ModuleChunkLoadingPlugin.js +0 -1
  222. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +28 -23
  223. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  224. package/lib/hmr/HotModuleReplacementRuntimeModule.js +7 -0
  225. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  226. package/lib/hmr/LazyCompilationPlugin.js +30 -6
  227. package/lib/html/HtmlGenerator.js +217 -23
  228. package/lib/html/HtmlModule.js +40 -0
  229. package/lib/html/HtmlModulesPlugin.js +219 -55
  230. package/lib/html/HtmlParser.js +1108 -1099
  231. package/lib/html/{walkHtmlTokens.js → syntax.js} +4701 -212
  232. package/lib/ids/IdHelpers.js +4 -2
  233. package/lib/index.js +19 -0
  234. package/lib/javascript/BasicEvaluatedExpression.js +1 -0
  235. package/lib/javascript/EnableChunkLoadingPlugin.js +1 -0
  236. package/lib/javascript/JavascriptGenerator.js +6 -2
  237. package/lib/javascript/JavascriptModule.js +54 -0
  238. package/lib/javascript/JavascriptModulesPlugin.js +257 -102
  239. package/lib/javascript/JavascriptParser.js +285 -158
  240. package/lib/json/JsonModule.js +40 -0
  241. package/lib/json/JsonModulesPlugin.js +7 -0
  242. package/lib/json/JsonParser.js +4 -2
  243. package/lib/library/AssignLibraryPlugin.js +5 -3
  244. package/lib/library/ExportPropertyLibraryPlugin.js +1 -0
  245. package/lib/library/FalseIIFEUmdWarning.js +1 -0
  246. package/lib/library/ModuleLibraryPlugin.js +24 -5
  247. package/lib/library/SystemLibraryPlugin.js +3 -3
  248. package/lib/node/NodeTargetPlugin.js +1 -0
  249. package/lib/node/NodeWatchFileSystem.js +1 -0
  250. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +10 -9
  251. package/lib/node/RequireChunkLoadingRuntimeModule.js +18 -16
  252. package/lib/optimize/ConcatenatedModule.js +395 -77
  253. package/lib/optimize/ConstExportsPlugin.js +211 -0
  254. package/lib/optimize/InlineExports.js +178 -0
  255. package/lib/optimize/InnerGraph.js +372 -275
  256. package/lib/optimize/InnerGraphPlugin.js +196 -99
  257. package/lib/optimize/ModuleConcatenationPlugin.js +56 -25
  258. package/lib/optimize/RealContentHashPlugin.js +14 -1
  259. package/lib/optimize/SideEffectsFlagPlugin.js +234 -64
  260. package/lib/runtime/AsyncModuleRuntimeModule.js +32 -30
  261. package/lib/runtime/AutoPublicPathRuntimeModule.js +11 -5
  262. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -1
  263. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +6 -4
  264. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +33 -4
  265. package/lib/runtime/GetChunkFilenameRuntimeModule.js +82 -3
  266. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
  267. package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -1
  268. package/lib/runtime/LoadScriptRuntimeModule.js +18 -13
  269. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +39 -26
  270. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -1
  271. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  272. package/lib/runtime/RelativeUrlRuntimeModule.js +3 -2
  273. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -1
  274. package/lib/runtime/StartupEntrypointRuntimeModule.js +4 -3
  275. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  276. package/lib/schemes/HttpUriPlugin.js +3 -2
  277. package/lib/serialization/AggregateErrorSerializer.js +7 -6
  278. package/lib/serialization/ArraySerializer.js +4 -8
  279. package/lib/serialization/BinaryMiddleware.js +538 -468
  280. package/lib/serialization/DateObjectSerializer.js +2 -2
  281. package/lib/serialization/ErrorObjectSerializer.js +7 -6
  282. package/lib/serialization/MapObjectSerializer.js +5 -9
  283. package/lib/serialization/NullPrototypeObjectSerializer.js +7 -9
  284. package/lib/serialization/ObjectMiddleware.js +50 -13
  285. package/lib/serialization/PlainObjectSerializer.js +9 -8
  286. package/lib/serialization/RegExpObjectSerializer.js +2 -2
  287. package/lib/serialization/Serializer.js +1 -0
  288. package/lib/serialization/SetObjectSerializer.js +4 -8
  289. package/lib/sharing/ConsumeSharedModule.js +6 -7
  290. package/lib/sharing/ConsumeSharedPlugin.js +1 -0
  291. package/lib/sharing/ConsumeSharedRuntimeModule.js +46 -41
  292. package/lib/sharing/ProvideSharedDependency.js +30 -15
  293. package/lib/sharing/ProvideSharedModule.js +30 -11
  294. package/lib/sharing/ProvideSharedPlugin.js +4 -2
  295. package/lib/sharing/SharePlugin.js +3 -0
  296. package/lib/sharing/ShareRuntimeModule.js +18 -16
  297. package/lib/sharing/resolveMatchedConfigs.js +2 -1
  298. package/lib/sharing/utils.js +1 -1
  299. package/lib/stats/DefaultStatsFactoryPlugin.js +4 -6
  300. package/lib/stats/DefaultStatsPrinterPlugin.js +14 -14
  301. package/lib/stats/StatsFactory.js +11 -9
  302. package/lib/stats/StatsPrinter.js +9 -2
  303. package/lib/url/URLParserPlugin.js +5 -2
  304. package/lib/util/AsyncQueue.js +10 -0
  305. package/lib/util/LazyBucketSortedSet.js +5 -0
  306. package/lib/util/LazySet.js +6 -4
  307. package/lib/util/LocConverter.js +11 -1
  308. package/lib/util/Semaphore.js +1 -0
  309. package/lib/util/SourceProcessor.js +106 -0
  310. package/lib/util/TupleSet.js +1 -0
  311. package/lib/util/WeakTupleMap.js +27 -1
  312. package/lib/util/chainedImports.js +3 -3
  313. package/lib/util/comparators.js +2 -2
  314. package/lib/util/concatenate.js +31 -7
  315. package/lib/util/createHash.js +0 -1
  316. package/lib/util/deterministicGrouping.js +19 -12
  317. package/lib/util/extractSourceMap.js +1 -1
  318. package/lib/util/findGraphRoots.js +2 -0
  319. package/lib/util/fs.js +10 -5
  320. package/lib/util/hash/DebugHash.js +1 -0
  321. package/lib/util/hash/hash-digest.js +24 -15
  322. package/lib/util/identifier.js +7 -0
  323. package/lib/util/internalSerializables.js +11 -2
  324. package/lib/util/magicComment.js +42 -0
  325. package/lib/util/makeSerializable.js +1 -0
  326. package/lib/util/nonNumericOnlyHash.js +30 -1
  327. package/lib/util/property.js +7 -1
  328. package/lib/util/publicPathPlaceholder.js +64 -0
  329. package/lib/util/registerExternalSerializer.js +4 -4
  330. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  331. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +1 -1
  332. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +1 -96
  333. package/lib/wasm-async/AsyncWebAssemblyParser.js +1 -1
  334. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +1 -1
  335. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  336. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +1 -0
  337. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +6 -3
  338. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -1
  339. package/lib/wasm-sync/WebAssemblyGenerator.js +1 -0
  340. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +2 -0
  341. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -0
  342. package/lib/wasm-sync/WebAssemblyParser.js +7 -3
  343. package/lib/web/JsonpChunkLoadingRuntimeModule.js +45 -39
  344. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +11 -10
  345. package/package.json +35 -27
  346. package/schemas/WebpackOptions.check.js +1 -1
  347. package/schemas/WebpackOptions.json +212 -3
  348. package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -1
  349. package/schemas/plugins/HtmlParserOptions.check.d.ts +7 -0
  350. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  351. package/schemas/plugins/HtmlParserOptions.json +3 -0
  352. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
  353. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  354. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  355. package/types.d.ts +1456 -290
  356. package/lib/css/walkCssTokens.js +0 -2020
  357. package/lib/util/AppendOnlyStackedSet.js +0 -93
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  /*
3
2
  MIT License http://www.opensource.org/licenses/mit-license.php
4
3
  Author Tobias Koppers @sokra
@@ -6,29 +5,127 @@
6
5
 
7
6
  "use strict";
8
7
 
9
- var $installedChunks$ = undefined;
10
- var $loadUpdateChunk$ = undefined;
11
- var $moduleCache$ = undefined;
12
- var $moduleFactories$ = undefined;
13
- var $ensureChunkHandlers$ = undefined;
14
- var $hasOwnProperty$ = undefined;
15
- var $hmrModuleData$ = undefined;
16
- var $hmrDownloadUpdateHandlers$ = undefined;
17
- var $hmrInvalidateModuleHandlers$ = undefined;
18
- var __webpack_require__ = undefined;
8
+ /** @typedef {string | number} ModuleId */
9
+ /** @typedef {Record<string, unknown>} HotData */
10
+ /** @typedef {(data: HotData) => void} DisposeHandler */
11
+ /** @typedef {(outdatedDependencies: ModuleId[]) => void} AcceptCallback */
12
+ /** @typedef {(err: unknown, context: { moduleId: ModuleId, dependencyId: ModuleId }) => void} AcceptErrorHandler */
13
+ /** @typedef {{ type: string, moduleId: ModuleId, dependencyId?: ModuleId, error: unknown, originalError?: unknown }} HotErrorEvent */
14
+ /** @typedef {(reportError: (err: unknown) => void) => Promise<ModuleId[]>} ApplyFn */
15
+
16
+ /**
17
+ * @typedef {object} ApplyOptions
18
+ * @property {boolean=} ignoreUnaccepted ignore unaccepted modules
19
+ * @property {boolean=} ignoreDeclined ignore declined modules
20
+ * @property {boolean=} ignoreErrored ignore errors thrown while applying
21
+ * @property {((event: ModuleEffect) => void)=} onDeclined called for declined modules
22
+ * @property {((event: ModuleEffect) => void)=} onUnaccepted called for unaccepted modules
23
+ * @property {((event: ModuleEffect) => void)=} onAccepted called for accepted modules
24
+ * @property {((event: ModuleEffect) => void)=} onDisposed called for disposed modules
25
+ * @property {((event: HotErrorEvent) => void)=} onErrored called on apply errors
26
+ */
27
+
28
+ /**
29
+ * @typedef {object} ApplyResult
30
+ * @property {Error=} error fatal error that aborts the update
31
+ * @property {(() => void)=} dispose dispose phase of the update
32
+ * @property {ApplyFn=} apply apply phase of the update
33
+ */
34
+
35
+ /** @typedef {(options: ApplyOptions) => ApplyResult} ApplyHandler */
36
+ /** @typedef {(moduleId: ModuleId, applyHandlers: ApplyHandler[]) => void} InvalidateModuleHandler */
37
+ /** @typedef {(chunkIds: ModuleId[], removedChunks: ModuleId[], removedModules: ModuleId[], promises: Promise<unknown>[], applyHandlers: ApplyHandler[], updatedModulesList: ModuleId[], css: ModuleId[] | undefined, forceLoadChunks: ModuleId[] | undefined) => void} DownloadUpdateHandler */
38
+ /** @typedef {(chunkId: ModuleId, promises: Promise<unknown>[]) => void} EnsureChunkHandler */
39
+ /** @typedef {(webpackRequire: (id: ModuleId) => unknown) => void} RuntimeModuleFn */
40
+
41
+ /**
42
+ * @typedef {object} Hot
43
+ * @property {Record<ModuleId, AcceptCallback>} _acceptedDependencies accept callbacks by dependency id
44
+ * @property {Record<ModuleId, AcceptErrorHandler | undefined>} _acceptedErrorHandlers error handlers by dependency id
45
+ * @property {Record<ModuleId, boolean>} _declinedDependencies declined dependency ids
46
+ * @property {boolean | EXPECTED_FUNCTION} _selfAccepted true or the self-accept error handler
47
+ * @property {boolean} _selfDeclined module declined itself
48
+ * @property {boolean} _selfInvalidated module invalidated itself
49
+ * @property {DisposeHandler[]} _disposeHandlers registered dispose handlers
50
+ * @property {boolean} _main module is the entry of the update
51
+ * @property {() => void} _requireSelf re-require the module on apply
52
+ * @property {boolean} active module is not disposed
53
+ */
54
+
55
+ /**
56
+ * @typedef {object} HotModule
57
+ * @property {ModuleId} id module id
58
+ * @property {Hot} hot hot API of the module
59
+ * @property {ModuleId[]} parents ids of modules requiring this module
60
+ * @property {ModuleId[]} children ids of modules required by this module
61
+ */
62
+
63
+ /**
64
+ * @typedef {object} ModuleEffect
65
+ * @property {string} type effect type
66
+ * @property {ModuleId} moduleId affected module id
67
+ * @property {ModuleId[]=} chain update propagation chain
68
+ * @property {ModuleId=} parentId declining parent id
69
+ * @property {ModuleId[]=} outdatedModules outdated module ids
70
+ * @property {Record<ModuleId, ModuleId[]>=} outdatedDependencies outdated dependencies by module id
71
+ */
72
+
73
+ /** @typedef {{ chain: ModuleId[], id: ModuleId }} QueueItem */
74
+ /** @typedef {{ module: ModuleId, require: (id?: ModuleId) => void, errorHandler: boolean | EXPECTED_FUNCTION }} SelfAcceptedModule */
75
+
76
+ // Globals injected by code generation; declared here only to type the template.
77
+ /* eslint-disable no-unassigned-vars */
78
+ /** @type {Record<ModuleId, unknown>} */
79
+ var $installedChunks$;
80
+ /** @type {(chunkId: ModuleId, updatedModulesList?: ModuleId[]) => Promise<unknown>} */
81
+ var $loadUpdateChunk$;
82
+ /** @type {Record<ModuleId, HotModule>} */
83
+ var $moduleCache$;
84
+ /** @type {Record<ModuleId, EXPECTED_FUNCTION>} */
85
+ var $moduleFactories$;
86
+ /** @type {Record<string, EnsureChunkHandler>} */
87
+ var $ensureChunkHandlers$;
88
+ /** @type {(obj: object, key: ModuleId) => boolean} */
89
+ var $hasOwnProperty$;
90
+ /** @type {Record<ModuleId, HotData>} */
91
+ var $hmrModuleData$;
92
+ /** @type {Record<string, DownloadUpdateHandler>} */
93
+ var $hmrDownloadUpdateHandlers$;
94
+ /** @type {Record<string, InvalidateModuleHandler>} */
95
+ var $hmrInvalidateModuleHandlers$;
96
+ /** @type {(id: ModuleId) => unknown} */
97
+ var __webpack_require__;
98
+ /* eslint-enable no-unassigned-vars */
19
99
 
20
100
  module.exports = function () {
101
+ /** @type {Record<ModuleId, boolean>} */
21
102
  var currentUpdateChunks;
103
+ /** @type {Record<ModuleId, EXPECTED_FUNCTION | false>} */
22
104
  var currentUpdate;
105
+ /** @type {ModuleId[]} */
23
106
  var currentUpdateRemovedChunks;
107
+ /** @type {RuntimeModuleFn[]} */
24
108
  var currentUpdateRuntime;
109
+ /**
110
+ * @param {ApplyOptions} options apply options
111
+ * @returns {ApplyResult} dispose/apply handlers or a fatal error
112
+ */
25
113
  function applyHandler(options) {
26
114
  if ($ensureChunkHandlers$) delete $ensureChunkHandlers$.$key$Hmr;
27
- currentUpdateChunks = undefined;
115
+ currentUpdateChunks = /** @type {Record<ModuleId, boolean>} */ (
116
+ /** @type {unknown} */ (undefined)
117
+ );
118
+ /**
119
+ * @param {ModuleId} updateModuleId updated module id
120
+ * @returns {ModuleEffect} effect of updating the module
121
+ */
28
122
  function getAffectedModuleEffects(updateModuleId) {
123
+ /** @type {ModuleId[]} */
29
124
  var outdatedModules = [updateModuleId];
125
+ /** @type {Record<ModuleId, ModuleId[]>} */
30
126
  var outdatedDependencies = {};
31
127
 
128
+ /** @type {QueueItem[]} */
32
129
  var queue = outdatedModules.map(function (id) {
33
130
  return {
34
131
  chain: [id],
@@ -36,7 +133,7 @@ module.exports = function () {
36
133
  };
37
134
  });
38
135
  while (queue.length > 0) {
39
- var queueItem = queue.pop();
136
+ var queueItem = /** @type {QueueItem} */ (queue.pop());
40
137
  var moduleId = queueItem.id;
41
138
  var chain = queueItem.chain;
42
139
  var module = $moduleCache$[moduleId];
@@ -95,6 +192,11 @@ module.exports = function () {
95
192
  };
96
193
  }
97
194
 
195
+ /**
196
+ * @param {ModuleId[]} a target set
197
+ * @param {ModuleId[]} b items to add
198
+ * @returns {void}
199
+ */
98
200
  function addAllToSet(a, b) {
99
201
  for (var i = 0; i < b.length; i++) {
100
202
  var item = b[i];
@@ -104,10 +206,17 @@ module.exports = function () {
104
206
 
105
207
  // at begin all updates modules are outdated
106
208
  // the "outdated" status can propagate to parents if they don't accept the children
209
+ /** @type {Record<ModuleId, ModuleId[]>} */
107
210
  var outdatedDependencies = {};
211
+ /** @type {ModuleId[]} */
108
212
  var outdatedModules = [];
213
+ /** @type {Record<ModuleId, EXPECTED_FUNCTION>} */
109
214
  var appliedUpdate = {};
110
215
 
216
+ /**
217
+ * @param {HotModule} module disposed module
218
+ * @returns {void}
219
+ */
111
220
  var warnUnexpectedRequire = function warnUnexpectedRequire(module) {
112
221
  console.warn(
113
222
  "[HMR] unexpected require(" + module.id + ") to disposed module"
@@ -117,6 +226,7 @@ module.exports = function () {
117
226
  for (var moduleId in currentUpdate) {
118
227
  if ($hasOwnProperty$(currentUpdate, moduleId)) {
119
228
  var newModuleFactory = currentUpdate[moduleId];
229
+ /** @type {ModuleEffect} */
120
230
  var result = newModuleFactory
121
231
  ? getAffectedModuleEffects(moduleId)
122
232
  : {
@@ -176,15 +286,24 @@ module.exports = function () {
176
286
  };
177
287
  }
178
288
  if (doApply) {
179
- appliedUpdate[moduleId] = newModuleFactory;
180
- addAllToSet(outdatedModules, result.outdatedModules);
181
- for (moduleId in result.outdatedDependencies) {
182
- if ($hasOwnProperty$(result.outdatedDependencies, moduleId)) {
289
+ appliedUpdate[moduleId] = /** @type {EXPECTED_FUNCTION} */ (
290
+ newModuleFactory
291
+ );
292
+ addAllToSet(
293
+ outdatedModules,
294
+ /** @type {ModuleId[]} */ (result.outdatedModules)
295
+ );
296
+ var resultOutdatedDependencies =
297
+ /** @type {Record<ModuleId, ModuleId[]>} */ (
298
+ result.outdatedDependencies
299
+ );
300
+ for (moduleId in resultOutdatedDependencies) {
301
+ if ($hasOwnProperty$(resultOutdatedDependencies, moduleId)) {
183
302
  if (!outdatedDependencies[moduleId])
184
303
  outdatedDependencies[moduleId] = [];
185
304
  addAllToSet(
186
305
  outdatedDependencies[moduleId],
187
- result.outdatedDependencies[moduleId]
306
+ resultOutdatedDependencies[moduleId]
188
307
  );
189
308
  }
190
309
  }
@@ -195,9 +314,12 @@ module.exports = function () {
195
314
  }
196
315
  }
197
316
  }
198
- currentUpdate = undefined;
317
+ currentUpdate = /** @type {Record<ModuleId, EXPECTED_FUNCTION | false>} */ (
318
+ /** @type {unknown} */ (undefined)
319
+ );
199
320
 
200
321
  // Store self accepted outdated modules to require them later by the module system
322
+ /** @type {SelfAcceptedModule[]} */
201
323
  var outdatedSelfAcceptedModules = [];
202
324
  for (var j = 0; j < outdatedModules.length; j++) {
203
325
  var outdatedModuleId = outdatedModules[j];
@@ -218,6 +340,7 @@ module.exports = function () {
218
340
  }
219
341
  }
220
342
 
343
+ /** @type {ModuleId[]} */
221
344
  var moduleOutdatedDependencies;
222
345
 
223
346
  return {
@@ -225,15 +348,18 @@ module.exports = function () {
225
348
  currentUpdateRemovedChunks.forEach(function (chunkId) {
226
349
  delete $installedChunks$[chunkId];
227
350
  });
228
- currentUpdateRemovedChunks = undefined;
351
+ currentUpdateRemovedChunks = /** @type {ModuleId[]} */ (
352
+ /** @type {unknown} */ (undefined)
353
+ );
229
354
 
230
355
  var idx;
231
356
  var queue = outdatedModules.slice();
232
357
  while (queue.length > 0) {
233
- var moduleId = queue.pop();
358
+ var moduleId = /** @type {ModuleId} */ (queue.pop());
234
359
  var module = $moduleCache$[moduleId];
235
360
  if (!module) continue;
236
361
 
362
+ /** @type {HotData} */
237
363
  var data = {};
238
364
 
239
365
  // Call dispose handlers
@@ -281,6 +407,7 @@ module.exports = function () {
281
407
  }
282
408
  },
283
409
  apply: function (reportError) {
410
+ /** @type {Promise<unknown>[]} */
284
411
  var acceptPromises = [];
285
412
  // insert new code
286
413
  for (var updateModuleId in appliedUpdate) {
@@ -301,8 +428,11 @@ module.exports = function () {
301
428
  if (module) {
302
429
  moduleOutdatedDependencies =
303
430
  outdatedDependencies[outdatedModuleId];
431
+ /** @type {AcceptCallback[]} */
304
432
  var callbacks = [];
433
+ /** @type {(AcceptErrorHandler | undefined)[]} */
305
434
  var errorHandlers = [];
435
+ /** @type {ModuleId[]} */
306
436
  var dependenciesForCallbacks = [];
307
437
  for (var j = 0; j < moduleOutdatedDependencies.length; j++) {
308
438
  var dependency = moduleOutdatedDependencies[j];
@@ -318,13 +448,15 @@ module.exports = function () {
318
448
  }
319
449
  }
320
450
  for (var k = 0; k < callbacks.length; k++) {
451
+ /** @type {unknown} */
321
452
  var result;
322
453
  try {
323
454
  result = callbacks[k].call(null, moduleOutdatedDependencies);
324
455
  } catch (err) {
325
456
  if (typeof errorHandlers[k] === "function") {
326
457
  try {
327
- errorHandlers[k](err, {
458
+ /** @type {AcceptErrorHandler} */
459
+ (errorHandlers[k])(err, {
328
460
  moduleId: outdatedModuleId,
329
461
  dependencyId: dependenciesForCallbacks[k]
330
462
  });
@@ -357,8 +489,12 @@ module.exports = function () {
357
489
  }
358
490
  }
359
491
  }
360
- if (result && typeof result.then === "function") {
361
- acceptPromises.push(result);
492
+ if (
493
+ result &&
494
+ typeof (/** @type {{ then?: unknown }} */ (result).then) ===
495
+ "function"
496
+ ) {
497
+ acceptPromises.push(/** @type {Promise<unknown>} */ (result));
362
498
  }
363
499
  }
364
500
  }
@@ -434,7 +570,9 @@ module.exports = function () {
434
570
  removedModules,
435
571
  promises,
436
572
  applyHandlers,
437
- updatedModulesList
573
+ updatedModulesList,
574
+ css,
575
+ forceLoadChunks
438
576
  ) {
439
577
  applyHandlers.push(applyHandler);
440
578
  currentUpdateChunks = {};
@@ -442,7 +580,7 @@ module.exports = function () {
442
580
  currentUpdate = removedModules.reduce(function (obj, key) {
443
581
  obj[key] = false;
444
582
  return obj;
445
- }, {});
583
+ }, /** @type {Record<ModuleId, EXPECTED_FUNCTION | false>} */ ({}));
446
584
  currentUpdateRuntime = [];
447
585
  chunkIds.forEach(function (chunkId) {
448
586
  if (
@@ -466,6 +604,15 @@ module.exports = function () {
466
604
  currentUpdateChunks[chunkId] = true;
467
605
  }
468
606
  };
607
+ // Force-load chunks that now own modules orphaned by a removed chunk;
608
+ // ensure handlers skip already-installed chunks, so no guard is needed.
609
+ if (forceLoadChunks) {
610
+ forceLoadChunks.forEach(function (chunkId) {
611
+ Object.keys($ensureChunkHandlers$).forEach(function (key) {
612
+ $ensureChunkHandlers$[key](chunkId, promises);
613
+ });
614
+ });
615
+ }
469
616
  }
470
617
  };
471
618
  };
@@ -26,6 +26,7 @@ const { registerNotSerializable } = require("../util/serialization");
26
26
  /** @typedef {import("../Compiler")} Compiler */
27
27
  /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
28
28
  /** @typedef {import("../Module").BuildCallback} BuildCallback */
29
+ /** @typedef {import("../Module").BuildInfo} BuildInfo */
29
30
  /** @typedef {import("../Module").BuildMeta} BuildMeta */
30
31
  /** @typedef {import("../Module").CodeGenerationContext} CodeGenerationContext */
31
32
  /** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
@@ -179,6 +180,7 @@ class LazyCompilationDependency extends Dependency {
179
180
  */
180
181
  constructor(proxyModule) {
181
182
  super();
183
+ /** @type {LazyCompilationProxyModule} */
182
184
  this.proxyModule = proxyModule;
183
185
  }
184
186
 
@@ -201,6 +203,14 @@ class LazyCompilationDependency extends Dependency {
201
203
 
202
204
  registerNotSerializable(LazyCompilationDependency);
203
205
 
206
+ /**
207
+ * Defines the build info properties specific to lazy compilation proxy modules.
208
+ * @typedef {object} KnownLazyCompilationProxyModuleBuildInfo
209
+ * @property {boolean=} active whether the proxied module was active when built
210
+ */
211
+
212
+ /** @typedef {BuildInfo & KnownLazyCompilationProxyModuleBuildInfo} LazyCompilationProxyModuleBuildInfo */
213
+
204
214
  class LazyCompilationProxyModule extends Module {
205
215
  /**
206
216
  * Creates an instance of LazyCompilationProxyModule.
@@ -217,10 +227,18 @@ class LazyCompilationProxyModule extends Module {
217
227
  context,
218
228
  originalModule.layer
219
229
  );
230
+ // Redeclared with the lazy compilation proxy specific shape
231
+ /** @type {LazyCompilationProxyModuleBuildInfo | undefined} */
232
+ this.buildInfo = undefined;
233
+ /** @type {Module} */
220
234
  this.originalModule = originalModule;
235
+ /** @type {string} */
221
236
  this.request = request;
237
+ /** @type {string} */
222
238
  this.client = client;
239
+ /** @type {string} */
223
240
  this.data = data;
241
+ /** @type {boolean} */
224
242
  this.active = active;
225
243
  }
226
244
 
@@ -354,17 +372,19 @@ class LazyCompilationProxyModule extends Module {
354
372
  );
355
373
  const clientModule = moduleGraph.getModule(clientDep);
356
374
  const block = this.blocks[0];
375
+ const cst = runtimeTemplate.renderConst();
376
+ const lt = runtimeTemplate.renderLet();
357
377
  const client = Template.asString([
358
- `var client = ${runtimeTemplate.moduleExports({
378
+ `${cst} client = ${runtimeTemplate.moduleExports({
359
379
  module: clientModule,
360
380
  chunkGraph,
361
381
  request: clientDep.userRequest,
362
382
  runtimeRequirements
363
383
  })}`,
364
- `var data = ${JSON.stringify(this.data)};`
384
+ `${cst} data = ${JSON.stringify(this.data)};`
365
385
  ]);
366
386
  const keepActive = Template.asString([
367
- `var dispose = client.keepAlive({ data: data, active: ${JSON.stringify(
387
+ `${cst} dispose = client.keepAlive({ data: data, active: ${JSON.stringify(
368
388
  Boolean(block)
369
389
  )}, module: module, onError: onError });`
370
390
  ]);
@@ -392,7 +412,7 @@ class LazyCompilationProxyModule extends Module {
392
412
  chunkGraph.getModuleId(module)
393
413
  )}, function() { module.hot.invalidate(); });`,
394
414
  "module.hot.dispose(function(data) { delete data.resolveSelf; dispose(data); });",
395
- "if (module.hot.data && module.hot.data.resolveSelf) module.hot.data.resolveSelf(module.exports);"
415
+ `if (${runtimeTemplate.optionalChaining("module.hot.data", "resolveSelf")}) module.hot.data.resolveSelf(module.exports);`
396
416
  ]),
397
417
  "}",
398
418
  "function onError() { /* ignore */ }",
@@ -401,12 +421,12 @@ class LazyCompilationProxyModule extends Module {
401
421
  } else {
402
422
  source = Template.asString([
403
423
  client,
404
- "var resolveSelf, onError;",
424
+ `${lt} resolveSelf, onError;`,
405
425
  "module.exports = new Promise(function(resolve, reject) { resolveSelf = resolve; onError = reject; });",
406
426
  "if (module.hot) {",
407
427
  Template.indent([
408
428
  "module.hot.accept();",
409
- "if (module.hot.data && module.hot.data.resolveSelf) module.hot.data.resolveSelf(module.exports);",
429
+ `if (${runtimeTemplate.optionalChaining("module.hot.data", "resolveSelf")}) module.hot.data.resolveSelf(module.exports);`,
410
430
  "module.hot.dispose(function(data) { data.resolveSelf = resolveSelf; dispose(data); });"
411
431
  ]),
412
432
  "}",
@@ -492,9 +512,13 @@ class LazyCompilationPlugin {
492
512
  * @param {Options} options options
493
513
  */
494
514
  constructor({ backend, entries, imports, test }) {
515
+ /** @type {BackEnd} */
495
516
  this.backend = backend;
517
+ /** @type {boolean | undefined} */
496
518
  this.entries = entries;
519
+ /** @type {boolean | undefined} */
497
520
  this.imports = imports;
521
+ /** @type {string | RegExp | TestFn | undefined} */
498
522
  this.test = test;
499
523
  }
500
524