@depup/webpack 5.111.1-depup.2 → 5.112.0-depup.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 (775) hide show
  1. package/README.md +6 -8
  2. package/changes.json +8 -16
  3. package/lib/Chunk.js +3 -966
  4. package/lib/Compilation.js +224 -106
  5. package/lib/Compiler.js +19 -19
  6. package/lib/Dependency.js +3 -551
  7. package/lib/DependencyTemplate.js +3 -70
  8. package/lib/EntryPlugin.js +3 -68
  9. package/lib/Entrypoint.js +3 -121
  10. package/lib/ExternalsPlugin.js +3 -92
  11. package/lib/FileSystemInfo.js +3 -4629
  12. package/lib/InitFragment.js +3 -204
  13. package/lib/LibraryTemplatePlugin.js +3 -46
  14. package/lib/ModuleFilenameHelpers.js +3 -400
  15. package/lib/ModuleNotFoundError.js +2 -2
  16. package/lib/MultiCompiler.js +37 -8
  17. package/lib/NormalModule.js +3 -2242
  18. package/lib/NullFactory.js +3 -22
  19. package/lib/ProgressPlugin.js +3 -908
  20. package/lib/RawModule.js +3 -197
  21. package/lib/RequestShortener.js +3 -37
  22. package/lib/SingleEntryPlugin.js +1 -1
  23. package/lib/WebpackError.js +2 -2
  24. package/lib/asset/AssetBytesGenerator.js +8 -8
  25. package/lib/asset/AssetBytesParser.js +3 -3
  26. package/lib/asset/AssetGenerator.js +36 -22
  27. package/lib/asset/AssetModule.js +2 -2
  28. package/lib/asset/AssetModulesPlugin.js +6 -9
  29. package/lib/asset/AssetParser.js +3 -3
  30. package/lib/asset/AssetSourceGenerator.js +8 -8
  31. package/lib/asset/AssetSourceParser.js +3 -3
  32. package/lib/asset/RawDataUrlModule.js +17 -10
  33. package/lib/asset/WebManifestGenerator.js +7 -7
  34. package/lib/asset/WebManifestParser.js +5 -5
  35. package/lib/async-modules/AsyncModuleHelpers.js +6 -5
  36. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  37. package/lib/async-modules/InferAsyncModulesPlugin.js +4 -3
  38. package/lib/async-modules/isGeneratorLowered.js +3 -3
  39. package/lib/bun/BunTargetPlugin.js +1 -1
  40. package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
  41. package/lib/{Cache.js → cache/Cache.js} +1 -1
  42. package/lib/{CacheFacade.js → cache/CacheFacade.js} +5 -5
  43. package/lib/cache/IdleFileCachePlugin.js +2 -2
  44. package/lib/cache/MemoryCachePlugin.js +2 -2
  45. package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
  46. package/lib/cache/PackFileCacheStrategy.js +8 -10
  47. package/lib/cache/ResolverCachePlugin.js +8 -4
  48. package/lib/cache/mergeEtags.js +1 -1
  49. package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
  50. package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
  51. package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +217 -200
  52. package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
  53. package/lib/config/browserslistTargetHandler.js +1 -1
  54. package/lib/{cli.js → config/cli.js} +5 -158
  55. package/lib/config/defaults.js +144 -48
  56. package/lib/config/getClaimedAssetTypes.js +21 -13
  57. package/lib/config/normalization.js +18 -7
  58. package/lib/config/target.js +10 -0
  59. package/lib/container/ContainerEntryDependency.js +1 -1
  60. package/lib/container/ContainerEntryModule.js +13 -11
  61. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  62. package/lib/container/ContainerExposedDependency.js +1 -1
  63. package/lib/container/ContainerPlugin.js +178 -5
  64. package/lib/container/ContainerReferencePlugin.js +75 -14
  65. package/lib/container/FallbackDependency.js +1 -1
  66. package/lib/container/FallbackItemDependency.js +1 -1
  67. package/lib/container/FallbackModule.js +12 -10
  68. package/lib/container/FallbackModuleFactory.js +2 -2
  69. package/lib/container/HoistContainerReferencesPlugin.js +10 -11
  70. package/lib/container/ModuleFederationPlugin.js +306 -7
  71. package/lib/container/RemoteModule.js +14 -10
  72. package/lib/container/RemoteRuntimeModule.js +5 -5
  73. package/lib/container/RemoteToExternalDependency.js +1 -1
  74. package/lib/container/moduleFederationHooks.js +1 -1
  75. package/lib/context/ContextModule.js +36 -25
  76. package/lib/context/ContextModuleFactory.js +13 -10
  77. package/lib/context/ContextReplacementPlugin.js +3 -3
  78. package/lib/css/CssGenerator.js +38 -31
  79. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  80. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  81. package/lib/css/CssModule.js +27 -29
  82. package/lib/css/CssModulesPlugin.js +128 -44
  83. package/lib/css/CssParser.js +682 -291
  84. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  85. package/lib/css/cssMinify.js +110 -37
  86. package/lib/css/data.js +6985 -5125
  87. package/lib/css/syntax-parser.js +19873 -0
  88. package/lib/css/syntax-printer.js +6037 -0
  89. package/lib/css/syntax.js +37 -18686
  90. package/lib/debug/ProfilingPlugin.js +52 -19
  91. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
  92. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +9 -9
  93. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
  94. package/lib/deno/DenoTargetPlugin.js +1 -1
  95. package/lib/dependencies/ConstDependency.js +3 -120
  96. package/lib/dependencies/ContextElementDependency.js +5 -172
  97. package/lib/dependencies/NullDependency.js +3 -37
  98. package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
  99. package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -10
  100. package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
  101. package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
  102. package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
  103. package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
  104. package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +10 -10
  105. package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
  106. package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
  107. package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
  108. package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
  109. package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
  110. package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
  111. package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
  112. package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
  113. package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
  114. package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -33
  115. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  116. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
  117. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  118. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +35 -30
  119. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
  120. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
  121. package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
  122. package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
  123. package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
  124. package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
  125. package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
  126. package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +5 -5
  127. package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
  128. package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
  129. package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
  130. package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
  131. package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
  132. package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
  133. package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
  134. package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
  135. package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
  136. package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
  137. package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
  138. package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
  139. package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
  140. package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
  141. package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
  142. package/lib/dependencies/context/ContextElementDependency.js +198 -0
  143. package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
  144. package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +9 -9
  145. package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
  146. package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
  147. package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +4 -4
  148. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
  149. package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
  150. package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
  151. package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
  152. package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +12 -11
  153. package/lib/dependencies/core/ConstDependency.js +131 -0
  154. package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
  155. package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
  156. package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
  157. package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
  158. package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
  159. package/lib/dependencies/core/NullDependency.js +44 -0
  160. package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
  161. package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
  162. package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +369 -92
  163. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +23 -16
  164. package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
  165. package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
  166. package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +23 -16
  167. package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
  168. package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
  169. package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
  170. package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
  171. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +19 -17
  172. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  173. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
  174. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
  175. package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
  176. package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
  177. package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +133 -118
  178. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
  179. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +60 -36
  180. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
  181. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  182. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
  183. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +99 -84
  184. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
  185. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
  186. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +94 -59
  187. package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
  188. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  189. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
  190. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
  191. package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
  192. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  193. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  194. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  195. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  196. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  197. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  198. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +51 -141
  199. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
  200. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -19
  201. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -15
  202. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  203. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  204. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  205. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  206. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
  207. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  208. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  209. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  210. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  211. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  212. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +119 -98
  213. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  214. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  215. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  216. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  217. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
  218. package/lib/{url → dependencies/url}/URLParserPlugin.js +16 -18
  219. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  220. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  221. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  222. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  223. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +31 -33
  224. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
  225. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
  226. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  227. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  228. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  229. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  230. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +154 -26
  231. package/lib/{util → devtool}/generateDebugId.js +1 -1
  232. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  233. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  234. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  235. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  236. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  237. package/lib/dll/DelegatedModule.js +20 -18
  238. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  239. package/lib/dll/DelegatedPlugin.js +1 -1
  240. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  241. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  242. package/lib/dll/DllEntryPlugin.js +3 -3
  243. package/lib/dll/DllModule.js +11 -9
  244. package/lib/dll/DllModuleFactory.js +3 -3
  245. package/lib/dll/DllPlugin.js +18 -6
  246. package/lib/dll/DllReferencePlugin.js +102 -26
  247. package/lib/dll/LibManifestPlugin.js +9 -7
  248. package/lib/electron/ElectronTargetPlugin.js +2 -2
  249. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  250. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  251. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  252. package/lib/entry/EntryPlugin.js +75 -0
  253. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  254. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  255. package/lib/errors/BuildCycleError.js +1 -1
  256. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  257. package/lib/errors/ChunkRenderError.js +1 -1
  258. package/lib/errors/CodeGenerationError.js +1 -1
  259. package/lib/errors/CommentCompilationWarning.js +1 -1
  260. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  261. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  262. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  263. package/lib/errors/DllManifestError.js +26 -0
  264. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  265. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  266. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  267. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  268. package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +7 -5
  269. package/lib/errors/ExternalStarReexportError.js +2 -2
  270. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  271. package/lib/errors/HookWebpackError.js +4 -4
  272. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  273. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  274. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  275. package/lib/errors/ModuleBuildError.js +1 -1
  276. package/lib/errors/ModuleDependencyError.js +2 -2
  277. package/lib/errors/ModuleDependencyWarning.js +2 -2
  278. package/lib/errors/ModuleError.js +1 -1
  279. package/lib/errors/ModuleHashingError.js +1 -1
  280. package/lib/errors/ModuleNotFoundError.js +3 -3
  281. package/lib/errors/ModuleParseError.js +1 -1
  282. package/lib/errors/ModuleRestoreError.js +1 -1
  283. package/lib/errors/ModuleStoreError.js +1 -1
  284. package/lib/errors/ModuleWarning.js +1 -1
  285. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  286. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  287. package/lib/errors/NodeStuffInWebError.js +7 -2
  288. package/lib/errors/PathVariableError.js +31 -0
  289. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  290. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  291. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  292. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  293. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  294. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  295. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  296. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  297. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  298. package/lib/errors/WebpackError.js +12 -3
  299. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  300. package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
  301. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  302. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  303. package/lib/{ExternalModule.js → externals/ExternalModule.js} +79 -55
  304. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
  305. package/lib/externals/ExternalsPlugin.js +99 -0
  306. package/lib/fs/FileSystemInfo.js +4642 -0
  307. package/lib/{util → fs}/fs.js +22 -9
  308. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  309. package/lib/graph/Chunk.js +985 -0
  310. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
  311. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  312. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  313. package/lib/graph/Dependency.js +628 -0
  314. package/lib/graph/Entrypoint.js +136 -0
  315. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +130 -82
  316. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  317. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +30 -30
  318. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  319. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +152 -57
  320. package/lib/{util → graph}/findGraphRoots.js +14 -8
  321. package/lib/graph/isDependencyKind.js +23 -0
  322. package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
  323. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +47 -47
  324. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  325. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
  326. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  327. package/lib/hmr/LazyCompilationPlugin.js +31 -21
  328. package/lib/html/HtmlGenerator.js +107 -43
  329. package/lib/html/HtmlModule.js +6 -2
  330. package/lib/html/HtmlModulesPlugin.js +172 -76
  331. package/lib/html/HtmlParser.js +503 -153
  332. package/lib/html/builtinEmbeddedRenderer.js +60 -13
  333. package/lib/html/data.js +2 -1
  334. package/lib/html/htmlMinify.js +111 -41
  335. package/lib/html/syntax-parser.js +15796 -0
  336. package/lib/html/syntax-printer.js +1034 -0
  337. package/lib/html/syntax.js +37 -13952
  338. package/lib/html/xmlMinify.js +67 -0
  339. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  340. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  341. package/lib/ids/HashedModuleIdsPlugin.js +31 -4
  342. package/lib/ids/IdHelpers.js +4 -4
  343. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  344. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  345. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  346. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  347. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  348. package/lib/{util → ids}/numberHash.js +1 -1
  349. package/lib/index.js +303 -97
  350. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +25 -25
  351. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  352. package/lib/javascript/BasicEvaluatedExpression.js +4 -4
  353. package/lib/javascript/ChunkHelpers.js +64 -4
  354. package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
  355. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
  356. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +74 -7
  357. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  358. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  359. package/lib/javascript/JavascriptGenerator.js +17 -17
  360. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
  361. package/lib/javascript/JavascriptModule.js +4 -3
  362. package/lib/javascript/JavascriptModulesPlugin.js +440 -211
  363. package/lib/javascript/JavascriptParser.js +220 -134
  364. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  365. package/lib/javascript/MergedEntryExports.js +196 -0
  366. package/lib/javascript/ScopeAnalyzer.js +3840 -5
  367. package/lib/javascript/StartupHelpers.js +6 -6
  368. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
  369. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  370. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  371. package/lib/javascript/data.js +533 -122
  372. package/lib/javascript/jsMinify.js +272 -0
  373. package/lib/javascript/regexp.js +67 -32
  374. package/lib/javascript/syntax-parser.js +18561 -0
  375. package/lib/javascript/syntax-printer-data.js +933 -0
  376. package/lib/javascript/syntax-printer.js +47106 -0
  377. package/lib/javascript/syntax.js +20 -11274
  378. package/lib/json/JsonData.js +1 -1
  379. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  380. package/lib/json/JsonGenerator.js +10 -10
  381. package/lib/json/JsonModule.js +2 -2
  382. package/lib/json/JsonModulesPlugin.js +1 -1
  383. package/lib/json/JsonParser.js +5 -5
  384. package/lib/json/jsonMinify.js +69 -0
  385. package/lib/library/AbstractLibraryPlugin.js +28 -15
  386. package/lib/library/AmdLibraryPlugin.js +4 -4
  387. package/lib/library/AssignLibraryPlugin.js +27 -11
  388. package/lib/library/EnableLibraryPlugin.js +1 -1
  389. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  390. package/lib/library/JsonpLibraryPlugin.js +1 -1
  391. package/lib/library/LibraryTemplatePlugin.js +53 -0
  392. package/lib/library/ModuleLibraryPlugin.js +160 -166
  393. package/lib/library/SystemLibraryPlugin.js +6 -8
  394. package/lib/library/UmdLibraryPlugin.js +3 -4
  395. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  396. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  397. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  398. package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
  399. package/lib/loaders/LoaderRunner.js +31 -21
  400. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  401. package/lib/logging/Logger.js +7 -9
  402. package/lib/logging/ProgressPlugin.js +957 -0
  403. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  404. package/lib/{Generator.js → module/Generator.js} +16 -14
  405. package/lib/{Module.js → module/Module.js} +119 -51
  406. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  407. package/lib/module/NormalModule.js +2348 -0
  408. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
  409. package/lib/module/NullFactory.js +29 -0
  410. package/lib/{Parser.js → module/Parser.js} +3 -3
  411. package/lib/module/RawModule.js +208 -0
  412. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  413. package/lib/{util → module}/extractSourceMap.js +2 -2
  414. package/lib/{util → module}/findCaseMismatch.js +2 -2
  415. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  416. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  417. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
  418. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  419. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  420. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  421. package/lib/node/NodeTargetPlugin.js +1 -1
  422. package/lib/node/NodeWatchFileSystem.js +58 -6
  423. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  424. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
  425. package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
  426. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  427. package/lib/node/nodeConsole.js +2 -4
  428. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  429. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  430. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
  431. package/lib/optimize/ConcatenatedModule.js +229 -214
  432. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  433. package/lib/optimize/ConstExportsPlugin.js +7 -7
  434. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  435. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  436. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +17 -17
  437. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +17 -17
  438. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  439. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
  440. package/lib/optimize/InlineExports.js +11 -3
  441. package/lib/optimize/InnerGraph.js +5 -13
  442. package/lib/optimize/InnerGraphPlugin.js +10 -10
  443. package/lib/optimize/LazyBarrels.js +584 -0
  444. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  445. package/lib/optimize/LimitChunkCountPlugin.js +16 -7
  446. package/lib/optimize/MangleExportsPlugin.js +5 -5
  447. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  448. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  449. package/lib/optimize/ModuleConcatenationPlugin.js +20 -12
  450. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  451. package/lib/optimize/RealContentHashPlugin.js +16 -7
  452. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  453. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  454. package/lib/optimize/SideEffectsFlagPlugin.js +18 -18
  455. package/lib/optimize/SplitChunksPlugin.js +713 -155
  456. package/lib/{util → optimize}/TupleQueue.js +9 -9
  457. package/lib/optimize/chunkSetIntersections.js +437 -0
  458. package/lib/{util → optimize}/deterministicGrouping.js +17 -17
  459. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  460. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
  461. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
  462. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  463. package/lib/output/SSRManifestPlugin.js +349 -0
  464. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  465. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  466. package/lib/performance/BroadContextsPlugin.js +4 -4
  467. package/lib/performance/CacheEffectivenessPlugin.js +2 -3
  468. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  469. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  470. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  471. package/lib/performance/DynamicExportsPlugin.js +2 -2
  472. package/lib/performance/EvalUsagePlugin.js +3 -3
  473. package/lib/performance/HotspotsPlugin.js +11 -10
  474. package/lib/performance/LargeModulesPlugin.js +2 -3
  475. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  476. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  477. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  478. package/lib/performance/PureAnnotationsPlugin.js +3 -3
  479. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  480. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  481. package/lib/performance/SizeLimitsPlugin.js +11 -12
  482. package/lib/performance/TopLevelThisPlugin.js +8 -7
  483. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  484. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  485. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  486. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  487. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  488. package/lib/performance/UnusedFederationPlugin.js +2 -4
  489. package/lib/performance/UnusedModulesPlugin.js +5 -4
  490. package/lib/performance/getModuleSize.js +1 -1
  491. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  492. package/lib/performance/isOnlyReexported.js +7 -6
  493. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  494. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  495. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
  496. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  497. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  498. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  499. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  500. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  501. package/lib/prefetch/ResourceHintPlugin.js +65 -44
  502. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  503. package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
  504. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  505. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  506. package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
  507. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  508. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  509. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  510. package/lib/resolve/getResolveOptionsKey.js +59 -0
  511. package/lib/rules/RuleSetCompiler.js +27 -46
  512. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  513. package/lib/runtime/AsyncModuleRuntimeModule.js +7 -4
  514. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  515. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  516. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  517. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  518. package/lib/runtime/CompatRuntimeModule.js +4 -4
  519. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  520. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  521. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  522. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  523. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  524. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  525. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  526. package/lib/runtime/GetChunkFilenameRuntimeModule.js +6 -6
  527. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  528. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  529. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  530. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  531. package/lib/runtime/GlobalRuntimeModule.js +3 -3
  532. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  533. package/lib/runtime/HelperRuntimeModule.js +16 -1
  534. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  535. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
  536. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  537. package/lib/runtime/NonceRuntimeModule.js +2 -2
  538. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  539. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  540. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  541. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
  542. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  543. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  544. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
  545. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  546. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  547. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  548. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  549. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  550. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  551. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  552. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  553. package/lib/runtime/baseUri.js +1 -1
  554. package/lib/schemes/DataUriPlugin.js +1 -1
  555. package/lib/schemes/HttpUriPlugin.js +67 -11
  556. package/lib/schemes/VirtualUrlPlugin.js +50 -16
  557. package/lib/serialization/AggregateErrorSerializer.js +2 -2
  558. package/lib/serialization/FileMiddleware.js +3 -3
  559. package/lib/serialization/ObjectMiddleware.js +47 -16
  560. package/lib/serialization/SerializerMiddleware.js +2 -2
  561. package/lib/serialization/SingleItemMiddleware.js +4 -2
  562. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  563. package/lib/sharing/ConsumeSharedModule.js +18 -14
  564. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  565. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  566. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  567. package/lib/sharing/ProvideSharedDependency.js +1 -1
  568. package/lib/sharing/ProvideSharedModule.js +11 -9
  569. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  570. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  571. package/lib/sharing/SharePlugin.js +102 -9
  572. package/lib/sharing/ShareRuntimeModule.js +6 -6
  573. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  574. package/lib/{util → sharing}/semver.js +14 -16
  575. package/lib/sharing/utils.js +59 -2
  576. package/lib/stats/DefaultStatsFactoryPlugin.js +22 -19
  577. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  578. package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
  579. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  580. package/lib/{Stats.js → stats/Stats.js} +4 -4
  581. package/lib/stats/StatsFactory.js +14 -13
  582. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  583. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  584. package/lib/template/DependencyTemplate.js +77 -0
  585. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  586. package/lib/template/InitFragment.js +223 -0
  587. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  588. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  589. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  590. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +145 -63
  591. package/lib/{Template.js → template/Template.js} +13 -11
  592. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
  593. package/lib/typescript/TypeScriptPlugin.js +3 -3
  594. package/lib/util/RequestShortener.js +44 -0
  595. package/lib/util/SortableSet.js +87 -22
  596. package/lib/util/SourceProcessor.js +349 -44
  597. package/lib/util/TupleSet.js +27 -27
  598. package/lib/util/WeakTupleMap.js +10 -12
  599. package/lib/util/buildDiagnostics.js +2 -2
  600. package/lib/util/comparators.js +10 -10
  601. package/lib/util/concatenate.js +28 -147
  602. package/lib/util/createMappings.js +111 -0
  603. package/lib/util/dataURL.js +94 -15
  604. package/lib/util/deprecation.js +1 -1
  605. package/lib/util/extractComments.js +118 -0
  606. package/lib/util/formatLocation.js +1 -1
  607. package/lib/util/globUtils.js +197 -16
  608. package/lib/util/haltVisitors.js +51 -0
  609. package/lib/util/handlerKeys.js +2 -2
  610. package/lib/util/identifier.js +117 -1
  611. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  612. package/lib/util/internalSerializables.js +294 -102
  613. package/lib/util/magicComment.js +12 -7
  614. package/lib/util/makeSerializable.js +23 -4
  615. package/lib/util/parseJson.js +1 -1
  616. package/lib/util/preloadModuleType.js +5 -2
  617. package/lib/util/registerExternalSerializer.js +2 -2
  618. package/lib/util/removeBOM.js +1 -1
  619. package/lib/util/runtime.js +1 -1
  620. package/lib/util/serialization.js +4 -1
  621. package/lib/util/source.js +2 -2
  622. package/lib/util/terminalColors.js +161 -0
  623. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  624. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  625. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
  626. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +5 -5
  627. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +11 -10
  628. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  629. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
  630. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  631. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
  632. package/lib/wasm/wasmModuleFilename.js +2 -2
  633. package/lib/wasm-sync/SyncWasmModule.js +3 -3
  634. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
  635. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  636. package/lib/wasm-sync/WebAssemblyGenerator.js +9 -8
  637. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +14 -15
  638. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  639. package/lib/wasm-sync/WebAssemblyParser.js +6 -6
  640. package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
  641. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  642. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  643. package/lib/{Watching.js → watch/Watching.js} +8 -8
  644. package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
  645. package/lib/web/FetchCompileWasmPlugin.js +6 -4
  646. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  647. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  648. package/lib/web/JsonpTemplatePlugin.js +1 -1
  649. package/lib/webpack.js +27 -17
  650. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  651. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  652. package/package.json +55 -40
  653. package/schemas/WebpackOptions.check.js +2 -1
  654. package/schemas/WebpackOptions.d.json.ts +2 -0
  655. package/schemas/WebpackOptions.json +294 -74
  656. package/schemas/plugins/BannerPlugin.check.js +2 -1
  657. package/schemas/plugins/BannerPlugin.json +29 -2
  658. package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
  659. package/schemas/plugins/HtmlParserOptions.check.js +2 -1
  660. package/schemas/plugins/IgnorePlugin.check.js +1 -0
  661. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  662. package/schemas/plugins/IgnorePlugin.json +1 -1
  663. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
  664. package/schemas/plugins/ManifestPlugin.check.js +1 -0
  665. package/schemas/plugins/ManifestPlugin.json +3 -3
  666. package/schemas/plugins/ProgressPlugin.check.js +2 -1
  667. package/schemas/plugins/ProgressPlugin.json +2 -7
  668. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  669. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  670. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
  671. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  672. package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
  673. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  674. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
  675. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
  676. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
  677. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
  678. package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
  679. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  680. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
  681. package/schemas/plugins/container/ExternalsType.check.js +1 -0
  682. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
  683. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  684. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
  685. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
  686. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
  687. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
  688. package/schemas/plugins/css/CssParserOptions.check.js +1 -0
  689. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
  690. package/schemas/plugins/dll/DllPlugin.check.js +1 -0
  691. package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
  692. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  693. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
  694. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
  695. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
  696. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
  697. package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
  698. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
  699. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
  700. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
  701. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
  702. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
  703. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
  704. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
  705. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  706. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
  707. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  708. package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
  709. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  710. package/types.d.ts +19355 -13873
  711. package/lib/LazyBarrel.js +0 -388
  712. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  713. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  714. package/lib/javascript/ChunkFormatHelpers.js +0 -72
  715. package/lib/javascript/grammar.js +0 -5546
  716. package/lib/javascript/parser.js +0 -1500
  717. package/lib/javascript/regexpData.js +0 -51
  718. package/lib/performance/getSourceModules.js +0 -22
  719. package/lib/util/Semaphore.js +0 -65
  720. package/lib/util/objectToMap.js +0 -15
  721. package/schemas/WebpackOptions.check.d.ts +0 -7
  722. package/schemas/_container.json +0 -155
  723. package/schemas/_sharing.json +0 -118
  724. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  725. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  726. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  727. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  728. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  729. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  730. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  731. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  732. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  733. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  734. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  735. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  736. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  737. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  738. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  739. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  740. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  741. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  742. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  743. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  744. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  745. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  746. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  747. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  748. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  749. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  750. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  751. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  752. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  753. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  754. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  755. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  756. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  757. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  758. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  759. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  760. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  761. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  762. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  763. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  764. /package/lib/{util → css}/conventions.js +0 -0
  765. /package/lib/{util → css}/topologicalSort.js +0 -0
  766. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  767. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  768. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  769. /package/lib/{util → javascript}/StackedMap.js +0 -0
  770. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  771. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  772. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  773. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  774. /package/lib/{util → optimize}/Queue.js +0 -0
  775. /package/lib/{util → stats}/smartGrouping.js +0 -0
@@ -4,12 +4,12 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
9
- const Template = require("../Template");
7
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
8
+ const RuntimeModule = require("../runtime/RuntimeModule");
9
+ const Template = require("../template/Template");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
- /** @import { ChunkChildIdsByOrdersMap } from "../Chunk" */
12
+ /** @import { ChunkChildIdsByOrdersMap } from "../graph/Chunk" */
13
13
 
14
14
  class ChunkPrefetchTriggerRuntimeModule extends RuntimeModule {
15
15
  /**
@@ -4,12 +4,12 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
9
- const Template = require("../Template");
7
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
8
+ const RuntimeModule = require("../runtime/RuntimeModule");
9
+ const Template = require("../template/Template");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
- /** @import { ChunkChildIdsByOrdersMap } from "../Chunk" */
12
+ /** @import { ChunkChildIdsByOrdersMap } from "../graph/Chunk" */
13
13
 
14
14
  class ChunkPreloadTriggerRuntimeModule extends RuntimeModule {
15
15
  /**
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const ModuleDependency = require("./ModuleDependency");
8
+ const ModuleDependency = require("../dependencies/core/ModuleDependency");
9
9
 
10
10
  class PrefetchDependency extends ModuleDependency {
11
11
  /**
@@ -5,9 +5,9 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const PrefetchDependency = require("./dependencies/PrefetchDependency");
8
+ const PrefetchDependency = require("./PrefetchDependency");
9
9
 
10
- /** @import Compiler from "./Compiler" */
10
+ /** @import Compiler from "../Compiler" */
11
11
 
12
12
  const PLUGIN_NAME = "PrefetchPlugin";
13
13
 
@@ -5,18 +5,13 @@
5
5
  "use strict";
6
6
 
7
7
  const { RawSource } = require("webpack-sources");
8
- const ModuleFilenameHelpers = require("../ModuleFilenameHelpers");
8
+ const isDependencyKind = require("../graph/isDependencyKind");
9
9
  const {
10
10
  ASSET_URL_TYPE,
11
11
  JAVASCRIPT_TYPE
12
- } = require("../ModuleSourceTypeConstants");
13
- const RuntimeGlobals = require("../RuntimeGlobals");
14
- const CssUrlDependency = require("../dependencies/CssUrlDependency");
15
- const HtmlSourceDependency = require("../dependencies/HtmlSourceDependency");
16
- const URLDependency = require("../dependencies/URLDependency");
17
- const WorkerDependency = require("../dependencies/WorkerDependency");
12
+ } = require("../module/ModuleSourceTypeConstants");
13
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
18
14
  const lazyModule = require("../util/lazyModule");
19
- const memoize = require("../util/memoize");
20
15
  const {
21
16
  PUBLIC_PATH_AUTO,
22
17
  PUBLIC_PATH_FULL_HASH
@@ -24,12 +19,15 @@ const {
24
19
  const { guessAsAttribute } = require("./parseResourceHintOptions");
25
20
  const parseResourceHintOptions = require("./parseResourceHintOptions");
26
21
 
27
- /** @import Chunk from "../Chunk" */
28
- /** @import ChunkGraph from "../ChunkGraph" */
29
- /** @import CodeGenerationResults from "../CodeGenerationResults" */
22
+ /** @import Chunk from "../graph/Chunk" */
23
+ /** @import CssUrlDependency from "../dependencies/css/CssUrlDependency" */
24
+ /** @import HtmlSourceDependency from "../dependencies/html/HtmlSourceDependency" */
25
+ /** @import URLDependency from "../dependencies/url/URLDependency" */
26
+ /** @import ChunkGraph from "../graph/ChunkGraph" */
27
+ /** @import CodeGenerationResults from "../module/CodeGenerationResults" */
30
28
  /** @import Compilation from "../Compilation" */
31
29
  /** @import Compiler from "../Compiler" */
32
- /** @import Module, { RuntimeRequirements } from "../Module" */
30
+ /** @import Module, { RuntimeRequirements } from "../module/Module" */
33
31
 
34
32
  /**
35
33
  * The attributes a `<link>` carries besides its href and `as`.
@@ -55,11 +53,14 @@ const parseResourceHintOptions = require("./parseResourceHintOptions");
55
53
  * @import {
56
54
  * ResourceHintsInitial as ResourceHintsConfig,
57
55
  * ResourceHintsOptions,
56
+ * RuleSetCondition,
57
+ * RuleSetLogicalConditions,
58
58
  * UrlHintRule
59
59
  * } from "../../declarations/WebpackOptions"
60
60
  */
61
- /** @import { HtmlResourceHint } from "../dependencies/HtmlEntryDependency" */
61
+ /** @import { HtmlResourceHint } from "../dependencies/html/HtmlEntryDependency" */
62
62
  /** @import { ResourceHintOptions } from "./parseResourceHintOptions" */
63
+ /** @import { MagicCommentOptions } from "../util/magicComment" */
63
64
 
64
65
  /**
65
66
  * @typedef {object} ResolvedResourceHints
@@ -136,9 +137,6 @@ const getStartupAssetHintRuntimeModule = lazyModule(() =>
136
137
  );
137
138
  // only reached once a build has an html module, so a js-only build never
138
139
  // pays for the html generator this drags in
139
- const getHtmlEntryDependency = memoize(() =>
140
- require("../dependencies/HtmlEntryDependency")
141
- );
142
140
 
143
141
  const PLUGIN_NAME = "ResourceHintPlugin";
144
142
 
@@ -156,18 +154,18 @@ const JS_CHUNK_FILE_REGEXP = /\.m?jsx?$/i;
156
154
  /**
157
155
  * True for the URL-referenced-asset deps that can carry resource-hint flags.
158
156
  * Type guard so callers keep the narrowed union without re-listing the classes.
159
- * @param {import("../Dependency")} dep dependency
157
+ * @param {import("../graph/Dependency")} dep dependency
160
158
  * @returns {dep is URLDependency | CssUrlDependency | HtmlSourceDependency} whether it is a URL asset dep
161
159
  */
162
160
  const isUrlAssetDep = (dep) =>
163
- dep instanceof URLDependency ||
164
- dep instanceof CssUrlDependency ||
165
- dep instanceof HtmlSourceDependency;
161
+ isDependencyKind(dep, "url") ||
162
+ isDependencyKind(dep, "css-url") ||
163
+ isDependencyKind(dep, "html-source");
166
164
 
167
165
  /**
168
166
  * Entry chunk name for a hint's `hostChunks` (Vite's `hostId`); the id is a
169
167
  * stable fallback for unnamed chunks.
170
- * @param {import("../Chunk")} chunk chunk
168
+ * @param {import("../graph/Chunk")} chunk chunk
171
169
  * @returns {string} name or stringified id
172
170
  */
173
171
  const chunkHostName = (chunk) => chunk.name || String(chunk.id);
@@ -178,8 +176,8 @@ const chunkHostName = (chunk) => chunk.name || String(chunk.id);
178
176
  * single call. One shared walk for the entrypoint-hint and HTML-hint passes,
179
177
  * which would otherwise each re-implement the same 4-level nesting.
180
178
  * @param {Compilation} compilation compilation
181
- * @param {Iterable<import("../Chunk")>} chunks chunks to scan
182
- * @returns {IterableIterator<{ dep: URLDependency | CssUrlDependency | HtmlSourceDependency, target: Module, chunk: import("../Chunk") }>} hinted assets
179
+ * @param {Iterable<import("../graph/Chunk")>} chunks chunks to scan
180
+ * @returns {IterableIterator<{ dep: URLDependency | CssUrlDependency | HtmlSourceDependency, target: Module, chunk: import("../graph/Chunk") }>} hinted assets
183
181
  */
184
182
  function* iterateHintedUrlAssets(compilation, chunks) {
185
183
  const { chunkGraph, moduleGraph } = compilation;
@@ -201,6 +199,38 @@ function* iterateHintedUrlAssets(compilation, chunks) {
201
199
  }
202
200
  }
203
201
 
202
+ /** @type {WeakMap<UrlHintRule, (request: string) => boolean>} */
203
+ const urlHintMatchers = new WeakMap();
204
+
205
+ /**
206
+ * A rule's `test`, `include` and `exclude` as one predicate, read as `module.rules`
207
+ * reads a condition, so `and`/`or`/`not`/`glob` work too. Compiled once per rule.
208
+ * @param {UrlHintRule} rule rule setting at least one of the three
209
+ * @returns {(request: string) => boolean} whether the rule applies to a request
210
+ */
211
+ const getUrlHintMatcher = (rule) => {
212
+ let matcher = urlHintMatchers.get(rule);
213
+ if (matcher === undefined) {
214
+ /** @type {RuleSetCondition[]} */
215
+ const all = [];
216
+ if (rule.test !== undefined) all.push(rule.test);
217
+ if (rule.include !== undefined) all.push(rule.include);
218
+ /** @type {RuleSetLogicalConditions} */
219
+ const condition = {};
220
+ if (all.length > 0) condition.and = all;
221
+ if (rule.exclude !== undefined) condition.not = rule.exclude;
222
+
223
+ const RuleSetCompiler = require("../rules/RuleSetCompiler");
224
+
225
+ matcher = new RuleSetCompiler([]).compileCondition(
226
+ "urlHints",
227
+ condition
228
+ ).fn;
229
+ urlHintMatchers.set(rule, matcher);
230
+ }
231
+ return matcher;
232
+ };
233
+
204
234
  /**
205
235
  * Merge the matching `UrlHintRule`s for a request. Rules match by
206
236
  * `test`/`include`/`exclude` (omit all three → matches everything); later
@@ -219,14 +249,7 @@ const matchUrlHints = (rules, request) => {
219
249
  (rule.test !== undefined ||
220
250
  rule.include !== undefined ||
221
251
  rule.exclude !== undefined) &&
222
- !ModuleFilenameHelpers.matchObject(
223
- /** @type {EXPECTED_ANY} */ ({
224
- test: rule.test,
225
- include: rule.include,
226
- exclude: rule.exclude
227
- }),
228
- request
229
- )
252
+ !getUrlHintMatcher(rule)(request)
230
253
  ) {
231
254
  continue;
232
255
  }
@@ -246,7 +269,7 @@ const matchUrlHints = (rules, request) => {
246
269
  * When `output.resourceHints` is a function, invoke it and return its
247
270
  * descriptors; otherwise pass through. Callback signature — see `ResourceHints`
248
271
  * schema entry.
249
- * @param {import("../Entrypoint")} entrypoint entrypoint
272
+ * @param {import("../graph/Entrypoint")} entrypoint entrypoint
250
273
  * @param {ResourceHintsConfig | undefined} hints top-level config
251
274
  * @param {string} entryName entry name
252
275
  * @param {"html" | "js"} hostType page type
@@ -360,7 +383,7 @@ const collectEntrypointHints = (compilation, entryName, hints) => {
360
383
  // URL-referenced deps carrying prefetch/preload. Walk entrypoint's initial
361
384
  // chunks × modules × deps (async chunks are handled by the on-demand
362
385
  // runtime via `dynamicImportPrefetch/Preload` parser options).
363
- /** @type {Set<import("../Chunk")>} */
386
+ /** @type {Set<import("../graph/Chunk")>} */
364
387
  const chunkSet = new Set(entrypoint.chunks);
365
388
  const runtimeChunk = entrypoint.getRuntimeChunk();
366
389
  if (runtimeChunk) chunkSet.add(runtimeChunk);
@@ -396,10 +419,9 @@ const collectEntrypointHints = (compilation, entryName, hints) => {
396
419
  }
397
420
  const presDeps = module.presentationalDependencies;
398
421
  if (!presDeps) continue;
399
- const HtmlEntryDependency = getHtmlEntryDependency();
400
422
  for (const dep of presDeps) {
401
423
  if (
402
- dep instanceof HtmlEntryDependency &&
424
+ isDependencyKind(dep, "html-entry") &&
403
425
  dep.entryName === entryName &&
404
426
  (dep.elementKind === "script" || dep.elementKind === "script-module")
405
427
  ) {
@@ -471,13 +493,13 @@ const collectStartupAssetHintLines = (
471
493
  for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
472
494
  for (const block of module.blocks) {
473
495
  for (const dep of block.dependencies) {
474
- if (!(dep instanceof WorkerDependency)) continue;
496
+ if (!isDependencyKind(dep, "worker")) continue;
475
497
  const hint = dep.options.resourceHint;
476
498
  if (!hint || (!hint.preload && !hint.prefetch)) continue;
477
499
  const group = chunkGraph.getBlockChunkGroup(block);
478
500
  if (!group) continue;
479
501
  const workerChunk =
480
- /** @type {import("../Entrypoint")} */
502
+ /** @type {import("../graph/Entrypoint")} */
481
503
  (group).getEntrypointChunk();
482
504
  if (workerChunk.id === null || seenWorkerChunks.has(workerChunk.id)) {
483
505
  continue;
@@ -512,7 +534,7 @@ const collectStartupAssetHintLines = (
512
534
  const perAsset = new Map();
513
535
  for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
514
536
  const deps =
515
- /** @type {{ dependencies?: import("../Dependency")[] }} */
537
+ /** @type {{ dependencies?: import("../graph/Dependency")[] }} */
516
538
  (module).dependencies;
517
539
  if (!deps) continue;
518
540
  for (const dep of deps) {
@@ -714,9 +736,9 @@ class ResourceHintPlugin {
714
736
  * @param {ResourceHintDep} dep dep to mutate in place
715
737
  * @param {UrlHintRule[] | undefined} rules parser-scoped `urlHints` rules
716
738
  * @param {string} request the asset request (for rule matching)
717
- * @param {Record<string, EXPECTED_ANY> | null | undefined} commentOptions parsed magic-comment options (`null` / `undefined` skips override phase)
718
- * @param {import("../NormalModule")} module module for emitting warnings on invalid comments
719
- * @param {import("../Dependency").DependencyLocation} loc loc for warnings
739
+ * @param {MagicCommentOptions | null | undefined} commentOptions parsed magic-comment options (`null` / `undefined` skips override phase)
740
+ * @param {import("../module/NormalModule")} module module for emitting warnings on invalid comments
741
+ * @param {import("../graph/Dependency").DependencyLocation} loc loc for warnings
720
742
  * @returns {void}
721
743
  */
722
744
  static applyResourceHints(dep, rules, request, commentOptions, module, loc) {
@@ -760,10 +782,9 @@ class ResourceHintPlugin {
760
782
  // they don't affect module resolution, only rendering.
761
783
  const presDeps = module.presentationalDependencies;
762
784
  if (!presDeps) continue;
763
- const HtmlEntryDependency = getHtmlEntryDependency();
764
785
  for (const dep of presDeps) {
765
786
  if (
766
- !(dep instanceof HtmlEntryDependency) ||
787
+ !isDependencyKind(dep, "html-entry") ||
767
788
  (dep.elementKind !== "script" &&
768
789
  dep.elementKind !== "script-module")
769
790
  ) {
@@ -774,7 +795,7 @@ class ResourceHintPlugin {
774
795
  // Mirrors `getEntrypointChunksInLoadOrder`: the entry, runtime and
775
796
  // every initial sibling. An async `import()` chunk stays on the
776
797
  // on-demand runtime and is never HTML-hinted.
777
- /** @type {Set<import("../Chunk")>} */
798
+ /** @type {Set<import("../graph/Chunk")>} */
778
799
  const chunks = new Set(entrypoint.chunks);
779
800
  const entry = entrypoint.getEntrypointChunk();
780
801
  if (entry) chunks.add(entry);
@@ -6,9 +6,9 @@
6
6
 
7
7
  const { SyncWaterfallHook } = require("tapable");
8
8
  const Compilation = require("../Compilation");
9
- const RuntimeGlobals = require("../RuntimeGlobals");
10
- const RuntimeModule = require("../RuntimeModule");
11
- const Template = require("../Template");
9
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
10
+ const RuntimeModule = require("../runtime/RuntimeModule");
11
+ const Template = require("../template/Template");
12
12
  const { guessAsAttribute } = require("./parseResourceHintOptions");
13
13
 
14
14
  /**
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
9
- const Template = require("../Template");
7
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
8
+ const RuntimeModule = require("../runtime/RuntimeModule");
9
+ const Template = require("../template/Template");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
12
 
@@ -10,8 +10,9 @@ const getUnsupportedFeatureWarning = memoize(() =>
10
10
  require("../errors/UnsupportedFeatureWarning")
11
11
  );
12
12
 
13
- /** @import { DependencyLocation } from "../Dependency" */
14
- /** @import NormalModule from "../NormalModule" */
13
+ /** @import { DependencyLocation } from "../graph/Dependency" */
14
+ /** @import NormalModule from "../module/NormalModule" */
15
+ /** @import { MagicCommentOptions } from "../util/magicComment" */
15
16
 
16
17
  /**
17
18
  * @typedef {object} ResourceHintOptions
@@ -27,7 +28,7 @@ const getUnsupportedFeatureWarning = memoize(() =>
27
28
  * Reads `webpackPrefetch` / `webpackPreload` / `webpackFetchPriority` /
28
29
  * `webpackAs` / `webpackType` / `webpackMedia` from a parsed magic-comment
29
30
  * options object. Invalid values emit warnings to the given module.
30
- * @param {Record<string, EXPECTED_ANY> | null | undefined} importOptions parsed comment options
31
+ * @param {MagicCommentOptions | null | undefined} importOptions parsed comment options
31
32
  * @param {NormalModule} module the module to attach warnings to
32
33
  * @param {DependencyLocation} loc location for warnings
33
34
  * @returns {ResourceHintOptions} parsed hints (empty when no comments matched)
@@ -5,18 +5,18 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const ConstDependency = require("../dependencies/core/ConstDependency");
9
+ const { approve } = require("../javascript/JavascriptParserHelpers");
8
10
  const {
9
11
  JAVASCRIPT_MODULE_TYPE_AUTO,
10
12
  JAVASCRIPT_MODULE_TYPE_DYNAMIC,
11
13
  JAVASCRIPT_MODULE_TYPE_ESM
12
- } = require("./ModuleTypeConstants");
13
- const ConstDependency = require("./dependencies/ConstDependency");
14
- const ProvidedDependency = require("./dependencies/ProvidedDependency");
15
- const { approve } = require("./javascript/JavascriptParserHelpers");
14
+ } = require("../module/ModuleTypeConstants");
15
+ const ProvidedDependency = require("./ProvidedDependency");
16
16
 
17
- /** @import { JavascriptParserOptions } from "../declarations/WebpackOptions" */
18
- /** @import Compiler from "./Compiler" */
19
- /** @import JavascriptParser, { Range } from "./javascript/JavascriptParser" */
17
+ /** @import { JavascriptParserOptions } from "../../declarations/WebpackOptions" */
18
+ /** @import Compiler from "../Compiler" */
19
+ /** @import JavascriptParser, { Range } from "../javascript/JavascriptParser" */
20
20
 
21
21
  const PLUGIN_NAME = "ProvidePlugin";
22
22
 
@@ -5,13 +5,13 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Dependency = require("../Dependency");
9
- const InitFragment = require("../InitFragment");
10
- const Template = require("../Template");
11
- const { InlinedUsedName } = require("../optimize/InlineExports");
8
+ const ModuleDependency = require("../dependencies/core/ModuleDependency");
9
+ const Dependency = require("../graph/Dependency");
10
+ const { isInlinedUsedName } = require("../optimize/InlineExports");
11
+ const InitFragment = require("../template/InitFragment");
12
+ const Template = require("../template/Template");
12
13
  const makeSerializable = require("../util/makeSerializable");
13
14
  const { propertyAccess } = require("../util/property");
14
- const ModuleDependency = require("./ModuleDependency");
15
15
 
16
16
  /** @import { ReplaceSource } from "webpack-sources" */
17
17
  /**
@@ -19,11 +19,11 @@ const ModuleDependency = require("./ModuleDependency");
19
19
  * ReferencedExports,
20
20
  * UpdateHashContext,
21
21
  * ExportInfoName
22
- * } from "../Dependency"
22
+ * } from "../graph/Dependency"
23
23
  */
24
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
25
- /** @import ModuleGraph from "../ModuleGraph" */
26
- /** @import ModuleGraphConnection from "../ModuleGraphConnection" */
24
+ /** @import { DependencyTemplateContext } from "../template/DependencyTemplate" */
25
+ /** @import ModuleGraph from "../graph/ModuleGraph" */
26
+ /** @import ModuleGraphConnection from "../graph/ModuleGraphConnection" */
27
27
  /** @import { Range } from "../javascript/JavascriptParser" */
28
28
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, ExportInfoName[]]>} ObjectDeserializerContext */
29
29
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, ExportInfoName[]]>} ObjectSerializerContext */
@@ -103,10 +103,11 @@ class ProvidedDependency extends ModuleDependency {
103
103
  }
104
104
  }
105
105
 
106
- makeSerializable(
107
- ProvidedDependency,
106
+ makeSerializable(ProvidedDependency, [
107
+ "webpack/lib/provide/ProvidedDependency",
108
+ // TODO in the next major release: remove, they restore pre-move cache packs
108
109
  "webpack/lib/dependencies/ProvidedDependency"
109
- );
110
+ ]);
110
111
 
111
112
  class ProvidedDependencyTemplate extends ModuleDependency.Template {
112
113
  /**
@@ -144,7 +145,7 @@ class ProvidedDependencyTemplate extends ModuleDependency.Template {
144
145
 
145
146
  const provided = !usedName
146
147
  ? moduleRaw
147
- : usedName instanceof InlinedUsedName
148
+ : isInlinedUsedName(usedName)
148
149
  ? `(${moduleRaw}, ${usedName.render(
149
150
  Template.toNormalComment(
150
151
  `inlined export ${propertyAccess(dep.ids)}`
@@ -5,19 +5,36 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RawModule = require("./RawModule");
9
- const EntryDependency = require("./dependencies/EntryDependency");
8
+ const isDependencyKind = require("../graph/isDependencyKind");
9
+ const RawModule = require("../module/RawModule");
10
+
11
+ /** @import Compiler from "../Compiler" */
12
+ /** @import { ResolveData } from "../module/NormalModuleFactory" */
13
+ /** @import { BeforeContextResolveData } from "../context/ContextModuleFactory" */
10
14
 
11
15
  /**
12
- * @import {
13
- * IgnorePluginOptions
14
- * } from "../declarations/plugins/IgnorePlugin"
16
+ * @inline
17
+ * @tsType import('./IgnorePlugin').CheckResourceFn
18
+ * @typedef {(resource: string, context: string) => boolean} CheckResourceFn
15
19
  */
16
- /** @import Compiler from "./Compiler" */
17
- /** @import { ResolveData } from "./NormalModuleFactory" */
18
- /** @import { BeforeContextResolveData } from "./context/ContextModuleFactory" */
19
20
 
20
- /** @typedef {(resource: string, context: string) => boolean} CheckResourceFn */
21
+ /**
22
+ * @inline
23
+ * @typedef {object} IgnorePluginPatternOptions
24
+ * @property {RegExp=} contextRegExp A RegExp to test the context (directory) against.
25
+ * @property {RegExp} resourceRegExp A RegExp to test the request against.
26
+ */
27
+
28
+ /**
29
+ * @inline
30
+ * @typedef {object} IgnorePluginCheckOptions
31
+ * @property {CheckResourceFn} checkResource A filter function for resource and context.
32
+ */
33
+
34
+ /**
35
+ * @schema plugins/IgnorePlugin
36
+ * @typedef {IgnorePluginPatternOptions | IgnorePluginCheckOptions} IgnorePluginOptions
37
+ */
21
38
 
22
39
  const PLUGIN_NAME = "IgnorePlugin";
23
40
 
@@ -71,14 +88,14 @@ class IgnorePlugin {
71
88
  apply(compiler) {
72
89
  compiler.hooks.validate.tap(PLUGIN_NAME, () => {
73
90
  compiler.validate(
74
- /** @type {EXPECTED_ANY} */
75
- (require("../schemas/plugins/IgnorePlugin.json")),
91
+ require("../../schemas/plugins/IgnorePlugin.json"),
76
92
  this.options,
77
93
  {
78
94
  name: "Ignore Plugin",
79
95
  baseDataPath: "options"
80
96
  },
81
- (options) => require("../schemas/plugins/IgnorePlugin.check")(options)
97
+ (options) =>
98
+ require("../../schemas/plugins/IgnorePlugin.check")(options)
82
99
  );
83
100
  });
84
101
 
@@ -89,7 +106,7 @@ class IgnorePlugin {
89
106
  if (
90
107
  result === false &&
91
108
  resolveData.dependencies.length > 0 &&
92
- resolveData.dependencies[0] instanceof EntryDependency
109
+ isDependencyKind(resolveData.dependencies[0], "entry")
93
110
  ) {
94
111
  const module = new RawModule(
95
112
  "",
@@ -5,11 +5,11 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { dirname, isAbsolute, join } = require("./util/fs");
8
+ const { dirname, isAbsolute, join } = require("../fs/fs");
9
9
 
10
- /** @import Compiler from "./Compiler" */
11
- /** @import { ResolveData } from "./NormalModuleFactory" */
12
- /** @import { InputFileSystem } from "./util/fs" */
10
+ /** @import Compiler from "../Compiler" */
11
+ /** @import { ResolveData } from "../module/NormalModuleFactory" */
12
+ /** @import { InputFileSystem } from "../fs/fs" */
13
13
 
14
14
  /** @typedef {(resolveData: ResolveData) => void} ModuleReplacer */
15
15
 
@@ -11,12 +11,16 @@ const {
11
11
  cachedCleverMerge,
12
12
  removeOperations,
13
13
  resolveByProperty
14
- } = require("./util/cleverMerge");
14
+ } = require("../util/cleverMerge");
15
+ const memoize = require("../util/memoize");
16
+ const getResolveOptionsKey = require("./getResolveOptionsKey");
17
+
18
+ const getGlobUtils = memoize(() => require("../util/globUtils"));
15
19
 
16
20
  /** @typedef {import("enhanced-resolve").Resolver} Resolver */
17
- /** @typedef {import("../declarations/WebpackOptions").ResolvePluginInstance} ResolvePluginInstance */
21
+ /** @typedef {import("../../declarations/WebpackOptions").ResolvePluginInstance} ResolvePluginInstance */
18
22
  /** @import { ResolveOptions } from "enhanced-resolve" */
19
- /** @import { ResolveOptions as WebpackResolveOptions } from "../declarations/WebpackOptions" */
23
+ /** @import { ResolveOptions as WebpackResolveOptions } from "../../declarations/WebpackOptions" */
20
24
 
21
25
  /** @typedef {WebpackResolveOptions & { dependencyType?: string, resolveToContext?: boolean }} ResolveOptionsWithDependencyType */
22
26
  /**
@@ -61,13 +65,22 @@ const convertToResolveOptions = (resolveOptionsWithDepType) => {
61
65
  partialOptions
62
66
  );
63
67
 
64
- return /** @type {ResolveOptions} */ (
68
+ const resolveOptions = /** @type {ResolveOptions} */ (
65
69
  removeOperations(
66
70
  resolveByProperty(options, "byDependency", dependencyType),
67
71
  // Keep the `unsafeCache` because it can be a `Proxy`
68
72
  ["unsafeCache"]
69
73
  )
70
74
  );
75
+ if (resolveOptions.restrictions) {
76
+ // enhanced-resolve reads a string as a directory, so a glob goes as a RegExp
77
+ const { compileRelativeGlobPaths, createPathGlobRegExp } = getGlobUtils();
78
+ resolveOptions.restrictions = compileRelativeGlobPaths(
79
+ resolveOptions.restrictions,
80
+ createPathGlobRegExp
81
+ );
82
+ }
83
+ return resolveOptions;
71
84
  };
72
85
 
73
86
  /**
@@ -112,7 +125,7 @@ module.exports = class ResolverFactory {
112
125
  if (cachedResolver) {
113
126
  return cachedResolver;
114
127
  }
115
- const ident = JSON.stringify(resolveOptions);
128
+ const ident = getResolveOptionsKey(resolveOptions).key;
116
129
  const resolver = typedCaches.stringified.get(ident);
117
130
  if (resolver) {
118
131
  typedCaches.direct.set(resolveOptions, resolver);
@@ -0,0 +1,59 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Alexander Akait @alexander-akait
4
+ */
5
+
6
+ "use strict";
7
+
8
+ /** @import { ResolveOptionsWithDependencyType } from "./ResolverFactory" */
9
+
10
+ /** @type {WeakMap<EXPECTED_OBJECT | EXPECTED_FUNCTION, number>} */
11
+ const identities = new WeakMap();
12
+ let nextIdentity = 0;
13
+
14
+ /**
15
+ * Serializes resolve options into a cache key. Plain JSON values and regular expressions are keyed by content; functions, class instances and `unsafeCache` objects by identity, which holds only within this process.
16
+ * @param {ResolveOptionsWithDependencyType} options resolve options
17
+ * @returns {{ key: string, persistent: boolean }} the key, and whether it means the same in another process
18
+ */
19
+ const getResolveOptionsKey = (options) => {
20
+ let persistent = true;
21
+ const key = JSON.stringify(
22
+ options,
23
+ /**
24
+ * @this {Record<string, unknown>}
25
+ * @param {string} name property name
26
+ * @param {unknown} value value, after any `toJSON()`
27
+ * @returns {unknown} value to serialize
28
+ */
29
+ function replacer(name, value) {
30
+ // `toJSON()` already ran, so a plugin could pass for plain data
31
+ value = this[name];
32
+ if (
33
+ value === null ||
34
+ (typeof value !== "object" && typeof value !== "function") ||
35
+ Array.isArray(value)
36
+ ) {
37
+ return value;
38
+ }
39
+ if (value instanceof RegExp) return { regexp: value.toString() };
40
+ const prototype = Object.getPrototypeOf(value);
41
+ if (
42
+ name !== "unsafeCache" &&
43
+ (prototype === Object.prototype || prototype === null)
44
+ ) {
45
+ return value;
46
+ }
47
+ let identity = identities.get(value);
48
+ if (identity === undefined) {
49
+ identity = nextIdentity++;
50
+ identities.set(value, identity);
51
+ }
52
+ persistent = false;
53
+ return { identity };
54
+ }
55
+ );
56
+ return { key, persistent };
57
+ };
58
+
59
+ module.exports = getResolveOptionsKey;