@depup/webpack 5.106.0-depup.0 → 5.109.0-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (667) hide show
  1. package/README.md +9 -11
  2. package/changes.json +16 -24
  3. package/hot/dev-server.js +2 -0
  4. package/lib/APIPlugin.js +60 -35
  5. package/lib/AsyncDependenciesBlock.js +3 -0
  6. package/lib/AutomaticPrefetchPlugin.js +6 -1
  7. package/lib/BannerPlugin.js +13 -5
  8. package/lib/Cache.js +27 -5
  9. package/lib/CacheFacade.js +41 -0
  10. package/lib/Chunk.js +71 -25
  11. package/lib/ChunkGraph.js +141 -9
  12. package/lib/ChunkGroup.js +115 -28
  13. package/lib/ChunkTemplate.js +9 -0
  14. package/lib/CircularModulesPlugin.js +190 -0
  15. package/lib/CleanPlugin.js +23 -26
  16. package/lib/CodeGenerationResults.js +19 -0
  17. package/lib/CompatibilityPlugin.js +54 -37
  18. package/lib/Compilation.js +635 -107
  19. package/lib/Compiler.js +93 -31
  20. package/lib/ConcatenationScope.js +34 -4
  21. package/lib/ConditionalInitFragment.js +6 -0
  22. package/lib/ConstPlugin.js +15 -12
  23. package/lib/ContextExclusionPlugin.js +3 -1
  24. package/lib/ContextModule.js +345 -55
  25. package/lib/ContextModuleFactory.js +193 -51
  26. package/lib/ContextReplacementPlugin.js +8 -1
  27. package/lib/DefinePlugin.js +498 -127
  28. package/lib/DependenciesBlock.js +6 -1
  29. package/lib/Dependency.js +159 -11
  30. package/lib/DependencyTemplate.js +7 -1
  31. package/lib/DependencyTemplates.js +4 -0
  32. package/lib/DotenvPlugin.js +3 -0
  33. package/lib/DynamicEntryPlugin.js +3 -1
  34. package/lib/EntryOptionPlugin.js +42 -2
  35. package/lib/EntryPlugin.js +4 -1
  36. package/lib/Entrypoint.js +5 -1
  37. package/lib/EnvironmentPlugin.js +3 -2
  38. package/lib/ErrorHelpers.js +7 -0
  39. package/lib/EvalDevToolModulePlugin.js +3 -1
  40. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  41. package/lib/ExportsInfo.js +399 -108
  42. package/lib/ExportsInfoApiPlugin.js +4 -3
  43. package/lib/ExternalModule.js +376 -78
  44. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  45. package/lib/ExternalsPlugin.js +3 -1
  46. package/lib/FileSystemInfo.js +575 -149
  47. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  48. package/lib/FlagDependencyExportsPlugin.js +82 -9
  49. package/lib/FlagDependencyUsagePlugin.js +92 -6
  50. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  51. package/lib/Generator.js +24 -3
  52. package/lib/HotModuleReplacementPlugin.js +110 -44
  53. package/lib/IgnorePlugin.js +5 -2
  54. package/lib/IgnoreWarningsPlugin.js +2 -1
  55. package/lib/InitFragment.js +15 -0
  56. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  57. package/lib/LazyBarrel.js +389 -0
  58. package/lib/LibraryTemplatePlugin.js +2 -1
  59. package/lib/LoaderOptionsPlugin.js +3 -1
  60. package/lib/LoaderTargetPlugin.js +3 -1
  61. package/lib/MainTemplate.js +15 -0
  62. package/lib/ManifestPlugin.js +9 -2
  63. package/lib/Module.js +121 -60
  64. package/lib/ModuleFactory.js +6 -1
  65. package/lib/ModuleFilenameHelpers.js +5 -2
  66. package/lib/ModuleGraph.js +69 -2
  67. package/lib/ModuleGraphConnection.js +9 -0
  68. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  69. package/lib/ModuleNotFoundError.js +3 -83
  70. package/lib/ModuleProfile.js +27 -1
  71. package/lib/ModuleSourceTypeConstants.js +52 -19
  72. package/lib/ModuleTemplate.js +10 -0
  73. package/lib/ModuleTypeConstants.js +20 -4
  74. package/lib/MultiCompiler.js +59 -4
  75. package/lib/MultiStats.js +9 -0
  76. package/lib/MultiWatching.js +6 -0
  77. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  78. package/lib/NodeStuffPlugin.js +78 -46
  79. package/lib/NormalModule.js +485 -181
  80. package/lib/NormalModuleFactory.js +148 -29
  81. package/lib/NormalModuleReplacementPlugin.js +3 -1
  82. package/lib/NullFactory.js +1 -0
  83. package/lib/OptionsApply.js +1 -0
  84. package/lib/Parser.js +3 -1
  85. package/lib/PlatformPlugin.js +2 -1
  86. package/lib/PrefetchPlugin.js +4 -1
  87. package/lib/ProgressPlugin.js +351 -161
  88. package/lib/ProvidePlugin.js +6 -3
  89. package/lib/RawModule.js +32 -16
  90. package/lib/RecordIdsPlugin.js +9 -0
  91. package/lib/RequestShortener.js +8 -0
  92. package/lib/ResolverFactory.js +5 -0
  93. package/lib/RuntimeGlobals.js +58 -5
  94. package/lib/RuntimeModule.js +22 -7
  95. package/lib/RuntimePlugin.js +104 -26
  96. package/lib/RuntimeTemplate.js +616 -37
  97. package/lib/SelfModuleFactory.js +3 -0
  98. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  99. package/lib/SourceMapDevToolPlugin.js +341 -63
  100. package/lib/Stats.js +6 -0
  101. package/lib/Template.js +29 -3
  102. package/lib/TemplatedPathPlugin.js +505 -138
  103. package/lib/UseStrictPlugin.js +3 -2
  104. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  105. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  106. package/lib/WarnNoModeSetPlugin.js +18 -2
  107. package/lib/WatchIgnorePlugin.js +5 -1
  108. package/lib/Watching.js +25 -3
  109. package/lib/WebpackError.js +3 -74
  110. package/lib/WebpackIsIncludedPlugin.js +4 -2
  111. package/lib/WebpackOptionsApply.js +88 -25
  112. package/lib/WebpackOptionsDefaulter.js +1 -0
  113. package/lib/asset/AssetBytesGenerator.js +28 -10
  114. package/lib/asset/AssetBytesParser.js +1 -0
  115. package/lib/asset/AssetGenerator.js +199 -60
  116. package/lib/asset/AssetModule.js +47 -0
  117. package/lib/asset/AssetModulesPlugin.js +115 -24
  118. package/lib/asset/AssetParser.js +4 -2
  119. package/lib/asset/AssetSourceGenerator.js +26 -8
  120. package/lib/asset/AssetSourceParser.js +1 -0
  121. package/lib/asset/RawDataUrlModule.js +23 -13
  122. package/lib/asset/WebManifestGenerator.js +164 -0
  123. package/lib/asset/WebManifestParser.js +130 -0
  124. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  125. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  126. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  127. package/lib/async-modules/isGeneratorLowered.js +26 -0
  128. package/lib/buildChunkGraph.js +107 -15
  129. package/lib/bun/BunTargetPlugin.js +42 -0
  130. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  131. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  132. package/lib/cache/IdleFileCachePlugin.js +6 -1
  133. package/lib/cache/MemoryCachePlugin.js +1 -1
  134. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  135. package/lib/cache/PackFileCacheStrategy.js +43 -7
  136. package/lib/cache/ResolverCachePlugin.js +12 -1
  137. package/lib/cache/getLazyHashedEtag.js +13 -2
  138. package/lib/cache/mergeEtags.js +4 -0
  139. package/lib/cli.js +142 -20
  140. package/lib/config/browserslistTargetHandler.js +141 -0
  141. package/lib/config/defaults.js +591 -41
  142. package/lib/config/defineConfig.js +31 -0
  143. package/lib/config/normalization.js +46 -1
  144. package/lib/config/target.js +200 -2
  145. package/lib/container/ContainerEntryDependency.js +2 -0
  146. package/lib/container/ContainerEntryModule.js +27 -14
  147. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  148. package/lib/container/ContainerExposedDependency.js +6 -2
  149. package/lib/container/ContainerPlugin.js +2 -1
  150. package/lib/container/ContainerReferencePlugin.js +3 -2
  151. package/lib/container/FallbackDependency.js +9 -7
  152. package/lib/container/FallbackItemDependency.js +1 -0
  153. package/lib/container/FallbackModule.js +22 -9
  154. package/lib/container/FallbackModuleFactory.js +1 -0
  155. package/lib/container/ModuleFederationPlugin.js +12 -26
  156. package/lib/container/RemoteModule.js +33 -10
  157. package/lib/container/RemoteRuntimeModule.js +15 -12
  158. package/lib/container/RemoteToExternalDependency.js +1 -0
  159. package/lib/container/options.js +7 -0
  160. package/lib/css/CssGenerator.js +534 -272
  161. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  162. package/lib/css/CssLoadingRuntimeModule.js +156 -77
  163. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  164. package/lib/css/CssModulesPlugin.js +356 -204
  165. package/lib/css/CssParser.js +3452 -1950
  166. package/lib/css/syntax.js +4058 -0
  167. package/lib/debug/ProfilingPlugin.js +33 -2
  168. package/lib/deno/DenoTargetPlugin.js +41 -0
  169. package/lib/dependencies/AMDDefineDependency.js +29 -17
  170. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  171. package/lib/dependencies/AMDPlugin.js +6 -3
  172. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  173. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  174. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  175. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  176. package/lib/dependencies/AMDRequireDependency.js +28 -20
  177. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  178. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  179. package/lib/dependencies/CachedConstDependency.js +9 -1
  180. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  181. package/lib/dependencies/CommonJsExportRequireDependency.js +138 -38
  182. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  183. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  184. package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
  185. package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -24
  186. package/lib/dependencies/CommonJsPlugin.js +7 -4
  187. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  188. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  189. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  190. package/lib/dependencies/ConstDependency.js +22 -12
  191. package/lib/dependencies/ContextDependency.js +13 -2
  192. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  193. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  194. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  195. package/lib/dependencies/ContextElementDependency.js +27 -14
  196. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  197. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  198. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  199. package/lib/dependencies/CssIcssExportDependency.js +682 -368
  200. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  201. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  202. package/lib/dependencies/CssImportDependency.js +37 -1
  203. package/lib/dependencies/CssUrlDependency.js +87 -14
  204. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  205. package/lib/dependencies/DllEntryDependency.js +12 -13
  206. package/lib/dependencies/DynamicExports.js +5 -0
  207. package/lib/dependencies/EntryDependency.js +1 -0
  208. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  209. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  210. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  211. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  212. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  213. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  214. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  215. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  216. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  217. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +32 -2
  218. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  219. package/lib/dependencies/HarmonyExportExpressionDependency.js +140 -46
  220. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  221. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +253 -37
  222. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  223. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  224. package/lib/dependencies/HarmonyExports.js +6 -1
  225. package/lib/dependencies/HarmonyImportDependency.js +59 -3
  226. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  227. package/lib/dependencies/HarmonyImportGuard.js +426 -0
  228. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  229. package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
  230. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  231. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  232. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  233. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  234. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  235. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  236. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  237. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  238. package/lib/dependencies/ImportContextDependency.js +9 -9
  239. package/lib/dependencies/ImportDependency.js +92 -3
  240. package/lib/dependencies/ImportEagerDependency.js +2 -0
  241. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  242. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  243. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  244. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  245. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  246. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  247. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  248. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  249. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  250. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  251. package/lib/dependencies/ImportParserPlugin.js +114 -27
  252. package/lib/dependencies/ImportPhase.js +17 -11
  253. package/lib/dependencies/ImportPlugin.js +2 -1
  254. package/lib/dependencies/ImportWeakDependency.js +3 -0
  255. package/lib/dependencies/JsonExportsDependency.js +15 -10
  256. package/lib/dependencies/LoaderDependency.js +2 -0
  257. package/lib/dependencies/LoaderImportDependency.js +3 -0
  258. package/lib/dependencies/LoaderPlugin.js +9 -2
  259. package/lib/dependencies/LocalModule.js +15 -12
  260. package/lib/dependencies/LocalModuleDependency.js +15 -13
  261. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  262. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  263. package/lib/dependencies/ModuleDependency.js +14 -0
  264. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  265. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  266. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  267. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  268. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  269. package/lib/dependencies/NullDependency.js +2 -0
  270. package/lib/dependencies/PrefetchDependency.js +1 -0
  271. package/lib/dependencies/ProvidedDependency.js +36 -27
  272. package/lib/dependencies/PureExpressionDependency.js +14 -10
  273. package/lib/dependencies/RequireContextDependency.js +1 -0
  274. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  275. package/lib/dependencies/RequireContextPlugin.js +2 -1
  276. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  277. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  278. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  279. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  280. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  281. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  282. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  283. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  284. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  285. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  286. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  287. package/lib/dependencies/RequireResolveDependency.js +2 -0
  288. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  289. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  290. package/lib/dependencies/StaticExportsDependency.js +13 -10
  291. package/lib/dependencies/SystemPlugin.js +9 -6
  292. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  293. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  294. package/lib/dependencies/URLContextDependency.js +8 -7
  295. package/lib/dependencies/URLDependency.js +157 -33
  296. package/lib/dependencies/URLPlugin.js +2 -0
  297. package/lib/dependencies/UnsupportedDependency.js +12 -13
  298. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  299. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  300. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  301. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  302. package/lib/dependencies/WorkerDependency.js +111 -27
  303. package/lib/dependencies/WorkletDependency.js +278 -0
  304. package/lib/dependencies/getFunctionExpression.js +1 -0
  305. package/lib/dependencies/processExportInfo.js +14 -11
  306. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  307. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  308. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  309. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  310. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  311. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  312. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  313. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  314. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  315. package/lib/electron/ElectronTargetPlugin.js +24 -5
  316. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  317. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  318. package/lib/errors/BuildCycleError.js +1 -1
  319. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  320. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  321. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  322. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  323. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  324. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  325. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  326. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  327. package/lib/errors/JSONParseError.js +115 -0
  328. package/lib/errors/LoaderLoadingError.js +20 -0
  329. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  330. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  331. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  332. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  333. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  334. package/lib/errors/ModuleNotFoundError.js +94 -0
  335. package/lib/errors/ModuleParseError.js +141 -0
  336. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  337. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  338. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  339. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  340. package/lib/errors/NonErrorEmittedError.js +30 -0
  341. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  342. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  343. package/lib/errors/WebpackError.js +84 -0
  344. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  345. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  346. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  347. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +71 -49
  348. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  349. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  350. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  351. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  352. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  353. package/lib/hmr/lazyCompilationBackend.js +34 -8
  354. package/lib/html/HtmlGenerator.js +1470 -0
  355. package/lib/html/HtmlModule.js +41 -0
  356. package/lib/html/HtmlModulesPlugin.js +1111 -0
  357. package/lib/html/HtmlParser.js +1970 -0
  358. package/lib/html/favicon.svg +1 -0
  359. package/lib/html/syntax.js +9020 -0
  360. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  361. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  362. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  363. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  364. package/lib/ids/IdHelpers.js +25 -2
  365. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  366. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  367. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  368. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  369. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  370. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  371. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  372. package/lib/index.js +66 -15
  373. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  374. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  375. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  376. package/lib/javascript/ChunkHelpers.js +1 -0
  377. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  378. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  379. package/lib/javascript/JavascriptGenerator.js +213 -51
  380. package/lib/javascript/JavascriptModule.js +54 -0
  381. package/lib/javascript/JavascriptModulesPlugin.js +579 -183
  382. package/lib/javascript/JavascriptParser.js +1289 -462
  383. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  384. package/lib/javascript/StartupHelpers.js +5 -0
  385. package/lib/javascript/syntax.js +4380 -0
  386. package/lib/json/JsonData.js +5 -0
  387. package/lib/json/JsonGenerator.js +21 -0
  388. package/lib/json/JsonModule.js +40 -0
  389. package/lib/json/JsonModulesPlugin.js +8 -1
  390. package/lib/json/JsonParser.js +18 -27
  391. package/lib/library/AbstractLibraryPlugin.js +17 -2
  392. package/lib/library/AmdLibraryPlugin.js +8 -0
  393. package/lib/library/AssignLibraryPlugin.js +21 -3
  394. package/lib/library/EnableLibraryPlugin.js +8 -2
  395. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  396. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  397. package/lib/library/JsonpLibraryPlugin.js +8 -0
  398. package/lib/library/ModuleLibraryPlugin.js +154 -7
  399. package/lib/library/SystemLibraryPlugin.js +11 -3
  400. package/lib/library/UmdLibraryPlugin.js +16 -0
  401. package/lib/loaders/LoaderRunner.js +714 -0
  402. package/lib/loaders/loadLoader.js +100 -0
  403. package/lib/logging/Logger.js +17 -0
  404. package/lib/logging/createConsoleLogger.js +7 -0
  405. package/lib/logging/runtime.js +2 -0
  406. package/lib/logging/truncateArgs.js +2 -0
  407. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  408. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  409. package/lib/node/NodeSourcePlugin.js +1 -1
  410. package/lib/node/NodeTargetPlugin.js +4 -63
  411. package/lib/node/NodeTemplatePlugin.js +3 -1
  412. package/lib/node/NodeWatchFileSystem.js +40 -22
  413. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  414. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +23 -1
  415. package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
  416. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  417. package/lib/node/nodeBuiltins.js +80 -0
  418. package/lib/node/nodeConsole.js +116 -64
  419. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  420. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  421. package/lib/optimize/ConcatenatedModule.js +585 -116
  422. package/lib/optimize/ConstExportsPlugin.js +211 -0
  423. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  424. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  425. package/lib/optimize/InlineExports.js +178 -0
  426. package/lib/optimize/InnerGraph.js +374 -262
  427. package/lib/optimize/InnerGraphPlugin.js +246 -117
  428. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  429. package/lib/optimize/MangleExportsPlugin.js +5 -1
  430. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  431. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  432. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  433. package/lib/optimize/ModuleConcatenationPlugin.js +159 -34
  434. package/lib/optimize/RealContentHashPlugin.js +125 -50
  435. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  436. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  437. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  438. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  439. package/lib/optimize/SplitChunksPlugin.js +54 -6
  440. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  441. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  442. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  443. package/lib/performance/SizeLimitsPlugin.js +8 -2
  444. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  445. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  446. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  448. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  449. package/lib/prefetch/ResourceHintPlugin.js +663 -0
  450. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  451. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  452. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  453. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  454. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  455. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  456. package/lib/rules/RuleSetCompiler.js +132 -0
  457. package/lib/rules/UseEffectRulePlugin.js +10 -3
  458. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  459. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  460. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  461. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  462. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  463. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  464. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  465. package/lib/runtime/CompatRuntimeModule.js +2 -0
  466. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  467. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  468. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  469. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  470. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  471. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  472. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  473. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  474. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  475. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  476. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  477. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  478. package/lib/runtime/HelperRuntimeModule.js +5 -0
  479. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  480. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  481. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  482. package/lib/runtime/NonceRuntimeModule.js +1 -0
  483. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  484. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  485. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  486. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  487. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  488. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  489. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  490. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  491. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  492. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  493. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  494. package/lib/schemes/DataUriPlugin.js +14 -2
  495. package/lib/schemes/FileUriPlugin.js +1 -1
  496. package/lib/schemes/HttpUriPlugin.js +86 -4
  497. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  498. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  499. package/lib/serialization/ArraySerializer.js +6 -8
  500. package/lib/serialization/BinaryMiddleware.js +552 -463
  501. package/lib/serialization/DateObjectSerializer.js +4 -2
  502. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  503. package/lib/serialization/FileMiddleware.js +50 -3
  504. package/lib/serialization/MapObjectSerializer.js +7 -9
  505. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  506. package/lib/serialization/ObjectMiddleware.js +73 -13
  507. package/lib/serialization/PlainObjectSerializer.js +16 -8
  508. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  509. package/lib/serialization/Serializer.js +6 -0
  510. package/lib/serialization/SerializerMiddleware.js +14 -2
  511. package/lib/serialization/SetObjectSerializer.js +6 -8
  512. package/lib/serialization/SingleItemMiddleware.js +3 -0
  513. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  514. package/lib/sharing/ConsumeSharedModule.js +21 -7
  515. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  516. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  517. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  518. package/lib/sharing/ProvideSharedDependency.js +34 -15
  519. package/lib/sharing/ProvideSharedModule.js +42 -12
  520. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  521. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  522. package/lib/sharing/SharePlugin.js +5 -1
  523. package/lib/sharing/ShareRuntimeModule.js +19 -16
  524. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  525. package/lib/sharing/utils.js +9 -1
  526. package/lib/stats/DefaultStatsFactoryPlugin.js +94 -12
  527. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  528. package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
  529. package/lib/stats/StatsFactory.js +39 -18
  530. package/lib/stats/StatsPrinter.js +16 -2
  531. package/lib/typescript/TypeScriptPlugin.js +210 -0
  532. package/lib/url/URLParserPlugin.js +111 -23
  533. package/lib/util/ArrayHelpers.js +1 -0
  534. package/lib/util/ArrayQueue.js +10 -5
  535. package/lib/util/AsyncQueue.js +154 -74
  536. package/lib/util/Hash.js +2 -2
  537. package/lib/util/IterableHelpers.js +3 -0
  538. package/lib/util/LazyBucketSortedSet.js +26 -0
  539. package/lib/util/LazySet.js +45 -4
  540. package/lib/util/LocConverter.js +64 -0
  541. package/lib/util/ParallelismFactorCalculator.js +1 -0
  542. package/lib/util/Queue.js +6 -3
  543. package/lib/util/Semaphore.js +15 -1
  544. package/lib/util/SetHelpers.js +4 -1
  545. package/lib/util/SortableSet.js +7 -1
  546. package/lib/util/SourceProcessor.js +119 -0
  547. package/lib/util/StackedCacheMap.js +20 -3
  548. package/lib/util/StackedMap.js +162 -43
  549. package/lib/util/StringXor.js +1 -1
  550. package/lib/util/TupleQueue.js +7 -3
  551. package/lib/util/TupleSet.js +14 -0
  552. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  553. package/lib/util/WeakTupleMap.js +60 -1
  554. package/lib/util/binarySearchBounds.js +3 -2
  555. package/lib/util/chainedImports.js +3 -3
  556. package/lib/util/cleverMerge.js +19 -2
  557. package/lib/util/comparators.js +35 -4
  558. package/lib/util/compileBooleanMatcher.js +9 -0
  559. package/lib/util/concatenate.js +80 -24
  560. package/lib/util/conventions.js +46 -1
  561. package/lib/util/createHash.js +0 -1
  562. package/lib/util/createHooksRegistry.js +43 -0
  563. package/lib/util/createMappings.js +118 -0
  564. package/lib/util/dataURL.js +3 -2
  565. package/lib/util/deprecation.js +19 -0
  566. package/lib/util/deterministicGrouping.js +46 -17
  567. package/lib/util/extractSourceMap.js +2 -1
  568. package/lib/util/extractUrlAndGlobal.js +1 -0
  569. package/lib/util/findGraphRoots.js +7 -0
  570. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  571. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  572. package/lib/util/fs.js +87 -14
  573. package/lib/util/generateDebugId.js +1 -0
  574. package/lib/util/globUtils.js +710 -0
  575. package/lib/util/hash/BatchedHash.js +1 -0
  576. package/lib/util/hash/BulkUpdateHash.js +1 -0
  577. package/lib/util/hash/DebugHash.js +1 -0
  578. package/lib/util/hash/hash-digest.js +32 -15
  579. package/lib/util/hash/md4.js +1 -1
  580. package/lib/util/hash/wasm-hash.js +5 -0
  581. package/lib/util/hash/xxhash64.js +1 -1
  582. package/lib/util/identifier.js +97 -6
  583. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  584. package/lib/util/internalSerializables.js +102 -60
  585. package/lib/util/magicComment.js +149 -7
  586. package/lib/util/makeSerializable.js +7 -0
  587. package/lib/util/memoize.js +2 -0
  588. package/lib/util/mimeTypes.js +176 -0
  589. package/lib/util/nonNumericOnlyHash.js +31 -1
  590. package/lib/util/numberHash.js +2 -2
  591. package/lib/util/parseJson.js +41 -0
  592. package/lib/util/processAsyncTree.js +8 -0
  593. package/lib/util/property.js +9 -2
  594. package/lib/util/publicPathPlaceholder.js +64 -0
  595. package/lib/util/registerExternalSerializer.js +24 -4
  596. package/lib/util/removeBOM.js +1 -0
  597. package/lib/util/runtime.js +32 -0
  598. package/lib/util/semver.js +15 -0
  599. package/lib/util/serialization.js +2 -0
  600. package/lib/util/smartGrouping.js +8 -0
  601. package/lib/util/source.js +23 -0
  602. package/lib/util/topologicalSort.js +69 -0
  603. package/lib/validateSchema.js +1 -0
  604. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  605. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  606. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  607. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  608. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  609. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  610. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  611. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  612. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  613. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  614. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  615. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  616. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  617. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  618. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  619. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  620. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  621. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  622. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  623. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  624. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  625. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  626. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  627. package/lib/web/JsonpTemplatePlugin.js +2 -1
  628. package/lib/webpack.js +78 -1
  629. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  630. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  631. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  632. package/module.d.ts +21 -0
  633. package/package.json +79 -77
  634. package/schemas/WebpackOptions.check.js +1 -1
  635. package/schemas/WebpackOptions.json +1117 -79
  636. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  637. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  638. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  639. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  640. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  641. package/schemas/plugins/HtmlParserOptions.json +3 -0
  642. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  643. package/schemas/plugins/ProgressPlugin.json +38 -0
  644. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  645. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  646. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  647. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  648. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  649. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  650. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  652. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  653. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  654. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  655. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  656. package/types.d.ts +8608 -1159
  657. package/lib/CaseSensitiveModulesWarning.js +0 -72
  658. package/lib/GraphHelpers.js +0 -46
  659. package/lib/ModuleParseError.js +0 -125
  660. package/lib/NoModeWarning.js +0 -23
  661. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  662. package/lib/css/walkCssTokens.js +0 -1843
  663. package/lib/util/AppendOnlyStackedSet.js +0 -78
  664. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  665. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  666. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -6,47 +6,48 @@
6
6
  "use strict";
7
7
 
8
8
  const { OriginalSource, RawSource } = require("webpack-sources");
9
- const Module = require("./Module");
9
+ const Module = require("../Module");
10
10
  const {
11
11
  JAVASCRIPT_TYPE,
12
12
  JAVASCRIPT_TYPES
13
- } = require("./ModuleSourceTypeConstants");
14
- const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
15
- const RuntimeGlobals = require("./RuntimeGlobals");
16
- const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
17
- const StaticExportsDependency = require("./dependencies/StaticExportsDependency");
18
- const makeSerializable = require("./util/makeSerializable");
13
+ } = require("../ModuleSourceTypeConstants");
14
+ const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("../ModuleTypeConstants");
15
+ const RuntimeGlobals = require("../RuntimeGlobals");
16
+ const DelegatedSourceDependency = require("../dependencies/DelegatedSourceDependency");
17
+ const StaticExportsDependency = require("../dependencies/StaticExportsDependency");
18
+ const makeSerializable = require("../util/makeSerializable");
19
19
 
20
- /** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
21
- /** @typedef {import("./config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
22
- /** @typedef {import("./Compilation")} Compilation */
23
- /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
24
- /** @typedef {import("./Generator").SourceTypes} SourceTypes */
20
+ /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
21
+ /** @typedef {import("../config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
22
+ /** @typedef {import("../Compilation")} Compilation */
23
+ /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
24
+ /** @typedef {import("../Generator").SourceTypes} SourceTypes */
25
25
  /** @typedef {import("./LibManifestPlugin").ManifestModuleData} ManifestModuleData */
26
- /** @typedef {import("./Module").ModuleId} ModuleId */
27
- /** @typedef {import("./Module").BuildCallback} BuildCallback */
28
- /** @typedef {import("./Module").BuildMeta} BuildMeta */
29
- /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */
30
- /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */
31
- /** @typedef {import("./Module").LibIdentOptions} LibIdentOptions */
32
- /** @typedef {import("./Module").LibIdent} LibIdent */
33
- /** @typedef {import("./Module").NeedBuildCallback} NeedBuildCallback */
34
- /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */
35
- /** @typedef {import("./Module").Sources} Sources */
36
- /** @typedef {import("./Module").RuntimeRequirements} RuntimeRequirements */
37
- /** @typedef {import("./RequestShortener")} RequestShortener */
38
- /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
39
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
40
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
41
- /** @typedef {import("./dependencies/StaticExportsDependency").Exports} Exports */
42
- /** @typedef {import("./util/Hash")} Hash */
43
- /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
26
+ /** @typedef {import("../Module").ModuleId} ModuleId */
27
+ /** @typedef {import("../Module").BuildCallback} BuildCallback */
28
+ /** @typedef {import("../Module").BuildMeta} BuildMeta */
29
+ /** @typedef {import("../Module").CodeGenerationContext} CodeGenerationContext */
30
+ /** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
31
+ /** @typedef {import("../Module").LibIdentOptions} LibIdentOptions */
32
+ /** @typedef {import("../Module").LibIdent} LibIdent */
33
+ /** @typedef {import("../Module").NeedBuildCallback} NeedBuildCallback */
34
+ /** @typedef {import("../Module").NeedBuildContext} NeedBuildContext */
35
+ /** @typedef {import("../Module").Sources} Sources */
36
+ /** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
37
+ /** @typedef {import("../RequestShortener")} RequestShortener */
38
+ /** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
39
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[DelegatedModuleSourceRequest, DelegatedModuleData, DelegatedModuleType, string, string | Module]>} ObjectDeserializerContext */
40
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[DelegatedModuleSourceRequest, DelegatedModuleData, DelegatedModuleType, string, string | Module]>} ObjectSerializerContext */
41
+ /** @typedef {import("../dependencies/StaticExportsDependency").Exports} Exports */
42
+ /** @typedef {import("../util/Hash")} Hash */
43
+ /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
44
44
 
45
45
  /** @typedef {string} DelegatedModuleSourceRequest */
46
46
 
47
47
  /** @typedef {NonNullable<DllReferencePluginOptions["type"]>} DelegatedModuleType */
48
48
 
49
49
  /**
50
+ * Defines the delegated module data type used by this module.
50
51
  * @typedef {object} DelegatedModuleData
51
52
  * @property {BuildMeta=} buildMeta build meta
52
53
  * @property {Exports=} exports exports
@@ -60,6 +61,7 @@ const RUNTIME_REQUIREMENTS = new Set([
60
61
 
61
62
  class DelegatedModule extends Module {
62
63
  /**
64
+ * Creates an instance of DelegatedModule.
63
65
  * @param {DelegatedModuleSourceRequest} sourceRequest source request
64
66
  * @param {DelegatedModuleData} data data
65
67
  * @param {DelegatedModuleType} type type
@@ -70,11 +72,17 @@ class DelegatedModule extends Module {
70
72
  super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);
71
73
 
72
74
  // Info from Factory
75
+ /** @type {string} */
73
76
  this.sourceRequest = sourceRequest;
77
+ /** @type {ModuleId} */
74
78
  this.request = data.id;
79
+ /** @type {DelegatedModuleType} */
75
80
  this.delegationType = type;
81
+ /** @type {string} */
76
82
  this.userRequest = userRequest;
83
+ /** @type {string | Module} */
77
84
  this.originalRequest = originalRequest;
85
+ /** @type {DelegatedModuleData} */
78
86
  this.delegateData = data;
79
87
 
80
88
  // Build info
@@ -83,6 +91,7 @@ class DelegatedModule extends Module {
83
91
  }
84
92
 
85
93
  /**
94
+ * Returns the source types this module can generate.
86
95
  * @returns {SourceTypes} types available (do not mutate)
87
96
  */
88
97
  getSourceTypes() {
@@ -90,6 +99,7 @@ class DelegatedModule extends Module {
90
99
  }
91
100
 
92
101
  /**
102
+ * Gets the library identifier.
93
103
  * @param {LibIdentOptions} options options
94
104
  * @returns {LibIdent | null} an identifier for library inclusion
95
105
  */
@@ -100,6 +110,7 @@ class DelegatedModule extends Module {
100
110
  }
101
111
 
102
112
  /**
113
+ * Returns the unique identifier used to reference this module.
103
114
  * @returns {string} a unique identifier of the module
104
115
  */
105
116
  identifier() {
@@ -109,6 +120,7 @@ class DelegatedModule extends Module {
109
120
  }
110
121
 
111
122
  /**
123
+ * Returns a human-readable identifier for this module.
112
124
  * @param {RequestShortener} requestShortener the request shortener
113
125
  * @returns {string} a user readable identifier of the module
114
126
  */
@@ -117,6 +129,7 @@ class DelegatedModule extends Module {
117
129
  }
118
130
 
119
131
  /**
132
+ * Checks whether the module needs to be rebuilt for the current build state.
120
133
  * @param {NeedBuildContext} context context info
121
134
  * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
122
135
  * @returns {void}
@@ -126,6 +139,7 @@ class DelegatedModule extends Module {
126
139
  }
127
140
 
128
141
  /**
142
+ * Builds the module using the provided compilation context.
129
143
  * @param {WebpackOptions} options webpack options
130
144
  * @param {Compilation} compilation the compilation
131
145
  * @param {ResolverWithOptions} resolver the resolver
@@ -149,6 +163,7 @@ class DelegatedModule extends Module {
149
163
  }
150
164
 
151
165
  /**
166
+ * Generates code and runtime requirements for this module.
152
167
  * @param {CodeGenerationContext} context context for code generation
153
168
  * @returns {CodeGenerationResult} result
154
169
  */
@@ -198,6 +213,7 @@ class DelegatedModule extends Module {
198
213
  }
199
214
 
200
215
  /**
216
+ * Returns the estimated size for the requested source type.
201
217
  * @param {string=} type the source type for which the size should be estimated
202
218
  * @returns {number} the estimated size of the module (must be non-zero)
203
219
  */
@@ -206,6 +222,7 @@ class DelegatedModule extends Module {
206
222
  }
207
223
 
208
224
  /**
225
+ * Updates the hash with the data contributed by this instance.
209
226
  * @param {Hash} hash the hash used to track dependencies
210
227
  * @param {UpdateHashContext} context context
211
228
  * @returns {void}
@@ -217,33 +234,43 @@ class DelegatedModule extends Module {
217
234
  }
218
235
 
219
236
  /**
237
+ * Serializes this instance into the provided serializer context.
220
238
  * @param {ObjectSerializerContext} context context
221
239
  */
222
240
  serialize(context) {
223
- const { write } = context;
224
241
  // constructor
225
- write(this.sourceRequest);
226
- write(this.delegateData);
227
- write(this.delegationType);
228
- write(this.userRequest);
229
- write(this.originalRequest);
242
+ context
243
+ .write(this.sourceRequest)
244
+ .write(this.delegateData)
245
+ .write(this.delegationType)
246
+ .write(this.userRequest)
247
+ .write(this.originalRequest);
230
248
  super.serialize(context);
231
249
  }
232
250
 
233
251
  /**
252
+ * Restores this instance from the provided deserializer context.
234
253
  * @param {ObjectDeserializerContext} context context\
235
254
  * @returns {DelegatedModule} DelegatedModule
236
255
  */
237
256
  static deserialize(context) {
238
- const { read } = context;
257
+ const sourceRequest = context.read();
258
+ const c1 = context.rest;
259
+ const delegateData = c1.read();
260
+ const c2 = c1.rest;
261
+ const delegationType = c2.read();
262
+ const c3 = c2.rest;
263
+ const userRequest = c3.read();
264
+ const c4 = c3.rest;
265
+ const originalRequest = c4.read();
239
266
  const obj = new DelegatedModule(
240
- read(), // sourceRequest
241
- read(), // delegateData
242
- read(), // delegationType
243
- read(), // userRequest
244
- read() // originalRequest
267
+ sourceRequest,
268
+ delegateData,
269
+ delegationType,
270
+ userRequest,
271
+ originalRequest
245
272
  );
246
- obj.deserialize(context);
273
+ obj.deserialize(c4.rest);
247
274
  return obj;
248
275
  }
249
276
 
@@ -274,6 +301,6 @@ class DelegatedModule extends Module {
274
301
  }
275
302
  }
276
303
 
277
- makeSerializable(DelegatedModule, "webpack/lib/DelegatedModule");
304
+ makeSerializable(DelegatedModule, "webpack/lib/dll/DelegatedModule");
278
305
 
279
306
  module.exports = DelegatedModule;
@@ -7,15 +7,16 @@
7
7
 
8
8
  const DelegatedModule = require("./DelegatedModule");
9
9
 
10
- /** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
11
- /** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptionsContent} DllReferencePluginOptionsContent */
10
+ /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
11
+ /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptionsContent} DllReferencePluginOptionsContent */
12
12
  /** @typedef {import("./DelegatedModule").DelegatedModuleData} DelegatedModuleData */
13
13
  /** @typedef {import("./DelegatedModule").DelegatedModuleSourceRequest} DelegatedModuleSourceRequest */
14
14
  /** @typedef {import("./DelegatedModule").DelegatedModuleType} DelegatedModuleType */
15
- /** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */
16
- /** @typedef {import("./util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
15
+ /** @typedef {import("../NormalModuleFactory")} NormalModuleFactory */
16
+ /** @typedef {import("../util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
17
17
 
18
18
  /**
19
+ * Defines the options type used by this module.
19
20
  * @typedef {object} Options
20
21
  * @property {DelegatedModuleSourceRequest} source source
21
22
  * @property {NonNullable<DllReferencePluginOptions["context"]>} context absolute context path to which lib ident is relative to
@@ -30,15 +31,18 @@ const PLUGIN_NAME = "DelegatedModuleFactoryPlugin";
30
31
 
31
32
  class DelegatedModuleFactoryPlugin {
32
33
  /**
34
+ * Creates an instance of DelegatedModuleFactoryPlugin.
33
35
  * @param {Options} options options
34
36
  */
35
37
  constructor(options) {
38
+ /** @type {Options} */
36
39
  this.options = options;
37
40
  options.type = options.type || "require";
38
41
  options.extensions = options.extensions || ["", ".js", ".json", ".wasm"];
39
42
  }
40
43
 
41
44
  /**
45
+ * Applies the plugin by registering its hooks on the compiler.
42
46
  * @param {NormalModuleFactory} normalModuleFactory the normal module factory
43
47
  * @returns {void}
44
48
  */
@@ -89,6 +93,25 @@ class DelegatedModuleFactoryPlugin {
89
93
  );
90
94
  }
91
95
  }
96
+ // Directory request: resolve to its index file, like the default resolver.
97
+ for (let i = 0; i < extensions.length; i++) {
98
+ const extension = extensions[i];
99
+ const requestPlusExt = `${innerRequest}/index${extension}`;
100
+ if (requestPlusExt in this.options.content) {
101
+ resolved = this.options.content[requestPlusExt];
102
+ return callback(
103
+ null,
104
+ new DelegatedModule(
105
+ this.options.source,
106
+ resolved,
107
+ /** @type {DelegatedModuleType} */
108
+ (this.options.type),
109
+ requestPlusExt,
110
+ `${request}/index${extension}`
111
+ )
112
+ );
113
+ }
114
+ }
92
115
  }
93
116
  return callback();
94
117
  }
@@ -5,24 +5,26 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const DelegatedSourceDependency = require("../dependencies/DelegatedSourceDependency");
8
9
  const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
9
- const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
10
10
 
11
- /** @typedef {import("./Compiler")} Compiler */
11
+ /** @typedef {import("../Compiler")} Compiler */
12
12
  /** @typedef {import("./DelegatedModuleFactoryPlugin").Options} Options */
13
13
 
14
14
  const PLUGIN_NAME = "DelegatedPlugin";
15
15
 
16
16
  class DelegatedPlugin {
17
17
  /**
18
+ * Creates an instance of DelegatedPlugin.
18
19
  * @param {Options} options options
19
20
  */
20
21
  constructor(options) {
22
+ /** @type {Options} */
21
23
  this.options = options;
22
24
  }
23
25
 
24
26
  /**
25
- * Apply the plugin
27
+ * Applies the plugin by registering its hooks on the compiler.
26
28
  * @param {Compiler} compiler the compiler instance
27
29
  * @returns {void}
28
30
  */
@@ -5,12 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const DllEntryDependency = require("../dependencies/DllEntryDependency");
9
+ const EntryDependency = require("../dependencies/EntryDependency");
8
10
  const DllModuleFactory = require("./DllModuleFactory");
9
- const DllEntryDependency = require("./dependencies/DllEntryDependency");
10
- const EntryDependency = require("./dependencies/EntryDependency");
11
11
 
12
- /** @typedef {import("./Compiler")} Compiler */
13
- /** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */
12
+ /** @typedef {import("../Compiler")} Compiler */
13
+ /** @typedef {import("../Entrypoint").EntryOptions} EntryOptions */
14
14
 
15
15
  /** @typedef {string[]} Entries */
16
16
  /** @typedef {EntryOptions & { name: string }} Options */
@@ -19,18 +19,22 @@ const PLUGIN_NAME = "DllEntryPlugin";
19
19
 
20
20
  class DllEntryPlugin {
21
21
  /**
22
+ * Creates an instance of DllEntryPlugin.
22
23
  * @param {string} context context
23
24
  * @param {Entries} entries entry names
24
25
  * @param {Options} options options
25
26
  */
26
27
  constructor(context, entries, options) {
28
+ /** @type {string} */
27
29
  this.context = context;
30
+ /** @type {Entries} */
28
31
  this.entries = entries;
32
+ /** @type {Options} */
29
33
  this.options = options;
30
34
  }
31
35
 
32
36
  /**
33
- * Apply the plugin
37
+ * Applies the plugin by registering its hooks on the compiler.
34
38
  * @param {Compiler} compiler the compiler instance
35
39
  * @returns {void}
36
40
  */
@@ -6,32 +6,32 @@
6
6
  "use strict";
7
7
 
8
8
  const { RawSource } = require("webpack-sources");
9
- const Module = require("./Module");
9
+ const Module = require("../Module");
10
10
  const {
11
11
  JAVASCRIPT_TYPE,
12
12
  JAVASCRIPT_TYPES
13
- } = require("./ModuleSourceTypeConstants");
14
- const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
15
- const RuntimeGlobals = require("./RuntimeGlobals");
16
- const makeSerializable = require("./util/makeSerializable");
17
-
18
- /** @typedef {import("./config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
19
- /** @typedef {import("./Compilation")} Compilation */
20
- /** @typedef {import("./Dependency")} Dependency */
21
- /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
22
- /** @typedef {import("./Generator").SourceTypes} SourceTypes */
23
- /** @typedef {import("./Module").BuildCallback} BuildCallback */
24
- /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */
25
- /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */
26
- /** @typedef {import("./Module").NeedBuildCallback} NeedBuildCallback */
27
- /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */
28
- /** @typedef {import("./Module").Sources} Sources */
29
- /** @typedef {import("./RequestShortener")} RequestShortener */
30
- /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
31
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
32
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
33
- /** @typedef {import("./util/Hash")} Hash */
34
- /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
13
+ } = require("../ModuleSourceTypeConstants");
14
+ const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("../ModuleTypeConstants");
15
+ const RuntimeGlobals = require("../RuntimeGlobals");
16
+ const makeSerializable = require("../util/makeSerializable");
17
+
18
+ /** @typedef {import("../config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
19
+ /** @typedef {import("../Compilation")} Compilation */
20
+ /** @typedef {import("../Dependency")} Dependency */
21
+ /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
22
+ /** @typedef {import("../Generator").SourceTypes} SourceTypes */
23
+ /** @typedef {import("../Module").BuildCallback} BuildCallback */
24
+ /** @typedef {import("../Module").CodeGenerationContext} CodeGenerationContext */
25
+ /** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
26
+ /** @typedef {import("../Module").NeedBuildCallback} NeedBuildCallback */
27
+ /** @typedef {import("../Module").NeedBuildContext} NeedBuildContext */
28
+ /** @typedef {import("../Module").Sources} Sources */
29
+ /** @typedef {import("../RequestShortener")} RequestShortener */
30
+ /** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
31
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string]>} ObjectDeserializerContext */
32
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string]>} ObjectSerializerContext */
33
+ /** @typedef {import("../util/Hash")} Hash */
34
+ /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
35
35
 
36
36
  const RUNTIME_REQUIREMENTS = new Set([
37
37
  RuntimeGlobals.require,
@@ -40,6 +40,7 @@ const RUNTIME_REQUIREMENTS = new Set([
40
40
 
41
41
  class DllModule extends Module {
42
42
  /**
43
+ * Creates an instance of DllModule.
43
44
  * @param {string} context context path
44
45
  * @param {Dependency[]} dependencies dependencies
45
46
  * @param {string} name name
@@ -50,10 +51,12 @@ class DllModule extends Module {
50
51
  // Info from Factory
51
52
  /** @type {Dependency[]} */
52
53
  this.dependencies = dependencies;
54
+ /** @type {string} */
53
55
  this.name = name;
54
56
  }
55
57
 
56
58
  /**
59
+ * Returns the source types this module can generate.
57
60
  * @returns {SourceTypes} types available (do not mutate)
58
61
  */
59
62
  getSourceTypes() {
@@ -61,6 +64,7 @@ class DllModule extends Module {
61
64
  }
62
65
 
63
66
  /**
67
+ * Returns the unique identifier used to reference this module.
64
68
  * @returns {string} a unique identifier of the module
65
69
  */
66
70
  identifier() {
@@ -68,6 +72,7 @@ class DllModule extends Module {
68
72
  }
69
73
 
70
74
  /**
75
+ * Returns a human-readable identifier for this module.
71
76
  * @param {RequestShortener} requestShortener the request shortener
72
77
  * @returns {string} a user readable identifier of the module
73
78
  */
@@ -76,6 +81,7 @@ class DllModule extends Module {
76
81
  }
77
82
 
78
83
  /**
84
+ * Builds the module using the provided compilation context.
79
85
  * @param {WebpackOptions} options webpack options
80
86
  * @param {Compilation} compilation the compilation
81
87
  * @param {ResolverWithOptions} resolver the resolver
@@ -90,6 +96,7 @@ class DllModule extends Module {
90
96
  }
91
97
 
92
98
  /**
99
+ * Generates code and runtime requirements for this module.
93
100
  * @param {CodeGenerationContext} context context for code generation
94
101
  * @returns {CodeGenerationResult} result
95
102
  */
@@ -107,6 +114,7 @@ class DllModule extends Module {
107
114
  }
108
115
 
109
116
  /**
117
+ * Checks whether the module needs to be rebuilt for the current build state.
110
118
  * @param {NeedBuildContext} context context info
111
119
  * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
112
120
  * @returns {void}
@@ -116,6 +124,7 @@ class DllModule extends Module {
116
124
  }
117
125
 
118
126
  /**
127
+ * Returns the estimated size for the requested source type.
119
128
  * @param {string=} type the source type for which the size should be estimated
120
129
  * @returns {number} the estimated size of the module (must be non-zero)
121
130
  */
@@ -124,6 +133,7 @@ class DllModule extends Module {
124
133
  }
125
134
 
126
135
  /**
136
+ * Updates the hash with the data contributed by this instance.
127
137
  * @param {Hash} hash the hash used to track dependencies
128
138
  * @param {UpdateHashContext} context context
129
139
  * @returns {void}
@@ -134,6 +144,7 @@ class DllModule extends Module {
134
144
  }
135
145
 
136
146
  /**
147
+ * Serializes this instance into the provided serializer context.
137
148
  * @param {ObjectSerializerContext} context context
138
149
  */
139
150
  serialize(context) {
@@ -142,6 +153,7 @@ class DllModule extends Module {
142
153
  }
143
154
 
144
155
  /**
156
+ * Restores this instance from the provided deserializer context.
145
157
  * @param {ObjectDeserializerContext} context context
146
158
  */
147
159
  deserialize(context) {
@@ -170,6 +182,6 @@ class DllModule extends Module {
170
182
  }
171
183
  }
172
184
 
173
- makeSerializable(DllModule, "webpack/lib/DllModule");
185
+ makeSerializable(DllModule, "webpack/lib/dll/DllModule");
174
186
 
175
187
  module.exports = DllModule;
@@ -5,12 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const ModuleFactory = require("../ModuleFactory");
8
9
  const DllModule = require("./DllModule");
9
- const ModuleFactory = require("./ModuleFactory");
10
10
 
11
- /** @typedef {import("./ModuleFactory").ModuleFactoryCallback} ModuleFactoryCallback */
12
- /** @typedef {import("./ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
13
- /** @typedef {import("./dependencies/DllEntryDependency")} DllEntryDependency */
11
+ /** @typedef {import("../ModuleFactory").ModuleFactoryCallback} ModuleFactoryCallback */
12
+ /** @typedef {import("../ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
13
+ /** @typedef {import("../dependencies/DllEntryDependency")} DllEntryDependency */
14
14
 
15
15
  class DllModuleFactory extends ModuleFactory {
16
16
  constructor() {
@@ -19,6 +19,7 @@ class DllModuleFactory extends ModuleFactory {
19
19
  }
20
20
 
21
21
  /**
22
+ * Processes the provided data.
22
23
  * @param {ModuleFactoryCreateData} data data object
23
24
  * @param {ModuleFactoryCallback} callback callback
24
25
  * @returns {void}
@@ -5,12 +5,13 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const FlagAllModulesAsUsedPlugin = require("../FlagAllModulesAsUsedPlugin");
8
9
  const DllEntryPlugin = require("./DllEntryPlugin");
9
- const FlagAllModulesAsUsedPlugin = require("./FlagAllModulesAsUsedPlugin");
10
10
  const LibManifestPlugin = require("./LibManifestPlugin");
11
11
 
12
- /** @typedef {import("../declarations/plugins/DllPlugin").DllPluginOptions} DllPluginOptions */
13
- /** @typedef {import("./Compiler")} Compiler */
12
+ /** @typedef {import("../../declarations/plugins/dll/DllPlugin").DllPluginOptions} DllPluginOptions */
13
+ /** @typedef {import("../Compiler")} Compiler */
14
+ /** @typedef {import("../Module").FactoryMeta} FactoryMeta */
14
15
  /** @typedef {import("./DllEntryPlugin").Entries} Entries */
15
16
  /** @typedef {import("./DllEntryPlugin").Options} Options */
16
17
 
@@ -18,6 +19,7 @@ const PLUGIN_NAME = "DllPlugin";
18
19
 
19
20
  class DllPlugin {
20
21
  /**
22
+ * Creates an instance of DllPlugin.
21
23
  * @param {DllPluginOptions} options options object
22
24
  */
23
25
  constructor(options) {
@@ -26,20 +28,21 @@ class DllPlugin {
26
28
  }
27
29
 
28
30
  /**
29
- * Apply the plugin
31
+ * Applies the plugin by registering its hooks on the compiler.
30
32
  * @param {Compiler} compiler the compiler instance
31
33
  * @returns {void}
32
34
  */
33
35
  apply(compiler) {
34
36
  compiler.hooks.validate.tap(PLUGIN_NAME, () => {
35
37
  compiler.validate(
36
- () => require("../schemas/plugins/DllPlugin.json"),
38
+ () => require("../../schemas/plugins/dll/DllPlugin.json"),
37
39
  this.options,
38
40
  {
39
41
  name: "Dll Plugin",
40
42
  baseDataPath: "options"
41
43
  },
42
- (options) => require("../schemas/plugins/DllPlugin.check")(options)
44
+ (options) =>
45
+ require("../../schemas/plugins/dll/DllPlugin.check")(options)
43
46
  );
44
47
  });
45
48
 
@@ -66,6 +69,21 @@ class DllPlugin {
66
69
  new LibManifestPlugin({ ...this.options, entryOnly }).apply(compiler);
67
70
  if (!entryOnly) {
68
71
  new FlagAllModulesAsUsedPlugin(PLUGIN_NAME).apply(compiler);
72
+ compiler.hooks.compilation.tap(
73
+ PLUGIN_NAME,
74
+ (_compilation, { normalModuleFactory }) => {
75
+ normalModuleFactory.hooks.module.tap(
76
+ { name: PLUGIN_NAME, stage: 10 },
77
+ (module) => {
78
+ if (module.factoryMeta === undefined) {
79
+ module.factoryMeta = {};
80
+ }
81
+ module.factoryMeta.sideEffectFree = false;
82
+ return module;
83
+ }
84
+ );
85
+ }
86
+ );
69
87
  }
70
88
  }
71
89
  }