@depup/webpack 5.106.1-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 -57
  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 +3443 -1953
  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 +681 -367
  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 +133 -43
  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
package/lib/Compiler.js CHANGED
@@ -5,7 +5,6 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const parseJson = require("json-parse-even-better-errors");
9
8
  const asyncLib = require("neo-async");
10
9
  const {
11
10
  AsyncParallelHook,
@@ -18,7 +17,6 @@ const Cache = require("./Cache");
18
17
  const CacheFacade = require("./CacheFacade");
19
18
  const ChunkGraph = require("./ChunkGraph");
20
19
  const Compilation = require("./Compilation");
21
- const ConcurrentCompilationError = require("./ConcurrentCompilationError");
22
20
  const ContextModuleFactory = require("./ContextModuleFactory");
23
21
  const ModuleGraph = require("./ModuleGraph");
24
22
  const NormalModuleFactory = require("./NormalModuleFactory");
@@ -26,11 +24,16 @@ const RequestShortener = require("./RequestShortener");
26
24
  const ResolverFactory = require("./ResolverFactory");
27
25
  const Stats = require("./Stats");
28
26
  const Watching = require("./Watching");
29
- const WebpackError = require("./WebpackError");
27
+ const ConcurrentCompilationError = require("./errors/ConcurrentCompilationError");
28
+ const WebpackError = require("./errors/WebpackError");
30
29
  const { Logger } = require("./logging/Logger");
31
30
  const { dirname, join, mkdirp } = require("./util/fs");
32
- const { makePathsRelative } = require("./util/identifier");
31
+ const {
32
+ WINDOWS_ABS_PATH_REGEXP,
33
+ makePathsRelative
34
+ } = require("./util/identifier");
33
35
  const memoize = require("./util/memoize");
36
+ const parseJson = require("./util/parseJson");
34
37
  const { isSourceEqual } = require("./util/source");
35
38
  const webpack = require(".");
36
39
 
@@ -67,12 +70,14 @@ const webpack = require(".");
67
70
  /** @typedef {import("schema-utils").ValidationErrorConfiguration} ValidationErrorConfiguration */
68
71
 
69
72
  /**
73
+ * Defines the compilation params type used by this module.
70
74
  * @typedef {object} CompilationParams
71
75
  * @property {NormalModuleFactory} normalModuleFactory
72
76
  * @property {ContextModuleFactory} contextModuleFactory
73
77
  */
74
78
 
75
79
  /**
80
+ * Defines the callback type used by this module.
76
81
  * @template T
77
82
  * @template [R=void]
78
83
  * @typedef {import("./webpack").Callback<T, R>} Callback
@@ -81,6 +86,7 @@ const webpack = require(".");
81
86
  /** @typedef {import("./webpack").ErrorCallback} ErrorCallback */
82
87
 
83
88
  /**
89
+ * Defines the run as child callback callback.
84
90
  * @callback RunAsChildCallback
85
91
  * @param {Error | null} err
86
92
  * @param {Chunk[]=} entries
@@ -89,6 +95,7 @@ const webpack = require(".");
89
95
  */
90
96
 
91
97
  /**
98
+ * Defines the known records type used by this module.
92
99
  * @typedef {object} KnownRecords
93
100
  * @property {SplitData[]=} aggressiveSplits
94
101
  * @property {RecordsChunks=} chunks
@@ -105,6 +112,7 @@ const webpack = require(".");
105
112
  /** @typedef {KnownRecords & Record<string, KnownRecords[]> & Record<string, EXPECTED_ANY>} Records */
106
113
 
107
114
  /**
115
+ * Defines the asset emitted info type used by this module.
108
116
  * @typedef {object} AssetEmittedInfo
109
117
  * @property {Buffer} content
110
118
  * @property {Source} source
@@ -121,6 +129,7 @@ const webpack = require(".");
121
129
  /** @typedef {{ buildInfo: BuildInfo, references: WeakReferences | undefined, memCache: MemCache }} ModuleMemCachesItem */
122
130
 
123
131
  /**
132
+ * Checks whether this object is sorted.
124
133
  * @template T
125
134
  * @param {T[]} array an array
126
135
  * @returns {boolean} true, if the array is sorted
@@ -133,6 +142,7 @@ const isSorted = (array) => {
133
142
  };
134
143
 
135
144
  /**
145
+ * Returns the object with properties sorted by property name.
136
146
  * @template {object} T
137
147
  * @param {T} obj an object
138
148
  * @param {(keyof T)[]} keys the keys of the object
@@ -147,6 +157,7 @@ const sortObject = (obj, keys) => {
147
157
  };
148
158
 
149
159
  /**
160
+ * Returns true, if the filename contains any hash.
150
161
  * @param {string} filename filename
151
162
  * @param {string | string[] | undefined} hashes list of hashes
152
163
  * @returns {boolean} true, if the filename contains any hash
@@ -163,6 +174,7 @@ const getValidate = memoize(() => require("schema-utils").validate);
163
174
 
164
175
  class Compiler {
165
176
  /**
177
+ * Creates an instance of Compiler.
166
178
  * @param {string} context the compilation path
167
179
  * @param {WebpackOptions} options options
168
180
  */
@@ -303,21 +315,28 @@ class Compiler {
303
315
  browser: null,
304
316
  webworker: null,
305
317
  node: null,
318
+ deno: null,
319
+ bun: null,
306
320
  nwjs: null,
307
- electron: null
321
+ electron: null,
322
+ universal: null
308
323
  };
309
324
 
310
325
  this.options = options;
311
326
 
327
+ /** @type {string} */
312
328
  this.context = context;
313
329
 
330
+ /** @type {RequestShortener} */
314
331
  this.requestShortener = new RequestShortener(context, this.root);
315
332
 
333
+ /** @type {Cache} */
316
334
  this.cache = new Cache();
317
335
 
318
336
  /** @type {Map<Module, ModuleMemCachesItem> | undefined} */
319
337
  this.moduleMemCaches = undefined;
320
338
 
339
+ /** @type {string} */
321
340
  this.compilerPath = "";
322
341
 
323
342
  /** @type {boolean} */
@@ -329,6 +348,7 @@ class Compiler {
329
348
  /** @type {boolean} */
330
349
  this.watchMode = false;
331
350
 
351
+ /** @type {boolean} */
332
352
  this._backCompat = this.options.experiments.backCompat !== false;
333
353
 
334
354
  /** @type {Compilation | undefined} */
@@ -354,6 +374,7 @@ class Compiler {
354
374
  }
355
375
 
356
376
  /**
377
+ * Returns the cache facade instance.
357
378
  * @param {string} name cache name
358
379
  * @returns {CacheFacade} the cache facade instance
359
380
  */
@@ -366,6 +387,7 @@ class Compiler {
366
387
  }
367
388
 
368
389
  /**
390
+ * Gets infrastructure logger.
369
391
  * @param {string | (() => string)} name name of the logger, or function called once to get the logger name
370
392
  * @returns {Logger} a logger with that name
371
393
  */
@@ -481,6 +503,26 @@ class Compiler {
481
503
  }
482
504
 
483
505
  /**
506
+ * Release fields on a finished compilation that nothing reads after emit,
507
+ * so the heap can shrink while user code still holds the Stats reference.
508
+ * Recurses into child compilations. Stats output is preserved — only
509
+ * codeGen byproducts are dropped.
510
+ * @param {Compilation} compilation finished compilation to slim down
511
+ * @returns {void}
512
+ */
513
+ _releaseUnusedCompilationData(compilation) {
514
+ for (const child of compilation.children) {
515
+ this._releaseUnusedCompilationData(child);
516
+ }
517
+ // Rendered source per (module × runtime) — used only during seal/emit,
518
+ // never read by Stats, and not serialized to the persistent cache.
519
+ if (compilation.codeGenerationResults !== undefined) {
520
+ compilation.codeGenerationResults.map.clear();
521
+ }
522
+ }
523
+
524
+ /**
525
+ * Returns a compiler watcher.
484
526
  * @param {WatchOptions} watchOptions the watcher's options
485
527
  * @param {Callback<Stats>} handler signals when the call finishes
486
528
  * @returns {Watching | undefined} a compiler watcher
@@ -498,6 +540,7 @@ class Compiler {
498
540
  }
499
541
 
500
542
  /**
543
+ * Processes the provided stat.
501
544
  * @param {Callback<Stats>} callback signals when the call finishes
502
545
  * @returns {void}
503
546
  */
@@ -511,6 +554,7 @@ class Compiler {
511
554
  let logger;
512
555
 
513
556
  /**
557
+ * Processes the provided err.
514
558
  * @param {Error | null} err error
515
559
  * @param {Stats=} stats stats
516
560
  */
@@ -532,6 +576,7 @@ class Compiler {
532
576
  this.running = true;
533
577
 
534
578
  /**
579
+ * Processes the provided err.
535
580
  * @param {Error | null} err error
536
581
  * @param {Compilation=} _compilation compilation
537
582
  * @returns {void}
@@ -639,6 +684,7 @@ class Compiler {
639
684
  }
640
685
 
641
686
  /**
687
+ * Processes the provided run as child callback.
642
688
  * @param {RunAsChildCallback} callback signals when the call finishes
643
689
  * @returns {void}
644
690
  */
@@ -646,6 +692,7 @@ class Compiler {
646
692
  const startTime = Date.now();
647
693
 
648
694
  /**
695
+ * Processes the provided err.
649
696
  * @param {Error | null} err error
650
697
  * @param {Chunk[]=} entries entries
651
698
  * @param {Compilation=} compilation compilation
@@ -699,6 +746,7 @@ class Compiler {
699
746
  }
700
747
 
701
748
  /**
749
+ * Processes the provided compilation.
702
750
  * @param {Compilation} compilation the compilation
703
751
  * @param {ErrorCallback} callback signals when the assets are emitted
704
752
  * @returns {void}
@@ -708,6 +756,7 @@ class Compiler {
708
756
  let outputPath;
709
757
 
710
758
  /**
759
+ * Processes the provided err.
711
760
  * @param {Error=} err error
712
761
  * @returns {void}
713
762
  */
@@ -740,18 +789,21 @@ class Compiler {
740
789
  includesHash(targetFile, info.fullhash));
741
790
  }
742
791
 
792
+ const fs = /** @type {OutputFileSystem} */ (this.outputFileSystem);
793
+ // A Windows drive-absolute targetFile is written as-is; joining it onto
794
+ // outputPath would produce an invalid path (e.g. C:\out\D:\file). A
795
+ // leading "/" stays relative to outputPath (e.g. entry name "/dir/x").
796
+ const targetPath = WINDOWS_ABS_PATH_REGEXP.test(targetFile)
797
+ ? targetFile
798
+ : join(fs, outputPath, targetFile);
799
+
743
800
  /**
801
+ * Processes the provided err.
744
802
  * @param {Error=} err error
745
803
  * @returns {void}
746
804
  */
747
805
  const writeOut = (err) => {
748
806
  if (err) return callback(err);
749
- const targetPath = join(
750
- /** @type {OutputFileSystem} */
751
- (this.outputFileSystem),
752
- outputPath,
753
- targetFile
754
- );
755
807
  allTargetPaths.add(targetPath);
756
808
 
757
809
  // check if the target file has already been written by this Compiler
@@ -875,6 +927,7 @@ ${other}`);
875
927
  };
876
928
 
877
929
  /**
930
+ * Updates with replacement source.
878
931
  * @param {number} size size
879
932
  */
880
933
  const updateWithReplacementSource = (size) => {
@@ -897,6 +950,7 @@ ${other}`);
897
950
  };
898
951
 
899
952
  /**
953
+ * Updates file with replacement source.
900
954
  * @param {string} file file
901
955
  * @param {CacheEntry} cacheEntry cache entry
902
956
  * @param {number} size size
@@ -918,6 +972,7 @@ ${other}`);
918
972
  };
919
973
 
920
974
  /**
975
+ * Process existing file.
921
976
  * @param {IStats} stats stats
922
977
  * @returns {void}
923
978
  */
@@ -1014,8 +1069,7 @@ ${other}`);
1014
1069
  };
1015
1070
 
1016
1071
  if (/\/|\\/.test(targetFile)) {
1017
- const fs = /** @type {OutputFileSystem} */ (this.outputFileSystem);
1018
- const dir = dirname(fs, join(fs, outputPath, targetFile));
1072
+ const dir = dirname(fs, targetPath);
1019
1073
  mkdirp(fs, dir, writeOut);
1020
1074
  } else {
1021
1075
  writeOut();
@@ -1052,6 +1106,7 @@ ${other}`);
1052
1106
  }
1053
1107
 
1054
1108
  /**
1109
+ * Processes the provided error callback.
1055
1110
  * @param {ErrorCallback} callback signals when the call finishes
1056
1111
  * @returns {void}
1057
1112
  */
@@ -1076,6 +1131,7 @@ ${other}`);
1076
1131
  }
1077
1132
 
1078
1133
  /**
1134
+ * Processes the provided error callback.
1079
1135
  * @param {ErrorCallback} callback signals when the call finishes
1080
1136
  * @returns {void}
1081
1137
  */
@@ -1125,6 +1181,7 @@ ${other}`);
1125
1181
  }
1126
1182
 
1127
1183
  /**
1184
+ * Processes the provided error callback.
1128
1185
  * @param {ErrorCallback} callback signals when the call finishes
1129
1186
  * @returns {void}
1130
1187
  */
@@ -1151,6 +1208,7 @@ ${other}`);
1151
1208
  }
1152
1209
 
1153
1210
  /**
1211
+ * Processes the provided error callback.
1154
1212
  * @param {ErrorCallback} callback signals when the call finishes
1155
1213
  * @returns {void}
1156
1214
  */
@@ -1173,13 +1231,15 @@ ${other}`);
1173
1231
  if (err) return callback(err);
1174
1232
 
1175
1233
  try {
1176
- this.records = parseJson(
1177
- /** @type {Buffer} */ (content).toString("utf8")
1178
- );
1234
+ this.records =
1235
+ /** @type {Records} */
1236
+ (parseJson(/** @type {Buffer} */ (content).toString("utf8")));
1179
1237
  } catch (parseErr) {
1180
1238
  return callback(
1181
1239
  new Error(
1182
- `Cannot parse records: ${/** @type {Error} */ (parseErr).message}`
1240
+ `Cannot parse records: ${
1241
+ /** @type {Error} */ (parseErr).message
1242
+ }`
1183
1243
  )
1184
1244
  );
1185
1245
  }
@@ -1191,6 +1251,7 @@ ${other}`);
1191
1251
  }
1192
1252
 
1193
1253
  /**
1254
+ * Creates a child compiler.
1194
1255
  * @param {Compilation} compilation the compilation
1195
1256
  * @param {string} compilerName the compiler's name
1196
1257
  * @param {number} compilerIndex the compiler's index
@@ -1293,6 +1354,7 @@ ${other}`);
1293
1354
  }
1294
1355
 
1295
1356
  /**
1357
+ * Creates a compilation.
1296
1358
  * @param {CompilationParams} params the compilation parameters
1297
1359
  * @returns {Compilation} compilation
1298
1360
  */
@@ -1302,6 +1364,7 @@ ${other}`);
1302
1364
  }
1303
1365
 
1304
1366
  /**
1367
+ * Returns the created compilation.
1305
1368
  * @param {CompilationParams} params the compilation parameters
1306
1369
  * @returns {Compilation} the created compilation
1307
1370
  */
@@ -1343,6 +1406,7 @@ ${other}`);
1343
1406
  }
1344
1407
 
1345
1408
  /**
1409
+ * Processes the provided compilation.
1346
1410
  * @param {Callback<Compilation>} callback signals when the compilation finishes
1347
1411
  * @returns {void}
1348
1412
  */
@@ -1394,6 +1458,7 @@ ${other}`);
1394
1458
  }
1395
1459
 
1396
1460
  /**
1461
+ * Processes the provided error callback.
1397
1462
  * @param {ErrorCallback} callback signals when the compiler closes
1398
1463
  * @returns {void}
1399
1464
  */
@@ -1407,9 +1472,14 @@ ${other}`);
1407
1472
  }
1408
1473
  this.hooks.shutdown.callAsync((err) => {
1409
1474
  if (err) return callback(err);
1410
- // Get rid of reference to last compilation to avoid leaking memory
1411
- // We can't run this._cleanupLastCompilation() as the Stats to this compilation
1412
- // might be still in use. We try to get rid of the reference to the cache instead.
1475
+ // Defer a microtask so a close() made inside the run callback can't
1476
+ // release codeGenerationResults before afterDone fires on the same stack.
1477
+ const lastCompilation = this._lastCompilation;
1478
+ if (lastCompilation !== undefined) {
1479
+ Promise.resolve().then(() => {
1480
+ this._releaseUnusedCompilationData(lastCompilation);
1481
+ });
1482
+ }
1413
1483
  this._lastCompilation = undefined;
1414
1484
  this._lastNormalModuleFactory = undefined;
1415
1485
  this.cache.shutdown(callback);
@@ -1431,6 +1501,7 @@ ${other}`);
1431
1501
  }
1432
1502
 
1433
1503
  /**
1504
+ * Returns schema.
1434
1505
  * @returns {Schema} schema
1435
1506
  */
1436
1507
  const getSchema = () => {
@@ -1444,12 +1515,7 @@ ${other}`);
1444
1515
  // // If we have precompiled schema let's use it
1445
1516
  if (check) {
1446
1517
  if (!check(value)) {
1447
- getValidate()(
1448
- getSchema(),
1449
- /** @type {EXPECTED_OBJECT | EXPECTED_OBJECT[]} */
1450
- (value),
1451
- options
1452
- );
1518
+ getValidate()(getSchema(), value, options);
1453
1519
  require("util").deprecate(
1454
1520
  () => {},
1455
1521
  "webpack bug: Pre-compiled schema reports error while real schema is happy. This has performance drawbacks.",
@@ -1460,11 +1526,7 @@ ${other}`);
1460
1526
  }
1461
1527
 
1462
1528
  // Otherwise let's standard validation
1463
- getValidate()(
1464
- getSchema(),
1465
- /** @type {EXPECTED_OBJECT | EXPECTED_OBJECT[]} */ (value),
1466
- options
1467
- );
1529
+ getValidate()(getSchema(), value, options);
1468
1530
  }
1469
1531
  }
1470
1532
 
@@ -17,24 +17,34 @@ const {
17
17
  /** @typedef {import("./optimize/ConcatenatedModule").ExportName} Ids */
18
18
 
19
19
  const MODULE_REFERENCE_REGEXP =
20
- /^__WEBPACK_MODULE_REFERENCE__(\d+)_([\da-f]+|ns)(_call)?(_directImport)?(_deferredImport)?(?:_asiSafe(\d))?__$/;
20
+ /^__WEBPACK_MODULE_REFERENCE__(\d+)_([\da-f]+|ns)(_call)?(_directImport)?(_deferredImport)?(_mangleableNs)?(?:_asiSafe(\d))?__$/;
21
21
 
22
22
  /**
23
+ * Encodes how a concatenated module reference should be interpreted when it is
24
+ * later reconstructed from its placeholder identifier.
23
25
  * @typedef {object} ModuleReferenceOptions
24
- * @property {Ids} ids the properties/exports of the module
26
+ * @property {Ids} ids the properties or exports selected from the referenced module
25
27
  * @property {boolean} call true, when this referenced export is called
26
28
  * @property {boolean} directImport true, when this referenced export is directly imported (not via property access)
27
29
  * @property {boolean} deferredImport true, when this referenced export is deferred
30
+ * @property {boolean} mangleableNamespace true, when a whole-namespace reference may use a decoupled namespace object that keeps the original export names
28
31
  * @property {boolean | undefined} asiSafe if the position is ASI safe or unknown
29
32
  */
30
33
 
34
+ /**
35
+ * Tracks the symbols and cross-module references needed while rendering a
36
+ * concatenated module.
37
+ */
31
38
  class ConcatenationScope {
32
39
  /**
40
+ * Creates the mutable scope object used while rendering a concatenated
41
+ * module and its cross-module references.
33
42
  * @param {ModuleInfo[] | Map<Module, ModuleInfo>} modulesMap all module info by module
34
43
  * @param {ConcatenatedModuleInfo} currentModule the current module info
35
44
  * @param {Set<string>} usedNames all used names
36
45
  */
37
46
  constructor(modulesMap, currentModule, usedNames) {
47
+ /** @type {ConcatenatedModuleInfo} */
38
48
  this._currentModule = currentModule;
39
49
  if (Array.isArray(modulesMap)) {
40
50
  /** @type {Map<Module, ConcatenatedModuleInfo>} */
@@ -44,11 +54,14 @@ class ConcatenationScope {
44
54
  }
45
55
  modulesMap = map;
46
56
  }
57
+ /** @type {Set<string>} */
47
58
  this.usedNames = usedNames;
59
+ /** @type {Map<Module, ModuleInfo>} */
48
60
  this._modulesMap = modulesMap;
49
61
  }
50
62
 
51
63
  /**
64
+ * Checks whether a module participates in the current concatenation scope.
52
65
  * @param {Module} module the referenced module
53
66
  * @returns {boolean} true, when it's in the scope
54
67
  */
@@ -57,6 +70,8 @@ class ConcatenationScope {
57
70
  }
58
71
 
59
72
  /**
73
+ * Records the symbol that should be used when the current module exports a
74
+ * named binding.
60
75
  * @param {string} exportName name of the export
61
76
  * @param {string} symbol identifier of the export in source code
62
77
  */
@@ -70,6 +85,8 @@ class ConcatenationScope {
70
85
  }
71
86
 
72
87
  /**
88
+ * Records a raw expression that can be used to reference an export without
89
+ * going through the normal symbol map.
73
90
  * @param {string} exportName name of the export
74
91
  * @param {string} expression expression to be used
75
92
  */
@@ -83,6 +100,7 @@ class ConcatenationScope {
83
100
  }
84
101
 
85
102
  /**
103
+ * Returns the raw expression registered for an export, if one exists.
86
104
  * @param {string} exportName name of the export
87
105
  * @returns {string | undefined} the expression of the export
88
106
  */
@@ -94,6 +112,8 @@ class ConcatenationScope {
94
112
  }
95
113
 
96
114
  /**
115
+ * Replaces the raw expression for an export only when that export already
116
+ * has an entry in the raw export map.
97
117
  * @param {string} exportName name of the export
98
118
  * @param {string} expression expression to be used
99
119
  */
@@ -107,6 +127,7 @@ class ConcatenationScope {
107
127
  }
108
128
 
109
129
  /**
130
+ * Records the symbol that should be used for the synthetic namespace export.
110
131
  * @param {string} symbol identifier of the export in source code
111
132
  */
112
133
  registerNamespaceExport(symbol) {
@@ -114,6 +135,8 @@ class ConcatenationScope {
114
135
  }
115
136
 
116
137
  /**
138
+ * Encodes a reference to another concatenated module as a placeholder
139
+ * identifier that can be parsed later during code generation.
117
140
  * @param {Module} module the referenced module
118
141
  * @param {Partial<ModuleReferenceOptions>} options options
119
142
  * @returns {string} the reference as identifier
@@ -125,6 +148,7 @@ class ConcatenationScope {
125
148
  call = false,
126
149
  directImport = false,
127
150
  deferredImport = false,
151
+ mangleableNamespace = false,
128
152
  asiSafe = false
129
153
  }
130
154
  ) {
@@ -132,6 +156,7 @@ class ConcatenationScope {
132
156
  const callFlag = call ? "_call" : "";
133
157
  const directImportFlag = directImport ? "_directImport" : "";
134
158
  const deferredImportFlag = deferredImport ? "_deferredImport" : "";
159
+ const mangleableNamespaceFlag = mangleableNamespace ? "_mangleableNs" : "";
135
160
  const asiSafeFlag = asiSafe
136
161
  ? "_asiSafe1"
137
162
  : asiSafe === false
@@ -141,10 +166,12 @@ class ConcatenationScope {
141
166
  ? Buffer.from(JSON.stringify(ids), "utf8").toString("hex")
142
167
  : "ns";
143
168
  // a "._" is appended to allow "delete ...", which would cause a SyntaxError in strict mode
144
- return `__WEBPACK_MODULE_REFERENCE__${info.index}_${exportData}${callFlag}${directImportFlag}${deferredImportFlag}${asiSafeFlag}__._`;
169
+ return `__WEBPACK_MODULE_REFERENCE__${info.index}_${exportData}${callFlag}${directImportFlag}${deferredImportFlag}${mangleableNamespaceFlag}${asiSafeFlag}__._`;
145
170
  }
146
171
 
147
172
  /**
173
+ * Checks whether an identifier is one of webpack's encoded concatenation
174
+ * module references.
148
175
  * @param {string} name the identifier
149
176
  * @returns {boolean} true, when it's an module reference
150
177
  */
@@ -153,6 +180,8 @@ class ConcatenationScope {
153
180
  }
154
181
 
155
182
  /**
183
+ * Parses an encoded module reference back into its module index and
184
+ * reference flags.
156
185
  * @param {string} name the identifier
157
186
  * @returns {ModuleReferenceOptions & { index: number } | null} parsed options and index
158
187
  */
@@ -160,7 +189,7 @@ class ConcatenationScope {
160
189
  const match = MODULE_REFERENCE_REGEXP.exec(name);
161
190
  if (!match) return null;
162
191
  const index = Number(match[1]);
163
- const asiSafe = match[6];
192
+ const asiSafe = match[7];
164
193
  return {
165
194
  index,
166
195
  ids:
@@ -170,6 +199,7 @@ class ConcatenationScope {
170
199
  call: Boolean(match[3]),
171
200
  directImport: Boolean(match[4]),
172
201
  deferredImport: Boolean(match[5]),
202
+ mangleableNamespace: Boolean(match[6]),
173
203
  asiSafe: asiSafe ? asiSafe === "1" : undefined
174
204
  };
175
205
  }
@@ -15,6 +15,7 @@ const { mergeRuntime } = require("./util/runtime");
15
15
  /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
16
16
 
17
17
  /**
18
+ * Returns wrapped source.
18
19
  * @param {string} condition condition
19
20
  * @param {string | Source} source source
20
21
  * @returns {string | Source} wrapped source
@@ -36,10 +37,12 @@ const wrapInCondition = (condition, source) => {
36
37
  };
37
38
 
38
39
  /**
40
+ * Represents ConditionalInitFragment.
39
41
  * @extends {InitFragment<GenerateContext>}
40
42
  */
41
43
  class ConditionalInitFragment extends InitFragment {
42
44
  /**
45
+ * Creates an instance of ConditionalInitFragment.
43
46
  * @param {string | Source | undefined} content the source code that will be included as initialization code
44
47
  * @param {number} stage category of initialization code (contribute to order)
45
48
  * @param {number} position position in the category (contribute to order)
@@ -60,6 +63,7 @@ class ConditionalInitFragment extends InitFragment {
60
63
  }
61
64
 
62
65
  /**
66
+ * Returns the source code that will be included as initialization code.
63
67
  * @param {GenerateContext} context context
64
68
  * @returns {string | Source | undefined} the source code that will be included as initialization code
65
69
  */
@@ -77,6 +81,7 @@ class ConditionalInitFragment extends InitFragment {
77
81
  }
78
82
 
79
83
  /**
84
+ * Returns the source code that will be included at the end of the module.
80
85
  * @param {GenerateContext} context context
81
86
  * @returns {string | Source | undefined} the source code that will be included at the end of the module
82
87
  */
@@ -94,6 +99,7 @@ class ConditionalInitFragment extends InitFragment {
94
99
  }
95
100
 
96
101
  /**
102
+ * Returns merged fragment.
97
103
  * @param {ConditionalInitFragment} other fragment to merge with
98
104
  * @returns {ConditionalInitFragment} merged fragment
99
105
  */