webpack 5.106.1 → 5.107.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 (600) hide show
  1. package/README.md +2 -2
  2. package/lib/APIPlugin.js +4 -2
  3. package/lib/AsyncDependenciesBlock.js +3 -0
  4. package/lib/AutomaticPrefetchPlugin.js +6 -1
  5. package/lib/BannerPlugin.js +10 -1
  6. package/lib/Cache.js +27 -5
  7. package/lib/CacheFacade.js +26 -0
  8. package/lib/Chunk.js +46 -0
  9. package/lib/ChunkGraph.js +111 -0
  10. package/lib/ChunkGroup.js +57 -13
  11. package/lib/ChunkTemplate.js +9 -0
  12. package/lib/CleanPlugin.js +14 -1
  13. package/lib/CodeGenerationResults.js +19 -0
  14. package/lib/CompatibilityPlugin.js +23 -8
  15. package/lib/Compilation.js +161 -27
  16. package/lib/Compiler.js +41 -17
  17. package/lib/ConcatenationScope.js +24 -1
  18. package/lib/ConditionalInitFragment.js +6 -0
  19. package/lib/ConstPlugin.js +4 -1
  20. package/lib/ContextExclusionPlugin.js +2 -1
  21. package/lib/ContextModule.js +14 -2
  22. package/lib/ContextModuleFactory.js +10 -0
  23. package/lib/ContextReplacementPlugin.js +4 -1
  24. package/lib/DefinePlugin.js +22 -9
  25. package/lib/DependenciesBlock.js +6 -1
  26. package/lib/Dependency.js +48 -4
  27. package/lib/DependencyTemplate.js +7 -1
  28. package/lib/DependencyTemplates.js +4 -0
  29. package/lib/DotenvPlugin.js +3 -0
  30. package/lib/DynamicEntryPlugin.js +3 -1
  31. package/lib/EntryOptionPlugin.js +3 -0
  32. package/lib/EntryPlugin.js +2 -1
  33. package/lib/Entrypoint.js +4 -0
  34. package/lib/EnvironmentPlugin.js +3 -2
  35. package/lib/ErrorHelpers.js +7 -0
  36. package/lib/EvalDevToolModulePlugin.js +3 -1
  37. package/lib/EvalSourceMapDevToolPlugin.js +11 -10
  38. package/lib/ExportsInfo.js +56 -2
  39. package/lib/ExportsInfoApiPlugin.js +2 -1
  40. package/lib/ExternalModule.js +114 -15
  41. package/lib/ExternalModuleFactoryPlugin.js +15 -0
  42. package/lib/ExternalsPlugin.js +2 -1
  43. package/lib/FileSystemInfo.js +291 -71
  44. package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
  45. package/lib/FlagDependencyExportsPlugin.js +4 -1
  46. package/lib/FlagDependencyUsagePlugin.js +5 -1
  47. package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
  48. package/lib/Generator.js +16 -3
  49. package/lib/HotModuleReplacementPlugin.js +35 -9
  50. package/lib/IgnorePlugin.js +4 -2
  51. package/lib/IgnoreWarningsPlugin.js +2 -1
  52. package/lib/InitFragment.js +10 -0
  53. package/lib/JavascriptMetaInfoPlugin.js +2 -1
  54. package/lib/LibraryTemplatePlugin.js +2 -1
  55. package/lib/LoaderOptionsPlugin.js +3 -1
  56. package/lib/LoaderTargetPlugin.js +2 -1
  57. package/lib/MainTemplate.js +15 -0
  58. package/lib/ManifestPlugin.js +9 -2
  59. package/lib/Module.js +101 -19
  60. package/lib/ModuleFactory.js +6 -1
  61. package/lib/ModuleFilenameHelpers.js +3 -0
  62. package/lib/ModuleGraph.js +66 -0
  63. package/lib/ModuleGraphConnection.js +9 -0
  64. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  65. package/lib/ModuleSourceTypeConstants.js +32 -1
  66. package/lib/ModuleTemplate.js +8 -0
  67. package/lib/ModuleTypeConstants.js +12 -3
  68. package/lib/MultiCompiler.js +30 -2
  69. package/lib/MultiStats.js +8 -0
  70. package/lib/MultiWatching.js +3 -0
  71. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  72. package/lib/NodeStuffPlugin.js +11 -2
  73. package/lib/NormalModule.js +43 -33
  74. package/lib/NormalModuleFactory.js +35 -2
  75. package/lib/NormalModuleReplacementPlugin.js +1 -1
  76. package/lib/NullFactory.js +1 -0
  77. package/lib/OptionsApply.js +1 -0
  78. package/lib/Parser.js +3 -1
  79. package/lib/PlatformPlugin.js +2 -1
  80. package/lib/PrefetchPlugin.js +2 -1
  81. package/lib/ProgressPlugin.js +158 -68
  82. package/lib/ProvidePlugin.js +3 -1
  83. package/lib/RawModule.js +12 -0
  84. package/lib/RecordIdsPlugin.js +8 -0
  85. package/lib/RequestShortener.js +8 -0
  86. package/lib/ResolverFactory.js +5 -0
  87. package/lib/RuntimeGlobals.js +6 -5
  88. package/lib/RuntimeModule.js +22 -7
  89. package/lib/RuntimePlugin.js +13 -0
  90. package/lib/RuntimeTemplate.js +35 -1
  91. package/lib/SelfModuleFactory.js +2 -0
  92. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  93. package/lib/SourceMapDevToolPlugin.js +3 -1
  94. package/lib/Stats.js +5 -0
  95. package/lib/Template.js +20 -0
  96. package/lib/TemplatedPathPlugin.js +10 -3
  97. package/lib/UseStrictPlugin.js +2 -1
  98. package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
  99. package/lib/WarnDeprecatedOptionPlugin.js +2 -2
  100. package/lib/WarnNoModeSetPlugin.js +17 -2
  101. package/lib/WatchIgnorePlugin.js +4 -1
  102. package/lib/Watching.js +16 -3
  103. package/lib/WebpackError.js +3 -74
  104. package/lib/WebpackIsIncludedPlugin.js +3 -1
  105. package/lib/WebpackOptionsApply.js +14 -1
  106. package/lib/WebpackOptionsDefaulter.js +1 -0
  107. package/lib/asset/AssetBytesGenerator.js +12 -2
  108. package/lib/asset/AssetBytesParser.js +1 -0
  109. package/lib/asset/AssetGenerator.js +42 -10
  110. package/lib/asset/AssetModulesPlugin.js +7 -2
  111. package/lib/asset/AssetParser.js +2 -0
  112. package/lib/asset/AssetSourceGenerator.js +12 -2
  113. package/lib/asset/AssetSourceParser.js +1 -0
  114. package/lib/asset/RawDataUrlModule.js +11 -0
  115. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  116. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
  117. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  118. package/lib/buildChunkGraph.js +19 -6
  119. package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
  120. package/lib/cache/AddManagedPathsPlugin.js +2 -1
  121. package/lib/cache/IdleFileCachePlugin.js +2 -1
  122. package/lib/cache/MemoryCachePlugin.js +1 -1
  123. package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
  124. package/lib/cache/PackFileCacheStrategy.js +33 -4
  125. package/lib/cache/ResolverCachePlugin.js +10 -1
  126. package/lib/cache/getLazyHashedEtag.js +4 -0
  127. package/lib/cache/mergeEtags.js +2 -0
  128. package/lib/cli.js +33 -1
  129. package/lib/config/browserslistTargetHandler.js +2 -0
  130. package/lib/config/defaults.js +232 -12
  131. package/lib/config/normalization.js +15 -1
  132. package/lib/config/target.js +11 -0
  133. package/lib/container/ContainerEntryDependency.js +2 -0
  134. package/lib/container/ContainerEntryModule.js +12 -0
  135. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  136. package/lib/container/ContainerExposedDependency.js +4 -0
  137. package/lib/container/ContainerPlugin.js +2 -1
  138. package/lib/container/ContainerReferencePlugin.js +2 -1
  139. package/lib/container/FallbackDependency.js +4 -0
  140. package/lib/container/FallbackItemDependency.js +1 -0
  141. package/lib/container/FallbackModule.js +12 -0
  142. package/lib/container/FallbackModuleFactory.js +1 -0
  143. package/lib/container/ModuleFederationPlugin.js +3 -1
  144. package/lib/container/RemoteModule.js +13 -0
  145. package/lib/container/RemoteRuntimeModule.js +1 -0
  146. package/lib/container/RemoteToExternalDependency.js +1 -0
  147. package/lib/container/options.js +7 -0
  148. package/lib/css/CssGenerator.js +336 -100
  149. package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
  150. package/lib/css/CssLoadingRuntimeModule.js +23 -4
  151. package/lib/{CssModule.js → css/CssModule.js} +21 -15
  152. package/lib/css/CssModulesPlugin.js +235 -89
  153. package/lib/css/CssParser.js +616 -261
  154. package/lib/css/walkCssTokens.js +179 -2
  155. package/lib/debug/ProfilingPlugin.js +19 -1
  156. package/lib/dependencies/AMDDefineDependency.js +7 -0
  157. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
  158. package/lib/dependencies/AMDPlugin.js +4 -1
  159. package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
  160. package/lib/dependencies/AMDRequireContextDependency.js +3 -0
  161. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  162. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +14 -1
  163. package/lib/dependencies/AMDRequireDependency.js +4 -0
  164. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  165. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  166. package/lib/dependencies/CachedConstDependency.js +6 -1
  167. package/lib/dependencies/CommonJsDependencyHelpers.js +64 -0
  168. package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
  169. package/lib/dependencies/CommonJsExportsDependency.js +4 -0
  170. package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
  171. package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
  172. package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
  173. package/lib/dependencies/CommonJsPlugin.js +4 -1
  174. package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
  175. package/lib/dependencies/CommonJsRequireDependency.js +70 -4
  176. package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
  177. package/lib/dependencies/ConstDependency.js +6 -1
  178. package/lib/dependencies/ContextDependency.js +9 -2
  179. package/lib/dependencies/ContextDependencyHelpers.js +4 -1
  180. package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
  181. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  182. package/lib/dependencies/ContextElementDependency.js +4 -0
  183. package/lib/dependencies/CreateRequireParserPlugin.js +7 -1
  184. package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
  185. package/lib/dependencies/CriticalDependencyWarning.js +2 -1
  186. package/lib/dependencies/CssIcssExportDependency.js +339 -66
  187. package/lib/dependencies/CssIcssImportDependency.js +53 -8
  188. package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
  189. package/lib/dependencies/CssImportDependency.js +12 -0
  190. package/lib/dependencies/CssUrlDependency.js +32 -0
  191. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  192. package/lib/dependencies/DllEntryDependency.js +3 -0
  193. package/lib/dependencies/DynamicExports.js +5 -0
  194. package/lib/dependencies/EntryDependency.js +1 -0
  195. package/lib/dependencies/ExportsInfoDependency.js +6 -0
  196. package/lib/dependencies/ExternalModuleDependency.js +5 -0
  197. package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
  198. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
  199. package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
  200. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
  201. package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
  202. package/lib/dependencies/HarmonyDetectionParserPlugin.js +4 -1
  203. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
  204. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
  205. package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
  206. package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
  207. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
  208. package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
  209. package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
  210. package/lib/dependencies/HarmonyExports.js +2 -0
  211. package/lib/dependencies/HarmonyImportDependency.js +21 -2
  212. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
  213. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
  214. package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
  215. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
  216. package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
  217. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
  218. package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
  219. package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
  220. package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
  221. package/lib/dependencies/HtmlSourceDependency.js +127 -0
  222. package/lib/dependencies/ImportContextDependency.js +4 -0
  223. package/lib/dependencies/ImportDependency.js +5 -0
  224. package/lib/dependencies/ImportEagerDependency.js +2 -0
  225. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  226. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -1
  227. package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
  228. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
  229. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
  230. package/lib/dependencies/ImportMetaPlugin.js +6 -0
  231. package/lib/dependencies/ImportParserPlugin.js +9 -2
  232. package/lib/dependencies/ImportPhase.js +7 -3
  233. package/lib/dependencies/ImportPlugin.js +2 -1
  234. package/lib/dependencies/ImportWeakDependency.js +2 -0
  235. package/lib/dependencies/JsonExportsDependency.js +6 -1
  236. package/lib/dependencies/LoaderDependency.js +2 -0
  237. package/lib/dependencies/LoaderImportDependency.js +2 -0
  238. package/lib/dependencies/LoaderPlugin.js +4 -1
  239. package/lib/dependencies/LocalModule.js +4 -0
  240. package/lib/dependencies/LocalModuleDependency.js +4 -0
  241. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  242. package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
  243. package/lib/dependencies/ModuleDependency.js +7 -0
  244. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  245. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  246. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
  247. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
  248. package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
  249. package/lib/dependencies/NullDependency.js +2 -0
  250. package/lib/dependencies/PrefetchDependency.js +1 -0
  251. package/lib/dependencies/ProvidedDependency.js +6 -1
  252. package/lib/dependencies/PureExpressionDependency.js +7 -1
  253. package/lib/dependencies/RequireContextDependency.js +1 -0
  254. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
  255. package/lib/dependencies/RequireContextPlugin.js +2 -1
  256. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  257. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
  258. package/lib/dependencies/RequireEnsureDependency.js +4 -0
  259. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  260. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  261. package/lib/dependencies/RequireHeaderDependency.js +4 -0
  262. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  263. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +4 -1
  264. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  265. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  266. package/lib/dependencies/RequireResolveContextDependency.js +3 -0
  267. package/lib/dependencies/RequireResolveDependency.js +1 -0
  268. package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
  269. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
  270. package/lib/dependencies/StaticExportsDependency.js +3 -0
  271. package/lib/dependencies/SystemPlugin.js +5 -2
  272. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  273. package/lib/dependencies/URLContextDependency.js +3 -0
  274. package/lib/dependencies/URLDependency.js +6 -0
  275. package/lib/dependencies/URLPlugin.js +2 -0
  276. package/lib/dependencies/UnsupportedDependency.js +4 -0
  277. package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
  278. package/lib/dependencies/WebAssemblyImportDependency.js +5 -2
  279. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
  280. package/lib/dependencies/WorkerDependency.js +6 -1
  281. package/lib/dependencies/WorkerPlugin.js +11 -3
  282. package/lib/dependencies/getFunctionExpression.js +1 -0
  283. package/lib/dependencies/processExportInfo.js +1 -0
  284. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
  285. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
  286. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
  287. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
  288. package/lib/{DllModule.js → dll/DllModule.js} +35 -24
  289. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  290. package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
  291. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
  292. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
  293. package/lib/electron/ElectronTargetPlugin.js +2 -1
  294. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  295. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  296. package/lib/errors/BuildCycleError.js +1 -1
  297. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  298. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  299. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  300. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
  301. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
  302. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
  303. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
  304. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
  305. package/lib/errors/JSONParseError.js +114 -0
  306. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
  307. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
  308. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
  309. package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
  310. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
  311. package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
  312. package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
  313. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
  314. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
  315. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
  316. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
  317. package/lib/errors/NonErrorEmittedError.js +28 -0
  318. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -2
  319. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  320. package/lib/errors/WebpackError.js +84 -0
  321. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  322. package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
  323. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
  324. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
  325. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  326. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  327. package/lib/hmr/LazyCompilationPlugin.js +20 -1
  328. package/lib/hmr/lazyCompilationBackend.js +2 -0
  329. package/lib/html/HtmlGenerator.js +379 -0
  330. package/lib/html/HtmlModulesPlugin.js +433 -0
  331. package/lib/html/HtmlParser.js +1489 -0
  332. package/lib/html/walkHtmlTokens.js +2733 -0
  333. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  334. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  335. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  336. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  337. package/lib/ids/IdHelpers.js +22 -1
  338. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  339. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  340. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  341. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  342. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  343. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  344. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  345. package/lib/index.js +39 -15
  346. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
  347. package/lib/javascript/BasicEvaluatedExpression.js +4 -2
  348. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  349. package/lib/javascript/ChunkHelpers.js +1 -0
  350. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  351. package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
  352. package/lib/javascript/JavascriptGenerator.js +10 -0
  353. package/lib/javascript/JavascriptModulesPlugin.js +112 -9
  354. package/lib/javascript/JavascriptParser.js +360 -16
  355. package/lib/javascript/JavascriptParserHelpers.js +7 -1
  356. package/lib/javascript/StartupHelpers.js +5 -0
  357. package/lib/json/JsonData.js +5 -0
  358. package/lib/json/JsonGenerator.js +21 -0
  359. package/lib/json/JsonModulesPlugin.js +1 -1
  360. package/lib/json/JsonParser.js +14 -25
  361. package/lib/library/AbstractLibraryPlugin.js +17 -2
  362. package/lib/library/AmdLibraryPlugin.js +8 -0
  363. package/lib/library/AssignLibraryPlugin.js +16 -0
  364. package/lib/library/EnableLibraryPlugin.js +8 -2
  365. package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
  366. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
  367. package/lib/library/JsonpLibraryPlugin.js +8 -0
  368. package/lib/library/ModuleLibraryPlugin.js +86 -1
  369. package/lib/library/SystemLibraryPlugin.js +8 -0
  370. package/lib/library/UmdLibraryPlugin.js +16 -0
  371. package/lib/logging/Logger.js +17 -0
  372. package/lib/logging/createConsoleLogger.js +7 -0
  373. package/lib/logging/runtime.js +2 -0
  374. package/lib/logging/truncateArgs.js +2 -0
  375. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  376. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  377. package/lib/node/NodeSourcePlugin.js +1 -1
  378. package/lib/node/NodeTargetPlugin.js +2 -1
  379. package/lib/node/NodeTemplatePlugin.js +3 -1
  380. package/lib/node/NodeWatchFileSystem.js +2 -0
  381. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
  382. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
  383. package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
  384. package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
  385. package/lib/node/nodeConsole.js +116 -64
  386. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  387. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  388. package/lib/optimize/ConcatenatedModule.js +62 -6
  389. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  390. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
  391. package/lib/optimize/InnerGraph.js +16 -1
  392. package/lib/optimize/InnerGraphPlugin.js +14 -2
  393. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  394. package/lib/optimize/MangleExportsPlugin.js +5 -1
  395. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  396. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  397. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  398. package/lib/optimize/ModuleConcatenationPlugin.js +36 -8
  399. package/lib/optimize/RealContentHashPlugin.js +104 -26
  400. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  401. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  402. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  403. package/lib/optimize/SideEffectsFlagPlugin.js +118 -4
  404. package/lib/optimize/SplitChunksPlugin.js +50 -2
  405. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  406. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  407. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  408. package/lib/performance/SizeLimitsPlugin.js +8 -2
  409. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  410. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
  411. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  412. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  413. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
  414. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  415. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  416. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  417. package/lib/rules/RuleSetCompiler.js +18 -0
  418. package/lib/rules/UseEffectRulePlugin.js +10 -3
  419. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
  420. package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
  421. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  422. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  423. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
  424. package/lib/runtime/CompatRuntimeModule.js +2 -0
  425. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
  426. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  427. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  428. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
  429. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  430. package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
  431. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  432. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  433. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
  434. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  435. package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
  436. package/lib/runtime/HelperRuntimeModule.js +5 -0
  437. package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
  438. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +121 -13
  439. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
  440. package/lib/runtime/NonceRuntimeModule.js +1 -0
  441. package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
  442. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  443. package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
  444. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  445. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
  446. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  447. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
  448. package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
  449. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  450. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  451. package/lib/schemes/DataUriPlugin.js +14 -2
  452. package/lib/schemes/FileUriPlugin.js +1 -1
  453. package/lib/schemes/HttpUriPlugin.js +43 -1
  454. package/lib/schemes/VirtualUrlPlugin.js +7 -2
  455. package/lib/serialization/AggregateErrorSerializer.js +2 -0
  456. package/lib/serialization/ArraySerializer.js +2 -0
  457. package/lib/serialization/BinaryMiddleware.js +20 -1
  458. package/lib/serialization/DateObjectSerializer.js +2 -0
  459. package/lib/serialization/ErrorObjectSerializer.js +3 -0
  460. package/lib/serialization/FileMiddleware.js +21 -0
  461. package/lib/serialization/MapObjectSerializer.js +2 -0
  462. package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
  463. package/lib/serialization/ObjectMiddleware.js +23 -0
  464. package/lib/serialization/PlainObjectSerializer.js +7 -0
  465. package/lib/serialization/RegExpObjectSerializer.js +2 -0
  466. package/lib/serialization/Serializer.js +5 -0
  467. package/lib/serialization/SerializerMiddleware.js +14 -2
  468. package/lib/serialization/SetObjectSerializer.js +2 -0
  469. package/lib/serialization/SingleItemMiddleware.js +3 -0
  470. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  471. package/lib/sharing/ConsumeSharedModule.js +15 -0
  472. package/lib/sharing/ConsumeSharedPlugin.js +8 -3
  473. package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
  474. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  475. package/lib/sharing/ProvideSharedDependency.js +4 -0
  476. package/lib/sharing/ProvideSharedModule.js +12 -1
  477. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  478. package/lib/sharing/ProvideSharedPlugin.js +5 -2
  479. package/lib/sharing/SharePlugin.js +2 -1
  480. package/lib/sharing/ShareRuntimeModule.js +1 -0
  481. package/lib/sharing/resolveMatchedConfigs.js +4 -1
  482. package/lib/sharing/utils.js +8 -0
  483. package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
  484. package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
  485. package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
  486. package/lib/stats/StatsFactory.js +13 -1
  487. package/lib/stats/StatsPrinter.js +7 -0
  488. package/lib/typescript/TypeScriptPlugin.js +210 -0
  489. package/lib/url/URLParserPlugin.js +8 -2
  490. package/lib/util/AppendOnlyStackedSet.js +15 -0
  491. package/lib/util/ArrayHelpers.js +1 -0
  492. package/lib/util/ArrayQueue.js +10 -5
  493. package/lib/util/AsyncQueue.js +22 -2
  494. package/lib/util/Hash.js +2 -2
  495. package/lib/util/IterableHelpers.js +3 -0
  496. package/lib/util/LazyBucketSortedSet.js +21 -0
  497. package/lib/util/LazySet.js +39 -0
  498. package/lib/util/LocConverter.js +53 -0
  499. package/lib/util/ParallelismFactorCalculator.js +1 -0
  500. package/lib/util/Queue.js +6 -3
  501. package/lib/util/Semaphore.js +14 -1
  502. package/lib/util/SetHelpers.js +3 -0
  503. package/lib/util/SortableSet.js +7 -1
  504. package/lib/util/StackedCacheMap.js +20 -3
  505. package/lib/util/StackedMap.js +45 -0
  506. package/lib/util/StringXor.js +1 -1
  507. package/lib/util/TupleQueue.js +7 -3
  508. package/lib/util/TupleSet.js +13 -0
  509. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  510. package/lib/util/WeakTupleMap.js +33 -0
  511. package/lib/util/binarySearchBounds.js +1 -0
  512. package/lib/util/cleverMerge.js +19 -2
  513. package/lib/util/comparators.js +34 -3
  514. package/lib/util/compileBooleanMatcher.js +9 -0
  515. package/lib/util/concatenate.js +9 -3
  516. package/lib/util/conventions.js +46 -1
  517. package/lib/util/createMappings.js +118 -0
  518. package/lib/util/dataURL.js +1 -0
  519. package/lib/util/deprecation.js +19 -0
  520. package/lib/util/deterministicGrouping.js +20 -0
  521. package/lib/util/extractSourceMap.js +1 -0
  522. package/lib/util/extractUrlAndGlobal.js +1 -0
  523. package/lib/util/findGraphRoots.js +5 -0
  524. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  525. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
  526. package/lib/util/fs.js +71 -8
  527. package/lib/util/generateDebugId.js +1 -0
  528. package/lib/util/hash/BatchedHash.js +1 -0
  529. package/lib/util/hash/BulkUpdateHash.js +1 -0
  530. package/lib/util/hash/hash-digest.js +8 -0
  531. package/lib/util/hash/md4.js +1 -1
  532. package/lib/util/hash/wasm-hash.js +5 -0
  533. package/lib/util/hash/xxhash64.js +1 -1
  534. package/lib/util/identifier.js +67 -0
  535. package/lib/util/internalSerializables.js +35 -19
  536. package/lib/util/magicComment.js +10 -6
  537. package/lib/util/makeSerializable.js +6 -0
  538. package/lib/util/memoize.js +2 -0
  539. package/lib/util/mimeTypes.js +176 -0
  540. package/lib/util/nonNumericOnlyHash.js +1 -0
  541. package/lib/util/parseJson.js +41 -0
  542. package/lib/util/processAsyncTree.js +8 -0
  543. package/lib/util/property.js +1 -0
  544. package/lib/util/registerExternalSerializer.js +20 -0
  545. package/lib/util/removeBOM.js +1 -0
  546. package/lib/util/runtime.js +32 -0
  547. package/lib/util/semver.js +15 -0
  548. package/lib/util/serialization.js +2 -0
  549. package/lib/util/smartGrouping.js +8 -0
  550. package/lib/util/source.js +23 -0
  551. package/lib/util/topologicalSort.js +69 -0
  552. package/lib/validateSchema.js +1 -0
  553. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  554. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
  555. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
  556. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  557. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
  558. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +12 -3
  559. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
  560. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
  561. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
  562. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
  563. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
  564. package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
  565. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
  566. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  567. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
  568. package/lib/wasm-sync/WebAssemblyParser.js +2 -0
  569. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  570. package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
  571. package/lib/web/FetchCompileWasmPlugin.js +13 -1
  572. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  573. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
  574. package/lib/web/JsonpTemplatePlugin.js +2 -1
  575. package/lib/webpack.js +13 -1
  576. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  577. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
  578. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  579. package/package.json +31 -31
  580. package/schemas/WebpackOptions.check.js +1 -1
  581. package/schemas/WebpackOptions.json +161 -57
  582. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  583. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  584. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  585. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  586. package/schemas/plugins/ProgressPlugin.json +22 -0
  587. package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
  588. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  589. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  590. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  591. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  592. package/types.d.ts +5325 -353
  593. package/lib/CaseSensitiveModulesWarning.js +0 -72
  594. package/lib/GraphHelpers.js +0 -46
  595. package/lib/NoModeWarning.js +0 -23
  596. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  597. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  598. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  599. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  600. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -21,25 +21,30 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
21
21
  /** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
22
22
  /** @typedef {import("../javascript/JavascriptModulesPlugin").StartupRenderContext} StartupRenderContext */
23
23
  /**
24
+ * Defines the shared type used by this module.
24
25
  * @template T
25
26
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
26
27
  */
27
28
 
28
29
  /**
30
+ * Defines the export property library plugin parsed type used by this module.
29
31
  * @typedef {object} ExportPropertyLibraryPluginParsed
30
32
  * @property {LibraryExport=} export
31
33
  */
32
34
 
33
35
  /**
36
+ * Defines the export property library plugin options type used by this module.
34
37
  * @typedef {object} ExportPropertyLibraryPluginOptions
35
38
  * @property {LibraryType} type
36
39
  */
37
40
  /**
41
+ * Represents the export property library plugin runtime component.
38
42
  * @typedef {ExportPropertyLibraryPluginParsed} T
39
43
  * @extends {AbstractLibraryPlugin<ExportPropertyLibraryPluginParsed>}
40
44
  */
41
45
  class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
42
46
  /**
47
+ * Creates an instance of ExportPropertyLibraryPlugin.
43
48
  * @param {ExportPropertyLibraryPluginOptions} options options
44
49
  */
45
50
  constructor({ type }) {
@@ -50,6 +55,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
50
55
  }
51
56
 
52
57
  /**
58
+ * Returns preprocess as needed by overriding.
53
59
  * @param {LibraryOptions} library normalized library option
54
60
  * @returns {T} preprocess as needed by overriding
55
61
  */
@@ -60,6 +66,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
60
66
  }
61
67
 
62
68
  /**
69
+ * Finish entry module.
63
70
  * @param {Module} module the exporting entry module
64
71
  * @param {string} entryName the name of the entrypoint
65
72
  * @param {LibraryContext<T>} libraryContext context
@@ -86,6 +93,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
86
93
  }
87
94
 
88
95
  /**
96
+ * Processes the provided chunk.
89
97
  * @param {Chunk} chunk the chunk
90
98
  * @param {RuntimeRequirements} set runtime requirements
91
99
  * @param {LibraryContext<T>} libraryContext context
@@ -96,6 +104,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
96
104
  }
97
105
 
98
106
  /**
107
+ * Renders source with library export.
99
108
  * @param {Source} source source
100
109
  * @param {Module} module module
101
110
  * @param {StartupRenderContext} renderContext render context
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const WebpackError = require("./WebpackError");
8
+ const WebpackError = require("../errors/WebpackError");
9
9
 
10
10
  class FalseIIFEUmdWarning extends WebpackError {
11
11
  constructor() {
@@ -17,26 +17,31 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
17
17
  /** @typedef {import("../util/Hash")} Hash */
18
18
 
19
19
  /**
20
+ * Defines the shared type used by this module.
20
21
  * @template T
21
22
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
22
23
  */
23
24
 
24
25
  /**
26
+ * Defines the jsonp library plugin options type used by this module.
25
27
  * @typedef {object} JsonpLibraryPluginOptions
26
28
  * @property {LibraryType} type
27
29
  */
28
30
 
29
31
  /**
32
+ * Defines the jsonp library plugin parsed type used by this module.
30
33
  * @typedef {object} JsonpLibraryPluginParsed
31
34
  * @property {string} name
32
35
  */
33
36
 
34
37
  /**
38
+ * Represents the jsonp library plugin runtime component.
35
39
  * @typedef {JsonpLibraryPluginParsed} T
36
40
  * @extends {AbstractLibraryPlugin<JsonpLibraryPluginParsed>}
37
41
  */
38
42
  class JsonpLibraryPlugin extends AbstractLibraryPlugin {
39
43
  /**
44
+ * Creates an instance of JsonpLibraryPlugin.
40
45
  * @param {JsonpLibraryPluginOptions} options the plugin options
41
46
  */
42
47
  constructor(options) {
@@ -47,6 +52,7 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin {
47
52
  }
48
53
 
49
54
  /**
55
+ * Returns preprocess as needed by overriding.
50
56
  * @param {LibraryOptions} library normalized library option
51
57
  * @returns {T} preprocess as needed by overriding
52
58
  */
@@ -64,6 +70,7 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin {
64
70
  }
65
71
 
66
72
  /**
73
+ * Returns source with library export.
67
74
  * @param {Source} source source
68
75
  * @param {RenderContext} renderContext render context
69
76
  * @param {LibraryContext<T>} libraryContext context
@@ -77,6 +84,7 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin {
77
84
  }
78
85
 
79
86
  /**
87
+ * Processes the provided chunk.
80
88
  * @param {Chunk} chunk the chunk
81
89
  * @param {Hash} hash hash
82
90
  * @param {ChunkHashContext} chunkHashContext chunk hash context
@@ -11,6 +11,7 @@ const ExternalModule = require("../ExternalModule");
11
11
  const RuntimeGlobals = require("../RuntimeGlobals");
12
12
  const Template = require("../Template");
13
13
  const HarmonyExportImportedSpecifierDependency = require("../dependencies/HarmonyExportImportedSpecifierDependency");
14
+ const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin");
14
15
  const ConcatenatedModule = require("../optimize/ConcatenatedModule");
15
16
  const { propertyAccess } = require("../util/property");
16
17
  const { getEntryRuntime, getRuntimeKey } = require("../util/runtime");
@@ -32,16 +33,19 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
32
33
  /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
33
34
 
34
35
  /**
36
+ * Defines the shared type used by this module.
35
37
  * @template T
36
38
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
37
39
  */
38
40
 
39
41
  /**
42
+ * Defines the module library plugin options type used by this module.
40
43
  * @typedef {object} ModuleLibraryPluginOptions
41
44
  * @property {LibraryType} type
42
45
  */
43
46
 
44
47
  /**
48
+ * Defines the module library plugin parsed type used by this module.
45
49
  * @typedef {object} ModuleLibraryPluginParsed
46
50
  * @property {string} name
47
51
  * @property {LibraryExport=} export
@@ -50,11 +54,13 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
50
54
  const PLUGIN_NAME = "ModuleLibraryPlugin";
51
55
 
52
56
  /**
57
+ * Represents the module library plugin runtime component.
53
58
  * @typedef {ModuleLibraryPluginParsed} T
54
59
  * @extends {AbstractLibraryPlugin<ModuleLibraryPluginParsed>}
55
60
  */
56
61
  class ModuleLibraryPlugin extends AbstractLibraryPlugin {
57
62
  /**
63
+ * Creates an instance of ModuleLibraryPlugin.
58
64
  * @param {ModuleLibraryPluginOptions} options the plugin options
59
65
  */
60
66
  constructor(options) {
@@ -65,7 +71,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
65
71
  }
66
72
 
67
73
  /**
68
- * Apply the plugin
74
+ * Applies the plugin by registering its hooks on the compiler.
69
75
  * @param {Compiler} compiler the compiler instance
70
76
  * @returns {void}
71
77
  */
@@ -75,6 +81,8 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
75
81
  compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
76
82
  const { onDemandExportsGeneration } =
77
83
  ConcatenatedModule.getCompilationHooks(compilation);
84
+ const javascriptHooks =
85
+ JavascriptModulesPlugin.getCompilationHooks(compilation);
78
86
  onDemandExportsGeneration.tap(
79
87
  PLUGIN_NAME,
80
88
  (module, runtimes, source, finalName) => {
@@ -100,10 +108,82 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
100
108
  return true;
101
109
  }
102
110
  );
111
+
112
+ // `ModuleLibraryPlugin` stashes the on-demand exports source via
113
+ // `onDemandExportsGeneration` and only re-emits it when the
114
+ // module is wrapped in an IIFE/factory. When a single concatenated
115
+ // entry is inlined directly, the stashed source — and the
116
+ // `definePropertyGetters` / `requireScope` runtime helpers it
117
+ // pulled in — never make it into the output. Drop those helpers
118
+ // from the chunk's set in that simple shape so the bundle stays
119
+ // clean.
120
+ compilation.hooks.additionalChunkRuntimeRequirements.tap(
121
+ PLUGIN_NAME,
122
+ (chunk, set, { chunkGraph, codeGenerationResults }) => {
123
+ if (!set.has(RuntimeGlobals.definePropertyGetters)) return;
124
+
125
+ // Only handle the simple "single concatenated entry"
126
+ // shape. Anything else (additional modules, multiple
127
+ // entries, sibling runtime chunks, or chunk-level
128
+ // requirements that disable inline startup) forces the
129
+ // module through factory/IIFE rendering, which re-emits
130
+ // the source.
131
+ if (chunkGraph.getNumberOfChunkModules(chunk) !== 1) return;
132
+ if (chunkGraph.getNumberOfEntryModules(chunk) !== 1) return;
133
+ if (chunkGraph.hasChunkEntryDependentChunks(chunk)) return;
134
+ if (
135
+ set.has(RuntimeGlobals.moduleFactories) ||
136
+ set.has(RuntimeGlobals.moduleCache) ||
137
+ set.has(RuntimeGlobals.interceptModuleExecution) ||
138
+ set.has(RuntimeGlobals.module) ||
139
+ set.has(RuntimeGlobals.thisAsExports)
140
+ ) {
141
+ return;
142
+ }
143
+ // Anyone tapping `inlineInRuntimeBailout` may force factory
144
+ // rendering at render time, so conservatively bail out.
145
+ if (javascriptHooks.inlineInRuntimeBailout.isUsed()) return;
146
+
147
+ const [module] = chunkGraph.getChunkEntryModulesIterable(chunk);
148
+ const exportsSourceByRuntime =
149
+ module.buildMeta && module.buildMeta.exportsSourceByRuntime;
150
+ if (
151
+ !exportsSourceByRuntime ||
152
+ !exportsSourceByRuntime.has(getRuntimeKey(chunk.runtime))
153
+ ) {
154
+ return;
155
+ }
156
+ // If the generated source references any
157
+ // `__webpack_require__.<helper>` (the on-demand `.d(...)`
158
+ // is stashed, but `.r(__webpack_exports__)` from the ESM
159
+ // compat flag, namespace objects, deferred externals, ...
160
+ // stay in the result) the helpers and the require scope
161
+ // they live in are still needed. The dot in the substring
162
+ // avoids matching the bare `"__webpack_require__"` string
163
+ // literals that some test fixtures include.
164
+ const codeGenResult = codeGenerationResults.get(
165
+ module,
166
+ chunk.runtime
167
+ );
168
+ const jsSource =
169
+ codeGenResult && codeGenResult.sources.get("javascript");
170
+ if (
171
+ jsSource &&
172
+ String(jsSource.source()).includes(`${RuntimeGlobals.require}.`)
173
+ ) {
174
+ return;
175
+ }
176
+
177
+ set.delete(RuntimeGlobals.definePropertyGetters);
178
+ set.delete(RuntimeGlobals.exports);
179
+ set.delete(RuntimeGlobals.requireScope);
180
+ }
181
+ );
103
182
  });
104
183
  }
105
184
 
106
185
  /**
186
+ * Finish entry module.
107
187
  * @param {Module} module the exporting entry module
108
188
  * @param {string} entryName the name of the entrypoint
109
189
  * @param {LibraryContext<T>} libraryContext context
@@ -140,6 +220,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
140
220
  }
141
221
 
142
222
  /**
223
+ * Returns preprocess as needed by overriding.
143
224
  * @param {LibraryOptions} library normalized library option
144
225
  * @returns {T} preprocess as needed by overriding
145
226
  */
@@ -158,6 +239,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
158
239
  }
159
240
 
160
241
  /**
242
+ * Analyze unknown provided exports.
161
243
  * @param {Source} source source
162
244
  * @param {Module} module module
163
245
  * @param {ModuleGraph} moduleGraph moduleGraph
@@ -181,6 +263,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
181
263
  const unknownProvidedExports = new Map();
182
264
 
183
265
  /**
266
+ * Resolves dynamic star reexport.
184
267
  * @param {Module} module the module
185
268
  * @param {boolean} isDynamicReexport if module is dynamic reexported
186
269
  */
@@ -246,6 +329,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
246
329
  }
247
330
 
248
331
  /**
332
+ * Renders source with library export.
249
333
  * @param {Source} source source
250
334
  * @param {Module} module module
251
335
  * @param {StartupRenderContext} renderContext render context
@@ -431,6 +515,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
431
515
  }
432
516
 
433
517
  /**
518
+ * Renders module content.
434
519
  * @param {Source} source source
435
520
  * @param {Module} module module
436
521
  * @param {ModuleRenderContext} renderContext render context
@@ -21,26 +21,31 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
21
21
  /** @typedef {import("../javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
22
22
  /** @typedef {import("../util/Hash")} Hash */
23
23
  /**
24
+ * Defines the shared type used by this module.
24
25
  * @template T
25
26
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
26
27
  */
27
28
 
28
29
  /**
30
+ * Defines the system library plugin options type used by this module.
29
31
  * @typedef {object} SystemLibraryPluginOptions
30
32
  * @property {LibraryType} type
31
33
  */
32
34
 
33
35
  /**
36
+ * Defines the system library plugin parsed type used by this module.
34
37
  * @typedef {object} SystemLibraryPluginParsed
35
38
  * @property {string} name
36
39
  */
37
40
 
38
41
  /**
42
+ * Represents the system library plugin runtime component.
39
43
  * @typedef {SystemLibraryPluginParsed} T
40
44
  * @extends {AbstractLibraryPlugin<SystemLibraryPluginParsed>}
41
45
  */
42
46
  class SystemLibraryPlugin extends AbstractLibraryPlugin {
43
47
  /**
48
+ * Creates an instance of SystemLibraryPlugin.
44
49
  * @param {SystemLibraryPluginOptions} options the plugin options
45
50
  */
46
51
  constructor(options) {
@@ -51,6 +56,7 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
51
56
  }
52
57
 
53
58
  /**
59
+ * Returns preprocess as needed by overriding.
54
60
  * @param {LibraryOptions} library normalized library option
55
61
  * @returns {T} preprocess as needed by overriding
56
62
  */
@@ -68,6 +74,7 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
68
74
  }
69
75
 
70
76
  /**
77
+ * Returns source with library export.
71
78
  * @param {Source} source source
72
79
  * @param {RenderContext} renderContext render context
73
80
  * @param {LibraryContext<T>} libraryContext context
@@ -239,6 +246,7 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
239
246
  }
240
247
 
241
248
  /**
249
+ * Processes the provided chunk.
242
250
  * @param {Chunk} chunk the chunk
243
251
  * @param {Hash} hash hash
244
252
  * @param {ChunkHashContext} chunkHashContext chunk hash context
@@ -20,11 +20,13 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
20
20
  /** @typedef {import("../ExternalModule").RequestRecord} RequestRecord */
21
21
 
22
22
  /**
23
+ * Defines the shared type used by this module.
23
24
  * @template T
24
25
  * @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
25
26
  */
26
27
 
27
28
  /**
29
+ * Accessor to object access.
28
30
  * @param {string[]} accessor the accessor to convert to path
29
31
  * @returns {string} the path
30
32
  */
@@ -34,6 +36,7 @@ const accessorToObjectAccess = (accessor) =>
34
36
  /** @typedef {string | string[]} Accessor */
35
37
 
36
38
  /**
39
+ * Returns the path.
37
40
  * @param {string | undefined} base the path prefix
38
41
  * @param {Accessor} accessor the accessor
39
42
  * @param {string=} joinWith the element separator
@@ -56,12 +59,14 @@ const accessorAccess = (base, accessor, joinWith = ", ") => {
56
59
  };
57
60
 
58
61
  /**
62
+ * Defines the umd library plugin options type used by this module.
59
63
  * @typedef {object} UmdLibraryPluginOptions
60
64
  * @property {LibraryType} type
61
65
  * @property {boolean=} optionalAmdExternalAsGlobal
62
66
  */
63
67
 
64
68
  /**
69
+ * Defines the umd library plugin parsed type used by this module.
65
70
  * @typedef {object} UmdLibraryPluginParsed
66
71
  * @property {string | string[] | undefined} name
67
72
  * @property {LibraryCustomUmdObject} names
@@ -70,11 +75,13 @@ const accessorAccess = (base, accessor, joinWith = ", ") => {
70
75
  */
71
76
 
72
77
  /**
78
+ * Represents the umd library plugin runtime component.
73
79
  * @typedef {UmdLibraryPluginParsed} T
74
80
  * @extends {AbstractLibraryPlugin<UmdLibraryPluginParsed>}
75
81
  */
76
82
  class UmdLibraryPlugin extends AbstractLibraryPlugin {
77
83
  /**
84
+ * Creates an instance of UmdLibraryPlugin.
78
85
  * @param {UmdLibraryPluginOptions} options the plugin option
79
86
  */
80
87
  constructor(options) {
@@ -88,6 +95,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
88
95
  }
89
96
 
90
97
  /**
98
+ * Returns preprocess as needed by overriding.
91
99
  * @param {LibraryOptions} library normalized library option
92
100
  * @returns {T} preprocess as needed by overriding
93
101
  */
@@ -117,6 +125,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
117
125
  }
118
126
 
119
127
  /**
128
+ * Returns source with library export.
120
129
  * @param {Source} source source
121
130
  * @param {RenderContext} renderContext render context
122
131
  * @param {LibraryContext<T>} libraryContext context
@@ -153,6 +162,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
153
162
  }
154
163
 
155
164
  /**
165
+ * Returns the replaced keys.
156
166
  * @param {string} str the string to replace
157
167
  * @returns {string} the replaced keys
158
168
  */
@@ -162,6 +172,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
162
172
  });
163
173
 
164
174
  /**
175
+ * Externals deps array.
165
176
  * @param {ExternalModule[]} modules external modules
166
177
  * @returns {string} result
167
178
  */
@@ -180,6 +191,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
180
191
  )}]`;
181
192
 
182
193
  /**
194
+ * Externals root array.
183
195
  * @param {ExternalModule[]} modules external modules
184
196
  * @returns {string} result
185
197
  */
@@ -201,6 +213,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
201
213
  );
202
214
 
203
215
  /**
216
+ * Externals require array.
204
217
  * @param {string} type the type
205
218
  * @returns {string} external require array
206
219
  */
@@ -233,6 +246,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
233
246
  );
234
247
 
235
248
  /**
249
+ * Externals arguments.
236
250
  * @param {ExternalModule[]} modules external modules
237
251
  * @returns {string} arguments
238
252
  */
@@ -247,6 +261,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
247
261
  .join(", ");
248
262
 
249
263
  /**
264
+ * Returns stringified library name.
250
265
  * @param {Accessor} library library name
251
266
  * @returns {string} stringified library name
252
267
  */
@@ -279,6 +294,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
279
294
  const { auxiliaryComment, namedDefine, names } = options;
280
295
 
281
296
  /**
297
+ * Gets auxiliary comment.
282
298
  * @param {keyof LibraryCustomUmdCommentObject} type type
283
299
  * @returns {string} comment
284
300
  */
@@ -42,6 +42,7 @@ const TIMERS_AGGREGATES_SYMBOL = Symbol("webpack logger aggregated times");
42
42
 
43
43
  class WebpackLogger {
44
44
  /**
45
+ * Creates an instance of WebpackLogger.
45
46
  * @param {LogFn} log log function
46
47
  * @param {GetChildLogger} getChildLogger function to create child logger
47
48
  */
@@ -53,6 +54,7 @@ class WebpackLogger {
53
54
  }
54
55
 
55
56
  /**
57
+ * Processes the provided arg.
56
58
  * @param {Args} args args
57
59
  */
58
60
  error(...args) {
@@ -60,6 +62,7 @@ class WebpackLogger {
60
62
  }
61
63
 
62
64
  /**
65
+ * Processes the provided arg.
63
66
  * @param {Args} args args
64
67
  */
65
68
  warn(...args) {
@@ -67,6 +70,7 @@ class WebpackLogger {
67
70
  }
68
71
 
69
72
  /**
73
+ * Processes the provided arg.
70
74
  * @param {Args} args args
71
75
  */
72
76
  info(...args) {
@@ -74,6 +78,7 @@ class WebpackLogger {
74
78
  }
75
79
 
76
80
  /**
81
+ * Processes the provided arg.
77
82
  * @param {Args} args args
78
83
  */
79
84
  log(...args) {
@@ -81,6 +86,7 @@ class WebpackLogger {
81
86
  }
82
87
 
83
88
  /**
89
+ * Processes the provided arg.
84
90
  * @param {Args} args args
85
91
  */
86
92
  debug(...args) {
@@ -88,6 +94,7 @@ class WebpackLogger {
88
94
  }
89
95
 
90
96
  /**
97
+ * Processes the provided condition.
91
98
  * @param {boolean=} condition condition
92
99
  * @param {Args} args args
93
100
  */
@@ -106,6 +113,7 @@ class WebpackLogger {
106
113
  }
107
114
 
108
115
  /**
116
+ * Processes the provided arg.
109
117
  * @param {Args} args args
110
118
  */
111
119
  status(...args) {
@@ -113,6 +121,7 @@ class WebpackLogger {
113
121
  }
114
122
 
115
123
  /**
124
+ * Processes the provided arg.
116
125
  * @param {Args} args args
117
126
  */
118
127
  group(...args) {
@@ -120,6 +129,7 @@ class WebpackLogger {
120
129
  }
121
130
 
122
131
  /**
132
+ * Processes the provided arg.
123
133
  * @param {Args} args args
124
134
  */
125
135
  groupCollapsed(...args) {
@@ -131,6 +141,7 @@ class WebpackLogger {
131
141
  }
132
142
 
133
143
  /**
144
+ * Processes the provided label.
134
145
  * @param {string=} label label
135
146
  */
136
147
  profile(label) {
@@ -138,6 +149,7 @@ class WebpackLogger {
138
149
  }
139
150
 
140
151
  /**
152
+ * Processes the provided label.
141
153
  * @param {string=} label label
142
154
  */
143
155
  profileEnd(label) {
@@ -145,6 +157,7 @@ class WebpackLogger {
145
157
  }
146
158
 
147
159
  /**
160
+ * Processes the provided label.
148
161
  * @param {string} label label
149
162
  */
150
163
  time(label) {
@@ -154,6 +167,7 @@ class WebpackLogger {
154
167
  }
155
168
 
156
169
  /**
170
+ * Processes the provided label.
157
171
  * @param {string=} label label
158
172
  */
159
173
  timeLog(label) {
@@ -166,6 +180,7 @@ class WebpackLogger {
166
180
  }
167
181
 
168
182
  /**
183
+ * Processes the provided label.
169
184
  * @param {string=} label label
170
185
  */
171
186
  timeEnd(label) {
@@ -180,6 +195,7 @@ class WebpackLogger {
180
195
  }
181
196
 
182
197
  /**
198
+ * Processes the provided label.
183
199
  * @param {string=} label label
184
200
  */
185
201
  timeAggregate(label) {
@@ -209,6 +225,7 @@ class WebpackLogger {
209
225
  }
210
226
 
211
227
  /**
228
+ * Time aggregate end.
212
229
  * @param {string=} label label
213
230
  */
214
231
  timeAggregateEnd(label) {
@@ -16,6 +16,7 @@ const { LogType } = require("./Logger");
16
16
  /** @typedef {(value: string, type: LogTypeEnum, args?: Args) => void} LoggingFunction */
17
17
 
18
18
  /**
19
+ * Defines the logger console type used by this module.
19
20
  * @typedef {object} LoggerConsole
20
21
  * @property {() => void} clear
21
22
  * @property {() => void} trace
@@ -34,6 +35,7 @@ const { LogType } = require("./Logger");
34
35
  */
35
36
 
36
37
  /**
38
+ * Defines the logger options type used by this module.
37
39
  * @typedef {object} LoggerOptions
38
40
  * @property {false | true | "none" | "error" | "warn" | "info" | "log" | "verbose"} level loglevel
39
41
  * @property {FilterTypes | boolean} debug filter for debug logging
@@ -41,6 +43,7 @@ const { LogType } = require("./Logger");
41
43
  */
42
44
 
43
45
  /**
46
+ * Filter to function.
44
47
  * @param {FilterItemTypes} item an input item
45
48
  * @returns {FilterFunction | undefined} filter function
46
49
  */
@@ -63,6 +66,7 @@ const filterToFunction = (item) => {
63
66
  };
64
67
 
65
68
  /**
69
+ * Enumerates the available values.
66
70
  * @enum {number}
67
71
  */
68
72
  const LogLevel = {
@@ -77,6 +81,7 @@ const LogLevel = {
77
81
  };
78
82
 
79
83
  /**
84
+ * Returns logging function.
80
85
  * @param {LoggerOptions} options options object
81
86
  * @returns {LoggingFunction} logging function
82
87
  */
@@ -93,6 +98,7 @@ module.exports = ({ level = "info", debug = false, console }) => {
93
98
  const loglevel = LogLevel[`${level}`] || 0;
94
99
 
95
100
  /**
101
+ * Processes the provided name.
96
102
  * @param {string} name name of the logger
97
103
  * @param {LogTypeEnum} type type of the log entry
98
104
  * @param {Args=} args arguments of the log entry
@@ -100,6 +106,7 @@ module.exports = ({ level = "info", debug = false, console }) => {
100
106
  */
101
107
  const logger = (name, type, args) => {
102
108
  /**
109
+ * Returns labeled args.
103
110
  * @template T
104
111
  * @returns {[string?, ...T[]]} labeled args
105
112
  */
@@ -18,6 +18,7 @@ const currentDefaultLoggerOptions = {
18
18
  let currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
19
19
 
20
20
  /**
21
+ * Processes the provided create console logger.logger option.
21
22
  * @param {createConsoleLogger.LoggerOptions} options new options, merge with old options
22
23
  * @returns {void}
23
24
  */
@@ -27,6 +28,7 @@ module.exports.configureDefaultLogger = (options) => {
27
28
  };
28
29
 
29
30
  /**
31
+ * Returns a logger.
30
32
  * @param {string} name name of the logger
31
33
  * @returns {Logger} a logger
32
34
  */
@@ -6,6 +6,7 @@
6
6
  "use strict";
7
7
 
8
8
  /**
9
+ * Returns sum of all numbers in array.
9
10
  * @param {number[]} array array of numbers
10
11
  * @returns {number} sum of all numbers in array
11
12
  */
@@ -16,6 +17,7 @@ const arraySum = (array) => {
16
17
  };
17
18
 
18
19
  /**
20
+ * Returns truncated args.
19
21
  * @param {string[]} args items to be truncated
20
22
  * @param {number} maxLength maximum length of args including spaces between
21
23
  * @returns {string[]} truncated args