@depup/webpack 5.106.1-depup.0 → 5.109.2-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 (669) hide show
  1. package/README.md +9 -11
  2. package/bin/webpack.js +12 -0
  3. package/changes.json +16 -24
  4. package/hot/dev-server.js +2 -0
  5. package/lib/APIPlugin.js +60 -35
  6. package/lib/AsyncDependenciesBlock.js +3 -0
  7. package/lib/AutomaticPrefetchPlugin.js +6 -1
  8. package/lib/BannerPlugin.js +13 -5
  9. package/lib/Cache.js +27 -5
  10. package/lib/CacheFacade.js +41 -0
  11. package/lib/Chunk.js +71 -25
  12. package/lib/ChunkGraph.js +153 -19
  13. package/lib/ChunkGroup.js +115 -28
  14. package/lib/ChunkTemplate.js +9 -0
  15. package/lib/CircularModulesPlugin.js +190 -0
  16. package/lib/CleanPlugin.js +27 -28
  17. package/lib/CodeGenerationResults.js +19 -0
  18. package/lib/CompatibilityPlugin.js +85 -37
  19. package/lib/Compilation.js +656 -112
  20. package/lib/Compiler.js +109 -35
  21. package/lib/ConcatenationScope.js +34 -4
  22. package/lib/ConditionalInitFragment.js +6 -0
  23. package/lib/ConstPlugin.js +15 -12
  24. package/lib/ContextExclusionPlugin.js +3 -1
  25. package/lib/ContextModule.js +345 -55
  26. package/lib/ContextModuleFactory.js +193 -51
  27. package/lib/ContextReplacementPlugin.js +8 -1
  28. package/lib/DefinePlugin.js +537 -139
  29. package/lib/DependenciesBlock.js +6 -1
  30. package/lib/Dependency.js +159 -11
  31. package/lib/DependencyTemplate.js +7 -1
  32. package/lib/DependencyTemplates.js +4 -0
  33. package/lib/DotenvPlugin.js +3 -0
  34. package/lib/DynamicEntryPlugin.js +3 -1
  35. package/lib/EntryOptionPlugin.js +42 -2
  36. package/lib/EntryPlugin.js +4 -1
  37. package/lib/Entrypoint.js +5 -1
  38. package/lib/EnvironmentPlugin.js +3 -2
  39. package/lib/ErrorHelpers.js +7 -0
  40. package/lib/EvalDevToolModulePlugin.js +3 -1
  41. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  42. package/lib/ExportsInfo.js +421 -113
  43. package/lib/ExportsInfoApiPlugin.js +4 -3
  44. package/lib/ExternalModule.js +381 -80
  45. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  46. package/lib/ExternalsPlugin.js +3 -1
  47. package/lib/FileSystemInfo.js +701 -175
  48. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  49. package/lib/FlagDependencyExportsPlugin.js +82 -9
  50. package/lib/FlagDependencyUsagePlugin.js +115 -8
  51. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  52. package/lib/Generator.js +24 -3
  53. package/lib/HotModuleReplacementPlugin.js +110 -44
  54. package/lib/IgnorePlugin.js +5 -2
  55. package/lib/IgnoreWarningsPlugin.js +2 -1
  56. package/lib/InitFragment.js +33 -30
  57. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  58. package/lib/LazyBarrel.js +389 -0
  59. package/lib/LibraryTemplatePlugin.js +2 -1
  60. package/lib/LoaderOptionsPlugin.js +3 -1
  61. package/lib/LoaderTargetPlugin.js +3 -1
  62. package/lib/MainTemplate.js +15 -0
  63. package/lib/ManifestPlugin.js +9 -2
  64. package/lib/Module.js +121 -57
  65. package/lib/ModuleFactory.js +6 -1
  66. package/lib/ModuleFilenameHelpers.js +18 -4
  67. package/lib/ModuleGraph.js +69 -2
  68. package/lib/ModuleGraphConnection.js +9 -0
  69. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  70. package/lib/ModuleNotFoundError.js +3 -83
  71. package/lib/ModuleProfile.js +27 -1
  72. package/lib/ModuleSourceTypeConstants.js +52 -19
  73. package/lib/ModuleTemplate.js +10 -0
  74. package/lib/ModuleTypeConstants.js +20 -4
  75. package/lib/MultiCompiler.js +59 -4
  76. package/lib/MultiStats.js +9 -0
  77. package/lib/MultiWatching.js +6 -0
  78. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  79. package/lib/NodeStuffPlugin.js +78 -46
  80. package/lib/NormalModule.js +519 -206
  81. package/lib/NormalModuleFactory.js +156 -31
  82. package/lib/NormalModuleReplacementPlugin.js +3 -1
  83. package/lib/NullFactory.js +1 -0
  84. package/lib/OptionsApply.js +1 -0
  85. package/lib/Parser.js +3 -1
  86. package/lib/PlatformPlugin.js +2 -1
  87. package/lib/PrefetchPlugin.js +4 -1
  88. package/lib/ProgressPlugin.js +351 -161
  89. package/lib/ProvidePlugin.js +6 -3
  90. package/lib/RawModule.js +32 -16
  91. package/lib/RecordIdsPlugin.js +9 -0
  92. package/lib/RequestShortener.js +8 -0
  93. package/lib/ResolverFactory.js +5 -0
  94. package/lib/RuntimeGlobals.js +58 -5
  95. package/lib/RuntimeModule.js +22 -7
  96. package/lib/RuntimePlugin.js +123 -118
  97. package/lib/RuntimeTemplate.js +616 -37
  98. package/lib/SelfModuleFactory.js +3 -0
  99. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  100. package/lib/SourceMapDevToolPlugin.js +341 -63
  101. package/lib/Stats.js +6 -0
  102. package/lib/Template.js +52 -6
  103. package/lib/TemplatedPathPlugin.js +505 -138
  104. package/lib/UseStrictPlugin.js +3 -2
  105. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  106. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  107. package/lib/WarnNoModeSetPlugin.js +18 -2
  108. package/lib/WatchIgnorePlugin.js +5 -1
  109. package/lib/Watching.js +25 -3
  110. package/lib/WebpackError.js +3 -74
  111. package/lib/WebpackIsIncludedPlugin.js +4 -2
  112. package/lib/WebpackOptionsApply.js +88 -25
  113. package/lib/WebpackOptionsDefaulter.js +1 -0
  114. package/lib/asset/AssetBytesGenerator.js +28 -10
  115. package/lib/asset/AssetBytesParser.js +1 -0
  116. package/lib/asset/AssetGenerator.js +199 -60
  117. package/lib/asset/AssetModule.js +47 -0
  118. package/lib/asset/AssetModulesPlugin.js +115 -24
  119. package/lib/asset/AssetParser.js +4 -2
  120. package/lib/asset/AssetSourceGenerator.js +26 -8
  121. package/lib/asset/AssetSourceParser.js +1 -0
  122. package/lib/asset/RawDataUrlModule.js +23 -13
  123. package/lib/asset/WebManifestGenerator.js +164 -0
  124. package/lib/asset/WebManifestParser.js +130 -0
  125. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  126. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  127. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  128. package/lib/async-modules/isGeneratorLowered.js +26 -0
  129. package/lib/buildChunkGraph.js +107 -15
  130. package/lib/bun/BunTargetPlugin.js +42 -0
  131. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  132. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  133. package/lib/cache/IdleFileCachePlugin.js +6 -1
  134. package/lib/cache/MemoryCachePlugin.js +1 -1
  135. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  136. package/lib/cache/PackFileCacheStrategy.js +302 -12
  137. package/lib/cache/ResolverCachePlugin.js +12 -1
  138. package/lib/cache/getLazyHashedEtag.js +13 -2
  139. package/lib/cache/mergeEtags.js +4 -0
  140. package/lib/cli.js +142 -20
  141. package/lib/config/browserslistTargetHandler.js +141 -0
  142. package/lib/config/defaults.js +612 -43
  143. package/lib/config/defineConfig.js +31 -0
  144. package/lib/config/normalization.js +46 -1
  145. package/lib/config/target.js +200 -2
  146. package/lib/container/ContainerEntryDependency.js +2 -0
  147. package/lib/container/ContainerEntryModule.js +27 -14
  148. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  149. package/lib/container/ContainerExposedDependency.js +6 -2
  150. package/lib/container/ContainerPlugin.js +2 -1
  151. package/lib/container/ContainerReferencePlugin.js +3 -2
  152. package/lib/container/FallbackDependency.js +9 -7
  153. package/lib/container/FallbackItemDependency.js +1 -0
  154. package/lib/container/FallbackModule.js +22 -9
  155. package/lib/container/FallbackModuleFactory.js +1 -0
  156. package/lib/container/HoistContainerReferencesPlugin.js +47 -55
  157. package/lib/container/ModuleFederationPlugin.js +21 -29
  158. package/lib/container/RemoteModule.js +33 -10
  159. package/lib/container/RemoteRuntimeModule.js +15 -12
  160. package/lib/container/RemoteToExternalDependency.js +1 -0
  161. package/lib/container/options.js +7 -0
  162. package/lib/css/CssGenerator.js +540 -272
  163. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  164. package/lib/css/CssLoadingRuntimeModule.js +173 -81
  165. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  166. package/lib/css/CssModulesPlugin.js +371 -208
  167. package/lib/css/CssParser.js +3538 -1963
  168. package/lib/css/syntax.js +4155 -0
  169. package/lib/debug/ProfilingPlugin.js +33 -2
  170. package/lib/deno/DenoTargetPlugin.js +41 -0
  171. package/lib/dependencies/AMDDefineDependency.js +29 -17
  172. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  173. package/lib/dependencies/AMDPlugin.js +6 -3
  174. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  175. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  176. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  177. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  178. package/lib/dependencies/AMDRequireDependency.js +28 -20
  179. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  180. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  181. package/lib/dependencies/CachedConstDependency.js +9 -1
  182. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  183. package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
  184. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  185. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  186. package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
  187. package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
  188. package/lib/dependencies/CommonJsPlugin.js +7 -4
  189. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  190. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  191. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  192. package/lib/dependencies/ConstDependency.js +22 -12
  193. package/lib/dependencies/ContextDependency.js +13 -2
  194. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  195. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  196. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  197. package/lib/dependencies/ContextElementDependency.js +27 -14
  198. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  199. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  200. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  201. package/lib/dependencies/CssIcssExportDependency.js +681 -367
  202. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  203. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  204. package/lib/dependencies/CssImportDependency.js +37 -1
  205. package/lib/dependencies/CssUrlDependency.js +87 -14
  206. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  207. package/lib/dependencies/DllEntryDependency.js +12 -13
  208. package/lib/dependencies/DynamicExports.js +5 -0
  209. package/lib/dependencies/EntryDependency.js +1 -0
  210. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  211. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  212. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  213. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  214. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  215. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  216. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  217. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  218. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  219. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
  220. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  221. package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
  222. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
  224. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  226. package/lib/dependencies/HarmonyExports.js +6 -1
  227. package/lib/dependencies/HarmonyImportDependency.js +60 -4
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  229. package/lib/dependencies/HarmonyImportGuard.js +427 -0
  230. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  231. package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
  232. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  233. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  234. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  235. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  236. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  237. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  238. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  239. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  240. package/lib/dependencies/ImportContextDependency.js +9 -9
  241. package/lib/dependencies/ImportDependency.js +92 -3
  242. package/lib/dependencies/ImportEagerDependency.js +2 -0
  243. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  244. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  245. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  246. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  247. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  248. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  249. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  250. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  251. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  252. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  253. package/lib/dependencies/ImportParserPlugin.js +114 -27
  254. package/lib/dependencies/ImportPhase.js +17 -11
  255. package/lib/dependencies/ImportPlugin.js +2 -1
  256. package/lib/dependencies/ImportWeakDependency.js +3 -0
  257. package/lib/dependencies/JsonExportsDependency.js +15 -10
  258. package/lib/dependencies/LoaderDependency.js +2 -0
  259. package/lib/dependencies/LoaderImportDependency.js +3 -0
  260. package/lib/dependencies/LoaderPlugin.js +9 -2
  261. package/lib/dependencies/LocalModule.js +15 -12
  262. package/lib/dependencies/LocalModuleDependency.js +15 -13
  263. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  264. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  265. package/lib/dependencies/ModuleDependency.js +14 -0
  266. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  267. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  268. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  269. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  270. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  271. package/lib/dependencies/NullDependency.js +2 -0
  272. package/lib/dependencies/PrefetchDependency.js +1 -0
  273. package/lib/dependencies/ProvidedDependency.js +36 -27
  274. package/lib/dependencies/PureExpressionDependency.js +14 -10
  275. package/lib/dependencies/RequireContextDependency.js +1 -0
  276. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  277. package/lib/dependencies/RequireContextPlugin.js +2 -1
  278. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  279. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  280. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  281. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  282. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  283. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  284. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  285. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  286. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  287. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  288. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  289. package/lib/dependencies/RequireResolveDependency.js +2 -0
  290. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  291. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  292. package/lib/dependencies/StaticExportsDependency.js +13 -10
  293. package/lib/dependencies/SystemPlugin.js +9 -6
  294. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  295. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  296. package/lib/dependencies/URLContextDependency.js +8 -7
  297. package/lib/dependencies/URLDependency.js +157 -33
  298. package/lib/dependencies/URLPlugin.js +2 -0
  299. package/lib/dependencies/UnsupportedDependency.js +12 -13
  300. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  301. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  302. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  303. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  304. package/lib/dependencies/WorkerDependency.js +111 -27
  305. package/lib/dependencies/WorkletDependency.js +278 -0
  306. package/lib/dependencies/getFunctionExpression.js +1 -0
  307. package/lib/dependencies/processExportInfo.js +14 -11
  308. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  309. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  310. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  311. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  312. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  313. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  314. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  315. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  316. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  317. package/lib/electron/ElectronTargetPlugin.js +24 -5
  318. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  319. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  320. package/lib/errors/BuildCycleError.js +1 -1
  321. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  322. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  323. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  324. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  325. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  326. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  327. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  328. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  329. package/lib/errors/JSONParseError.js +115 -0
  330. package/lib/errors/LoaderLoadingError.js +20 -0
  331. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  332. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  333. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  334. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  335. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  336. package/lib/errors/ModuleNotFoundError.js +94 -0
  337. package/lib/errors/ModuleParseError.js +141 -0
  338. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  339. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  340. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  341. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  342. package/lib/errors/NonErrorEmittedError.js +30 -0
  343. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  344. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  345. package/lib/errors/WebpackError.js +84 -0
  346. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  347. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  348. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  349. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
  350. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  351. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  352. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  353. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  354. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  355. package/lib/hmr/lazyCompilationBackend.js +53 -12
  356. package/lib/html/HtmlGenerator.js +1490 -0
  357. package/lib/html/HtmlModule.js +41 -0
  358. package/lib/html/HtmlModulesPlugin.js +1129 -0
  359. package/lib/html/HtmlParser.js +1970 -0
  360. package/lib/html/favicon.svg +1 -0
  361. package/lib/html/syntax.js +9106 -0
  362. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  363. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  364. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  365. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  366. package/lib/ids/IdHelpers.js +49 -12
  367. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  368. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  369. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  370. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  371. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  372. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  373. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  374. package/lib/index.js +66 -15
  375. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  376. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  377. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  378. package/lib/javascript/ChunkHelpers.js +1 -0
  379. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  380. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  381. package/lib/javascript/JavascriptGenerator.js +213 -51
  382. package/lib/javascript/JavascriptModule.js +54 -0
  383. package/lib/javascript/JavascriptModulesPlugin.js +628 -198
  384. package/lib/javascript/JavascriptParser.js +1334 -471
  385. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  386. package/lib/javascript/StartupHelpers.js +5 -0
  387. package/lib/javascript/syntax.js +5037 -0
  388. package/lib/json/JsonData.js +5 -0
  389. package/lib/json/JsonGenerator.js +21 -0
  390. package/lib/json/JsonModule.js +40 -0
  391. package/lib/json/JsonModulesPlugin.js +8 -1
  392. package/lib/json/JsonParser.js +18 -27
  393. package/lib/library/AbstractLibraryPlugin.js +17 -2
  394. package/lib/library/AmdLibraryPlugin.js +8 -0
  395. package/lib/library/AssignLibraryPlugin.js +21 -3
  396. package/lib/library/EnableLibraryPlugin.js +8 -2
  397. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  398. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  399. package/lib/library/JsonpLibraryPlugin.js +8 -0
  400. package/lib/library/ModuleLibraryPlugin.js +154 -7
  401. package/lib/library/SystemLibraryPlugin.js +11 -3
  402. package/lib/library/UmdLibraryPlugin.js +16 -0
  403. package/lib/loaders/LoaderRunner.js +714 -0
  404. package/lib/loaders/loadLoader.js +100 -0
  405. package/lib/logging/Logger.js +17 -0
  406. package/lib/logging/createConsoleLogger.js +7 -0
  407. package/lib/logging/runtime.js +2 -0
  408. package/lib/logging/truncateArgs.js +2 -0
  409. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  410. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  411. package/lib/node/NodeSourcePlugin.js +1 -1
  412. package/lib/node/NodeTargetPlugin.js +4 -63
  413. package/lib/node/NodeTemplatePlugin.js +3 -1
  414. package/lib/node/NodeWatchFileSystem.js +40 -22
  415. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  416. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
  417. package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
  418. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  419. package/lib/node/nodeBuiltins.js +80 -0
  420. package/lib/node/nodeConsole.js +116 -64
  421. package/lib/optimize/AggressiveMergingPlugin.js +22 -16
  422. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  423. package/lib/optimize/ConcatenatedModule.js +603 -130
  424. package/lib/optimize/ConstExportsPlugin.js +211 -0
  425. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  426. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  427. package/lib/optimize/InlineExports.js +178 -0
  428. package/lib/optimize/InnerGraph.js +374 -262
  429. package/lib/optimize/InnerGraphPlugin.js +246 -117
  430. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  431. package/lib/optimize/MangleExportsPlugin.js +5 -1
  432. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  433. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  434. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  435. package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
  436. package/lib/optimize/RealContentHashPlugin.js +130 -52
  437. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  438. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  439. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  440. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  441. package/lib/optimize/SplitChunksPlugin.js +200 -50
  442. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  443. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  444. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  445. package/lib/performance/SizeLimitsPlugin.js +8 -2
  446. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  448. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  449. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  450. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  451. package/lib/prefetch/ResourceHintPlugin.js +687 -0
  452. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  453. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  454. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  455. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  456. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  457. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  458. package/lib/rules/RuleSetCompiler.js +132 -0
  459. package/lib/rules/UseEffectRulePlugin.js +10 -3
  460. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  461. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  462. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  463. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  464. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  465. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  466. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  467. package/lib/runtime/CompatRuntimeModule.js +2 -0
  468. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  469. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  470. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  471. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  472. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  473. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  474. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  475. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  476. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  477. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  478. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  479. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  480. package/lib/runtime/HelperRuntimeModule.js +5 -0
  481. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  482. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  483. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  484. package/lib/runtime/NonceRuntimeModule.js +1 -0
  485. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  486. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  487. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  488. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  489. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  490. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  491. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  492. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  493. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  494. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  495. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  496. package/lib/schemes/DataUriPlugin.js +14 -2
  497. package/lib/schemes/FileUriPlugin.js +1 -1
  498. package/lib/schemes/HttpUriPlugin.js +86 -4
  499. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  500. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  501. package/lib/serialization/ArraySerializer.js +6 -8
  502. package/lib/serialization/BinaryMiddleware.js +427 -1006
  503. package/lib/serialization/DateObjectSerializer.js +4 -2
  504. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  505. package/lib/serialization/FileMiddleware.js +345 -59
  506. package/lib/serialization/MapObjectSerializer.js +7 -9
  507. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  508. package/lib/serialization/ObjectMiddleware.js +73 -13
  509. package/lib/serialization/PlainObjectSerializer.js +16 -8
  510. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  511. package/lib/serialization/Serializer.js +6 -0
  512. package/lib/serialization/SerializerMiddleware.js +14 -2
  513. package/lib/serialization/SetObjectSerializer.js +6 -8
  514. package/lib/serialization/SingleItemMiddleware.js +3 -0
  515. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  516. package/lib/sharing/ConsumeSharedModule.js +21 -7
  517. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  518. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  519. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  520. package/lib/sharing/ProvideSharedDependency.js +34 -15
  521. package/lib/sharing/ProvideSharedModule.js +42 -12
  522. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  523. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  524. package/lib/sharing/SharePlugin.js +5 -1
  525. package/lib/sharing/ShareRuntimeModule.js +19 -16
  526. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  527. package/lib/sharing/utils.js +9 -1
  528. package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
  529. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  530. package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
  531. package/lib/stats/StatsFactory.js +70 -27
  532. package/lib/stats/StatsPrinter.js +16 -2
  533. package/lib/typescript/TypeScriptPlugin.js +210 -0
  534. package/lib/url/URLParserPlugin.js +111 -23
  535. package/lib/util/ArrayHelpers.js +1 -0
  536. package/lib/util/ArrayQueue.js +10 -5
  537. package/lib/util/AsyncQueue.js +154 -74
  538. package/lib/util/Hash.js +2 -2
  539. package/lib/util/IterableHelpers.js +3 -0
  540. package/lib/util/LazyBucketSortedSet.js +26 -0
  541. package/lib/util/LazySet.js +45 -4
  542. package/lib/util/LocConverter.js +64 -0
  543. package/lib/util/ParallelismFactorCalculator.js +1 -0
  544. package/lib/util/Queue.js +6 -3
  545. package/lib/util/Semaphore.js +15 -1
  546. package/lib/util/SetHelpers.js +4 -1
  547. package/lib/util/SortableSet.js +7 -1
  548. package/lib/util/SourceProcessor.js +119 -0
  549. package/lib/util/StackedCacheMap.js +20 -3
  550. package/lib/util/StackedMap.js +162 -43
  551. package/lib/util/StringXor.js +1 -1
  552. package/lib/util/TupleQueue.js +7 -3
  553. package/lib/util/TupleSet.js +14 -0
  554. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  555. package/lib/util/WeakTupleMap.js +60 -1
  556. package/lib/util/binarySearchBounds.js +3 -2
  557. package/lib/util/chainedImports.js +3 -3
  558. package/lib/util/cleverMerge.js +19 -2
  559. package/lib/util/comparators.js +35 -4
  560. package/lib/util/compileBooleanMatcher.js +9 -0
  561. package/lib/util/concatenate.js +80 -24
  562. package/lib/util/conventions.js +46 -1
  563. package/lib/util/createHash.js +0 -1
  564. package/lib/util/createHooksRegistry.js +43 -0
  565. package/lib/util/createMappings.js +118 -0
  566. package/lib/util/dataURL.js +3 -2
  567. package/lib/util/deprecation.js +19 -0
  568. package/lib/util/deterministicGrouping.js +46 -17
  569. package/lib/util/extractSourceMap.js +2 -1
  570. package/lib/util/extractUrlAndGlobal.js +1 -0
  571. package/lib/util/findGraphRoots.js +7 -0
  572. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  573. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  574. package/lib/util/fs.js +87 -14
  575. package/lib/util/generateDebugId.js +1 -0
  576. package/lib/util/globUtils.js +710 -0
  577. package/lib/util/hash/BatchedHash.js +1 -0
  578. package/lib/util/hash/BulkUpdateHash.js +1 -0
  579. package/lib/util/hash/DebugHash.js +1 -0
  580. package/lib/util/hash/hash-digest.js +32 -15
  581. package/lib/util/hash/md4.js +1 -1
  582. package/lib/util/hash/wasm-hash.js +5 -0
  583. package/lib/util/hash/xxhash64.js +1 -1
  584. package/lib/util/identifier.js +118 -7
  585. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  586. package/lib/util/internalSerializables.js +102 -60
  587. package/lib/util/magicComment.js +149 -7
  588. package/lib/util/makeSerializable.js +7 -0
  589. package/lib/util/memoize.js +2 -0
  590. package/lib/util/mimeTypes.js +176 -0
  591. package/lib/util/nonNumericOnlyHash.js +31 -1
  592. package/lib/util/numberHash.js +2 -2
  593. package/lib/util/parseJson.js +41 -0
  594. package/lib/util/processAsyncTree.js +8 -0
  595. package/lib/util/property.js +9 -2
  596. package/lib/util/publicPathPlaceholder.js +64 -0
  597. package/lib/util/registerExternalSerializer.js +24 -4
  598. package/lib/util/removeBOM.js +1 -0
  599. package/lib/util/runtime.js +32 -0
  600. package/lib/util/semver.js +15 -0
  601. package/lib/util/serialization.js +2 -0
  602. package/lib/util/smartGrouping.js +8 -0
  603. package/lib/util/source.js +23 -0
  604. package/lib/util/topologicalSort.js +69 -0
  605. package/lib/validateSchema.js +1 -0
  606. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  607. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  608. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  609. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  610. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  611. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  612. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  613. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  614. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  615. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  616. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  617. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  618. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  619. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  620. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  621. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  622. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  623. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  624. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  625. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  626. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  627. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  628. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  629. package/lib/web/JsonpTemplatePlugin.js +2 -1
  630. package/lib/webpack.js +78 -1
  631. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  632. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  633. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  634. package/module.d.ts +21 -0
  635. package/package.json +79 -77
  636. package/schemas/WebpackOptions.check.js +1 -1
  637. package/schemas/WebpackOptions.json +1173 -80
  638. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  639. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  640. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  641. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  642. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  643. package/schemas/plugins/HtmlParserOptions.json +3 -0
  644. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  645. package/schemas/plugins/ProgressPlugin.json +38 -0
  646. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  647. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  648. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  649. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  650. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  652. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  653. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  654. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  655. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  656. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  657. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  658. package/types.d.ts +11053 -3019
  659. package/lib/CaseSensitiveModulesWarning.js +0 -72
  660. package/lib/GraphHelpers.js +0 -46
  661. package/lib/ModuleParseError.js +0 -125
  662. package/lib/NoModeWarning.js +0 -23
  663. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  664. package/lib/css/walkCssTokens.js +0 -1843
  665. package/lib/util/AppendOnlyStackedSet.js +0 -78
  666. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  668. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  669. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -14,6 +14,7 @@ const { register } = require("../util/serialization");
14
14
 
15
15
  class JsonData {
16
16
  /**
17
+ * Creates an instance of JsonData.
17
18
  * @param {Buffer | JsonValue} data JSON data
18
19
  */
19
20
  constructor(data) {
@@ -29,6 +30,7 @@ class JsonData {
29
30
  }
30
31
 
31
32
  /**
33
+ * Returns raw JSON data.
32
34
  * @returns {JsonValue | undefined} Raw JSON data
33
35
  */
34
36
  get() {
@@ -39,6 +41,7 @@ class JsonData {
39
41
  }
40
42
 
41
43
  /**
44
+ * Updates the hash with the data contributed by this instance.
42
45
  * @param {Hash} hash hash to be updated
43
46
  * @returns {void} the updated hash
44
47
  */
@@ -53,6 +56,7 @@ class JsonData {
53
56
 
54
57
  register(JsonData, "webpack/lib/json/JsonData", null, {
55
58
  /**
59
+ * Serializes this instance into the provided serializer context.
56
60
  * @param {JsonData} obj JSONData object
57
61
  * @param {ObjectSerializerContext} context context
58
62
  */
@@ -63,6 +67,7 @@ register(JsonData, "webpack/lib/json/JsonData", null, {
63
67
  write(obj._buffer);
64
68
  },
65
69
  /**
70
+ * Restores this instance from the provided deserializer context.
66
71
  * @param {ObjectDeserializerContext} context context
67
72
  * @returns {JsonData} deserialized JSON data
68
73
  */
@@ -16,6 +16,8 @@ const RuntimeGlobals = require("../RuntimeGlobals");
16
16
  /** @typedef {import("../../declarations/WebpackOptions").JsonGeneratorOptions} JsonGeneratorOptions */
17
17
  /** @typedef {import("../ExportsInfo")} ExportsInfo */
18
18
  /** @typedef {import("../Generator").GenerateContext} GenerateContext */
19
+ /** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */
20
+ /** @typedef {import("../util/Hash")} Hash */
19
21
  /** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */
20
22
  /** @typedef {import("../Module").SourceType} SourceType */
21
23
  /** @typedef {import("../Module").SourceTypes} SourceTypes */
@@ -26,6 +28,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
26
28
  /** @typedef {import("../util/fs").JsonValue} JsonValue */
27
29
 
28
30
  /**
31
+ * Returns stringified data.
29
32
  * @param {JsonValue} data Raw JSON data
30
33
  * @returns {undefined | string} stringified data
31
34
  */
@@ -41,6 +44,7 @@ const stringifySafe = (data) => {
41
44
  };
42
45
 
43
46
  /**
47
+ * Creates an object for exports info.
44
48
  * @param {JsonObject | JsonArray} data Raw JSON data (always an object or array)
45
49
  * @param {ExportsInfo} exportsInfo exports info
46
50
  * @param {RuntimeSpec} runtime the runtime
@@ -121,6 +125,7 @@ const createObjectForExportsInfo = (data, exportsInfo, runtime) => {
121
125
 
122
126
  class JsonGenerator extends Generator {
123
127
  /**
128
+ * Creates an instance of JsonGenerator.
124
129
  * @param {JsonGeneratorOptions} options options
125
130
  */
126
131
  constructor(options) {
@@ -130,6 +135,7 @@ class JsonGenerator extends Generator {
130
135
  }
131
136
 
132
137
  /**
138
+ * Returns the source types available for this module.
133
139
  * @param {NormalModule} module fresh module
134
140
  * @returns {SourceTypes} available types (do not mutate)
135
141
  */
@@ -138,6 +144,7 @@ class JsonGenerator extends Generator {
138
144
  }
139
145
 
140
146
  /**
147
+ * Returns the estimated size for the requested source type.
141
148
  * @param {NormalModule} module the module
142
149
  * @param {SourceType=} type source type
143
150
  * @returns {number} estimate size of the module
@@ -153,6 +160,7 @@ class JsonGenerator extends Generator {
153
160
  }
154
161
 
155
162
  /**
163
+ * Returns the reason this module cannot be concatenated, when one exists.
156
164
  * @param {NormalModule} module module for which the bailout reason should be determined
157
165
  * @param {ConcatenationBailoutReasonContext} context context
158
166
  * @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
@@ -162,6 +170,7 @@ class JsonGenerator extends Generator {
162
170
  }
163
171
 
164
172
  /**
173
+ * Generates generated code for this runtime module.
165
174
  * @param {NormalModule} module module for which the code should be generated
166
175
  * @param {GenerateContext} generateContext context for generate
167
176
  * @returns {Source | null} generated code
@@ -221,6 +230,7 @@ class JsonGenerator extends Generator {
221
230
  }
222
231
 
223
232
  /**
233
+ * Generates fallback output for the provided error condition.
224
234
  * @param {Error} error the error
225
235
  * @param {NormalModule} module module for which the code should be generated
226
236
  * @param {GenerateContext} generateContext context for generate
@@ -229,6 +239,17 @@ class JsonGenerator extends Generator {
229
239
  generateError(error, module, generateContext) {
230
240
  return new RawSource(`throw new Error(${JSON.stringify(error.message)});`);
231
241
  }
242
+
243
+ /**
244
+ * Updates the hash with the data contributed by this instance.
245
+ * @param {Hash} hash hash that will be modified
246
+ * @param {UpdateHashContext} updateHashContext context for updating hash
247
+ */
248
+ updateHash(hash, updateHashContext) {
249
+ if (this.options.JSONParse) {
250
+ hash.update("json-parse");
251
+ }
252
+ }
232
253
  }
233
254
 
234
255
  module.exports = JsonGenerator;
@@ -0,0 +1,40 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ */
4
+
5
+ "use strict";
6
+
7
+ const NormalModule = require("../NormalModule");
8
+ const makeSerializable = require("../util/makeSerializable");
9
+
10
+ /** @typedef {import("../NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
11
+ /** @typedef {import("../NormalModule").NormalModuleCreateData} NormalModuleCreateData */
12
+ /** @typedef {import("./JsonData")} JsonData */
13
+
14
+ /**
15
+ * Defines the build info properties specific to json modules.
16
+ * @typedef {object} KnownJsonModuleBuildInfo
17
+ * @property {JsonData=} jsonData
18
+ */
19
+
20
+ /** @typedef {NormalModuleBuildInfo & KnownJsonModuleBuildInfo} JsonModuleBuildInfo */
21
+
22
+ /**
23
+ * Module class for `json` modules. JSON-specific properties should live here instead of `NormalModule`.
24
+ */
25
+ class JsonModule extends NormalModule {
26
+ /**
27
+ * @param {NormalModuleCreateData} options options object
28
+ */
29
+ constructor(options) {
30
+ super(options);
31
+
32
+ // Redeclared with the json specific shape
33
+ /** @type {JsonModuleBuildInfo | undefined} */
34
+ this.buildInfo = undefined;
35
+ }
36
+ }
37
+
38
+ makeSerializable(JsonModule, "webpack/lib/json/JsonModule");
39
+
40
+ module.exports = JsonModule;
@@ -7,6 +7,7 @@
7
7
 
8
8
  const { JSON_MODULE_TYPE } = require("../ModuleTypeConstants");
9
9
  const JsonGenerator = require("./JsonGenerator");
10
+ const JsonModule = require("./JsonModule");
10
11
  const JsonParser = require("./JsonParser");
11
12
 
12
13
  /** @typedef {import("../Compiler")} Compiler */
@@ -19,7 +20,7 @@ const PLUGIN_NAME = "JsonModulesPlugin";
19
20
  */
20
21
  class JsonModulesPlugin {
21
22
  /**
22
- * Apply the plugin
23
+ * Applies the plugin by registering its hooks on the compiler.
23
24
  * @param {Compiler} compiler the compiler instance
24
25
  * @returns {void}
25
26
  */
@@ -27,6 +28,12 @@ class JsonModulesPlugin {
27
28
  compiler.hooks.compilation.tap(
28
29
  PLUGIN_NAME,
29
30
  (compilation, { normalModuleFactory }) => {
31
+ normalModuleFactory.hooks.createModuleClass
32
+ .for(JSON_MODULE_TYPE)
33
+ .tap(
34
+ PLUGIN_NAME,
35
+ (createData, _resolveData) => new JsonModule(createData)
36
+ );
30
37
  normalModuleFactory.hooks.createParser
31
38
  .for(JSON_MODULE_TYPE)
32
39
  .tap(PLUGIN_NAME, (parserOptions) => {
@@ -7,37 +7,37 @@
7
7
 
8
8
  const Parser = require("../Parser");
9
9
  const JsonExportsDependency = require("../dependencies/JsonExportsDependency");
10
- const memoize = require("../util/memoize");
10
+ const parseJson = require("../util/parseJson");
11
11
  const JsonData = require("./JsonData");
12
12
 
13
- /** @typedef {import("../../declarations/plugins/JsonModulesPluginParser").JsonModulesPluginParserOptions} JsonModulesPluginParserOptions */
14
- /** @typedef {import("../Module").BuildInfo} BuildInfo */
13
+ /** @typedef {import("../../declarations/WebpackOptions").JsonParserOptions} JsonParserOptions */
14
+ /** @typedef {import("./JsonModule").JsonModuleBuildInfo} JsonModuleBuildInfo */
15
15
  /** @typedef {import("../Module").BuildMeta} BuildMeta */
16
16
  /** @typedef {import("../Parser").ParserState} ParserState */
17
17
  /** @typedef {import("../Parser").PreparsedAst} PreparsedAst */
18
18
  /** @typedef {import("../util/fs").JsonValue} JsonValue */
19
19
 
20
+ /** @typedef {(input: string) => Buffer | JsonValue} ParseFn */
21
+
20
22
  /**
23
+ * Defines the function returning type used by this module.
21
24
  * @template T
22
25
  * @typedef {import("../util/memoize").FunctionReturning<T>} FunctionReturning
23
26
  */
24
27
 
25
- /** @typedef {(input: string) => Buffer | JsonValue} ParseFn */
26
-
27
- /** @type {FunctionReturning<ParseFn>} */
28
- const getParseJson = memoize(() => require("json-parse-even-better-errors"));
29
-
30
28
  class JsonParser extends Parser {
31
29
  /**
32
- * @param {JsonModulesPluginParserOptions} options parser options
30
+ * Creates an instance of JsonParser.
31
+ * @param {JsonParserOptions} options parser options
33
32
  */
34
33
  constructor(options = {}) {
35
34
  super();
36
- /** @type {JsonModulesPluginParserOptions} */
35
+ /** @type {JsonParserOptions} */
37
36
  this.options = options;
38
37
  }
39
38
 
40
39
  /**
40
+ * Parses the provided source and updates the parser state.
41
41
  * @param {string | Buffer | PreparsedAst} source the source to parse
42
42
  * @param {ParserState} state the parser state
43
43
  * @returns {ParserState} the parser state
@@ -47,26 +47,17 @@ class JsonParser extends Parser {
47
47
  source = source.toString("utf8");
48
48
  }
49
49
 
50
- /** @type {ParseFn} */
51
50
  const parseFn =
52
- typeof this.options.parse === "function"
53
- ? this.options.parse
54
- : getParseJson();
51
+ typeof this.options.parse === "function" ? this.options.parse : parseJson;
55
52
  /** @type {Buffer | JsonValue | undefined} */
56
- let data;
57
- try {
58
- data =
59
- typeof source === "object"
60
- ? source
61
- : parseFn(source[0] === "\uFEFF" ? source.slice(1) : source);
62
- } catch (err) {
63
- throw new Error(
64
- `Cannot parse JSON: ${/** @type {Error} */ (err).message}`,
65
- { cause: err }
66
- );
67
- }
53
+ const data =
54
+ typeof source === "object"
55
+ ? source
56
+ : parseFn(source[0] === "\uFEFF" ? source.slice(1) : source);
68
57
  const jsonData = new JsonData(/** @type {Buffer | JsonValue} */ (data));
69
- const buildInfo = /** @type {BuildInfo} */ (state.module.buildInfo);
58
+ const buildInfo = /** @type {JsonModuleBuildInfo} */ (
59
+ state.module.buildInfo
60
+ );
70
61
  buildInfo.jsonData = jsonData;
71
62
  buildInfo.strict = true;
72
63
  const buildMeta = /** @type {BuildMeta} */ (state.module.buildMeta);
@@ -27,6 +27,7 @@ const COMMON_LIBRARY_NAME_MESSAGE =
27
27
  "Common configuration options that specific library names are 'output.library[.name]', 'entry.xyz.library[.name]', 'ModuleFederationPlugin.name' and 'ModuleFederationPlugin.library[.name]'.";
28
28
 
29
29
  /**
30
+ * Defines the library context type used by this module.
30
31
  * @template T
31
32
  * @typedef {object} LibraryContext
32
33
  * @property {Compilation} compilation
@@ -35,16 +36,19 @@ const COMMON_LIBRARY_NAME_MESSAGE =
35
36
  */
36
37
 
37
38
  /**
39
+ * Defines the abstract library plugin options type used by this module.
38
40
  * @typedef {object} AbstractLibraryPluginOptions
39
41
  * @property {string} pluginName name of the plugin
40
42
  * @property {LibraryType} type used library type
41
43
  */
42
44
 
43
45
  /**
46
+ * Represents AbstractLibraryPlugin.
44
47
  * @template T
45
48
  */
46
49
  class AbstractLibraryPlugin {
47
50
  /**
51
+ * Creates an instance of AbstractLibraryPlugin.
48
52
  * @param {AbstractLibraryPluginOptions} options options
49
53
  */
50
54
  constructor({ pluginName, type }) {
@@ -57,7 +61,7 @@ class AbstractLibraryPlugin {
57
61
  }
58
62
 
59
63
  /**
60
- * Apply the plugin
64
+ * Applies the plugin by registering its hooks on the compiler.
61
65
  * @param {Compiler} compiler the compiler instance
62
66
  * @returns {void}
63
67
  */
@@ -97,6 +101,7 @@ class AbstractLibraryPlugin {
97
101
  );
98
102
 
99
103
  /**
104
+ * Gets options for chunk.
100
105
  * @param {Chunk} chunk chunk
101
106
  * @returns {T | false} options for the chunk
102
107
  */
@@ -222,6 +227,7 @@ class AbstractLibraryPlugin {
222
227
  }
223
228
 
224
229
  /**
230
+ * Parse options cached.
225
231
  * @param {LibraryOptions=} library normalized library option
226
232
  * @returns {T | false} preprocess as needed by overriding
227
233
  */
@@ -237,17 +243,19 @@ class AbstractLibraryPlugin {
237
243
 
238
244
  /* istanbul ignore next */
239
245
  /**
246
+ * Returns preprocess as needed by overriding.
240
247
  * @abstract
241
248
  * @param {LibraryOptions} library normalized library option
242
249
  * @returns {T} preprocess as needed by overriding
243
250
  */
244
251
  parseOptions(library) {
245
- const AbstractMethodError = require("../AbstractMethodError");
252
+ const AbstractMethodError = require("../errors/AbstractMethodError");
246
253
 
247
254
  throw new AbstractMethodError();
248
255
  }
249
256
 
250
257
  /**
258
+ * Finish entry module.
251
259
  * @param {Module} module the exporting entry module
252
260
  * @param {string} entryName the name of the entrypoint
253
261
  * @param {LibraryContext<T>} libraryContext context
@@ -256,6 +264,7 @@ class AbstractLibraryPlugin {
256
264
  finishEntryModule(module, entryName, libraryContext) {}
257
265
 
258
266
  /**
267
+ * Embed in runtime bailout.
259
268
  * @param {Module} module the exporting entry module
260
269
  * @param {RenderContext} renderContext render context
261
270
  * @param {LibraryContext<T>} libraryContext context
@@ -266,6 +275,7 @@ class AbstractLibraryPlugin {
266
275
  }
267
276
 
268
277
  /**
278
+ * Strict runtime bailout.
269
279
  * @param {RenderContext} renderContext render context
270
280
  * @param {LibraryContext<T>} libraryContext context
271
281
  * @returns {string | undefined} bailout reason
@@ -275,6 +285,7 @@ class AbstractLibraryPlugin {
275
285
  }
276
286
 
277
287
  /**
288
+ * Processes the provided chunk.
278
289
  * @param {Chunk} chunk the chunk
279
290
  * @param {RuntimeRequirements} set runtime requirements
280
291
  * @param {LibraryContext<T>} libraryContext context
@@ -287,6 +298,7 @@ class AbstractLibraryPlugin {
287
298
  }
288
299
 
289
300
  /**
301
+ * Returns source with library export.
290
302
  * @param {Source} source source
291
303
  * @param {RenderContext} renderContext render context
292
304
  * @param {LibraryContext<T>} libraryContext context
@@ -297,6 +309,7 @@ class AbstractLibraryPlugin {
297
309
  }
298
310
 
299
311
  /**
312
+ * Renders source with library export.
300
313
  * @param {Source} source source
301
314
  * @param {Module} module module
302
315
  * @param {StartupRenderContext} renderContext render context
@@ -308,6 +321,7 @@ class AbstractLibraryPlugin {
308
321
  }
309
322
 
310
323
  /**
324
+ * Renders module content.
311
325
  * @param {Source} source source
312
326
  * @param {Module} module module
313
327
  * @param {ModuleRenderContext} renderContext render context
@@ -319,6 +333,7 @@ class AbstractLibraryPlugin {
319
333
  }
320
334
 
321
335
  /**
336
+ * Processes the provided chunk.
322
337
  * @param {Chunk} chunk the chunk
323
338
  * @param {Hash} hash hash
324
339
  * @param {ChunkHashContext} chunkHashContext chunk hash context
@@ -18,28 +18,33 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
18
18
  /** @typedef {import("../javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
19
19
  /** @typedef {import("../util/Hash")} Hash */
20
20
  /**
21
+ * Defines the shared type used by this module.
21
22
  * @template T
22
23
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
23
24
  */
24
25
 
25
26
  /**
27
+ * Defines the amd library plugin options type used by this module.
26
28
  * @typedef {object} AmdLibraryPluginOptions
27
29
  * @property {LibraryType} type
28
30
  * @property {boolean=} requireAsWrapper
29
31
  */
30
32
 
31
33
  /**
34
+ * Defines the amd library plugin parsed type used by this module.
32
35
  * @typedef {object} AmdLibraryPluginParsed
33
36
  * @property {string} name
34
37
  * @property {string} amdContainer
35
38
  */
36
39
 
37
40
  /**
41
+ * Represents the amd library plugin runtime component.
38
42
  * @typedef {AmdLibraryPluginParsed} T
39
43
  * @extends {AbstractLibraryPlugin<AmdLibraryPluginParsed>}
40
44
  */
41
45
  class AmdLibraryPlugin extends AbstractLibraryPlugin {
42
46
  /**
47
+ * Creates an instance of AmdLibraryPlugin.
43
48
  * @param {AmdLibraryPluginOptions} options the plugin options
44
49
  */
45
50
  constructor(options) {
@@ -52,6 +57,7 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
52
57
  }
53
58
 
54
59
  /**
60
+ * Returns preprocess as needed by overriding.
55
61
  * @param {LibraryOptions} library normalized library option
56
62
  * @returns {T} preprocess as needed by overriding
57
63
  */
@@ -74,6 +80,7 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
74
80
  }
75
81
 
76
82
  /**
83
+ * Returns source with library export.
77
84
  * @param {Source} source source
78
85
  * @param {RenderContext} renderContext render context
79
86
  * @param {LibraryContext<T>} libraryContext context
@@ -155,6 +162,7 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin {
155
162
  }
156
163
 
157
164
  /**
165
+ * Processes the provided chunk.
158
166
  * @param {Chunk} chunk the chunk
159
167
  * @param {Hash} hash hash
160
168
  * @param {ChunkHashContext} chunkHashContext chunk hash context
@@ -28,6 +28,7 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
28
28
  /** @typedef {import("../util/Hash")} Hash */
29
29
 
30
30
  /**
31
+ * Defines the shared type used by this module.
31
32
  * @template T
32
33
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
33
34
  */
@@ -46,6 +47,7 @@ const isNameValid = (name) =>
46
47
  !KEYWORD_REGEX.test(name) && IDENTIFIER_REGEX.test(name);
47
48
 
48
49
  /**
50
+ * Returns code to access the accessor while initializing.
49
51
  * @param {string[]} accessor variable plus properties
50
52
  * @param {number} existingLength items of accessor that are existing already
51
53
  * @param {boolean=} initLast if the last property should also be initialized to an object
@@ -99,6 +101,7 @@ const accessWithInit = (accessor, existingLength, initLast = false) => {
99
101
  /** @typedef {string[] | "global"} LibraryPrefix */
100
102
 
101
103
  /**
104
+ * Defines the assign library plugin options type used by this module.
102
105
  * @typedef {object} AssignLibraryPluginOptions
103
106
  * @property {LibraryType} type
104
107
  * @property {LibraryPrefix} prefix name prefix
@@ -110,17 +113,20 @@ const accessWithInit = (accessor, existingLength, initLast = false) => {
110
113
  /** @typedef {string | string[]} LibraryName */
111
114
 
112
115
  /**
116
+ * Defines the assign library plugin parsed type used by this module.
113
117
  * @typedef {object} AssignLibraryPluginParsed
114
118
  * @property {LibraryName} name
115
119
  * @property {LibraryExport=} export
116
120
  */
117
121
 
118
122
  /**
123
+ * Represents the assign library plugin runtime component.
119
124
  * @typedef {AssignLibraryPluginParsed} T
120
125
  * @extends {AbstractLibraryPlugin<AssignLibraryPluginParsed>}
121
126
  */
122
127
  class AssignLibraryPlugin extends AbstractLibraryPlugin {
123
128
  /**
129
+ * Creates an instance of AssignLibraryPlugin.
124
130
  * @param {AssignLibraryPluginOptions} options the plugin options
125
131
  */
126
132
  constructor(options) {
@@ -139,6 +145,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
139
145
  }
140
146
 
141
147
  /**
148
+ * Returns preprocess as needed by overriding.
142
149
  * @param {LibraryOptions} library normalized library option
143
150
  * @returns {T} preprocess as needed by overriding
144
151
  */
@@ -163,6 +170,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
163
170
  }
164
171
 
165
172
  /**
173
+ * Finish entry module.
166
174
  * @param {Module} module the exporting entry module
167
175
  * @param {string} entryName the name of the entrypoint
168
176
  * @param {LibraryContext<T>} libraryContext context
@@ -181,6 +189,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
181
189
  );
182
190
  exportsInfo.setUsed(UsageState.Used, runtime);
183
191
  exportsInfo.canMangleUse = false;
192
+ exportsInfo.canInlineUse = false;
184
193
  } else {
185
194
  const exportsInfo = moduleGraph.getExportsInfo(module);
186
195
  exportsInfo.setUsedInUnknownWay(runtime);
@@ -189,6 +198,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
189
198
  }
190
199
 
191
200
  /**
201
+ * Returns the prefix.
192
202
  * @param {Compilation} compilation the compilation
193
203
  * @returns {LibraryPrefix} the prefix
194
204
  */
@@ -199,6 +209,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
199
209
  }
200
210
 
201
211
  /**
212
+ * Get resolved full name.
202
213
  * @param {AssignLibraryPluginParsed} options the library options
203
214
  * @param {Chunk} chunk the chunk
204
215
  * @param {Compilation} compilation the compilation
@@ -220,6 +231,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
220
231
  }
221
232
 
222
233
  /**
234
+ * Returns source with library export.
223
235
  * @param {Source} source source
224
236
  * @param {RenderContext} renderContext render context
225
237
  * @param {LibraryContext<T>} libraryContext context
@@ -248,6 +260,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
248
260
  }
249
261
 
250
262
  /**
263
+ * Embed in runtime bailout.
251
264
  * @param {Module} module the exporting entry module
252
265
  * @param {RenderContext} renderContext render context
253
266
  * @param {LibraryContext<T>} libraryContext context
@@ -277,6 +290,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
277
290
  }
278
291
 
279
292
  /**
293
+ * Strict runtime bailout.
280
294
  * @param {RenderContext} renderContext render context
281
295
  * @param {LibraryContext<T>} libraryContext context
282
296
  * @returns {string | undefined} bailout reason
@@ -294,6 +308,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
294
308
  }
295
309
 
296
310
  /**
311
+ * Renders source with library export.
297
312
  * @param {Source} source source
298
313
  * @param {Module} module module
299
314
  * @param {StartupRenderContext} renderContext render context
@@ -317,6 +332,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
317
332
  Array.isArray(options.export) ? options.export : [options.export]
318
333
  )
319
334
  : "";
335
+ const cst = compilation.runtimeTemplate.renderConst();
320
336
  const result = new ConcatSource(source);
321
337
  if (staticExports) {
322
338
  const exportsInfo = moduleGraph.getExportsInfo(module);
@@ -346,7 +362,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
346
362
  let exports = RuntimeGlobals.exports;
347
363
  if (exportAccess) {
348
364
  result.add(
349
- `var __webpack_exports_export__ = ${RuntimeGlobals.exports}${exportAccess};\n`
365
+ `${cst} __webpack_exports_export__ = ${RuntimeGlobals.exports}${exportAccess};\n`
350
366
  );
351
367
 
352
368
  exports = "__webpack_exports_export__";
@@ -372,7 +388,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
372
388
  );
373
389
  } else if (options.name ? this.named === "copy" : this.unnamed === "copy") {
374
390
  result.add(
375
- `var __webpack_export_target__ = ${accessWithInit(
391
+ `${cst} __webpack_export_target__ = ${accessWithInit(
376
392
  fullNameResolved,
377
393
  this._getPrefix(compilation).length,
378
394
  true
@@ -382,7 +398,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
382
398
  let exports = RuntimeGlobals.exports;
383
399
  if (exportAccess) {
384
400
  result.add(
385
- `var __webpack_exports_export__ = ${RuntimeGlobals.exports}${exportAccess};\n`
401
+ `${cst} __webpack_exports_export__ = ${RuntimeGlobals.exports}${exportAccess};\n`
386
402
  );
387
403
 
388
404
  exports = "__webpack_exports_export__";
@@ -406,6 +422,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
406
422
  }
407
423
 
408
424
  /**
425
+ * Processes the provided chunk.
409
426
  * @param {Chunk} chunk the chunk
410
427
  * @param {RuntimeRequirements} set runtime requirements
411
428
  * @param {LibraryContext<T>} libraryContext context
@@ -416,6 +433,7 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin {
416
433
  }
417
434
 
418
435
  /**
436
+ * Processes the provided chunk.
419
437
  * @param {Chunk} chunk the chunk
420
438
  * @param {Hash} hash hash
421
439
  * @param {ChunkHashContext} chunkHashContext chunk hash context
@@ -14,11 +14,13 @@
14
14
  const enabledTypes = new WeakMap();
15
15
 
16
16
  /**
17
+ * Defines the enable library plugin options type used by this module.
17
18
  * @typedef {object} EnableLibraryPluginOptions
18
19
  * @property {() => void=} additionalApply function that runs when applying the current plugin.
19
20
  */
20
21
 
21
22
  /**
23
+ * Returns enabled types.
22
24
  * @param {Compiler} compiler the compiler instance
23
25
  * @returns {LibraryTypes} enabled types
24
26
  */
@@ -34,6 +36,7 @@ const getEnabledTypes = (compiler) => {
34
36
 
35
37
  class EnableLibraryPlugin {
36
38
  /**
39
+ * Creates an instance of EnableLibraryPlugin.
37
40
  * @param {LibraryType} type library type that should be available
38
41
  * @param {EnableLibraryPluginOptions} options options of EnableLibraryPlugin
39
42
  */
@@ -45,6 +48,7 @@ class EnableLibraryPlugin {
45
48
  }
46
49
 
47
50
  /**
51
+ * Updates enabled using the provided compiler.
48
52
  * @param {Compiler} compiler the compiler instance
49
53
  * @param {LibraryType} type type of library
50
54
  * @returns {void}
@@ -54,6 +58,7 @@ class EnableLibraryPlugin {
54
58
  }
55
59
 
56
60
  /**
61
+ * Checks enabled.
57
62
  * @param {Compiler} compiler the compiler instance
58
63
  * @param {LibraryType} type type of library
59
64
  * @returns {void}
@@ -71,7 +76,7 @@ class EnableLibraryPlugin {
71
76
  }
72
77
 
73
78
  /**
74
- * Apply the plugin
79
+ * Applies the plugin by registering its hooks on the compiler.
75
80
  * @param {Compiler} compiler the compiler instance
76
81
  * @returns {void}
77
82
  */
@@ -237,13 +242,14 @@ class EnableLibraryPlugin {
237
242
 
238
243
  class WarnFalseIifeUmdPlugin {
239
244
  /**
245
+ * Applies the plugin by registering its hooks on the compiler.
240
246
  * @param {Compiler} compiler the compiler instance
241
247
  */
242
248
  apply(compiler) {
243
249
  compiler.hooks.thisCompilation.tap(
244
250
  "WarnFalseIifeUmdPlugin",
245
251
  (compilation) => {
246
- const FalseIIFEUmdWarning = require("../FalseIIFEUmdWarning");
252
+ const FalseIIFEUmdWarning = require("./FalseIIFEUmdWarning");
247
253
 
248
254
  compilation.warnings.push(new FalseIIFEUmdWarning());
249
255
  }