webpack 5.97.1 → 5.104.1

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 (610) hide show
  1. package/README.md +368 -434
  2. package/bin/webpack.js +15 -9
  3. package/hot/dev-server.js +18 -3
  4. package/hot/emitter-event-target.js +7 -0
  5. package/hot/lazy-compilation-node.js +45 -29
  6. package/hot/lazy-compilation-universal.js +18 -0
  7. package/hot/lazy-compilation-web.js +15 -5
  8. package/hot/load-http.js +7 -0
  9. package/hot/log.js +15 -15
  10. package/hot/only-dev-server.js +19 -4
  11. package/hot/poll.js +1 -0
  12. package/lib/APIPlugin.js +48 -50
  13. package/lib/AbstractMethodError.js +1 -0
  14. package/lib/AsyncDependenciesBlock.js +4 -5
  15. package/lib/AutomaticPrefetchPlugin.js +22 -22
  16. package/lib/BannerPlugin.js +35 -40
  17. package/lib/Cache.js +12 -9
  18. package/lib/CacheFacade.js +13 -13
  19. package/lib/CaseSensitiveModulesWarning.js +6 -6
  20. package/lib/Chunk.js +68 -47
  21. package/lib/ChunkGraph.js +174 -95
  22. package/lib/ChunkGroup.js +32 -24
  23. package/lib/ChunkTemplate.js +8 -8
  24. package/lib/CleanPlugin.js +90 -42
  25. package/lib/CodeGenerationResults.js +12 -9
  26. package/lib/CompatibilityPlugin.js +70 -21
  27. package/lib/Compilation.js +827 -550
  28. package/lib/Compiler.js +137 -109
  29. package/lib/ConcatenationScope.js +45 -8
  30. package/lib/ConditionalInitFragment.js +1 -1
  31. package/lib/ConstPlugin.js +89 -59
  32. package/lib/ContextExclusionPlugin.js +5 -4
  33. package/lib/ContextModule.js +66 -51
  34. package/lib/ContextModuleFactory.js +51 -30
  35. package/lib/ContextReplacementPlugin.js +89 -34
  36. package/lib/CssModule.js +8 -4
  37. package/lib/DefinePlugin.js +209 -57
  38. package/lib/DelegatedModule.js +34 -23
  39. package/lib/DelegatedModuleFactoryPlugin.js +27 -24
  40. package/lib/DelegatedPlugin.js +4 -2
  41. package/lib/DependenciesBlock.js +0 -2
  42. package/lib/Dependency.js +37 -19
  43. package/lib/DependencyTemplate.js +2 -0
  44. package/lib/DependencyTemplates.js +5 -6
  45. package/lib/DllEntryPlugin.js +8 -4
  46. package/lib/DllModule.js +11 -12
  47. package/lib/DllModuleFactory.js +2 -2
  48. package/lib/DllPlugin.js +9 -6
  49. package/lib/DllReferencePlugin.js +60 -65
  50. package/lib/DotenvPlugin.js +462 -0
  51. package/lib/DynamicEntryPlugin.js +8 -8
  52. package/lib/EntryOptionPlugin.js +8 -6
  53. package/lib/EntryPlugin.js +5 -3
  54. package/lib/Entrypoint.js +19 -0
  55. package/lib/EnvironmentNotSupportAsyncWarning.js +0 -3
  56. package/lib/EnvironmentPlugin.js +26 -19
  57. package/lib/ErrorHelpers.js +6 -6
  58. package/lib/EvalDevToolModulePlugin.js +17 -14
  59. package/lib/EvalSourceMapDevToolPlugin.js +156 -142
  60. package/lib/ExportsInfo.js +180 -115
  61. package/lib/ExportsInfoApiPlugin.js +2 -2
  62. package/lib/ExternalModule.js +256 -102
  63. package/lib/ExternalModuleFactoryPlugin.js +66 -29
  64. package/lib/ExternalsPlugin.js +57 -2
  65. package/lib/FileSystemInfo.js +313 -247
  66. package/lib/FlagAllModulesAsUsedPlugin.js +2 -2
  67. package/lib/FlagDependencyExportsPlugin.js +29 -19
  68. package/lib/FlagDependencyUsagePlugin.js +9 -10
  69. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  70. package/lib/Generator.js +43 -10
  71. package/lib/GraphHelpers.js +11 -3
  72. package/lib/HookWebpackError.js +35 -7
  73. package/lib/HotModuleReplacementPlugin.js +149 -108
  74. package/lib/HotUpdateChunk.js +0 -3
  75. package/lib/IgnoreErrorModuleFactory.js +2 -2
  76. package/lib/IgnorePlugin.js +16 -13
  77. package/lib/IgnoreWarningsPlugin.js +6 -4
  78. package/lib/InitFragment.js +41 -23
  79. package/lib/InvalidDependenciesModuleWarning.js +2 -3
  80. package/lib/JavascriptMetaInfoPlugin.js +2 -4
  81. package/lib/LibManifestPlugin.js +12 -13
  82. package/lib/LoaderOptionsPlugin.js +12 -14
  83. package/lib/LoaderTargetPlugin.js +5 -3
  84. package/lib/MainTemplate.js +18 -29
  85. package/lib/ManifestPlugin.js +235 -0
  86. package/lib/Module.js +138 -60
  87. package/lib/ModuleBuildError.js +4 -2
  88. package/lib/ModuleDependencyError.js +4 -3
  89. package/lib/ModuleDependencyWarning.js +4 -3
  90. package/lib/ModuleError.js +1 -1
  91. package/lib/ModuleFactory.js +10 -3
  92. package/lib/ModuleFilenameHelpers.js +63 -60
  93. package/lib/ModuleGraph.js +195 -70
  94. package/lib/ModuleGraphConnection.js +14 -20
  95. package/lib/ModuleInfoHeaderPlugin.js +15 -16
  96. package/lib/ModuleNotFoundError.js +1 -1
  97. package/lib/ModuleParseError.js +8 -4
  98. package/lib/ModuleSourceTypeConstants.js +189 -0
  99. package/lib/ModuleTemplate.js +7 -8
  100. package/lib/ModuleTypeConstants.js +37 -15
  101. package/lib/ModuleWarning.js +1 -1
  102. package/lib/MultiCompiler.js +64 -49
  103. package/lib/MultiStats.js +19 -14
  104. package/lib/MultiWatching.js +7 -11
  105. package/lib/NoEmitOnErrorsPlugin.js +5 -3
  106. package/lib/NodeStuffPlugin.js +438 -126
  107. package/lib/NormalModule.js +322 -201
  108. package/lib/NormalModuleFactory.js +230 -117
  109. package/lib/NormalModuleReplacementPlugin.js +37 -39
  110. package/lib/NullFactory.js +3 -2
  111. package/lib/OptimizationStages.js +1 -1
  112. package/lib/OptionsApply.js +1 -1
  113. package/lib/Parser.js +5 -3
  114. package/lib/PlatformPlugin.js +3 -1
  115. package/lib/PrefetchPlugin.js +6 -4
  116. package/lib/ProgressPlugin.js +48 -49
  117. package/lib/ProvidePlugin.js +7 -5
  118. package/lib/RawModule.js +26 -12
  119. package/lib/RecordIdsPlugin.js +88 -110
  120. package/lib/RequestShortener.js +3 -1
  121. package/lib/ResolverFactory.js +15 -14
  122. package/lib/RuntimeGlobals.js +216 -153
  123. package/lib/RuntimeModule.js +7 -6
  124. package/lib/RuntimePlugin.js +115 -62
  125. package/lib/RuntimeTemplate.js +248 -76
  126. package/lib/SelfModuleFactory.js +2 -2
  127. package/lib/SizeFormatHelpers.js +2 -2
  128. package/lib/SourceMapDevToolModuleOptionsPlugin.js +17 -27
  129. package/lib/SourceMapDevToolPlugin.js +72 -59
  130. package/lib/Stats.js +2 -3
  131. package/lib/Template.js +31 -24
  132. package/lib/TemplatedPathPlugin.js +24 -21
  133. package/lib/UseStrictPlugin.js +1 -1
  134. package/lib/WarnCaseSensitiveModulesPlugin.js +36 -37
  135. package/lib/WarnDeprecatedOptionPlugin.js +7 -8
  136. package/lib/WarnNoModeSetPlugin.js +3 -1
  137. package/lib/WatchIgnorePlugin.js +11 -9
  138. package/lib/Watching.js +27 -29
  139. package/lib/WebpackError.js +10 -3
  140. package/lib/WebpackIsIncludedPlugin.js +4 -5
  141. package/lib/WebpackOptionsApply.js +263 -135
  142. package/lib/asset/AssetBytesGenerator.js +171 -0
  143. package/lib/asset/AssetBytesParser.js +37 -0
  144. package/lib/asset/AssetGenerator.js +285 -223
  145. package/lib/asset/AssetModulesPlugin.js +103 -41
  146. package/lib/asset/AssetParser.js +7 -3
  147. package/lib/asset/AssetSourceGenerator.js +41 -17
  148. package/lib/asset/RawDataUrlModule.js +17 -9
  149. package/lib/async-modules/AsyncModuleHelpers.js +52 -0
  150. package/lib/async-modules/AwaitDependenciesInitFragment.js +39 -24
  151. package/lib/async-modules/InferAsyncModulesPlugin.js +25 -26
  152. package/lib/buildChunkGraph.js +36 -17
  153. package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
  154. package/lib/cache/IdleFileCachePlugin.js +22 -20
  155. package/lib/cache/MemoryCachePlugin.js +3 -3
  156. package/lib/cache/MemoryWithGcCachePlugin.js +17 -11
  157. package/lib/cache/PackFileCacheStrategy.js +198 -170
  158. package/lib/cache/ResolverCachePlugin.js +58 -48
  159. package/lib/cache/getLazyHashedEtag.js +5 -4
  160. package/lib/cli.js +197 -39
  161. package/lib/config/browserslistTargetHandler.js +110 -85
  162. package/lib/config/defaults.js +514 -113
  163. package/lib/config/normalization.js +91 -64
  164. package/lib/config/target.js +30 -18
  165. package/lib/container/ContainerEntryDependency.js +0 -1
  166. package/lib/container/ContainerEntryModule.js +16 -15
  167. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  168. package/lib/container/ContainerPlugin.js +5 -6
  169. package/lib/container/ContainerReferencePlugin.js +27 -30
  170. package/lib/container/FallbackDependency.js +2 -1
  171. package/lib/container/FallbackModule.js +19 -14
  172. package/lib/container/FallbackModuleFactory.js +2 -2
  173. package/lib/container/HoistContainerReferencesPlugin.js +7 -7
  174. package/lib/container/ModuleFederationPlugin.js +4 -4
  175. package/lib/container/RemoteModule.js +14 -14
  176. package/lib/container/RemoteRuntimeModule.js +2 -2
  177. package/lib/container/options.js +9 -9
  178. package/lib/css/CssGenerator.js +366 -74
  179. package/lib/css/CssLoadingRuntimeModule.js +26 -16
  180. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
  181. package/lib/css/CssModulesPlugin.js +191 -142
  182. package/lib/css/CssParser.js +1756 -740
  183. package/lib/css/walkCssTokens.js +180 -67
  184. package/lib/debug/ProfilingPlugin.js +135 -51
  185. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +29 -28
  186. package/lib/dependencies/AMDPlugin.js +18 -11
  187. package/lib/dependencies/AMDRequireArrayDependency.js +5 -4
  188. package/lib/dependencies/AMDRequireContextDependency.js +2 -1
  189. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +35 -26
  190. package/lib/dependencies/AMDRuntimeModules.js +3 -1
  191. package/lib/dependencies/CachedConstDependency.js +24 -18
  192. package/lib/dependencies/CommonJsExportRequireDependency.js +31 -24
  193. package/lib/dependencies/CommonJsExportsDependency.js +2 -1
  194. package/lib/dependencies/CommonJsExportsParserPlugin.js +50 -36
  195. package/lib/dependencies/CommonJsFullRequireDependency.js +7 -13
  196. package/lib/dependencies/CommonJsImportsParserPlugin.js +146 -127
  197. package/lib/dependencies/CommonJsPlugin.js +29 -18
  198. package/lib/dependencies/CommonJsRequireContextDependency.js +4 -3
  199. package/lib/dependencies/CommonJsSelfReferenceDependency.js +4 -4
  200. package/lib/dependencies/ConstDependency.js +2 -2
  201. package/lib/dependencies/ContextDependency.js +10 -5
  202. package/lib/dependencies/ContextDependencyHelpers.js +21 -13
  203. package/lib/dependencies/ContextDependencyTemplateAsId.js +10 -9
  204. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +13 -10
  205. package/lib/dependencies/ContextElementDependency.js +23 -12
  206. package/lib/dependencies/CssIcssExportDependency.js +402 -22
  207. package/lib/dependencies/CssIcssImportDependency.js +116 -51
  208. package/lib/dependencies/CssIcssSymbolDependency.js +33 -35
  209. package/lib/dependencies/CssImportDependency.js +17 -14
  210. package/lib/dependencies/CssUrlDependency.js +8 -13
  211. package/lib/dependencies/DynamicExports.js +19 -19
  212. package/lib/dependencies/ExportsInfoDependency.js +13 -10
  213. package/lib/dependencies/ExternalModuleDependency.js +7 -7
  214. package/lib/dependencies/ExternalModuleInitFragment.js +3 -2
  215. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +96 -0
  216. package/lib/dependencies/HarmonyAcceptDependency.js +96 -5
  217. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -5
  218. package/lib/dependencies/HarmonyCompatibilityDependency.js +0 -1
  219. package/lib/dependencies/HarmonyDetectionParserPlugin.js +10 -30
  220. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +19 -8
  221. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +136 -99
  222. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +152 -61
  224. package/lib/dependencies/HarmonyExportInitFragment.js +2 -2
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +2 -2
  226. package/lib/dependencies/HarmonyExports.js +5 -5
  227. package/lib/dependencies/HarmonyImportDependency.js +92 -45
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +201 -163
  229. package/lib/dependencies/HarmonyImportSideEffectDependency.js +5 -6
  230. package/lib/dependencies/HarmonyImportSpecifierDependency.js +69 -42
  231. package/lib/dependencies/HarmonyModulesPlugin.js +16 -11
  232. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -15
  233. package/lib/dependencies/ImportContextDependency.js +15 -1
  234. package/lib/dependencies/ImportDependency.js +25 -7
  235. package/lib/dependencies/ImportEagerDependency.js +7 -5
  236. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +23 -13
  237. package/lib/dependencies/ImportMetaContextPlugin.js +2 -2
  238. package/lib/dependencies/ImportMetaPlugin.js +172 -20
  239. package/lib/dependencies/ImportParserPlugin.js +327 -49
  240. package/lib/dependencies/ImportPhase.js +121 -0
  241. package/lib/dependencies/ImportPlugin.js +3 -1
  242. package/lib/dependencies/ImportWeakDependency.js +7 -5
  243. package/lib/dependencies/JsonExportsDependency.js +54 -28
  244. package/lib/dependencies/LoaderDependency.js +0 -3
  245. package/lib/dependencies/LoaderImportDependency.js +0 -3
  246. package/lib/dependencies/LoaderPlugin.js +24 -25
  247. package/lib/dependencies/LocalModulesHelpers.js +4 -4
  248. package/lib/dependencies/ModuleDecoratorDependency.js +2 -4
  249. package/lib/dependencies/ModuleDependency.js +14 -13
  250. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  251. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  252. package/lib/dependencies/NullDependency.js +2 -0
  253. package/lib/dependencies/ProvidedDependency.js +8 -10
  254. package/lib/dependencies/PureExpressionDependency.js +1 -2
  255. package/lib/dependencies/RequireContextDependency.js +2 -1
  256. package/lib/dependencies/RequireContextDependencyParserPlugin.js +47 -44
  257. package/lib/dependencies/RequireContextPlugin.js +5 -2
  258. package/lib/dependencies/RequireEnsureDependenciesBlock.js +3 -3
  259. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +101 -99
  260. package/lib/dependencies/RequireEnsurePlugin.js +6 -6
  261. package/lib/dependencies/RequireIncludeDependency.js +2 -2
  262. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
  263. package/lib/dependencies/RequireIncludePlugin.js +1 -0
  264. package/lib/dependencies/RequireResolveContextDependency.js +1 -1
  265. package/lib/dependencies/RequireResolveDependency.js +3 -3
  266. package/lib/dependencies/RuntimeRequirementsDependency.js +3 -4
  267. package/lib/dependencies/StaticExportsDependency.js +3 -5
  268. package/lib/dependencies/SystemPlugin.js +4 -4
  269. package/lib/dependencies/URLContextDependency.js +65 -0
  270. package/lib/dependencies/URLDependency.js +3 -8
  271. package/lib/dependencies/URLPlugin.js +18 -159
  272. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -3
  273. package/lib/dependencies/WebAssemblyImportDependency.js +2 -2
  274. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -3
  275. package/lib/dependencies/WorkerDependency.js +8 -6
  276. package/lib/dependencies/WorkerPlugin.js +131 -67
  277. package/lib/dependencies/getFunctionExpression.js +2 -2
  278. package/lib/dependencies/processExportInfo.js +4 -4
  279. package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -1
  280. package/lib/esm/ModuleChunkFormatPlugin.js +232 -179
  281. package/lib/esm/ModuleChunkLoadingPlugin.js +112 -57
  282. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +102 -28
  283. package/lib/formatLocation.js +2 -2
  284. package/lib/hmr/HotModuleReplacement.runtime.js +41 -29
  285. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  286. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +43 -33
  287. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
  288. package/lib/hmr/LazyCompilationPlugin.js +67 -54
  289. package/lib/hmr/lazyCompilationBackend.js +23 -18
  290. package/lib/ids/ChunkModuleIdRangePlugin.js +14 -11
  291. package/lib/ids/DeterministicChunkIdsPlugin.js +32 -37
  292. package/lib/ids/DeterministicModuleIdsPlugin.js +52 -52
  293. package/lib/ids/HashedModuleIdsPlugin.js +15 -13
  294. package/lib/ids/IdHelpers.js +66 -49
  295. package/lib/ids/NamedChunkIdsPlugin.js +14 -17
  296. package/lib/ids/NamedModuleIdsPlugin.js +12 -14
  297. package/lib/ids/NaturalChunkIdsPlugin.js +6 -4
  298. package/lib/ids/NaturalModuleIdsPlugin.js +4 -3
  299. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -5
  300. package/lib/ids/OccurrenceModuleIdsPlugin.js +8 -7
  301. package/lib/ids/SyncModuleIdsPlugin.js +18 -13
  302. package/lib/index.js +54 -14
  303. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +116 -119
  304. package/lib/javascript/BasicEvaluatedExpression.js +26 -18
  305. package/lib/javascript/ChunkFormatHelpers.js +70 -0
  306. package/lib/javascript/ChunkHelpers.js +17 -5
  307. package/lib/javascript/CommonJsChunkFormatPlugin.js +114 -141
  308. package/lib/javascript/EnableChunkLoadingPlugin.js +7 -4
  309. package/lib/javascript/JavascriptGenerator.js +122 -100
  310. package/lib/javascript/JavascriptModulesPlugin.js +332 -152
  311. package/lib/javascript/JavascriptParser.js +1488 -1052
  312. package/lib/javascript/JavascriptParserHelpers.js +48 -47
  313. package/lib/javascript/StartupHelpers.js +23 -22
  314. package/lib/json/JsonData.js +4 -4
  315. package/lib/json/JsonGenerator.js +66 -32
  316. package/lib/json/JsonModulesPlugin.js +16 -6
  317. package/lib/json/JsonParser.js +23 -8
  318. package/lib/library/AbstractLibraryPlugin.js +45 -10
  319. package/lib/library/AmdLibraryPlugin.js +7 -5
  320. package/lib/library/AssignLibraryPlugin.js +71 -17
  321. package/lib/library/EnableLibraryPlugin.js +51 -25
  322. package/lib/library/ExportPropertyLibraryPlugin.js +12 -18
  323. package/lib/library/JsonpLibraryPlugin.js +5 -2
  324. package/lib/library/ModuleLibraryPlugin.js +230 -18
  325. package/lib/library/SystemLibraryPlugin.js +29 -11
  326. package/lib/library/UmdLibraryPlugin.js +35 -32
  327. package/lib/logging/Logger.js +18 -15
  328. package/lib/logging/createConsoleLogger.js +27 -27
  329. package/lib/logging/runtime.js +11 -11
  330. package/lib/logging/truncateArgs.js +5 -5
  331. package/lib/node/CommonJsChunkLoadingPlugin.js +72 -75
  332. package/lib/node/NodeEnvironmentPlugin.js +9 -3
  333. package/lib/node/NodeTargetPlugin.js +9 -1
  334. package/lib/node/NodeTemplatePlugin.js +2 -2
  335. package/lib/node/NodeWatchFileSystem.js +4 -4
  336. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +22 -38
  337. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +10 -11
  338. package/lib/node/ReadFileCompileWasmPlugin.js +11 -14
  339. package/lib/node/RequireChunkLoadingRuntimeModule.js +22 -30
  340. package/lib/node/nodeConsole.js +12 -7
  341. package/lib/optimize/AggressiveMergingPlugin.js +46 -47
  342. package/lib/optimize/AggressiveSplittingPlugin.js +233 -238
  343. package/lib/optimize/ConcatenatedModule.js +620 -251
  344. package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
  345. package/lib/optimize/FlagIncludedChunksPlugin.js +93 -96
  346. package/lib/optimize/InnerGraph.js +139 -124
  347. package/lib/optimize/InnerGraphPlugin.js +29 -24
  348. package/lib/optimize/LimitChunkCountPlugin.js +32 -8
  349. package/lib/optimize/MangleExportsPlugin.js +22 -22
  350. package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
  351. package/lib/optimize/MinChunkSizePlugin.js +12 -7
  352. package/lib/optimize/ModuleConcatenationPlugin.js +92 -71
  353. package/lib/optimize/RealContentHashPlugin.js +58 -44
  354. package/lib/optimize/RemoveEmptyChunksPlugin.js +8 -5
  355. package/lib/optimize/RemoveParentModulesPlugin.js +7 -4
  356. package/lib/optimize/RuntimeChunkPlugin.js +22 -25
  357. package/lib/optimize/SideEffectsFlagPlugin.js +44 -26
  358. package/lib/optimize/SplitChunksPlugin.js +209 -158
  359. package/lib/performance/AssetsOverSizeLimitWarning.js +1 -1
  360. package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
  361. package/lib/performance/SizeLimitsPlugin.js +8 -5
  362. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +5 -7
  363. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +61 -64
  364. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +3 -4
  365. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  366. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  367. package/lib/rules/BasicEffectRulePlugin.js +14 -5
  368. package/lib/rules/BasicMatcherRulePlugin.js +18 -7
  369. package/lib/rules/ObjectMatcherRulePlugin.js +17 -6
  370. package/lib/rules/RuleSetCompiler.js +73 -32
  371. package/lib/rules/UseEffectRulePlugin.js +61 -25
  372. package/lib/runtime/AsyncModuleRuntimeModule.js +74 -9
  373. package/lib/runtime/AutoPublicPathRuntimeModule.js +9 -4
  374. package/lib/runtime/BaseUriRuntimeModule.js +2 -2
  375. package/lib/runtime/CompatRuntimeModule.js +0 -1
  376. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
  377. package/lib/runtime/GetChunkFilenameRuntimeModule.js +34 -35
  378. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -1
  379. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
  380. package/lib/runtime/LoadScriptRuntimeModule.js +0 -2
  381. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +248 -0
  382. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  383. package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
  384. package/lib/runtime/StartupChunkDependenciesPlugin.js +39 -42
  385. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +10 -9
  386. package/lib/runtime/StartupEntrypointRuntimeModule.js +0 -1
  387. package/lib/runtime/SystemContextRuntimeModule.js +0 -2
  388. package/lib/runtime/ToBinaryRuntimeModule.js +64 -0
  389. package/lib/schemes/DataUriPlugin.js +9 -31
  390. package/lib/schemes/FileUriPlugin.js +11 -6
  391. package/lib/schemes/HttpUriPlugin.js +381 -261
  392. package/lib/schemes/VirtualUrlPlugin.js +222 -0
  393. package/lib/serialization/AggregateErrorSerializer.js +41 -0
  394. package/lib/serialization/BinaryMiddleware.js +51 -33
  395. package/lib/serialization/ErrorObjectSerializer.js +7 -2
  396. package/lib/serialization/FileMiddleware.js +101 -71
  397. package/lib/serialization/NullPrototypeObjectSerializer.js +5 -3
  398. package/lib/serialization/ObjectMiddleware.js +130 -54
  399. package/lib/serialization/PlainObjectSerializer.js +1 -1
  400. package/lib/serialization/Serializer.js +38 -20
  401. package/lib/serialization/SerializerMiddleware.js +121 -49
  402. package/lib/serialization/SingleItemMiddleware.js +9 -7
  403. package/lib/serialization/types.js +1 -1
  404. package/lib/sharing/ConsumeSharedModule.js +9 -9
  405. package/lib/sharing/ConsumeSharedPlugin.js +14 -14
  406. package/lib/sharing/ConsumeSharedRuntimeModule.js +11 -8
  407. package/lib/sharing/ProvideSharedModule.js +9 -11
  408. package/lib/sharing/ProvideSharedModuleFactory.js +5 -3
  409. package/lib/sharing/ProvideSharedPlugin.js +15 -10
  410. package/lib/sharing/SharePlugin.js +3 -4
  411. package/lib/sharing/ShareRuntimeModule.js +7 -6
  412. package/lib/sharing/resolveMatchedConfigs.js +27 -13
  413. package/lib/sharing/utils.js +37 -43
  414. package/lib/stats/DefaultStatsFactoryPlugin.js +455 -286
  415. package/lib/stats/DefaultStatsPresetPlugin.js +77 -46
  416. package/lib/stats/DefaultStatsPrinterPlugin.js +583 -419
  417. package/lib/stats/StatsFactory.js +75 -32
  418. package/lib/stats/StatsPrinter.js +71 -51
  419. package/lib/url/URLParserPlugin.js +264 -0
  420. package/lib/util/ArrayHelpers.js +6 -8
  421. package/lib/util/ArrayQueue.js +1 -1
  422. package/lib/util/AsyncQueue.js +11 -10
  423. package/lib/util/Hash.js +37 -5
  424. package/lib/util/IterableHelpers.js +4 -4
  425. package/lib/util/LazyBucketSortedSet.js +46 -27
  426. package/lib/util/LazySet.js +16 -10
  427. package/lib/util/MapHelpers.js +1 -1
  428. package/lib/util/ParallelismFactorCalculator.js +2 -2
  429. package/lib/util/Semaphore.js +3 -3
  430. package/lib/util/SetHelpers.js +6 -6
  431. package/lib/util/SortableSet.js +11 -9
  432. package/lib/util/StackedCacheMap.js +2 -2
  433. package/lib/util/StackedMap.js +3 -3
  434. package/lib/util/StringXor.js +2 -1
  435. package/lib/util/TupleQueue.js +11 -8
  436. package/lib/util/TupleSet.js +44 -19
  437. package/lib/util/URLAbsoluteSpecifier.js +3 -4
  438. package/lib/util/WeakTupleMap.js +56 -42
  439. package/lib/util/binarySearchBounds.js +4 -3
  440. package/lib/util/chainedImports.js +3 -1
  441. package/lib/util/cleverMerge.js +171 -107
  442. package/lib/util/comparators.js +265 -162
  443. package/lib/util/compileBooleanMatcher.js +120 -41
  444. package/lib/util/concatenate.js +20 -16
  445. package/lib/util/conventions.js +73 -74
  446. package/lib/util/create-schema-validation.js +8 -8
  447. package/lib/util/createHash.js +32 -135
  448. package/lib/util/dataURL.js +39 -0
  449. package/lib/util/deprecation.js +119 -116
  450. package/lib/util/deterministicGrouping.js +56 -47
  451. package/lib/util/extractSourceMap.js +319 -0
  452. package/lib/util/extractUrlAndGlobal.js +1 -1
  453. package/lib/util/findGraphRoots.js +19 -9
  454. package/lib/util/fs.js +169 -141
  455. package/lib/util/hash/BatchedHash.js +50 -10
  456. package/lib/util/hash/BulkUpdateHash.js +138 -0
  457. package/lib/util/hash/DebugHash.js +75 -0
  458. package/lib/util/hash/hash-digest.js +216 -0
  459. package/lib/util/hash/md4.js +2 -2
  460. package/lib/util/hash/wasm-hash.js +59 -17
  461. package/lib/util/identifier.js +124 -61
  462. package/lib/util/internalSerializables.js +4 -6
  463. package/lib/util/magicComment.js +9 -5
  464. package/lib/util/makeSerializable.js +2 -2
  465. package/lib/util/memoize.js +5 -2
  466. package/lib/util/objectToMap.js +3 -2
  467. package/lib/util/processAsyncTree.js +5 -5
  468. package/lib/util/propertyAccess.js +1 -1
  469. package/lib/util/propertyName.js +2 -3
  470. package/lib/util/registerExternalSerializer.js +16 -20
  471. package/lib/util/removeBOM.js +25 -0
  472. package/lib/util/runtime.js +72 -56
  473. package/lib/util/semver.js +44 -33
  474. package/lib/util/serialization.js +56 -56
  475. package/lib/util/smartGrouping.js +42 -27
  476. package/lib/util/source.js +5 -4
  477. package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
  478. package/lib/validateSchema.js +7 -9
  479. package/lib/wasm/EnableWasmLoadingPlugin.js +22 -12
  480. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +9 -5
  481. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +15 -3
  482. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +28 -22
  483. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +47 -57
  484. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -10
  485. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +8 -4
  486. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +23 -17
  487. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +55 -57
  488. package/lib/wasm-sync/WebAssemblyGenerator.js +56 -41
  489. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +6 -3
  490. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +25 -10
  491. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +11 -12
  492. package/lib/wasm-sync/WebAssemblyParser.js +10 -17
  493. package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
  494. package/lib/web/FetchCompileAsyncWasmPlugin.js +4 -4
  495. package/lib/web/FetchCompileWasmPlugin.js +6 -8
  496. package/lib/web/JsonpChunkLoadingPlugin.js +74 -74
  497. package/lib/web/JsonpChunkLoadingRuntimeModule.js +10 -26
  498. package/lib/web/JsonpTemplatePlugin.js +0 -1
  499. package/lib/webpack.js +107 -87
  500. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +79 -75
  501. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +38 -51
  502. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
  503. package/module.d.ts +5 -0
  504. package/package.json +149 -129
  505. package/schemas/WebpackOptions.check.d.ts +1 -1
  506. package/schemas/WebpackOptions.check.js +2 -2
  507. package/schemas/WebpackOptions.json +543 -190
  508. package/schemas/plugins/BannerPlugin.check.d.ts +1 -1
  509. package/schemas/plugins/BannerPlugin.check.js +2 -2
  510. package/schemas/plugins/BannerPlugin.json +4 -0
  511. package/schemas/plugins/DllPlugin.check.d.ts +1 -1
  512. package/schemas/plugins/DllPlugin.check.js +1 -1
  513. package/schemas/plugins/DllReferencePlugin.check.d.ts +1 -1
  514. package/schemas/plugins/DllReferencePlugin.check.js +1 -1
  515. package/schemas/plugins/IgnorePlugin.check.d.ts +1 -1
  516. package/schemas/plugins/IgnorePlugin.check.js +1 -1
  517. package/schemas/plugins/IgnorePlugin.json +1 -1
  518. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +1 -1
  519. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -1
  520. package/schemas/plugins/{HashedModuleIdsPlugin.check.d.ts → ManifestPlugin.check.d.ts} +2 -2
  521. package/schemas/plugins/ManifestPlugin.check.js +6 -0
  522. package/schemas/plugins/ManifestPlugin.json +98 -0
  523. package/schemas/plugins/ProgressPlugin.check.d.ts +1 -1
  524. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  525. package/schemas/plugins/ProgressPlugin.json +1 -1
  526. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +1 -1
  527. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -2
  528. package/schemas/plugins/SourceMapDevToolPlugin.json +23 -6
  529. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +1 -1
  530. package/schemas/plugins/WatchIgnorePlugin.check.js +1 -1
  531. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +1 -1
  532. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
  533. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +1 -1
  534. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
  535. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +1 -1
  536. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
  537. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +1 -1
  538. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
  539. package/schemas/plugins/container/ContainerPlugin.check.d.ts +1 -1
  540. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  541. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +1 -1
  542. package/schemas/plugins/container/ContainerReferencePlugin.check.js +2 -2
  543. package/schemas/plugins/container/ContainerReferencePlugin.json +4 -1
  544. package/schemas/plugins/container/ExternalsType.check.d.ts +1 -1
  545. package/schemas/plugins/container/ExternalsType.check.js +2 -2
  546. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +1 -1
  547. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -2
  548. package/schemas/plugins/container/ModuleFederationPlugin.json +4 -1
  549. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +1 -1
  550. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -1
  551. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +1 -1
  552. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +2 -2
  553. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +1 -1
  554. package/schemas/plugins/css/CssModuleParserOptions.check.js +2 -2
  555. package/schemas/plugins/css/CssParserOptions.check.d.ts +1 -1
  556. package/schemas/plugins/css/CssParserOptions.check.js +2 -2
  557. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +1 -1
  558. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -1
  559. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +7 -0
  560. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +6 -0
  561. package/schemas/plugins/{HashedModuleIdsPlugin.json → ids/HashedModuleIdsPlugin.json} +15 -2
  562. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +1 -1
  563. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -1
  564. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +1 -1
  565. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -1
  566. package/schemas/plugins/{css/CssGlobalParserOptions.check.d.ts → json/JsonModulesPluginGenerator.check.d.ts} +1 -1
  567. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +6 -0
  568. package/schemas/plugins/json/JsonModulesPluginGenerator.json +3 -0
  569. package/schemas/plugins/{css/CssGlobalGeneratorOptions.check.d.ts → json/JsonModulesPluginParser.check.d.ts} +1 -1
  570. package/schemas/plugins/json/JsonModulesPluginParser.check.js +6 -0
  571. package/schemas/plugins/json/JsonModulesPluginParser.json +3 -0
  572. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +1 -1
  573. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
  574. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +1 -1
  575. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
  576. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +1 -1
  577. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -1
  578. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +1 -1
  579. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
  580. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +1 -1
  581. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
  582. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
  583. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
  584. package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
  585. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +1 -1
  586. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +1 -1
  587. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +1 -1
  588. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +1 -1
  589. package/schemas/plugins/sharing/SharePlugin.check.d.ts +1 -1
  590. package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
  591. package/types.d.ts +5115 -1863
  592. package/SECURITY.md +0 -9
  593. package/lib/ModuleSourceTypesConstants.js +0 -112
  594. package/lib/dependencies/CssLocalIdentifierDependency.js +0 -250
  595. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +0 -111
  596. package/lib/library/ModernModuleLibraryPlugin.js +0 -144
  597. package/schemas/plugins/HashedModuleIdsPlugin.check.js +0 -6
  598. package/schemas/plugins/JsonModulesPluginParser.check.d.ts +0 -7
  599. package/schemas/plugins/JsonModulesPluginParser.check.js +0 -6
  600. package/schemas/plugins/JsonModulesPluginParser.json +0 -12
  601. package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
  602. package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
  603. package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
  604. package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +0 -7
  605. package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
  606. package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
  607. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
  608. package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
  609. package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
  610. package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
@@ -19,7 +19,7 @@ const SortableSet = require("./SortableSet");
19
19
  * @param {EntryOptions=} options optionally already received entry options
20
20
  * @returns {RuntimeSpec} runtime
21
21
  */
22
- module.exports.getEntryRuntime = (compilation, name, options) => {
22
+ const getEntryRuntime = (compilation, name, options) => {
23
23
  let dependOn;
24
24
  let runtime;
25
25
  if (options) {
@@ -52,7 +52,7 @@ module.exports.getEntryRuntime = (compilation, name, options) => {
52
52
 
53
53
  /**
54
54
  * @param {RuntimeSpec} runtime runtime
55
- * @param {function(string | undefined): void} fn functor
55
+ * @param {(runtime: string | undefined) => void} fn functor
56
56
  * @param {boolean} deterministicOrder enforce a deterministic order
57
57
  * @returns {void}
58
58
  */
@@ -68,67 +68,63 @@ const forEachRuntime = (runtime, fn, deterministicOrder = false) => {
68
68
  }
69
69
  }
70
70
  };
71
- module.exports.forEachRuntime = forEachRuntime;
72
71
 
73
72
  /**
74
73
  * @template T
75
- * @param {SortableSet<T>} set set
74
+ * @param {Exclude<RuntimeSpec, undefined | string>} set set
76
75
  * @returns {string} runtime key
77
76
  */
78
- const getRuntimesKey = set => {
77
+ const getRuntimesKey = (set) => {
79
78
  set.sort();
80
- return Array.from(set).join("\n");
79
+ return [...set].join("\n");
81
80
  };
82
81
 
83
82
  /**
84
83
  * @param {RuntimeSpec} runtime runtime(s)
85
84
  * @returns {string} key of runtimes
86
85
  */
87
- const getRuntimeKey = runtime => {
86
+ const getRuntimeKey = (runtime) => {
88
87
  if (runtime === undefined) return "*";
89
88
  if (typeof runtime === "string") return runtime;
90
89
  return runtime.getFromUnorderedCache(getRuntimesKey);
91
90
  };
92
- module.exports.getRuntimeKey = getRuntimeKey;
93
91
 
94
92
  /**
95
93
  * @param {string} key key of runtimes
96
94
  * @returns {RuntimeSpec} runtime(s)
97
95
  */
98
- const keyToRuntime = key => {
96
+ const keyToRuntime = (key) => {
99
97
  if (key === "*") return;
100
98
  const items = key.split("\n");
101
99
  if (items.length === 1) return items[0];
102
100
  return new SortableSet(items);
103
101
  };
104
- module.exports.keyToRuntime = keyToRuntime;
105
102
 
106
103
  /**
107
104
  * @template T
108
- * @param {SortableSet<T>} set set
105
+ * @param {Exclude<RuntimeSpec, undefined | string>} set set
109
106
  * @returns {string} runtime string
110
107
  */
111
- const getRuntimesString = set => {
108
+ const getRuntimesString = (set) => {
112
109
  set.sort();
113
- return Array.from(set).join("+");
110
+ return [...set].join("+");
114
111
  };
115
112
 
116
113
  /**
117
114
  * @param {RuntimeSpec} runtime runtime(s)
118
115
  * @returns {string} readable version
119
116
  */
120
- const runtimeToString = runtime => {
117
+ const runtimeToString = (runtime) => {
121
118
  if (runtime === undefined) return "*";
122
119
  if (typeof runtime === "string") return runtime;
123
120
  return runtime.getFromUnorderedCache(getRuntimesString);
124
121
  };
125
- module.exports.runtimeToString = runtimeToString;
126
122
 
127
123
  /**
128
124
  * @param {RuntimeCondition} runtimeCondition runtime condition
129
125
  * @returns {string} readable version
130
126
  */
131
- module.exports.runtimeConditionToString = runtimeCondition => {
127
+ const runtimeConditionToString = (runtimeCondition) => {
132
128
  if (runtimeCondition === true) return "true";
133
129
  if (runtimeCondition === false) return "false";
134
130
  return runtimeToString(runtimeCondition);
@@ -163,14 +159,13 @@ const runtimeEqual = (a, b) => {
163
159
  if (aV.value !== bV.value) return false;
164
160
  }
165
161
  };
166
- module.exports.runtimeEqual = runtimeEqual;
167
162
 
168
163
  /**
169
164
  * @param {RuntimeSpec} a first
170
165
  * @param {RuntimeSpec} b second
171
- * @returns {-1|0|1} compare
166
+ * @returns {-1 | 0 | 1} compare
172
167
  */
173
- module.exports.compareRuntime = (a, b) => {
168
+ const compareRuntime = (a, b) => {
174
169
  if (a === b) {
175
170
  return 0;
176
171
  } else if (a === undefined) {
@@ -221,7 +216,6 @@ const mergeRuntime = (a, b) => {
221
216
  if (set.size === a.size) return a;
222
217
  return set;
223
218
  };
224
- module.exports.mergeRuntime = mergeRuntime;
225
219
 
226
220
  /**
227
221
  * @param {RuntimeCondition} a first
@@ -229,7 +223,7 @@ module.exports.mergeRuntime = mergeRuntime;
229
223
  * @param {RuntimeSpec} runtime full runtime
230
224
  * @returns {RuntimeCondition} result
231
225
  */
232
- module.exports.mergeRuntimeCondition = (a, b, runtime) => {
226
+ const mergeRuntimeCondition = (a, b, runtime) => {
233
227
  if (a === false) return b;
234
228
  if (b === false) return a;
235
229
  if (a === true || b === true) return true;
@@ -250,7 +244,7 @@ module.exports.mergeRuntimeCondition = (a, b, runtime) => {
250
244
  * @param {RuntimeSpec} runtime full runtime
251
245
  * @returns {RuntimeSpec | true} result
252
246
  */
253
- module.exports.mergeRuntimeConditionNonFalse = (a, b, runtime) => {
247
+ const mergeRuntimeConditionNonFalse = (a, b, runtime) => {
254
248
  if (a === true || b === true) return true;
255
249
  const merged = mergeRuntime(a, b);
256
250
  if (merged === undefined) return;
@@ -296,14 +290,13 @@ const mergeRuntimeOwned = (a, b) => {
296
290
  for (const item of b) a.add(item);
297
291
  return a;
298
292
  };
299
- module.exports.mergeRuntimeOwned = mergeRuntimeOwned;
300
293
 
301
294
  /**
302
295
  * @param {RuntimeSpec} a first
303
296
  * @param {RuntimeSpec} b second
304
297
  * @returns {RuntimeSpec} merged
305
298
  */
306
- module.exports.intersectRuntime = (a, b) => {
299
+ const intersectRuntime = (a, b) => {
307
300
  if (a === undefined) {
308
301
  return b;
309
302
  } else if (b === undefined) {
@@ -376,7 +369,6 @@ const subtractRuntime = (a, b) => {
376
369
  }
377
370
  return set;
378
371
  };
379
- module.exports.subtractRuntime = subtractRuntime;
380
372
 
381
373
  /**
382
374
  * @param {RuntimeCondition} a first
@@ -384,7 +376,7 @@ module.exports.subtractRuntime = subtractRuntime;
384
376
  * @param {RuntimeSpec} runtime runtime
385
377
  * @returns {RuntimeCondition} result
386
378
  */
387
- module.exports.subtractRuntimeCondition = (a, b, runtime) => {
379
+ const subtractRuntimeCondition = (a, b, runtime) => {
388
380
  if (b === true) return false;
389
381
  if (b === false) return a;
390
382
  if (a === false) return false;
@@ -394,10 +386,10 @@ module.exports.subtractRuntimeCondition = (a, b, runtime) => {
394
386
 
395
387
  /**
396
388
  * @param {RuntimeSpec} runtime runtime
397
- * @param {function(RuntimeSpec=): boolean} filter filter function
389
+ * @param {(runtime?: RuntimeSpec) => boolean} filter filter function
398
390
  * @returns {boolean | RuntimeSpec} true/false if filter is constant for all runtimes, otherwise runtimes that are active
399
391
  */
400
- module.exports.filterRuntime = (runtime, filter) => {
392
+ const filterRuntime = (runtime, filter) => {
401
393
  if (runtime === undefined) return filter();
402
394
  if (typeof runtime === "string") return filter(runtime);
403
395
  let some = false;
@@ -424,24 +416,26 @@ module.exports.filterRuntime = (runtime, filter) => {
424
416
 
425
417
  /**
426
418
  * @template T
419
+ * @template [R=T]
427
420
  */
428
421
  class RuntimeSpecMap {
429
422
  /**
430
- * @param {RuntimeSpecMap<T>=} clone copy form this
423
+ * @param {RuntimeSpecMap<T, R>=} clone copy form this
431
424
  */
432
425
  constructor(clone) {
426
+ /** @type {0 | 1 | 2} */
433
427
  this._mode = clone ? clone._mode : 0; // 0 = empty, 1 = single entry, 2 = map
434
428
  /** @type {RuntimeSpec} */
435
429
  this._singleRuntime = clone ? clone._singleRuntime : undefined;
436
- /** @type {T | undefined} */
430
+ /** @type {R | undefined} */
437
431
  this._singleValue = clone ? clone._singleValue : undefined;
438
- /** @type {RuntimeSpecMapInnerMap<T> | undefined} */
432
+ /** @type {RuntimeSpecMapInnerMap<R> | undefined} */
439
433
  this._map = clone && clone._map ? new Map(clone._map) : undefined;
440
434
  }
441
435
 
442
436
  /**
443
437
  * @param {RuntimeSpec} runtime the runtimes
444
- * @returns {T | undefined} value
438
+ * @returns {R | undefined} value
445
439
  */
446
440
  get(runtime) {
447
441
  switch (this._mode) {
@@ -452,7 +446,7 @@ class RuntimeSpecMap {
452
446
  ? this._singleValue
453
447
  : undefined;
454
448
  default:
455
- return /** @type {RuntimeSpecMapInnerMap<T>} */ (this._map).get(
449
+ return /** @type {RuntimeSpecMapInnerMap<R>} */ (this._map).get(
456
450
  getRuntimeKey(runtime)
457
451
  );
458
452
  }
@@ -469,7 +463,7 @@ class RuntimeSpecMap {
469
463
  case 1:
470
464
  return runtimeEqual(this._singleRuntime, runtime);
471
465
  default:
472
- return /** @type {RuntimeSpecMapInnerMap<T>} */ (this._map).has(
466
+ return /** @type {RuntimeSpecMapInnerMap<R>} */ (this._map).has(
473
467
  getRuntimeKey(runtime)
474
468
  );
475
469
  }
@@ -477,7 +471,7 @@ class RuntimeSpecMap {
477
471
 
478
472
  /**
479
473
  * @param {RuntimeSpec} runtime the runtimes
480
- * @param {T} value the value
474
+ * @param {R} value the value
481
475
  */
482
476
  set(runtime, value) {
483
477
  switch (this._mode) {
@@ -495,21 +489,21 @@ class RuntimeSpecMap {
495
489
  this._map = new Map();
496
490
  this._map.set(
497
491
  getRuntimeKey(this._singleRuntime),
498
- /** @type {T} */ (this._singleValue)
492
+ /** @type {R} */ (this._singleValue)
499
493
  );
500
494
  this._singleRuntime = undefined;
501
495
  this._singleValue = undefined;
502
496
  /* falls through */
503
497
  default:
504
- /** @type {RuntimeSpecMapInnerMap<T>} */
498
+ /** @type {RuntimeSpecMapInnerMap<R>} */
505
499
  (this._map).set(getRuntimeKey(runtime), value);
506
500
  }
507
501
  }
508
502
 
509
503
  /**
510
504
  * @param {RuntimeSpec} runtime the runtimes
511
- * @param {() => TODO} computer function to compute the value
512
- * @returns {TODO} true, when the runtime was deleted
505
+ * @param {() => R} computer function to compute the value
506
+ * @returns {R} the new value
513
507
  */
514
508
  provide(runtime, computer) {
515
509
  switch (this._mode) {
@@ -519,13 +513,14 @@ class RuntimeSpecMap {
519
513
  return (this._singleValue = computer());
520
514
  case 1: {
521
515
  if (runtimeEqual(this._singleRuntime, runtime)) {
522
- return /** @type {T} */ (this._singleValue);
516
+ return /** @type {R} */ (this._singleValue);
523
517
  }
524
518
  this._mode = 2;
525
519
  this._map = new Map();
526
520
  this._map.set(
527
521
  getRuntimeKey(this._singleRuntime),
528
- /** @type {T} */ (this._singleValue)
522
+ /** @type {R} */
523
+ (this._singleValue)
529
524
  );
530
525
  this._singleRuntime = undefined;
531
526
  this._singleValue = undefined;
@@ -535,10 +530,12 @@ class RuntimeSpecMap {
535
530
  }
536
531
  default: {
537
532
  const key = getRuntimeKey(runtime);
538
- const value = /** @type {Map<string, T>} */ (this._map).get(key);
533
+ const value =
534
+ /** @type {RuntimeSpecMapInnerMap<R>} */
535
+ (this._map).get(key);
539
536
  if (value !== undefined) return value;
540
537
  const newValue = computer();
541
- /** @type {Map<string, T>} */
538
+ /** @type {RuntimeSpecMapInnerMap<R>} */
542
539
  (this._map).set(key, newValue);
543
540
  return newValue;
544
541
  }
@@ -560,14 +557,14 @@ class RuntimeSpecMap {
560
557
  }
561
558
  return;
562
559
  default:
563
- /** @type {RuntimeSpecMapInnerMap<T>} */
560
+ /** @type {RuntimeSpecMapInnerMap<R>} */
564
561
  (this._map).delete(getRuntimeKey(runtime));
565
562
  }
566
563
  }
567
564
 
568
565
  /**
569
566
  * @param {RuntimeSpec} runtime the runtimes
570
- * @param {function(T | undefined): T} fn function to update the value
567
+ * @param {(value: R | undefined) => R} fn function to update the value
571
568
  */
572
569
  update(runtime, fn) {
573
570
  switch (this._mode) {
@@ -584,7 +581,8 @@ class RuntimeSpecMap {
584
581
  this._map = new Map();
585
582
  this._map.set(
586
583
  getRuntimeKey(this._singleRuntime),
587
- /** @type {T} */ (this._singleValue)
584
+ /** @type {R} */
585
+ (this._singleValue)
588
586
  );
589
587
  this._singleRuntime = undefined;
590
588
  this._singleValue = undefined;
@@ -594,11 +592,14 @@ class RuntimeSpecMap {
594
592
  }
595
593
  default: {
596
594
  const key = getRuntimeKey(runtime);
597
- const oldValue = /** @type {Map<string, T>} */ (this._map).get(key);
595
+ const oldValue =
596
+ /** @type {RuntimeSpecMapInnerMap<R>} */
597
+ (this._map).get(key);
598
598
  const newValue = fn(oldValue);
599
- if (newValue !== oldValue)
600
- /** @type {RuntimeSpecMapInnerMap<T>} */
599
+ if (newValue !== oldValue) {
600
+ /** @type {RuntimeSpecMapInnerMap<R>} */
601
601
  (this._map).set(key, newValue);
602
+ }
602
603
  }
603
604
  }
604
605
  }
@@ -611,7 +612,7 @@ class RuntimeSpecMap {
611
612
  return [this._singleRuntime];
612
613
  default:
613
614
  return Array.from(
614
- /** @type {RuntimeSpecMapInnerMap<T>} */
615
+ /** @type {RuntimeSpecMapInnerMap<R>} */
615
616
  (this._map).keys(),
616
617
  keyToRuntime
617
618
  );
@@ -619,16 +620,16 @@ class RuntimeSpecMap {
619
620
  }
620
621
 
621
622
  /**
622
- * @returns {IterableIterator<T>} values
623
+ * @returns {IterableIterator<R>} values
623
624
  */
624
625
  values() {
625
626
  switch (this._mode) {
626
627
  case 0:
627
628
  return [][Symbol.iterator]();
628
629
  case 1:
629
- return [/** @type {T} */ (this._singleValue)][Symbol.iterator]();
630
+ return [/** @type {R} */ (this._singleValue)][Symbol.iterator]();
630
631
  default:
631
- return /** @type {Map<string, T>} */ (this._map).values();
632
+ return /** @type {RuntimeSpecMapInnerMap<R>} */ (this._map).values();
632
633
  }
633
634
  }
634
635
 
@@ -637,12 +638,10 @@ class RuntimeSpecMap {
637
638
  return /** @type {number} */ (this._mode);
638
639
  }
639
640
 
640
- return /** @type {Map<string, T>} */ (this._map).size;
641
+ return /** @type {RuntimeSpecMapInnerMap<R>} */ (this._map).size;
641
642
  }
642
643
  }
643
644
 
644
- module.exports.RuntimeSpecMap = RuntimeSpecMap;
645
-
646
645
  class RuntimeSpecSet {
647
646
  /**
648
647
  * @param {Iterable<RuntimeSpec>=} iterable iterable
@@ -684,4 +683,21 @@ class RuntimeSpecSet {
684
683
  }
685
684
  }
686
685
 
686
+ module.exports.RuntimeSpecMap = RuntimeSpecMap;
687
687
  module.exports.RuntimeSpecSet = RuntimeSpecSet;
688
+ module.exports.compareRuntime = compareRuntime;
689
+ module.exports.filterRuntime = filterRuntime;
690
+ module.exports.forEachRuntime = forEachRuntime;
691
+ module.exports.getEntryRuntime = getEntryRuntime;
692
+ module.exports.getRuntimeKey = getRuntimeKey;
693
+ module.exports.intersectRuntime = intersectRuntime;
694
+ module.exports.keyToRuntime = keyToRuntime;
695
+ module.exports.mergeRuntime = mergeRuntime;
696
+ module.exports.mergeRuntimeCondition = mergeRuntimeCondition;
697
+ module.exports.mergeRuntimeConditionNonFalse = mergeRuntimeConditionNonFalse;
698
+ module.exports.mergeRuntimeOwned = mergeRuntimeOwned;
699
+ module.exports.runtimeConditionToString = runtimeConditionToString;
700
+ module.exports.runtimeEqual = runtimeEqual;
701
+ module.exports.runtimeToString = runtimeToString;
702
+ module.exports.subtractRuntime = subtractRuntime;
703
+ module.exports.subtractRuntimeCondition = subtractRuntimeCondition;
@@ -6,22 +6,23 @@
6
6
  "use strict";
7
7
 
8
8
  /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
9
- /** @typedef {string | number | undefined} SemVerRangeItem */
9
+ /** @typedef {string | number} VersionValue */
10
+ /** @typedef {VersionValue | undefined} SemVerRangeItem */
10
11
  /** @typedef {(SemVerRangeItem | SemVerRangeItem[])[]} SemVerRange */
11
12
 
12
13
  /**
13
14
  * @param {string} str version string
14
15
  * @returns {SemVerRange} parsed version
15
16
  */
16
- const parseVersion = str => {
17
+ const parseVersion = (str) => {
17
18
  /**
18
19
  * @param {str} str str
19
- * @returns {(string | number)[]} result
20
+ * @returns {VersionValue[]} result
20
21
  */
21
22
  var splitAndConvert = function (str) {
22
23
  return str.split(".").map(function (item) {
23
24
  // eslint-disable-next-line eqeqeq
24
- return +item == /** @type {EXPECTED_ANY} */ (item) ? +item : item;
25
+ return +item == /** @type {string | number} */ (item) ? +item : item;
25
26
  });
26
27
  };
27
28
 
@@ -29,7 +30,7 @@ const parseVersion = str => {
29
30
  /** @type {RegExpExecArray} */
30
31
  (/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(str));
31
32
 
32
- /** @type {(string | number | undefined | [])[]} */
33
+ /** @type {(VersionValue | undefined | [])[]} */
33
34
  var ver = match[1] ? splitAndConvert(match[1]) : [];
34
35
 
35
36
  if (match[2]) {
@@ -100,15 +101,15 @@ module.exports.versionLt = versionLt;
100
101
  * @param {string} str range string
101
102
  * @returns {SemVerRange} parsed range
102
103
  */
103
- module.exports.parseRange = str => {
104
+ module.exports.parseRange = (str) => {
104
105
  /**
105
106
  * @param {string} str str
106
- * @returns {(string | number)[]} result
107
+ * @returns {VersionValue[]} result
107
108
  */
108
- const splitAndConvert = str => {
109
+ const splitAndConvert = (str) => {
109
110
  return str
110
111
  .split(".")
111
- .map(item => (item !== "NaN" && `${+item}` === item ? +item : item));
112
+ .map((item) => (item !== "NaN" && `${+item}` === item ? +item : item));
112
113
  };
113
114
 
114
115
  // see https://docs.npmjs.com/misc/semver#range-grammar for grammar
@@ -116,7 +117,7 @@ module.exports.parseRange = str => {
116
117
  * @param {string} str str
117
118
  * @returns {SemVerRangeItem[]}
118
119
  */
119
- const parsePartial = str => {
120
+ const parsePartial = (str) => {
120
121
  const match =
121
122
  /** @type {RegExpExecArray} */
122
123
  (/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(str));
@@ -146,7 +147,7 @@ module.exports.parseRange = str => {
146
147
  * @param {SemVerRangeItem[]} range range
147
148
  * @returns {SemVerRangeItem[]}
148
149
  */
149
- const toFixed = range => {
150
+ const toFixed = (range) => {
150
151
  if (range.length === 1) {
151
152
  // Special case for "*" is "x.x.x" instead of "="
152
153
  return [0];
@@ -166,7 +167,7 @@ module.exports.parseRange = str => {
166
167
  * @param {SemVerRangeItem[]} range
167
168
  * @returns {SemVerRangeItem[]} result
168
169
  */
169
- const negate = range => {
170
+ const negate = (range) => {
170
171
  return [-(/** @type { [number]} */ (range)[0]) - 1, ...range.slice(1)];
171
172
  };
172
173
 
@@ -174,7 +175,7 @@ module.exports.parseRange = str => {
174
175
  * @param {string} str str
175
176
  * @returns {SemVerRange}
176
177
  */
177
- const parseSimple = str => {
178
+ const parseSimple = (str) => {
178
179
  // simple ::= primitive | partial | tilde | caret
179
180
  // primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | '!' ) ( ' ' ) * partial
180
181
  // tilde ::= '~' ( ' ' ) * partial
@@ -253,21 +254,31 @@ module.exports.parseRange = str => {
253
254
  * @param {string} str str
254
255
  * @returns {SemVerRange}
255
256
  */
256
- const parseRange = str => {
257
+ const parseRange = (str) => {
257
258
  // range ::= hyphen | simple ( ' ' ( ' ' ) * simple ) * | ''
258
259
  // hyphen ::= partial ( ' ' ) * ' - ' ( ' ' ) * partial
259
260
  const items = str.split(/\s+-\s+/);
260
261
 
261
262
  if (items.length === 1) {
262
- const items =
263
- /** @type {SemVerRangeItem[][]} */
264
- (
265
- str
266
- .trim()
267
- .split(/(?<=[-0-9A-Za-z])\s+/g)
268
- .map(parseSimple)
269
- );
263
+ str = str.trim();
270
264
 
265
+ /** @type {SemVerRangeItem[][]} */
266
+ const items = [];
267
+ const r = /[-0-9A-Za-z]\s+/g;
268
+ var start = 0;
269
+ var match;
270
+ while ((match = r.exec(str))) {
271
+ const end = match.index + 1;
272
+ items.push(
273
+ /** @type {SemVerRangeItem[]} */
274
+ (parseSimple(str.slice(start, end).trim()))
275
+ );
276
+ start = end;
277
+ }
278
+ items.push(
279
+ /** @type {SemVerRangeItem[]} */
280
+ (parseSimple(str.slice(start).trim()))
281
+ );
271
282
  return combine(items, 2);
272
283
  }
273
284
 
@@ -282,7 +293,7 @@ module.exports.parseRange = str => {
282
293
  * @param {string} str str
283
294
  * @returns {SemVerRange}
284
295
  */
285
- const parseLogicalOr = str => {
296
+ const parseLogicalOr = (str) => {
286
297
  // range-set ::= range ( logical-or range ) *
287
298
  // logical-or ::= ( ' ' ) * '||' ( ' ' ) *
288
299
  const items =
@@ -300,7 +311,7 @@ module.exports.parseRange = str => {
300
311
  * @param {SemVerRange} range
301
312
  * @returns {string}
302
313
  */
303
- const rangeToString = range => {
314
+ const rangeToString = (range) => {
304
315
  var fixCount = /** @type {number} */ (range[0]);
305
316
  var str = "";
306
317
  if (range.length === 1) {
@@ -419,7 +430,7 @@ const satisfy = (range, version) => {
419
430
  /** @type {"s" | "n" | "u" | ""} */
420
431
  (j < range.length ? (typeof range[j])[0] : "");
421
432
 
422
- /** @type {number | string | undefined} */
433
+ /** @type {VersionValue | undefined} */
423
434
  var versionValue;
424
435
  /** @type {"n" | "s" | "u" | "o" | undefined} */
425
436
  var versionType;
@@ -460,8 +471,8 @@ const satisfy = (range, version) => {
460
471
  // Handles "cmp" cases
461
472
  if (
462
473
  negated
463
- ? versionValue > /** @type {(number | string)[]} */ (range)[j]
464
- : versionValue < /** @type {(number | string)[]} */ (range)[j]
474
+ ? versionValue > /** @type {VersionValue[]} */ (range)[j]
475
+ : versionValue < /** @type {VersionValue[]} */ (range)[j]
465
476
  ) {
466
477
  return false;
467
478
  }
@@ -522,7 +533,7 @@ module.exports.satisfy = satisfy;
522
533
  * @param {SemVerRange | string | number | false | undefined} json
523
534
  * @returns {string}
524
535
  */
525
- module.exports.stringifyHoley = json => {
536
+ module.exports.stringifyHoley = (json) => {
526
537
  switch (typeof json) {
527
538
  case "undefined":
528
539
  return "";
@@ -548,10 +559,10 @@ module.exports.stringifyHoley = json => {
548
559
  * @param {RuntimeTemplate} runtimeTemplate
549
560
  * @returns {string}
550
561
  */
551
- exports.parseVersionRuntimeCode = runtimeTemplate =>
562
+ exports.parseVersionRuntimeCode = (runtimeTemplate) =>
552
563
  `var parseVersion = ${runtimeTemplate.basicFunction("str", [
553
564
  "// see webpack/lib/util/semver.js for original code",
554
- `var p=${runtimeTemplate.supportsArrowFunction() ? "p=>" : "function(p)"}{return p.split(".").map((${runtimeTemplate.supportsArrowFunction() ? "p=>" : "function(p)"}{return+p==p?+p:p}))},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;`
565
+ `var p=${runtimeTemplate.supportsArrowFunction() ? "p=>" : "function(p)"}{return p.split(".").map(${runtimeTemplate.supportsArrowFunction() ? "p=>" : "function(p)"}{return+p==p?+p:p})},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;`
555
566
  ])}`;
556
567
  //#endregion
557
568
 
@@ -560,7 +571,7 @@ exports.parseVersionRuntimeCode = runtimeTemplate =>
560
571
  * @param {RuntimeTemplate} runtimeTemplate
561
572
  * @returns {string}
562
573
  */
563
- exports.versionLtRuntimeCode = runtimeTemplate =>
574
+ exports.versionLtRuntimeCode = (runtimeTemplate) =>
564
575
  `var versionLt = ${runtimeTemplate.basicFunction("a, b", [
565
576
  "// see webpack/lib/util/semver.js for original code",
566
577
  'a=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r<b.length&&"u"!=(typeof b[r])[0];var e=a[r],n=(typeof e)[0];if(r>=b.length)return"u"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return"o"==n&&"n"==f||("s"==f||"u"==n);if("o"!=n&&"u"!=n&&e!=t)return e<t;r++}'
@@ -572,7 +583,7 @@ exports.versionLtRuntimeCode = runtimeTemplate =>
572
583
  * @param {RuntimeTemplate} runtimeTemplate
573
584
  * @returns {string}
574
585
  */
575
- exports.rangeToStringRuntimeCode = runtimeTemplate =>
586
+ exports.rangeToStringRuntimeCode = (runtimeTemplate) =>
576
587
  `var rangeToString = ${runtimeTemplate.basicFunction("range", [
577
588
  "// see webpack/lib/util/semver.js for original code",
578
589
  'var r=range[0],n="";if(1===range.length)return"*";if(r+.5){n+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var e=1,a=1;a<range.length;a++){e--,n+="u"==(typeof(t=range[a]))[0]?"-":(e>0?".":"")+(e=2,t)}return n}var g=[];for(a=1;a<range.length;a++){var t=range[a];g.push(0===t?"not("+o()+")":1===t?"("+o()+" || "+o()+")":2===t?g.pop()+" "+g.pop():rangeToString(t))}return o();function o(){return g.pop().replace(/^\\((.+)\\)$/,"$1")}'
@@ -584,7 +595,7 @@ exports.rangeToStringRuntimeCode = runtimeTemplate =>
584
595
  * @param {RuntimeTemplate} runtimeTemplate
585
596
  * @returns {string}
586
597
  */
587
- exports.satisfyRuntimeCode = runtimeTemplate =>
598
+ exports.satisfyRuntimeCode = (runtimeTemplate) =>
588
599
  `var satisfy = ${runtimeTemplate.basicFunction("range, version", [
589
600
  "// see webpack/lib/util/semver.js for original code",
590
601
  'if(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i<range.length?(typeof range[i])[0]:"";if(n>=version.length||"o"==(s=(typeof(f=version[n]))[0]))return!a||("u"==g?i>e&&!r:""==g!=r);if("u"==s){if(!a||"u"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f<range[i])return!1;f!=range[i]&&(a=!1)}else if("s"!=g&&"n"!=g){if(r||i<=e)return!1;a=!1,i--}else{if(i<=e||s<g!=r)return!1;a=!1}else"s"!=g&&"n"!=g&&(a=!1,i--)}}var t=[],o=t.pop.bind(t);for(n=1;n<range.length;n++){var u=range[n];t.push(1==u?o()|o():2==u?o()&o():u?satisfy(u,version):!o())}return!!o();'