@depup/webpack 5.105.4-depup.37

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 (709) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +38 -0
  3. package/bin/webpack.js +196 -0
  4. package/hot/dev-server.js +90 -0
  5. package/hot/emitter-event-target.js +7 -0
  6. package/hot/emitter.js +2 -0
  7. package/hot/lazy-compilation-node.js +66 -0
  8. package/hot/lazy-compilation-universal.js +18 -0
  9. package/hot/lazy-compilation-web.js +93 -0
  10. package/hot/load-http.js +7 -0
  11. package/hot/log-apply-result.js +49 -0
  12. package/hot/log.js +78 -0
  13. package/hot/only-dev-server.js +118 -0
  14. package/hot/poll.js +41 -0
  15. package/hot/signal.js +66 -0
  16. package/lib/APIPlugin.js +392 -0
  17. package/lib/AbstractMethodError.js +56 -0
  18. package/lib/AsyncDependenciesBlock.js +128 -0
  19. package/lib/AsyncDependencyToInitialChunkError.js +34 -0
  20. package/lib/AutomaticPrefetchPlugin.js +66 -0
  21. package/lib/BannerPlugin.js +138 -0
  22. package/lib/Cache.js +168 -0
  23. package/lib/CacheFacade.js +349 -0
  24. package/lib/CaseSensitiveModulesWarning.js +72 -0
  25. package/lib/Chunk.js +899 -0
  26. package/lib/ChunkGraph.js +1968 -0
  27. package/lib/ChunkGroup.js +615 -0
  28. package/lib/ChunkRenderError.js +38 -0
  29. package/lib/ChunkTemplate.js +181 -0
  30. package/lib/CleanPlugin.js +495 -0
  31. package/lib/CodeGenerationError.js +35 -0
  32. package/lib/CodeGenerationResults.js +167 -0
  33. package/lib/CommentCompilationWarning.js +33 -0
  34. package/lib/CompatibilityPlugin.js +240 -0
  35. package/lib/Compilation.js +5876 -0
  36. package/lib/Compiler.js +1413 -0
  37. package/lib/ConcatenationScope.js +181 -0
  38. package/lib/ConcurrentCompilationError.js +18 -0
  39. package/lib/ConditionalInitFragment.js +120 -0
  40. package/lib/ConstPlugin.js +567 -0
  41. package/lib/ContextExclusionPlugin.js +33 -0
  42. package/lib/ContextModule.js +1411 -0
  43. package/lib/ContextModuleFactory.js +514 -0
  44. package/lib/ContextReplacementPlugin.js +227 -0
  45. package/lib/CssModule.js +179 -0
  46. package/lib/DefinePlugin.js +878 -0
  47. package/lib/DelegatedModule.js +279 -0
  48. package/lib/DelegatedModuleFactoryPlugin.js +116 -0
  49. package/lib/DelegatedPlugin.js +49 -0
  50. package/lib/DependenciesBlock.js +120 -0
  51. package/lib/Dependency.js +390 -0
  52. package/lib/DependencyTemplate.js +71 -0
  53. package/lib/DependencyTemplates.js +67 -0
  54. package/lib/DllEntryPlugin.js +76 -0
  55. package/lib/DllModule.js +175 -0
  56. package/lib/DllModuleFactory.js +38 -0
  57. package/lib/DllPlugin.js +73 -0
  58. package/lib/DllReferencePlugin.js +189 -0
  59. package/lib/DotenvPlugin.js +468 -0
  60. package/lib/DynamicEntryPlugin.js +93 -0
  61. package/lib/EntryOptionPlugin.js +98 -0
  62. package/lib/EntryPlugin.js +72 -0
  63. package/lib/Entrypoint.js +120 -0
  64. package/lib/EnvironmentNotSupportAsyncWarning.js +51 -0
  65. package/lib/EnvironmentPlugin.js +74 -0
  66. package/lib/ErrorHelpers.js +100 -0
  67. package/lib/EvalDevToolModulePlugin.js +135 -0
  68. package/lib/EvalSourceMapDevToolPlugin.js +252 -0
  69. package/lib/ExportsInfo.js +1663 -0
  70. package/lib/ExportsInfoApiPlugin.js +87 -0
  71. package/lib/ExternalModule.js +1169 -0
  72. package/lib/ExternalModuleFactoryPlugin.js +370 -0
  73. package/lib/ExternalsPlugin.js +93 -0
  74. package/lib/FalseIIFEUmdWarning.js +20 -0
  75. package/lib/FileSystemInfo.js +4131 -0
  76. package/lib/FlagAllModulesAsUsedPlugin.js +55 -0
  77. package/lib/FlagDependencyExportsPlugin.js +437 -0
  78. package/lib/FlagDependencyUsagePlugin.js +348 -0
  79. package/lib/FlagEntryExportAsUsedPlugin.js +56 -0
  80. package/lib/Generator.js +188 -0
  81. package/lib/GraphHelpers.js +46 -0
  82. package/lib/HarmonyLinkingError.js +17 -0
  83. package/lib/HookWebpackError.js +121 -0
  84. package/lib/HotModuleReplacementPlugin.js +930 -0
  85. package/lib/HotUpdateChunk.js +16 -0
  86. package/lib/IgnoreErrorModuleFactory.js +39 -0
  87. package/lib/IgnorePlugin.js +105 -0
  88. package/lib/IgnoreWarningsPlugin.js +41 -0
  89. package/lib/InitFragment.js +204 -0
  90. package/lib/InvalidDependenciesModuleWarning.js +44 -0
  91. package/lib/JavascriptMetaInfoPlugin.js +78 -0
  92. package/lib/LibManifestPlugin.js +144 -0
  93. package/lib/LibraryTemplatePlugin.js +48 -0
  94. package/lib/LoaderOptionsPlugin.js +81 -0
  95. package/lib/LoaderTargetPlugin.js +39 -0
  96. package/lib/MainTemplate.js +371 -0
  97. package/lib/ManifestPlugin.js +242 -0
  98. package/lib/Module.js +1319 -0
  99. package/lib/ModuleBuildError.js +83 -0
  100. package/lib/ModuleDependencyError.js +44 -0
  101. package/lib/ModuleDependencyWarning.js +49 -0
  102. package/lib/ModuleError.js +69 -0
  103. package/lib/ModuleFactory.js +57 -0
  104. package/lib/ModuleFilenameHelpers.js +388 -0
  105. package/lib/ModuleGraph.js +1024 -0
  106. package/lib/ModuleGraphConnection.js +199 -0
  107. package/lib/ModuleHashingError.js +31 -0
  108. package/lib/ModuleInfoHeaderPlugin.js +318 -0
  109. package/lib/ModuleNotFoundError.js +90 -0
  110. package/lib/ModuleParseError.js +125 -0
  111. package/lib/ModuleProfile.js +108 -0
  112. package/lib/ModuleRestoreError.js +46 -0
  113. package/lib/ModuleSourceTypeConstants.js +179 -0
  114. package/lib/ModuleStoreError.js +45 -0
  115. package/lib/ModuleTemplate.js +173 -0
  116. package/lib/ModuleTypeConstants.js +190 -0
  117. package/lib/ModuleWarning.js +68 -0
  118. package/lib/MultiCompiler.js +678 -0
  119. package/lib/MultiStats.js +213 -0
  120. package/lib/MultiWatching.js +77 -0
  121. package/lib/NoEmitOnErrorsPlugin.js +30 -0
  122. package/lib/NoModeWarning.js +23 -0
  123. package/lib/NodeStuffInWebError.js +35 -0
  124. package/lib/NodeStuffPlugin.js +587 -0
  125. package/lib/NormalModule.js +1798 -0
  126. package/lib/NormalModuleFactory.js +1455 -0
  127. package/lib/NormalModuleReplacementPlugin.js +75 -0
  128. package/lib/NullFactory.js +24 -0
  129. package/lib/OptimizationStages.js +10 -0
  130. package/lib/OptionsApply.js +24 -0
  131. package/lib/Parser.js +40 -0
  132. package/lib/PlatformPlugin.js +41 -0
  133. package/lib/PrefetchPlugin.js +56 -0
  134. package/lib/ProgressPlugin.js +712 -0
  135. package/lib/ProvidePlugin.js +121 -0
  136. package/lib/RawModule.js +180 -0
  137. package/lib/RecordIdsPlugin.js +216 -0
  138. package/lib/RequestShortener.js +36 -0
  139. package/lib/RequireJsStuffPlugin.js +84 -0
  140. package/lib/ResolverFactory.js +156 -0
  141. package/lib/RuntimeGlobals.js +450 -0
  142. package/lib/RuntimeModule.js +242 -0
  143. package/lib/RuntimePlugin.js +547 -0
  144. package/lib/RuntimeTemplate.js +1288 -0
  145. package/lib/SelfModuleFactory.js +33 -0
  146. package/lib/SingleEntryPlugin.js +8 -0
  147. package/lib/SizeFormatHelpers.js +25 -0
  148. package/lib/SourceMapDevToolModuleOptionsPlugin.js +52 -0
  149. package/lib/SourceMapDevToolPlugin.js +646 -0
  150. package/lib/Stats.js +89 -0
  151. package/lib/Template.js +427 -0
  152. package/lib/TemplatedPathPlugin.js +400 -0
  153. package/lib/UnhandledSchemeError.js +34 -0
  154. package/lib/UnsupportedFeatureWarning.js +35 -0
  155. package/lib/UseStrictPlugin.js +81 -0
  156. package/lib/WarnCaseSensitiveModulesPlugin.js +64 -0
  157. package/lib/WarnDeprecatedOptionPlugin.js +60 -0
  158. package/lib/WarnNoModeSetPlugin.js +27 -0
  159. package/lib/WatchIgnorePlugin.js +155 -0
  160. package/lib/Watching.js +531 -0
  161. package/lib/WebpackError.js +81 -0
  162. package/lib/WebpackIsIncludedPlugin.js +93 -0
  163. package/lib/WebpackOptionsApply.js +941 -0
  164. package/lib/WebpackOptionsDefaulter.js +26 -0
  165. package/lib/asset/AssetBytesGenerator.js +172 -0
  166. package/lib/asset/AssetBytesParser.js +37 -0
  167. package/lib/asset/AssetGenerator.js +816 -0
  168. package/lib/asset/AssetModulesPlugin.js +358 -0
  169. package/lib/asset/AssetParser.js +73 -0
  170. package/lib/asset/AssetSourceGenerator.js +171 -0
  171. package/lib/asset/AssetSourceParser.js +37 -0
  172. package/lib/asset/RawDataUrlModule.js +179 -0
  173. package/lib/async-modules/AsyncModuleHelpers.js +52 -0
  174. package/lib/async-modules/AwaitDependenciesInitFragment.js +90 -0
  175. package/lib/async-modules/InferAsyncModulesPlugin.js +54 -0
  176. package/lib/buildChunkGraph.js +1392 -0
  177. package/lib/cache/AddBuildDependenciesPlugin.js +32 -0
  178. package/lib/cache/AddManagedPathsPlugin.js +40 -0
  179. package/lib/cache/IdleFileCachePlugin.js +242 -0
  180. package/lib/cache/MemoryCachePlugin.js +57 -0
  181. package/lib/cache/MemoryWithGcCachePlugin.js +142 -0
  182. package/lib/cache/PackFileCacheStrategy.js +1600 -0
  183. package/lib/cache/ResolverCachePlugin.js +450 -0
  184. package/lib/cache/getLazyHashedEtag.js +91 -0
  185. package/lib/cache/mergeEtags.js +71 -0
  186. package/lib/cli.js +859 -0
  187. package/lib/config/browserslistTargetHandler.js +388 -0
  188. package/lib/config/defaults.js +2086 -0
  189. package/lib/config/normalization.js +681 -0
  190. package/lib/config/target.js +389 -0
  191. package/lib/container/ContainerEntryDependency.js +50 -0
  192. package/lib/container/ContainerEntryModule.js +303 -0
  193. package/lib/container/ContainerEntryModuleFactory.js +27 -0
  194. package/lib/container/ContainerExposedDependency.js +62 -0
  195. package/lib/container/ContainerPlugin.js +118 -0
  196. package/lib/container/ContainerReferencePlugin.js +139 -0
  197. package/lib/container/FallbackDependency.js +66 -0
  198. package/lib/container/FallbackItemDependency.js +34 -0
  199. package/lib/container/FallbackModule.js +193 -0
  200. package/lib/container/FallbackModuleFactory.js +27 -0
  201. package/lib/container/HoistContainerReferencesPlugin.js +256 -0
  202. package/lib/container/ModuleFederationPlugin.js +131 -0
  203. package/lib/container/RemoteModule.js +225 -0
  204. package/lib/container/RemoteRuntimeModule.js +144 -0
  205. package/lib/container/RemoteToExternalDependency.js +33 -0
  206. package/lib/container/options.js +105 -0
  207. package/lib/css/CssGenerator.js +587 -0
  208. package/lib/css/CssLoadingRuntimeModule.js +513 -0
  209. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
  210. package/lib/css/CssModulesPlugin.js +939 -0
  211. package/lib/css/CssParser.js +2621 -0
  212. package/lib/css/walkCssTokens.js +1740 -0
  213. package/lib/debug/ProfilingPlugin.js +589 -0
  214. package/lib/dependencies/AMDDefineDependency.js +267 -0
  215. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +504 -0
  216. package/lib/dependencies/AMDPlugin.js +243 -0
  217. package/lib/dependencies/AMDRequireArrayDependency.js +124 -0
  218. package/lib/dependencies/AMDRequireContextDependency.js +69 -0
  219. package/lib/dependencies/AMDRequireDependenciesBlock.js +28 -0
  220. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +425 -0
  221. package/lib/dependencies/AMDRequireDependency.js +189 -0
  222. package/lib/dependencies/AMDRequireItemDependency.js +41 -0
  223. package/lib/dependencies/AMDRuntimeModules.js +50 -0
  224. package/lib/dependencies/CachedConstDependency.js +135 -0
  225. package/lib/dependencies/CommonJsDependencyHelpers.js +65 -0
  226. package/lib/dependencies/CommonJsExportRequireDependency.js +416 -0
  227. package/lib/dependencies/CommonJsExportsDependency.js +184 -0
  228. package/lib/dependencies/CommonJsExportsParserPlugin.js +425 -0
  229. package/lib/dependencies/CommonJsFullRequireDependency.js +162 -0
  230. package/lib/dependencies/CommonJsImportsParserPlugin.js +611 -0
  231. package/lib/dependencies/CommonJsPlugin.js +316 -0
  232. package/lib/dependencies/CommonJsRequireContextDependency.js +73 -0
  233. package/lib/dependencies/CommonJsRequireDependency.js +42 -0
  234. package/lib/dependencies/CommonJsSelfReferenceDependency.js +156 -0
  235. package/lib/dependencies/ConstDependency.js +118 -0
  236. package/lib/dependencies/ContextDependency.js +183 -0
  237. package/lib/dependencies/ContextDependencyHelpers.js +277 -0
  238. package/lib/dependencies/ContextDependencyTemplateAsId.js +63 -0
  239. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +62 -0
  240. package/lib/dependencies/ContextElementDependency.js +147 -0
  241. package/lib/dependencies/CreateRequireParserPlugin.js +356 -0
  242. package/lib/dependencies/CreateScriptUrlDependency.js +75 -0
  243. package/lib/dependencies/CriticalDependencyWarning.js +29 -0
  244. package/lib/dependencies/CssIcssExportDependency.js +539 -0
  245. package/lib/dependencies/CssIcssImportDependency.js +183 -0
  246. package/lib/dependencies/CssIcssSymbolDependency.js +131 -0
  247. package/lib/dependencies/CssImportDependency.js +120 -0
  248. package/lib/dependencies/CssUrlDependency.js +189 -0
  249. package/lib/dependencies/DelegatedSourceDependency.js +33 -0
  250. package/lib/dependencies/DllEntryDependency.js +61 -0
  251. package/lib/dependencies/DynamicExports.js +73 -0
  252. package/lib/dependencies/EntryDependency.js +30 -0
  253. package/lib/dependencies/ExportsInfoDependency.js +161 -0
  254. package/lib/dependencies/ExternalModuleDependency.js +109 -0
  255. package/lib/dependencies/ExternalModuleInitFragment.js +137 -0
  256. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +87 -0
  257. package/lib/dependencies/HarmonyAcceptDependency.js +237 -0
  258. package/lib/dependencies/HarmonyAcceptImportDependency.js +37 -0
  259. package/lib/dependencies/HarmonyCompatibilityDependency.js +91 -0
  260. package/lib/dependencies/HarmonyDetectionParserPlugin.js +103 -0
  261. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +165 -0
  262. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +254 -0
  263. package/lib/dependencies/HarmonyExportExpressionDependency.js +211 -0
  264. package/lib/dependencies/HarmonyExportHeaderDependency.js +78 -0
  265. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +1494 -0
  266. package/lib/dependencies/HarmonyExportInitFragment.js +191 -0
  267. package/lib/dependencies/HarmonyExportSpecifierDependency.js +127 -0
  268. package/lib/dependencies/HarmonyExports.js +46 -0
  269. package/lib/dependencies/HarmonyImportDependency.js +459 -0
  270. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +576 -0
  271. package/lib/dependencies/HarmonyImportSideEffectDependency.js +91 -0
  272. package/lib/dependencies/HarmonyImportSpecifierDependency.js +514 -0
  273. package/lib/dependencies/HarmonyModulesPlugin.js +158 -0
  274. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +39 -0
  275. package/lib/dependencies/ImportContextDependency.js +81 -0
  276. package/lib/dependencies/ImportDependency.js +158 -0
  277. package/lib/dependencies/ImportEagerDependency.js +76 -0
  278. package/lib/dependencies/ImportMetaContextDependency.js +42 -0
  279. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +312 -0
  280. package/lib/dependencies/ImportMetaContextPlugin.js +72 -0
  281. package/lib/dependencies/ImportMetaHotAcceptDependency.js +41 -0
  282. package/lib/dependencies/ImportMetaHotDeclineDependency.js +42 -0
  283. package/lib/dependencies/ImportMetaPlugin.js +447 -0
  284. package/lib/dependencies/ImportParserPlugin.js +602 -0
  285. package/lib/dependencies/ImportPhase.js +125 -0
  286. package/lib/dependencies/ImportPlugin.js +98 -0
  287. package/lib/dependencies/ImportWeakDependency.js +74 -0
  288. package/lib/dependencies/JsonExportsDependency.js +137 -0
  289. package/lib/dependencies/LoaderDependency.js +38 -0
  290. package/lib/dependencies/LoaderImportDependency.js +39 -0
  291. package/lib/dependencies/LoaderPlugin.js +294 -0
  292. package/lib/dependencies/LocalModule.js +60 -0
  293. package/lib/dependencies/LocalModuleDependency.js +84 -0
  294. package/lib/dependencies/LocalModulesHelpers.js +68 -0
  295. package/lib/dependencies/ModuleDecoratorDependency.js +136 -0
  296. package/lib/dependencies/ModuleDependency.js +100 -0
  297. package/lib/dependencies/ModuleDependencyTemplateAsId.js +35 -0
  298. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +39 -0
  299. package/lib/dependencies/ModuleHotAcceptDependency.js +41 -0
  300. package/lib/dependencies/ModuleHotDeclineDependency.js +42 -0
  301. package/lib/dependencies/ModuleInitFragmentDependency.js +87 -0
  302. package/lib/dependencies/NullDependency.js +42 -0
  303. package/lib/dependencies/PrefetchDependency.js +27 -0
  304. package/lib/dependencies/ProvidedDependency.js +156 -0
  305. package/lib/dependencies/PureExpressionDependency.js +161 -0
  306. package/lib/dependencies/RequireContextDependency.js +38 -0
  307. package/lib/dependencies/RequireContextDependencyParserPlugin.js +69 -0
  308. package/lib/dependencies/RequireContextPlugin.js +167 -0
  309. package/lib/dependencies/RequireEnsureDependenciesBlock.js +29 -0
  310. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +145 -0
  311. package/lib/dependencies/RequireEnsureDependency.js +115 -0
  312. package/lib/dependencies/RequireEnsureItemDependency.js +36 -0
  313. package/lib/dependencies/RequireEnsurePlugin.js +86 -0
  314. package/lib/dependencies/RequireHeaderDependency.js +70 -0
  315. package/lib/dependencies/RequireIncludeDependency.js +79 -0
  316. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +100 -0
  317. package/lib/dependencies/RequireIncludePlugin.js +63 -0
  318. package/lib/dependencies/RequireResolveContextDependency.js +67 -0
  319. package/lib/dependencies/RequireResolveDependency.js +58 -0
  320. package/lib/dependencies/RequireResolveHeaderDependency.js +81 -0
  321. package/lib/dependencies/RuntimeRequirementsDependency.js +85 -0
  322. package/lib/dependencies/StaticExportsDependency.js +72 -0
  323. package/lib/dependencies/SystemPlugin.js +168 -0
  324. package/lib/dependencies/SystemRuntimeModule.js +35 -0
  325. package/lib/dependencies/URLContextDependency.js +65 -0
  326. package/lib/dependencies/URLDependency.js +165 -0
  327. package/lib/dependencies/URLPlugin.js +67 -0
  328. package/lib/dependencies/UnsupportedDependency.js +82 -0
  329. package/lib/dependencies/WebAssemblyExportImportedDependency.js +93 -0
  330. package/lib/dependencies/WebAssemblyImportDependency.js +108 -0
  331. package/lib/dependencies/WebpackIsIncludedDependency.js +84 -0
  332. package/lib/dependencies/WorkerDependency.js +141 -0
  333. package/lib/dependencies/WorkerPlugin.js +565 -0
  334. package/lib/dependencies/getFunctionExpression.js +66 -0
  335. package/lib/dependencies/processExportInfo.js +67 -0
  336. package/lib/electron/ElectronTargetPlugin.js +71 -0
  337. package/lib/errors/BuildCycleError.js +30 -0
  338. package/lib/esm/ExportWebpackRequireRuntimeModule.js +30 -0
  339. package/lib/esm/ModuleChunkFormatPlugin.js +273 -0
  340. package/lib/esm/ModuleChunkLoadingPlugin.js +143 -0
  341. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +426 -0
  342. package/lib/formatLocation.js +67 -0
  343. package/lib/hmr/HotModuleReplacement.runtime.js +419 -0
  344. package/lib/hmr/HotModuleReplacementRuntimeModule.js +42 -0
  345. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +471 -0
  346. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
  347. package/lib/hmr/LazyCompilationPlugin.js +473 -0
  348. package/lib/hmr/lazyCompilationBackend.js +167 -0
  349. package/lib/ids/ChunkModuleIdRangePlugin.js +94 -0
  350. package/lib/ids/DeterministicChunkIdsPlugin.js +73 -0
  351. package/lib/ids/DeterministicModuleIdsPlugin.js +98 -0
  352. package/lib/ids/HashedModuleIdsPlugin.js +85 -0
  353. package/lib/ids/IdHelpers.js +492 -0
  354. package/lib/ids/NamedChunkIdsPlugin.js +92 -0
  355. package/lib/ids/NamedModuleIdsPlugin.js +68 -0
  356. package/lib/ids/NaturalChunkIdsPlugin.js +35 -0
  357. package/lib/ids/NaturalModuleIdsPlugin.js +40 -0
  358. package/lib/ids/OccurrenceChunkIdsPlugin.js +86 -0
  359. package/lib/ids/OccurrenceModuleIdsPlugin.js +168 -0
  360. package/lib/ids/SyncModuleIdsPlugin.js +161 -0
  361. package/lib/index.js +681 -0
  362. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +153 -0
  363. package/lib/javascript/BasicEvaluatedExpression.js +603 -0
  364. package/lib/javascript/ChunkFormatHelpers.js +70 -0
  365. package/lib/javascript/ChunkHelpers.js +45 -0
  366. package/lib/javascript/CommonJsChunkFormatPlugin.js +148 -0
  367. package/lib/javascript/EnableChunkLoadingPlugin.js +127 -0
  368. package/lib/javascript/JavascriptGenerator.js +277 -0
  369. package/lib/javascript/JavascriptModulesPlugin.js +1905 -0
  370. package/lib/javascript/JavascriptParser.js +5476 -0
  371. package/lib/javascript/JavascriptParserHelpers.js +129 -0
  372. package/lib/javascript/StartupHelpers.js +178 -0
  373. package/lib/json/JsonData.js +74 -0
  374. package/lib/json/JsonGenerator.js +234 -0
  375. package/lib/json/JsonModulesPlugin.js +66 -0
  376. package/lib/json/JsonParser.js +93 -0
  377. package/lib/library/AbstractLibraryPlugin.js +339 -0
  378. package/lib/library/AmdLibraryPlugin.js +181 -0
  379. package/lib/library/AssignLibraryPlugin.js +445 -0
  380. package/lib/library/EnableLibraryPlugin.js +306 -0
  381. package/lib/library/ExportPropertyLibraryPlugin.js +116 -0
  382. package/lib/library/JsonpLibraryPlugin.js +92 -0
  383. package/lib/library/ModuleLibraryPlugin.js +438 -0
  384. package/lib/library/SystemLibraryPlugin.js +256 -0
  385. package/lib/library/UmdLibraryPlugin.js +355 -0
  386. package/lib/logging/Logger.js +223 -0
  387. package/lib/logging/createConsoleLogger.js +217 -0
  388. package/lib/logging/runtime.js +45 -0
  389. package/lib/logging/truncateArgs.js +83 -0
  390. package/lib/node/CommonJsChunkLoadingPlugin.js +120 -0
  391. package/lib/node/NodeEnvironmentPlugin.js +73 -0
  392. package/lib/node/NodeSourcePlugin.js +19 -0
  393. package/lib/node/NodeTargetPlugin.js +102 -0
  394. package/lib/node/NodeTemplatePlugin.js +42 -0
  395. package/lib/node/NodeWatchFileSystem.js +198 -0
  396. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +286 -0
  397. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +123 -0
  398. package/lib/node/ReadFileCompileWasmPlugin.js +127 -0
  399. package/lib/node/RequireChunkLoadingRuntimeModule.js +239 -0
  400. package/lib/node/nodeConsole.js +185 -0
  401. package/lib/optimize/AggressiveMergingPlugin.js +98 -0
  402. package/lib/optimize/AggressiveSplittingPlugin.js +352 -0
  403. package/lib/optimize/ConcatenatedModule.js +2290 -0
  404. package/lib/optimize/EnsureChunkConditionsPlugin.js +88 -0
  405. package/lib/optimize/FlagIncludedChunksPlugin.js +137 -0
  406. package/lib/optimize/InnerGraph.js +368 -0
  407. package/lib/optimize/InnerGraphPlugin.js +455 -0
  408. package/lib/optimize/LimitChunkCountPlugin.js +302 -0
  409. package/lib/optimize/MangleExportsPlugin.js +194 -0
  410. package/lib/optimize/MergeDuplicateChunksPlugin.js +138 -0
  411. package/lib/optimize/MinChunkSizePlugin.js +121 -0
  412. package/lib/optimize/MinMaxSizeWarning.js +35 -0
  413. package/lib/optimize/ModuleConcatenationPlugin.js +971 -0
  414. package/lib/optimize/RealContentHashPlugin.js +488 -0
  415. package/lib/optimize/RemoveEmptyChunksPlugin.js +60 -0
  416. package/lib/optimize/RemoveParentModulesPlugin.js +216 -0
  417. package/lib/optimize/RuntimeChunkPlugin.js +52 -0
  418. package/lib/optimize/SideEffectsFlagPlugin.js +417 -0
  419. package/lib/optimize/SplitChunksPlugin.js +1836 -0
  420. package/lib/performance/AssetsOverSizeLimitWarning.js +37 -0
  421. package/lib/performance/EntrypointsOverSizeLimitWarning.js +40 -0
  422. package/lib/performance/NoAsyncChunksWarning.js +21 -0
  423. package/lib/performance/SizeLimitsPlugin.js +183 -0
  424. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +46 -0
  425. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +95 -0
  426. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +56 -0
  427. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +52 -0
  428. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +46 -0
  429. package/lib/rules/BasicEffectRulePlugin.js +56 -0
  430. package/lib/rules/BasicMatcherRulePlugin.js +68 -0
  431. package/lib/rules/ObjectMatcherRulePlugin.js +79 -0
  432. package/lib/rules/RuleSetCompiler.js +447 -0
  433. package/lib/rules/UseEffectRulePlugin.js +236 -0
  434. package/lib/runtime/AsyncModuleRuntimeModule.js +199 -0
  435. package/lib/runtime/AutoPublicPathRuntimeModule.js +90 -0
  436. package/lib/runtime/BaseUriRuntimeModule.js +35 -0
  437. package/lib/runtime/ChunkNameRuntimeModule.js +28 -0
  438. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +40 -0
  439. package/lib/runtime/CompatRuntimeModule.js +83 -0
  440. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +69 -0
  441. package/lib/runtime/CreateScriptRuntimeModule.js +38 -0
  442. package/lib/runtime/CreateScriptUrlRuntimeModule.js +38 -0
  443. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +42 -0
  444. package/lib/runtime/EnsureChunkRuntimeModule.js +69 -0
  445. package/lib/runtime/GetChunkFilenameRuntimeModule.js +299 -0
  446. package/lib/runtime/GetFullHashRuntimeModule.js +31 -0
  447. package/lib/runtime/GetMainFilenameRuntimeModule.js +49 -0
  448. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +99 -0
  449. package/lib/runtime/GlobalRuntimeModule.js +47 -0
  450. package/lib/runtime/HasOwnPropertyRuntimeModule.js +35 -0
  451. package/lib/runtime/HelperRuntimeModule.js +18 -0
  452. package/lib/runtime/LoadScriptRuntimeModule.js +174 -0
  453. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +232 -0
  454. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +39 -0
  455. package/lib/runtime/NonceRuntimeModule.js +24 -0
  456. package/lib/runtime/OnChunksLoadedRuntimeModule.js +78 -0
  457. package/lib/runtime/PublicPathRuntimeModule.js +38 -0
  458. package/lib/runtime/RelativeUrlRuntimeModule.js +44 -0
  459. package/lib/runtime/RuntimeIdRuntimeModule.js +33 -0
  460. package/lib/runtime/StartupChunkDependenciesPlugin.js +88 -0
  461. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +77 -0
  462. package/lib/runtime/StartupEntrypointRuntimeModule.js +54 -0
  463. package/lib/runtime/SystemContextRuntimeModule.js +23 -0
  464. package/lib/runtime/ToBinaryRuntimeModule.js +72 -0
  465. package/lib/schemes/DataUriPlugin.js +47 -0
  466. package/lib/schemes/FileUriPlugin.js +54 -0
  467. package/lib/schemes/HttpUriPlugin.js +1410 -0
  468. package/lib/schemes/VirtualUrlPlugin.js +248 -0
  469. package/lib/serialization/AggregateErrorSerializer.js +41 -0
  470. package/lib/serialization/ArraySerializer.js +38 -0
  471. package/lib/serialization/BinaryMiddleware.js +1164 -0
  472. package/lib/serialization/DateObjectSerializer.js +28 -0
  473. package/lib/serialization/ErrorObjectSerializer.js +49 -0
  474. package/lib/serialization/FileMiddleware.js +766 -0
  475. package/lib/serialization/MapObjectSerializer.js +48 -0
  476. package/lib/serialization/NullPrototypeObjectSerializer.js +53 -0
  477. package/lib/serialization/ObjectMiddleware.js +877 -0
  478. package/lib/serialization/PlainObjectSerializer.js +119 -0
  479. package/lib/serialization/RegExpObjectSerializer.js +29 -0
  480. package/lib/serialization/Serializer.js +82 -0
  481. package/lib/serialization/SerializerMiddleware.js +226 -0
  482. package/lib/serialization/SetObjectSerializer.js +40 -0
  483. package/lib/serialization/SingleItemMiddleware.js +36 -0
  484. package/lib/serialization/types.js +13 -0
  485. package/lib/sharing/ConsumeSharedFallbackDependency.js +33 -0
  486. package/lib/sharing/ConsumeSharedModule.js +344 -0
  487. package/lib/sharing/ConsumeSharedPlugin.js +380 -0
  488. package/lib/sharing/ConsumeSharedRuntimeModule.js +358 -0
  489. package/lib/sharing/ProvideForSharedDependency.js +33 -0
  490. package/lib/sharing/ProvideSharedDependency.js +80 -0
  491. package/lib/sharing/ProvideSharedModule.js +196 -0
  492. package/lib/sharing/ProvideSharedModuleFactory.js +37 -0
  493. package/lib/sharing/ProvideSharedPlugin.js +248 -0
  494. package/lib/sharing/SharePlugin.js +91 -0
  495. package/lib/sharing/ShareRuntimeModule.js +152 -0
  496. package/lib/sharing/resolveMatchedConfigs.js +106 -0
  497. package/lib/sharing/utils.js +421 -0
  498. package/lib/stats/DefaultStatsFactoryPlugin.js +2791 -0
  499. package/lib/stats/DefaultStatsPresetPlugin.js +417 -0
  500. package/lib/stats/DefaultStatsPrinterPlugin.js +1860 -0
  501. package/lib/stats/StatsFactory.js +406 -0
  502. package/lib/stats/StatsPrinter.js +300 -0
  503. package/lib/url/URLParserPlugin.js +266 -0
  504. package/lib/util/AppendOnlyStackedSet.js +78 -0
  505. package/lib/util/ArrayHelpers.js +46 -0
  506. package/lib/util/ArrayQueue.js +104 -0
  507. package/lib/util/AsyncQueue.js +411 -0
  508. package/lib/util/Hash.js +68 -0
  509. package/lib/util/IterableHelpers.js +46 -0
  510. package/lib/util/LazyBucketSortedSet.js +272 -0
  511. package/lib/util/LazySet.js +236 -0
  512. package/lib/util/MapHelpers.js +34 -0
  513. package/lib/util/ParallelismFactorCalculator.js +70 -0
  514. package/lib/util/Queue.js +52 -0
  515. package/lib/util/Semaphore.js +51 -0
  516. package/lib/util/SetHelpers.js +94 -0
  517. package/lib/util/SortableSet.js +176 -0
  518. package/lib/util/StackedCacheMap.js +140 -0
  519. package/lib/util/StackedMap.js +164 -0
  520. package/lib/util/StringXor.js +103 -0
  521. package/lib/util/TupleQueue.js +70 -0
  522. package/lib/util/TupleSet.js +185 -0
  523. package/lib/util/URLAbsoluteSpecifier.js +86 -0
  524. package/lib/util/WeakTupleMap.js +227 -0
  525. package/lib/util/binarySearchBounds.js +136 -0
  526. package/lib/util/chainedImports.js +99 -0
  527. package/lib/util/cleverMerge.js +676 -0
  528. package/lib/util/comparators.js +645 -0
  529. package/lib/util/compileBooleanMatcher.js +313 -0
  530. package/lib/util/concatenate.js +232 -0
  531. package/lib/util/conventions.js +126 -0
  532. package/lib/util/create-schema-validation.js +41 -0
  533. package/lib/util/createHash.js +91 -0
  534. package/lib/util/dataURL.js +39 -0
  535. package/lib/util/deprecation.js +350 -0
  536. package/lib/util/deterministicGrouping.js +561 -0
  537. package/lib/util/extractSourceMap.js +318 -0
  538. package/lib/util/extractUrlAndGlobal.js +18 -0
  539. package/lib/util/findGraphRoots.js +211 -0
  540. package/lib/util/fs.js +675 -0
  541. package/lib/util/generateDebugId.js +33 -0
  542. package/lib/util/hash/BatchedHash.js +115 -0
  543. package/lib/util/hash/BulkUpdateHash.js +145 -0
  544. package/lib/util/hash/DebugHash.js +75 -0
  545. package/lib/util/hash/hash-digest.js +217 -0
  546. package/lib/util/hash/md4.js +20 -0
  547. package/lib/util/hash/wasm-hash.js +232 -0
  548. package/lib/util/hash/xxhash64.js +20 -0
  549. package/lib/util/identifier.js +471 -0
  550. package/lib/util/internalSerializables.js +222 -0
  551. package/lib/util/magicComment.js +25 -0
  552. package/lib/util/makeSerializable.js +60 -0
  553. package/lib/util/memoize.js +36 -0
  554. package/lib/util/nonNumericOnlyHash.js +22 -0
  555. package/lib/util/numberHash.js +95 -0
  556. package/lib/util/objectToMap.js +15 -0
  557. package/lib/util/processAsyncTree.js +68 -0
  558. package/lib/util/propertyAccess.js +30 -0
  559. package/lib/util/propertyName.js +76 -0
  560. package/lib/util/registerExternalSerializer.js +334 -0
  561. package/lib/util/removeBOM.js +25 -0
  562. package/lib/util/runtime.js +717 -0
  563. package/lib/util/semver.js +604 -0
  564. package/lib/util/serialization.js +153 -0
  565. package/lib/util/smartGrouping.js +221 -0
  566. package/lib/util/source.js +62 -0
  567. package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
  568. package/lib/validateSchema.js +177 -0
  569. package/lib/wasm/EnableWasmLoadingPlugin.js +146 -0
  570. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +154 -0
  571. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +74 -0
  572. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +212 -0
  573. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +209 -0
  574. package/lib/wasm-async/AsyncWebAssemblyParser.js +80 -0
  575. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +107 -0
  576. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +20 -0
  577. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +422 -0
  578. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +91 -0
  579. package/lib/wasm-sync/WebAssemblyGenerator.js +535 -0
  580. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +111 -0
  581. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +236 -0
  582. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +151 -0
  583. package/lib/wasm-sync/WebAssemblyParser.js +201 -0
  584. package/lib/wasm-sync/WebAssemblyUtils.js +66 -0
  585. package/lib/web/FetchCompileAsyncWasmPlugin.js +70 -0
  586. package/lib/web/FetchCompileWasmPlugin.js +86 -0
  587. package/lib/web/JsonpChunkLoadingPlugin.js +101 -0
  588. package/lib/web/JsonpChunkLoadingRuntimeModule.js +455 -0
  589. package/lib/web/JsonpTemplatePlugin.js +37 -0
  590. package/lib/webpack.js +227 -0
  591. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +110 -0
  592. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +231 -0
  593. package/lib/webworker/WebWorkerTemplatePlugin.js +26 -0
  594. package/module.d.ts +238 -0
  595. package/package.json +258 -0
  596. package/schemas/WebpackOptions.check.d.ts +7 -0
  597. package/schemas/WebpackOptions.check.js +6 -0
  598. package/schemas/WebpackOptions.json +6179 -0
  599. package/schemas/_container.json +155 -0
  600. package/schemas/_sharing.json +118 -0
  601. package/schemas/plugins/BannerPlugin.check.d.ts +7 -0
  602. package/schemas/plugins/BannerPlugin.check.js +6 -0
  603. package/schemas/plugins/BannerPlugin.json +115 -0
  604. package/schemas/plugins/DllPlugin.check.d.ts +7 -0
  605. package/schemas/plugins/DllPlugin.check.js +6 -0
  606. package/schemas/plugins/DllPlugin.json +36 -0
  607. package/schemas/plugins/DllReferencePlugin.check.d.ts +7 -0
  608. package/schemas/plugins/DllReferencePlugin.check.js +6 -0
  609. package/schemas/plugins/DllReferencePlugin.json +206 -0
  610. package/schemas/plugins/IgnorePlugin.check.d.ts +7 -0
  611. package/schemas/plugins/IgnorePlugin.check.js +6 -0
  612. package/schemas/plugins/IgnorePlugin.json +34 -0
  613. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +7 -0
  614. package/schemas/plugins/LoaderOptionsPlugin.check.js +6 -0
  615. package/schemas/plugins/LoaderOptionsPlugin.json +27 -0
  616. package/schemas/plugins/ManifestPlugin.check.d.ts +7 -0
  617. package/schemas/plugins/ManifestPlugin.check.js +6 -0
  618. package/schemas/plugins/ManifestPlugin.json +98 -0
  619. package/schemas/plugins/ProgressPlugin.check.d.ts +7 -0
  620. package/schemas/plugins/ProgressPlugin.check.js +6 -0
  621. package/schemas/plugins/ProgressPlugin.json +65 -0
  622. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +7 -0
  623. package/schemas/plugins/SourceMapDevToolPlugin.check.js +6 -0
  624. package/schemas/plugins/SourceMapDevToolPlugin.json +168 -0
  625. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +7 -0
  626. package/schemas/plugins/WatchIgnorePlugin.check.js +6 -0
  627. package/schemas/plugins/WatchIgnorePlugin.json +25 -0
  628. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +7 -0
  629. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +6 -0
  630. package/schemas/plugins/asset/AssetGeneratorOptions.json +3 -0
  631. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +7 -0
  632. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +6 -0
  633. package/schemas/plugins/asset/AssetInlineGeneratorOptions.json +3 -0
  634. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +7 -0
  635. package/schemas/plugins/asset/AssetParserOptions.check.js +6 -0
  636. package/schemas/plugins/asset/AssetParserOptions.json +3 -0
  637. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +7 -0
  638. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +6 -0
  639. package/schemas/plugins/asset/AssetResourceGeneratorOptions.json +3 -0
  640. package/schemas/plugins/container/ContainerPlugin.check.d.ts +7 -0
  641. package/schemas/plugins/container/ContainerPlugin.check.js +6 -0
  642. package/schemas/plugins/container/ContainerPlugin.json +294 -0
  643. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +7 -0
  644. package/schemas/plugins/container/ContainerReferencePlugin.check.js +6 -0
  645. package/schemas/plugins/container/ContainerReferencePlugin.json +132 -0
  646. package/schemas/plugins/container/ExternalsType.check.d.ts +7 -0
  647. package/schemas/plugins/container/ExternalsType.check.js +6 -0
  648. package/schemas/plugins/container/ExternalsType.json +3 -0
  649. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +7 -0
  650. package/schemas/plugins/container/ModuleFederationPlugin.check.js +6 -0
  651. package/schemas/plugins/container/ModuleFederationPlugin.json +525 -0
  652. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +7 -0
  653. package/schemas/plugins/css/CssGeneratorOptions.check.js +6 -0
  654. package/schemas/plugins/css/CssGeneratorOptions.json +3 -0
  655. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +7 -0
  656. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +6 -0
  657. package/schemas/plugins/css/CssModuleGeneratorOptions.json +3 -0
  658. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +7 -0
  659. package/schemas/plugins/css/CssModuleParserOptions.check.js +6 -0
  660. package/schemas/plugins/css/CssModuleParserOptions.json +3 -0
  661. package/schemas/plugins/css/CssParserOptions.check.d.ts +7 -0
  662. package/schemas/plugins/css/CssParserOptions.check.js +6 -0
  663. package/schemas/plugins/css/CssParserOptions.json +3 -0
  664. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +7 -0
  665. package/schemas/plugins/debug/ProfilingPlugin.check.js +6 -0
  666. package/schemas/plugins/debug/ProfilingPlugin.json +12 -0
  667. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +7 -0
  668. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +6 -0
  669. package/schemas/plugins/ids/HashedModuleIdsPlugin.json +57 -0
  670. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +7 -0
  671. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +6 -0
  672. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.json +11 -0
  673. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +7 -0
  674. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +6 -0
  675. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.json +11 -0
  676. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +7 -0
  677. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +6 -0
  678. package/schemas/plugins/json/JsonModulesPluginGenerator.json +3 -0
  679. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +7 -0
  680. package/schemas/plugins/json/JsonModulesPluginParser.check.js +6 -0
  681. package/schemas/plugins/json/JsonModulesPluginParser.json +3 -0
  682. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +7 -0
  683. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +6 -0
  684. package/schemas/plugins/optimize/AggressiveSplittingPlugin.json +23 -0
  685. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +7 -0
  686. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +6 -0
  687. package/schemas/plugins/optimize/LimitChunkCountPlugin.json +21 -0
  688. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +7 -0
  689. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +6 -0
  690. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.json +11 -0
  691. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +7 -0
  692. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +6 -0
  693. package/schemas/plugins/optimize/MinChunkSizePlugin.json +20 -0
  694. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +7 -0
  695. package/schemas/plugins/schemes/HttpUriPlugin.check.js +6 -0
  696. package/schemas/plugins/schemes/HttpUriPlugin.json +74 -0
  697. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
  698. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
  699. package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
  700. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +7 -0
  701. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +6 -0
  702. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +120 -0
  703. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +7 -0
  704. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +6 -0
  705. package/schemas/plugins/sharing/ProvideSharedPlugin.json +94 -0
  706. package/schemas/plugins/sharing/SharePlugin.check.d.ts +7 -0
  707. package/schemas/plugins/sharing/SharePlugin.check.js +6 -0
  708. package/schemas/plugins/sharing/SharePlugin.json +133 -0
  709. package/types.d.ts +20217 -0
@@ -0,0 +1,1024 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const util = require("util");
9
+ const ExportsInfo = require("./ExportsInfo");
10
+ const ModuleGraphConnection = require("./ModuleGraphConnection");
11
+ const HarmonyImportDependency = require("./dependencies/HarmonyImportDependency");
12
+ const { ImportPhaseUtils } = require("./dependencies/ImportPhase");
13
+ const SortableSet = require("./util/SortableSet");
14
+ const WeakTupleMap = require("./util/WeakTupleMap");
15
+ const { sortWithSourceOrder } = require("./util/comparators");
16
+
17
+ /** @typedef {import("./Compilation").ModuleMemCaches} ModuleMemCaches */
18
+ /** @typedef {import("./DependenciesBlock")} DependenciesBlock */
19
+ /** @typedef {import("./Dependency")} Dependency */
20
+ /** @typedef {import("./ExportsInfo").ExportInfo} ExportInfo */
21
+ /** @typedef {import("./ExportsInfo").ExportInfoName} ExportInfoName */
22
+ /** @typedef {import("./Module")} Module */
23
+ /** @typedef {import("./ModuleProfile")} ModuleProfile */
24
+ /** @typedef {import("./RequestShortener")} RequestShortener */
25
+ /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
26
+ /** @typedef {import("./dependencies/HarmonyImportSideEffectDependency")} HarmonyImportSideEffectDependency */
27
+ /** @typedef {import("./dependencies/HarmonyImportSpecifierDependency")} HarmonyImportSpecifierDependency */
28
+ /** @typedef {import("./util/comparators").DependencySourceOrder} DependencySourceOrder */
29
+
30
+ /**
31
+ * @callback OptimizationBailoutFunction
32
+ * @param {RequestShortener} requestShortener
33
+ * @returns {string}
34
+ */
35
+
36
+ /** @type {Iterable<ModuleGraphConnection>} */
37
+ const EMPTY_SET = new Set();
38
+
39
+ /**
40
+ * @template {Module | null | undefined} T
41
+ * @param {SortableSet<ModuleGraphConnection>} set input
42
+ * @param {(connection: ModuleGraphConnection) => T} getKey function to extract key from connection
43
+ * @returns {ReadonlyMap<T, ReadonlyArray<ModuleGraphConnection>>} mapped by key
44
+ */
45
+ const getConnectionsByKey = (set, getKey) => {
46
+ /** @type {Map<T, ModuleGraphConnection[]>} */
47
+ const map = new Map();
48
+ /** @type {T | 0} */
49
+ let lastKey = 0;
50
+ /** @type {ModuleGraphConnection[] | undefined} */
51
+ let lastList;
52
+ for (const connection of set) {
53
+ const key = getKey(connection);
54
+ if (lastKey === key) {
55
+ /** @type {ModuleGraphConnection[]} */
56
+ (lastList).push(connection);
57
+ } else {
58
+ lastKey = key;
59
+ const list = map.get(key);
60
+ if (list !== undefined) {
61
+ lastList = list;
62
+ list.push(connection);
63
+ } else {
64
+ const list = [connection];
65
+ lastList = list;
66
+ map.set(key, list);
67
+ }
68
+ }
69
+ }
70
+ return map;
71
+ };
72
+
73
+ /**
74
+ * @param {SortableSet<ModuleGraphConnection>} set input
75
+ * @returns {ReadonlyMap<Module | undefined | null, ReadonlyArray<ModuleGraphConnection>>} mapped by origin module
76
+ */
77
+ const getConnectionsByOriginModule = (set) =>
78
+ getConnectionsByKey(set, (connection) => connection.originModule);
79
+
80
+ /**
81
+ * @param {SortableSet<ModuleGraphConnection>} set input
82
+ * @returns {ReadonlyMap<Module | undefined, ReadonlyArray<ModuleGraphConnection>>} mapped by module
83
+ */
84
+ const getConnectionsByModule = (set) =>
85
+ getConnectionsByKey(set, (connection) => connection.module);
86
+
87
+ /** @typedef {SortableSet<ModuleGraphConnection>} IncomingConnections */
88
+ /** @typedef {SortableSet<ModuleGraphConnection>} OutgoingConnections */
89
+ /** @typedef {Module | null | undefined} Issuer */
90
+ /** @typedef {(string | OptimizationBailoutFunction)[]} OptimizationBailouts */
91
+
92
+ class ModuleGraphModule {
93
+ constructor() {
94
+ /** @type {IncomingConnections} */
95
+ this.incomingConnections = new SortableSet();
96
+ /** @type {OutgoingConnections | undefined} */
97
+ this.outgoingConnections = undefined;
98
+ /** @type {Issuer} */
99
+ this.issuer = undefined;
100
+ /** @type {OptimizationBailouts} */
101
+ this.optimizationBailout = [];
102
+ /** @type {ExportsInfo} */
103
+ this.exports = new ExportsInfo();
104
+ /** @type {number | null} */
105
+ this.preOrderIndex = null;
106
+ /** @type {number | null} */
107
+ this.postOrderIndex = null;
108
+ /** @type {number | null} */
109
+ this.depth = null;
110
+ /** @type {ModuleProfile | undefined} */
111
+ this.profile = undefined;
112
+ /** @type {boolean} */
113
+ this.async = false;
114
+ /** @type {ModuleGraphConnection[] | undefined} */
115
+ this._unassignedConnections = undefined;
116
+ }
117
+ }
118
+
119
+ /** @typedef {(moduleGraphConnection: ModuleGraphConnection) => boolean} FilterConnection */
120
+
121
+ /** @typedef {EXPECTED_OBJECT} MetaKey */
122
+
123
+ /** @typedef {import("./dependencies/CommonJsExportRequireDependency").idsSymbol} CommonJsExportRequireDependencyIDsSymbol */
124
+ /** @typedef {import("./dependencies/HarmonyImportSpecifierDependency").idsSymbol} HarmonyImportSpecifierDependencyIDsSymbol */
125
+ /** @typedef {import("./dependencies/HarmonyExportImportedSpecifierDependency").idsSymbol} HarmonyExportImportedSpecifierDependencyIDsSymbol */
126
+
127
+ /**
128
+ * @typedef {object} KnownMeta
129
+ * @property {Map<Module, string>=} importVarMap
130
+ * @property {Map<Module, string>=} deferredImportVarMap
131
+ */
132
+
133
+ /** @typedef {KnownMeta & Record<CommonJsExportRequireDependencyIDsSymbol | HarmonyImportSpecifierDependencyIDsSymbol | HarmonyExportImportedSpecifierDependencyIDsSymbol, string[]> & Record<string, EXPECTED_ANY>} Meta */
134
+
135
+ class ModuleGraph {
136
+ constructor() {
137
+ /**
138
+ * @type {WeakMap<Dependency, ModuleGraphConnection | null>}
139
+ * @private
140
+ */
141
+ this._dependencyMap = new WeakMap();
142
+ /**
143
+ * @type {Map<Module, ModuleGraphModule>}
144
+ * @private
145
+ */
146
+ this._moduleMap = new Map();
147
+ /**
148
+ * @type {WeakMap<MetaKey, Meta>}
149
+ * @private
150
+ */
151
+ this._metaMap = new WeakMap();
152
+ /**
153
+ * @type {WeakTupleMap<EXPECTED_ANY[], EXPECTED_ANY> | undefined}
154
+ * @private
155
+ */
156
+ this._cache = undefined;
157
+ /**
158
+ * @type {ModuleMemCaches | undefined}
159
+ * @private
160
+ */
161
+ this._moduleMemCaches = undefined;
162
+
163
+ /**
164
+ * @type {string | undefined}
165
+ * @private
166
+ */
167
+ this._cacheStage = undefined;
168
+
169
+ /**
170
+ * @type {WeakMap<Dependency, DependencySourceOrder>}
171
+ * @private
172
+ */
173
+ this._dependencySourceOrderMap = new WeakMap();
174
+
175
+ /**
176
+ * @type {Set<Module>}
177
+ * @private
178
+ */
179
+ this._modulesNeedingSort = new Set();
180
+ }
181
+
182
+ /**
183
+ * @param {Module} module the module
184
+ * @returns {ModuleGraphModule} the internal module
185
+ */
186
+ _getModuleGraphModule(module) {
187
+ let mgm = this._moduleMap.get(module);
188
+ if (mgm === undefined) {
189
+ mgm = new ModuleGraphModule();
190
+ this._moduleMap.set(module, mgm);
191
+ }
192
+ return mgm;
193
+ }
194
+
195
+ /**
196
+ * @param {Dependency} dependency the dependency
197
+ * @param {DependenciesBlock} block parent block
198
+ * @param {Module} module parent module
199
+ * @param {number=} indexInBlock position in block
200
+ * @returns {void}
201
+ */
202
+ setParents(dependency, block, module, indexInBlock = -1) {
203
+ dependency._parentDependenciesBlockIndex = indexInBlock;
204
+ dependency._parentDependenciesBlock = block;
205
+ dependency._parentModule = module;
206
+ }
207
+
208
+ /**
209
+ * @param {Dependency} dependency the dependency
210
+ * @param {number} index the index
211
+ * @returns {void}
212
+ */
213
+ setParentDependenciesBlockIndex(dependency, index) {
214
+ dependency._parentDependenciesBlockIndex = index;
215
+ }
216
+
217
+ /**
218
+ * @param {Dependency} dependency the dependency
219
+ * @returns {Module | undefined} parent module
220
+ */
221
+ getParentModule(dependency) {
222
+ return dependency._parentModule;
223
+ }
224
+
225
+ /**
226
+ * @param {Dependency} dependency the dependency
227
+ * @returns {DependenciesBlock | undefined} parent block
228
+ */
229
+ getParentBlock(dependency) {
230
+ return dependency._parentDependenciesBlock;
231
+ }
232
+
233
+ /**
234
+ * @param {Dependency} dependency the dependency
235
+ * @returns {number} index
236
+ */
237
+ getParentBlockIndex(dependency) {
238
+ return dependency._parentDependenciesBlockIndex;
239
+ }
240
+
241
+ /**
242
+ * @param {Module | null} originModule the referencing module
243
+ * @param {Dependency} dependency the referencing dependency
244
+ * @param {Module} module the referenced module
245
+ * @returns {void}
246
+ */
247
+ setResolvedModule(originModule, dependency, module) {
248
+ const connection = new ModuleGraphConnection(
249
+ originModule,
250
+ dependency,
251
+ module,
252
+ undefined,
253
+ dependency.weak,
254
+ dependency.getCondition(this)
255
+ );
256
+ const connections = this._getModuleGraphModule(module).incomingConnections;
257
+ connections.add(connection);
258
+ if (originModule) {
259
+ const mgm = this._getModuleGraphModule(originModule);
260
+ if (mgm._unassignedConnections === undefined) {
261
+ mgm._unassignedConnections = [];
262
+ }
263
+ mgm._unassignedConnections.push(connection);
264
+ if (mgm.outgoingConnections === undefined) {
265
+ mgm.outgoingConnections = new SortableSet();
266
+ }
267
+ mgm.outgoingConnections.add(connection);
268
+ } else {
269
+ this._dependencyMap.set(dependency, connection);
270
+ }
271
+ }
272
+
273
+ /**
274
+ * @param {Dependency} dependency the referencing dependency
275
+ * @param {Module} module the referenced module
276
+ * @returns {void}
277
+ */
278
+ updateModule(dependency, module) {
279
+ const connection =
280
+ /** @type {ModuleGraphConnection} */
281
+ (this.getConnection(dependency));
282
+ if (connection.module === module) return;
283
+ const newConnection = connection.clone();
284
+ newConnection.module = module;
285
+ this._dependencyMap.set(dependency, newConnection);
286
+ connection.setActive(false);
287
+ const originMgm = this._getModuleGraphModule(
288
+ /** @type {Module} */ (connection.originModule)
289
+ );
290
+ /** @type {OutgoingConnections} */
291
+ (originMgm.outgoingConnections).add(newConnection);
292
+ const targetMgm = this._getModuleGraphModule(module);
293
+ targetMgm.incomingConnections.add(newConnection);
294
+ }
295
+
296
+ /**
297
+ * @param {Dependency} dependency the need update dependency
298
+ * @param {ModuleGraphConnection=} connection the target connection
299
+ * @param {Module=} parentModule the parent module
300
+ * @returns {void}
301
+ */
302
+ updateParent(dependency, connection, parentModule) {
303
+ if (this._dependencySourceOrderMap.has(dependency)) {
304
+ return;
305
+ }
306
+ if (!connection || !parentModule) {
307
+ return;
308
+ }
309
+ const originDependency = connection.dependency;
310
+
311
+ // src/index.js
312
+ // import { c } from "lib/c" -> c = 0
313
+ // import { a, b } from "lib" -> a and b have the same source order -> a = b = 1
314
+ // import { d } from "lib/d" -> d = 2
315
+ const currentSourceOrder =
316
+ /** @type {HarmonyImportSideEffectDependency | HarmonyImportSpecifierDependency} */
317
+ (dependency).sourceOrder;
318
+
319
+ // lib/index.js (reexport)
320
+ // import { a } from "lib/a" -> a = 0
321
+ // import { b } from "lib/b" -> b = 1
322
+ const originSourceOrder =
323
+ /** @type {HarmonyImportSideEffectDependency | HarmonyImportSpecifierDependency} */
324
+ (originDependency).sourceOrder;
325
+ if (
326
+ typeof currentSourceOrder === "number" &&
327
+ typeof originSourceOrder === "number"
328
+ ) {
329
+ // src/index.js
330
+ // import { c } from "lib/c" -> c = 0
331
+ // import { a } from "lib/a" -> a = 1.0 = 1(main) + 0.0(sub)
332
+ // import { b } from "lib/b" -> b = 1.1 = 1(main) + 0.1(sub)
333
+ // import { d } from "lib/d" -> d = 2
334
+ this._dependencySourceOrderMap.set(dependency, {
335
+ main: currentSourceOrder,
336
+ sub: originSourceOrder
337
+ });
338
+
339
+ // Save for later batch sorting
340
+ this._modulesNeedingSort.add(parentModule);
341
+ }
342
+ }
343
+
344
+ /**
345
+ * @returns {void}
346
+ */
347
+ finishUpdateParent() {
348
+ if (this._modulesNeedingSort.size === 0) {
349
+ return;
350
+ }
351
+ for (const mod of this._modulesNeedingSort) {
352
+ // If dependencies like HarmonyImportSideEffectDependency and HarmonyImportSpecifierDependency have a SourceOrder,
353
+ // we sort based on it; otherwise, we preserve the original order.
354
+ sortWithSourceOrder(
355
+ mod.dependencies,
356
+ this._dependencySourceOrderMap,
357
+ (dep, index) => this.setParentDependenciesBlockIndex(dep, index)
358
+ );
359
+ }
360
+ this._modulesNeedingSort.clear();
361
+ }
362
+
363
+ /**
364
+ * @param {Dependency} dependency the referencing dependency
365
+ * @returns {void}
366
+ */
367
+ removeConnection(dependency) {
368
+ const connection =
369
+ /** @type {ModuleGraphConnection} */
370
+ (this.getConnection(dependency));
371
+ const targetMgm = this._getModuleGraphModule(connection.module);
372
+ targetMgm.incomingConnections.delete(connection);
373
+ const originMgm = this._getModuleGraphModule(
374
+ /** @type {Module} */ (connection.originModule)
375
+ );
376
+ /** @type {OutgoingConnections} */
377
+ (originMgm.outgoingConnections).delete(connection);
378
+ this._dependencyMap.set(dependency, null);
379
+ }
380
+
381
+ /**
382
+ * @param {Dependency} dependency the referencing dependency
383
+ * @param {string} explanation an explanation
384
+ * @returns {void}
385
+ */
386
+ addExplanation(dependency, explanation) {
387
+ const connection =
388
+ /** @type {ModuleGraphConnection} */
389
+ (this.getConnection(dependency));
390
+ connection.addExplanation(explanation);
391
+ }
392
+
393
+ /**
394
+ * @param {Module} sourceModule the source module
395
+ * @param {Module} targetModule the target module
396
+ * @returns {void}
397
+ */
398
+ cloneModuleAttributes(sourceModule, targetModule) {
399
+ const oldMgm = this._getModuleGraphModule(sourceModule);
400
+ const newMgm = this._getModuleGraphModule(targetModule);
401
+ newMgm.postOrderIndex = oldMgm.postOrderIndex;
402
+ newMgm.preOrderIndex = oldMgm.preOrderIndex;
403
+ newMgm.depth = oldMgm.depth;
404
+ newMgm.exports = oldMgm.exports;
405
+ newMgm.async = oldMgm.async;
406
+ }
407
+
408
+ /**
409
+ * @param {Module} module the module
410
+ * @returns {void}
411
+ */
412
+ removeModuleAttributes(module) {
413
+ const mgm = this._getModuleGraphModule(module);
414
+ mgm.postOrderIndex = null;
415
+ mgm.preOrderIndex = null;
416
+ mgm.depth = null;
417
+ mgm.async = false;
418
+ }
419
+
420
+ /**
421
+ * @returns {void}
422
+ */
423
+ removeAllModuleAttributes() {
424
+ for (const mgm of this._moduleMap.values()) {
425
+ mgm.postOrderIndex = null;
426
+ mgm.preOrderIndex = null;
427
+ mgm.depth = null;
428
+ mgm.async = false;
429
+ }
430
+ }
431
+
432
+ /**
433
+ * @param {Module} oldModule the old referencing module
434
+ * @param {Module} newModule the new referencing module
435
+ * @param {FilterConnection} filterConnection filter predicate for replacement
436
+ * @returns {void}
437
+ */
438
+ moveModuleConnections(oldModule, newModule, filterConnection) {
439
+ if (oldModule === newModule) return;
440
+ const oldMgm = this._getModuleGraphModule(oldModule);
441
+ const newMgm = this._getModuleGraphModule(newModule);
442
+ // Outgoing connections
443
+ const oldConnections = oldMgm.outgoingConnections;
444
+ if (oldConnections !== undefined) {
445
+ if (newMgm.outgoingConnections === undefined) {
446
+ newMgm.outgoingConnections = new SortableSet();
447
+ }
448
+ const newConnections = newMgm.outgoingConnections;
449
+ for (const connection of oldConnections) {
450
+ if (filterConnection(connection)) {
451
+ connection.originModule = newModule;
452
+ newConnections.add(connection);
453
+ oldConnections.delete(connection);
454
+ }
455
+ }
456
+ }
457
+ // Incoming connections
458
+ const oldConnections2 = oldMgm.incomingConnections;
459
+ const newConnections2 = newMgm.incomingConnections;
460
+ for (const connection of oldConnections2) {
461
+ if (filterConnection(connection)) {
462
+ connection.module = newModule;
463
+ newConnections2.add(connection);
464
+ oldConnections2.delete(connection);
465
+ }
466
+ }
467
+ }
468
+
469
+ /**
470
+ * @param {Module} oldModule the old referencing module
471
+ * @param {Module} newModule the new referencing module
472
+ * @param {FilterConnection} filterConnection filter predicate for replacement
473
+ * @returns {void}
474
+ */
475
+ copyOutgoingModuleConnections(oldModule, newModule, filterConnection) {
476
+ if (oldModule === newModule) return;
477
+ const oldMgm = this._getModuleGraphModule(oldModule);
478
+ const newMgm = this._getModuleGraphModule(newModule);
479
+ // Outgoing connections
480
+ const oldConnections = oldMgm.outgoingConnections;
481
+ if (oldConnections !== undefined) {
482
+ if (newMgm.outgoingConnections === undefined) {
483
+ newMgm.outgoingConnections = new SortableSet();
484
+ }
485
+ const newConnections = newMgm.outgoingConnections;
486
+ for (const connection of oldConnections) {
487
+ if (filterConnection(connection)) {
488
+ const newConnection = connection.clone();
489
+ newConnection.originModule = newModule;
490
+ newConnections.add(newConnection);
491
+ if (newConnection.module !== undefined) {
492
+ const otherMgm = this._getModuleGraphModule(newConnection.module);
493
+ otherMgm.incomingConnections.add(newConnection);
494
+ }
495
+ }
496
+ }
497
+ }
498
+ }
499
+
500
+ /**
501
+ * @param {Module} module the referenced module
502
+ * @param {string} explanation an explanation why it's referenced
503
+ * @returns {void}
504
+ */
505
+ addExtraReason(module, explanation) {
506
+ const connections = this._getModuleGraphModule(module).incomingConnections;
507
+ connections.add(new ModuleGraphConnection(null, null, module, explanation));
508
+ }
509
+
510
+ /**
511
+ * @param {Dependency} dependency the dependency to look for a referenced module
512
+ * @returns {Module | null} the referenced module
513
+ */
514
+ getResolvedModule(dependency) {
515
+ const connection = this.getConnection(dependency);
516
+ return connection !== undefined ? connection.resolvedModule : null;
517
+ }
518
+
519
+ /**
520
+ * @param {Dependency} dependency the dependency to look for a referenced module
521
+ * @returns {ModuleGraphConnection | undefined} the connection
522
+ */
523
+ getConnection(dependency) {
524
+ const connection = this._dependencyMap.get(dependency);
525
+ if (connection === undefined) {
526
+ const module = this.getParentModule(dependency);
527
+ if (module !== undefined) {
528
+ const mgm = this._getModuleGraphModule(module);
529
+ if (
530
+ mgm._unassignedConnections &&
531
+ mgm._unassignedConnections.length !== 0
532
+ ) {
533
+ /** @type {undefined | ModuleGraphConnection} */
534
+ let foundConnection;
535
+ for (const connection of mgm._unassignedConnections) {
536
+ this._dependencyMap.set(
537
+ /** @type {Dependency} */ (connection.dependency),
538
+ connection
539
+ );
540
+ if (connection.dependency === dependency) {
541
+ foundConnection = connection;
542
+ }
543
+ }
544
+ mgm._unassignedConnections.length = 0;
545
+ if (foundConnection !== undefined) {
546
+ return foundConnection;
547
+ }
548
+ }
549
+ }
550
+ this._dependencyMap.set(dependency, null);
551
+ return;
552
+ }
553
+ return connection === null ? undefined : connection;
554
+ }
555
+
556
+ /**
557
+ * @param {Dependency} dependency the dependency to look for a referenced module
558
+ * @returns {Module | null} the referenced module
559
+ */
560
+ getModule(dependency) {
561
+ const connection = this.getConnection(dependency);
562
+ return connection !== undefined ? connection.module : null;
563
+ }
564
+
565
+ /**
566
+ * @param {Dependency} dependency the dependency to look for a referencing module
567
+ * @returns {Module | null} the referencing module
568
+ */
569
+ getOrigin(dependency) {
570
+ const connection = this.getConnection(dependency);
571
+ return connection !== undefined ? connection.originModule : null;
572
+ }
573
+
574
+ /**
575
+ * @param {Dependency} dependency the dependency to look for a referencing module
576
+ * @returns {Module | null} the original referencing module
577
+ */
578
+ getResolvedOrigin(dependency) {
579
+ const connection = this.getConnection(dependency);
580
+ return connection !== undefined ? connection.resolvedOriginModule : null;
581
+ }
582
+
583
+ /**
584
+ * @param {Module} module the module
585
+ * @returns {Iterable<ModuleGraphConnection>} reasons why a module is included
586
+ */
587
+ getIncomingConnections(module) {
588
+ const connections = this._getModuleGraphModule(module).incomingConnections;
589
+ return connections;
590
+ }
591
+
592
+ /**
593
+ * @param {Module} module the module
594
+ * @returns {Iterable<ModuleGraphConnection>} list of outgoing connections
595
+ */
596
+ getOutgoingConnections(module) {
597
+ const connections = this._getModuleGraphModule(module).outgoingConnections;
598
+ return connections === undefined ? EMPTY_SET : connections;
599
+ }
600
+
601
+ /**
602
+ * @param {Module} module the module
603
+ * @returns {ReadonlyMap<Module | undefined | null, ReadonlyArray<ModuleGraphConnection>>} reasons why a module is included, in a map by source module
604
+ */
605
+ getIncomingConnectionsByOriginModule(module) {
606
+ const connections = this._getModuleGraphModule(module).incomingConnections;
607
+ return connections.getFromUnorderedCache(getConnectionsByOriginModule);
608
+ }
609
+
610
+ /**
611
+ * @param {Module} module the module
612
+ * @returns {ReadonlyMap<Module | undefined, ReadonlyArray<ModuleGraphConnection>> | undefined} connections to modules, in a map by module
613
+ */
614
+ getOutgoingConnectionsByModule(module) {
615
+ const connections = this._getModuleGraphModule(module).outgoingConnections;
616
+ return connections === undefined
617
+ ? undefined
618
+ : connections.getFromUnorderedCache(getConnectionsByModule);
619
+ }
620
+
621
+ /**
622
+ * @param {Module} module the module
623
+ * @returns {ModuleProfile | undefined} the module profile
624
+ */
625
+ getProfile(module) {
626
+ const mgm = this._getModuleGraphModule(module);
627
+ return mgm.profile;
628
+ }
629
+
630
+ /**
631
+ * @param {Module} module the module
632
+ * @param {ModuleProfile | undefined} profile the module profile
633
+ * @returns {void}
634
+ */
635
+ setProfile(module, profile) {
636
+ const mgm = this._getModuleGraphModule(module);
637
+ mgm.profile = profile;
638
+ }
639
+
640
+ /**
641
+ * @param {Module} module the module
642
+ * @returns {Issuer} the issuer module
643
+ */
644
+ getIssuer(module) {
645
+ const mgm = this._getModuleGraphModule(module);
646
+ return mgm.issuer;
647
+ }
648
+
649
+ /**
650
+ * @param {Module} module the module
651
+ * @param {Module | null} issuer the issuer module
652
+ * @returns {void}
653
+ */
654
+ setIssuer(module, issuer) {
655
+ const mgm = this._getModuleGraphModule(module);
656
+ mgm.issuer = issuer;
657
+ }
658
+
659
+ /**
660
+ * @param {Module} module the module
661
+ * @param {Module | null} issuer the issuer module
662
+ * @returns {void}
663
+ */
664
+ setIssuerIfUnset(module, issuer) {
665
+ const mgm = this._getModuleGraphModule(module);
666
+ if (mgm.issuer === undefined) mgm.issuer = issuer;
667
+ }
668
+
669
+ /**
670
+ * @param {Module} module the module
671
+ * @returns {OptimizationBailouts} optimization bailouts
672
+ */
673
+ getOptimizationBailout(module) {
674
+ const mgm = this._getModuleGraphModule(module);
675
+ return mgm.optimizationBailout;
676
+ }
677
+
678
+ /**
679
+ * @param {Module} module the module
680
+ * @returns {null | true | ExportInfoName[]} the provided exports
681
+ */
682
+ getProvidedExports(module) {
683
+ const mgm = this._getModuleGraphModule(module);
684
+ return mgm.exports.getProvidedExports();
685
+ }
686
+
687
+ /**
688
+ * @param {Module} module the module
689
+ * @param {ExportInfoName | ExportInfoName[]} exportName a name of an export
690
+ * @returns {boolean | null} true, if the export is provided by the module.
691
+ * null, if it's unknown.
692
+ * false, if it's not provided.
693
+ */
694
+ isExportProvided(module, exportName) {
695
+ const mgm = this._getModuleGraphModule(module);
696
+ const result = mgm.exports.isExportProvided(exportName);
697
+ return result === undefined ? null : result;
698
+ }
699
+
700
+ /**
701
+ * @param {Module} module the module
702
+ * @returns {ExportsInfo} info about the exports
703
+ */
704
+ getExportsInfo(module) {
705
+ const mgm = this._getModuleGraphModule(module);
706
+ return mgm.exports;
707
+ }
708
+
709
+ /**
710
+ * @param {Module} module the module
711
+ * @param {string} exportName the export
712
+ * @returns {ExportInfo} info about the export
713
+ */
714
+ getExportInfo(module, exportName) {
715
+ const mgm = this._getModuleGraphModule(module);
716
+ return mgm.exports.getExportInfo(exportName);
717
+ }
718
+
719
+ /**
720
+ * @param {Module} module the module
721
+ * @param {string} exportName the export
722
+ * @returns {ExportInfo} info about the export (do not modify)
723
+ */
724
+ getReadOnlyExportInfo(module, exportName) {
725
+ const mgm = this._getModuleGraphModule(module);
726
+ return mgm.exports.getReadOnlyExportInfo(exportName);
727
+ }
728
+
729
+ /**
730
+ * @param {Module} module the module
731
+ * @param {RuntimeSpec} runtime the runtime
732
+ * @returns {false | true | SortableSet<string> | null} the used exports
733
+ * false: module is not used at all.
734
+ * true: the module namespace/object export is used.
735
+ * SortableSet<string>: these export names are used.
736
+ * empty SortableSet<string>: module is used but no export.
737
+ * null: unknown, worst case should be assumed.
738
+ */
739
+ getUsedExports(module, runtime) {
740
+ const mgm = this._getModuleGraphModule(module);
741
+ return mgm.exports.getUsedExports(runtime);
742
+ }
743
+
744
+ /**
745
+ * @param {Module} module the module
746
+ * @returns {number | null} the index of the module
747
+ */
748
+ getPreOrderIndex(module) {
749
+ const mgm = this._getModuleGraphModule(module);
750
+ return mgm.preOrderIndex;
751
+ }
752
+
753
+ /**
754
+ * @param {Module} module the module
755
+ * @returns {number | null} the index of the module
756
+ */
757
+ getPostOrderIndex(module) {
758
+ const mgm = this._getModuleGraphModule(module);
759
+ return mgm.postOrderIndex;
760
+ }
761
+
762
+ /**
763
+ * @param {Module} module the module
764
+ * @param {number} index the index of the module
765
+ * @returns {void}
766
+ */
767
+ setPreOrderIndex(module, index) {
768
+ const mgm = this._getModuleGraphModule(module);
769
+ mgm.preOrderIndex = index;
770
+ }
771
+
772
+ /**
773
+ * @param {Module} module the module
774
+ * @param {number} index the index of the module
775
+ * @returns {boolean} true, if the index was set
776
+ */
777
+ setPreOrderIndexIfUnset(module, index) {
778
+ const mgm = this._getModuleGraphModule(module);
779
+ if (mgm.preOrderIndex === null) {
780
+ mgm.preOrderIndex = index;
781
+ return true;
782
+ }
783
+ return false;
784
+ }
785
+
786
+ /**
787
+ * @param {Module} module the module
788
+ * @param {number} index the index of the module
789
+ * @returns {void}
790
+ */
791
+ setPostOrderIndex(module, index) {
792
+ const mgm = this._getModuleGraphModule(module);
793
+ mgm.postOrderIndex = index;
794
+ }
795
+
796
+ /**
797
+ * @param {Module} module the module
798
+ * @param {number} index the index of the module
799
+ * @returns {boolean} true, if the index was set
800
+ */
801
+ setPostOrderIndexIfUnset(module, index) {
802
+ const mgm = this._getModuleGraphModule(module);
803
+ if (mgm.postOrderIndex === null) {
804
+ mgm.postOrderIndex = index;
805
+ return true;
806
+ }
807
+ return false;
808
+ }
809
+
810
+ /**
811
+ * @param {Module} module the module
812
+ * @returns {number | null} the depth of the module
813
+ */
814
+ getDepth(module) {
815
+ const mgm = this._getModuleGraphModule(module);
816
+ return mgm.depth;
817
+ }
818
+
819
+ /**
820
+ * @param {Module} module the module
821
+ * @param {number} depth the depth of the module
822
+ * @returns {void}
823
+ */
824
+ setDepth(module, depth) {
825
+ const mgm = this._getModuleGraphModule(module);
826
+ mgm.depth = depth;
827
+ }
828
+
829
+ /**
830
+ * @param {Module} module the module
831
+ * @param {number} depth the depth of the module
832
+ * @returns {boolean} true, if the depth was set
833
+ */
834
+ setDepthIfLower(module, depth) {
835
+ const mgm = this._getModuleGraphModule(module);
836
+ if (mgm.depth === null || mgm.depth > depth) {
837
+ mgm.depth = depth;
838
+ return true;
839
+ }
840
+ return false;
841
+ }
842
+
843
+ /**
844
+ * @param {Module} module the module
845
+ * @returns {boolean} true, if the module is async
846
+ */
847
+ isAsync(module) {
848
+ const mgm = this._getModuleGraphModule(module);
849
+ return mgm.async;
850
+ }
851
+
852
+ /**
853
+ * @param {Module} module the module
854
+ * @returns {boolean} true, if the module is used as a deferred module at least once
855
+ */
856
+ isDeferred(module) {
857
+ if (this.isAsync(module)) return false;
858
+ const connections = this.getIncomingConnections(module);
859
+ for (const connection of connections) {
860
+ if (
861
+ !connection.dependency ||
862
+ !(connection.dependency instanceof HarmonyImportDependency)
863
+ ) {
864
+ continue;
865
+ }
866
+ if (ImportPhaseUtils.isDefer(connection.dependency.phase)) return true;
867
+ }
868
+ return false;
869
+ }
870
+
871
+ /**
872
+ * @param {Module} module the module
873
+ * @returns {void}
874
+ */
875
+ setAsync(module) {
876
+ const mgm = this._getModuleGraphModule(module);
877
+ mgm.async = true;
878
+ }
879
+
880
+ /**
881
+ * @param {MetaKey} thing any thing
882
+ * @returns {Meta} metadata
883
+ */
884
+ getMeta(thing) {
885
+ let meta = this._metaMap.get(thing);
886
+ if (meta === undefined) {
887
+ meta = /** @type {Meta} */ (Object.create(null));
888
+ this._metaMap.set(thing, meta);
889
+ }
890
+ return meta;
891
+ }
892
+
893
+ /**
894
+ * @param {MetaKey} thing any thing
895
+ * @returns {Meta | undefined} metadata
896
+ */
897
+ getMetaIfExisting(thing) {
898
+ return this._metaMap.get(thing);
899
+ }
900
+
901
+ /**
902
+ * @param {string=} cacheStage a persistent stage name for caching
903
+ */
904
+ freeze(cacheStage) {
905
+ this._cache = new WeakTupleMap();
906
+ this._cacheStage = cacheStage;
907
+ }
908
+
909
+ unfreeze() {
910
+ this._cache = undefined;
911
+ this._cacheStage = undefined;
912
+ }
913
+
914
+ /**
915
+ * @template {EXPECTED_ANY[]} T
916
+ * @template R
917
+ * @param {(moduleGraph: ModuleGraph, ...args: T) => R} fn computer
918
+ * @param {T} args arguments
919
+ * @returns {R} computed value or cached
920
+ */
921
+ cached(fn, ...args) {
922
+ if (this._cache === undefined) return fn(this, ...args);
923
+ return this._cache.provide(fn, ...args, () => fn(this, ...args));
924
+ }
925
+
926
+ /**
927
+ * @param {ModuleMemCaches} moduleMemCaches mem caches for modules for better caching
928
+ */
929
+ setModuleMemCaches(moduleMemCaches) {
930
+ this._moduleMemCaches = moduleMemCaches;
931
+ }
932
+
933
+ /**
934
+ * @template {Dependency} D
935
+ * @template {EXPECTED_ANY[]} ARGS
936
+ * @template R
937
+ * @param {D} dependency dependency
938
+ * @param {[...ARGS, (moduleGraph: ModuleGraph, dependency: D, ...args: ARGS) => R]} args arguments, last argument is a function called with moduleGraph, dependency, ...args
939
+ * @returns {R} computed value or cached
940
+ */
941
+ dependencyCacheProvide(dependency, ...args) {
942
+ const fn =
943
+ /** @type {(moduleGraph: ModuleGraph, dependency: D, ...args: EXPECTED_ANY[]) => R} */
944
+ (args.pop());
945
+ if (this._moduleMemCaches && this._cacheStage) {
946
+ const memCache = this._moduleMemCaches.get(
947
+ /** @type {Module} */
948
+ (this.getParentModule(dependency))
949
+ );
950
+ if (memCache !== undefined) {
951
+ return memCache.provide(dependency, this._cacheStage, ...args, () =>
952
+ fn(this, dependency, ...args)
953
+ );
954
+ }
955
+ }
956
+ if (this._cache === undefined) return fn(this, dependency, ...args);
957
+ return this._cache.provide(dependency, ...args, () =>
958
+ fn(this, dependency, ...args)
959
+ );
960
+ }
961
+
962
+ // TODO remove in webpack 6
963
+ /**
964
+ * @param {Module} module the module
965
+ * @param {string} deprecateMessage message for the deprecation message
966
+ * @param {string} deprecationCode code for the deprecation
967
+ * @returns {ModuleGraph} the module graph
968
+ */
969
+ static getModuleGraphForModule(module, deprecateMessage, deprecationCode) {
970
+ const fn = deprecateMap.get(deprecateMessage);
971
+ if (fn) return fn(module);
972
+ const newFn = util.deprecate(
973
+ /**
974
+ * @param {Module} module the module
975
+ * @returns {ModuleGraph} the module graph
976
+ */
977
+ (module) => {
978
+ const moduleGraph = moduleGraphForModuleMap.get(module);
979
+ if (!moduleGraph) {
980
+ throw new Error(
981
+ `${
982
+ deprecateMessage
983
+ }There was no ModuleGraph assigned to the Module for backward-compat (Use the new API)`
984
+ );
985
+ }
986
+ return moduleGraph;
987
+ },
988
+ `${deprecateMessage}: Use new ModuleGraph API`,
989
+ deprecationCode
990
+ );
991
+ deprecateMap.set(deprecateMessage, newFn);
992
+ return newFn(module);
993
+ }
994
+
995
+ // TODO remove in webpack 6
996
+ /**
997
+ * @param {Module} module the module
998
+ * @param {ModuleGraph} moduleGraph the module graph
999
+ * @returns {void}
1000
+ */
1001
+ static setModuleGraphForModule(module, moduleGraph) {
1002
+ moduleGraphForModuleMap.set(module, moduleGraph);
1003
+ }
1004
+
1005
+ // TODO remove in webpack 6
1006
+ /**
1007
+ * @param {Module} module the module
1008
+ * @returns {void}
1009
+ */
1010
+ static clearModuleGraphForModule(module) {
1011
+ moduleGraphForModuleMap.delete(module);
1012
+ }
1013
+ }
1014
+
1015
+ // TODO remove in webpack 6
1016
+ /** @type {WeakMap<Module, ModuleGraph>} */
1017
+ const moduleGraphForModuleMap = new WeakMap();
1018
+
1019
+ // TODO remove in webpack 6
1020
+ /** @type {Map<string, (module: Module) => ModuleGraph>} */
1021
+ const deprecateMap = new Map();
1022
+
1023
+ module.exports = ModuleGraph;
1024
+ module.exports.ModuleGraphConnection = ModuleGraphConnection;