@eriche/webpack 4.47.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 (361) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +784 -0
  3. package/SECURITY.md +9 -0
  4. package/bin/webpack.js +171 -0
  5. package/buildin/amd-define.js +3 -0
  6. package/buildin/amd-options.js +2 -0
  7. package/buildin/global.js +20 -0
  8. package/buildin/harmony-module.js +24 -0
  9. package/buildin/module.js +22 -0
  10. package/buildin/system.js +7 -0
  11. package/declarations/WebpackOptions.d.ts +1466 -0
  12. package/declarations/plugins/BannerPlugin.d.ts +49 -0
  13. package/declarations/plugins/DllPlugin.d.ts +32 -0
  14. package/declarations/plugins/DllReferencePlugin.d.ts +126 -0
  15. package/declarations/plugins/HashedModuleIdsPlugin.d.ts +24 -0
  16. package/declarations/plugins/IgnorePlugin.d.ts +27 -0
  17. package/declarations/plugins/LoaderOptionsPlugin.d.ts +27 -0
  18. package/declarations/plugins/ProgressPlugin.d.ts +42 -0
  19. package/declarations/plugins/SourceMapDevToolPlugin.d.ts +94 -0
  20. package/declarations/plugins/WatchIgnorePlugin.d.ts +10 -0
  21. package/declarations/plugins/debug/ProfilingPlugin.d.ts +12 -0
  22. package/declarations/plugins/optimize/AggressiveSplittingPlugin.d.ts +24 -0
  23. package/declarations/plugins/optimize/LimitChunkCountPlugin.d.ts +16 -0
  24. package/declarations/plugins/optimize/MinChunkSizePlugin.d.ts +12 -0
  25. package/declarations/plugins/optimize/OccurrenceOrderChunkIdsPlugin.d.ts +12 -0
  26. package/declarations/plugins/optimize/OccurrenceOrderModuleIdsPlugin.d.ts +12 -0
  27. package/hot/dev-server.js +61 -0
  28. package/hot/emitter.js +2 -0
  29. package/hot/log-apply-result.js +44 -0
  30. package/hot/log.js +59 -0
  31. package/hot/only-dev-server.js +102 -0
  32. package/hot/poll.js +37 -0
  33. package/hot/signal.js +62 -0
  34. package/lib/APIPlugin.js +84 -0
  35. package/lib/AbstractMethodError.js +43 -0
  36. package/lib/AmdMainTemplatePlugin.js +106 -0
  37. package/lib/AsyncDependenciesBlock.js +110 -0
  38. package/lib/AsyncDependencyToInitialChunkError.js +31 -0
  39. package/lib/AutomaticPrefetchPlugin.js +57 -0
  40. package/lib/BannerPlugin.js +122 -0
  41. package/lib/BasicEvaluatedExpression.js +248 -0
  42. package/lib/CachePlugin.js +100 -0
  43. package/lib/CaseSensitiveModulesWarning.js +67 -0
  44. package/lib/Chunk.js +875 -0
  45. package/lib/ChunkGroup.js +513 -0
  46. package/lib/ChunkRenderError.js +32 -0
  47. package/lib/ChunkTemplate.js +87 -0
  48. package/lib/CommentCompilationWarning.js +32 -0
  49. package/lib/CommonJsStuffPlugin.js +116 -0
  50. package/lib/CompatibilityPlugin.js +70 -0
  51. package/lib/Compilation.js +2327 -0
  52. package/lib/Compiler.js +735 -0
  53. package/lib/ConcurrentCompilationError.js +19 -0
  54. package/lib/ConstPlugin.js +348 -0
  55. package/lib/ContextExclusionPlugin.js +28 -0
  56. package/lib/ContextModule.js +872 -0
  57. package/lib/ContextModuleFactory.js +262 -0
  58. package/lib/ContextReplacementPlugin.js +133 -0
  59. package/lib/DefinePlugin.js +289 -0
  60. package/lib/DelegatedModule.js +114 -0
  61. package/lib/DelegatedModuleFactoryPlugin.js +95 -0
  62. package/lib/DelegatedPlugin.js +39 -0
  63. package/lib/DependenciesBlock.js +124 -0
  64. package/lib/DependenciesBlockVariable.js +72 -0
  65. package/lib/Dependency.js +89 -0
  66. package/lib/DllEntryPlugin.js +54 -0
  67. package/lib/DllModule.js +60 -0
  68. package/lib/DllModuleFactory.js +29 -0
  69. package/lib/DllPlugin.js +49 -0
  70. package/lib/DllReferencePlugin.js +156 -0
  71. package/lib/DynamicEntryPlugin.js +94 -0
  72. package/lib/EntryModuleNotFoundError.js +21 -0
  73. package/lib/EntryOptionPlugin.js +46 -0
  74. package/lib/Entrypoint.js +64 -0
  75. package/lib/EnvironmentPlugin.js +72 -0
  76. package/lib/ErrorHelpers.js +60 -0
  77. package/lib/EvalDevToolModulePlugin.js +27 -0
  78. package/lib/EvalDevToolModuleTemplatePlugin.js +61 -0
  79. package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +120 -0
  80. package/lib/EvalSourceMapDevToolPlugin.js +41 -0
  81. package/lib/ExportPropertyMainTemplatePlugin.js +53 -0
  82. package/lib/ExtendedAPIPlugin.js +88 -0
  83. package/lib/ExternalModule.js +179 -0
  84. package/lib/ExternalModuleFactoryPlugin.js +110 -0
  85. package/lib/ExternalsPlugin.js +23 -0
  86. package/lib/FlagAllModulesAsUsedPlugin.js +38 -0
  87. package/lib/FlagDependencyExportsPlugin.js +174 -0
  88. package/lib/FlagDependencyUsagePlugin.js +116 -0
  89. package/lib/FlagInitialModulesAsUsedPlugin.js +36 -0
  90. package/lib/FunctionModulePlugin.js +19 -0
  91. package/lib/FunctionModuleTemplatePlugin.js +102 -0
  92. package/lib/Generator.js +60 -0
  93. package/lib/GraphHelpers.js +65 -0
  94. package/lib/HarmonyLinkingError.js +17 -0
  95. package/lib/HashedModuleIdsPlugin.js +63 -0
  96. package/lib/HotModuleReplacement.runtime.js +721 -0
  97. package/lib/HotModuleReplacementPlugin.js +425 -0
  98. package/lib/HotUpdateChunk.js +17 -0
  99. package/lib/HotUpdateChunkTemplate.js +78 -0
  100. package/lib/IgnorePlugin.js +91 -0
  101. package/lib/JavascriptGenerator.js +229 -0
  102. package/lib/JavascriptModulesPlugin.js +185 -0
  103. package/lib/JsonGenerator.js +57 -0
  104. package/lib/JsonModulesPlugin.js +30 -0
  105. package/lib/JsonParser.js +27 -0
  106. package/lib/LibManifestPlugin.js +90 -0
  107. package/lib/LibraryTemplatePlugin.js +186 -0
  108. package/lib/LoaderOptionsPlugin.js +58 -0
  109. package/lib/LoaderTargetPlugin.js +24 -0
  110. package/lib/MainTemplate.js +568 -0
  111. package/lib/MemoryOutputFileSystem.js +5 -0
  112. package/lib/Module.js +435 -0
  113. package/lib/ModuleBuildError.js +52 -0
  114. package/lib/ModuleDependencyError.js +35 -0
  115. package/lib/ModuleDependencyWarning.js +25 -0
  116. package/lib/ModuleError.js +36 -0
  117. package/lib/ModuleFilenameHelpers.js +179 -0
  118. package/lib/ModuleNotFoundError.js +23 -0
  119. package/lib/ModuleParseError.js +67 -0
  120. package/lib/ModuleReason.js +48 -0
  121. package/lib/ModuleTemplate.js +93 -0
  122. package/lib/ModuleWarning.js +36 -0
  123. package/lib/MultiCompiler.js +290 -0
  124. package/lib/MultiEntryPlugin.js +80 -0
  125. package/lib/MultiModule.js +87 -0
  126. package/lib/MultiModuleFactory.js +23 -0
  127. package/lib/MultiStats.js +92 -0
  128. package/lib/MultiWatching.js +50 -0
  129. package/lib/NamedChunksPlugin.js +29 -0
  130. package/lib/NamedModulesPlugin.js +58 -0
  131. package/lib/NoEmitOnErrorsPlugin.js +20 -0
  132. package/lib/NoModeWarning.js +23 -0
  133. package/lib/NodeStuffPlugin.js +118 -0
  134. package/lib/NormalModule.js +582 -0
  135. package/lib/NormalModuleFactory.js +528 -0
  136. package/lib/NormalModuleReplacementPlugin.js +51 -0
  137. package/lib/NullFactory.js +12 -0
  138. package/lib/OptionsApply.js +10 -0
  139. package/lib/OptionsDefaulter.js +141 -0
  140. package/lib/Parser.js +2454 -0
  141. package/lib/ParserHelpers.js +103 -0
  142. package/lib/PrefetchPlugin.js +37 -0
  143. package/lib/ProgressPlugin.js +307 -0
  144. package/lib/ProvidePlugin.js +86 -0
  145. package/lib/RawModule.js +56 -0
  146. package/lib/RecordIdsPlugin.js +236 -0
  147. package/lib/RemovedPluginError.js +11 -0
  148. package/lib/RequestShortener.js +83 -0
  149. package/lib/RequireJsStuffPlugin.js +66 -0
  150. package/lib/ResolverFactory.js +74 -0
  151. package/lib/RuleSet.js +567 -0
  152. package/lib/RuntimeTemplate.js +336 -0
  153. package/lib/SetVarMainTemplatePlugin.js +69 -0
  154. package/lib/SingleEntryPlugin.js +63 -0
  155. package/lib/SizeFormatHelpers.js +24 -0
  156. package/lib/SourceMapDevToolModuleOptionsPlugin.js +49 -0
  157. package/lib/SourceMapDevToolPlugin.js +418 -0
  158. package/lib/Stats.js +1685 -0
  159. package/lib/SystemMainTemplatePlugin.js +137 -0
  160. package/lib/Template.js +291 -0
  161. package/lib/TemplatedPathPlugin.js +188 -0
  162. package/lib/UmdMainTemplatePlugin.js +305 -0
  163. package/lib/UnsupportedFeatureWarning.js +30 -0
  164. package/lib/UseStrictPlugin.js +54 -0
  165. package/lib/WarnCaseSensitiveModulesPlugin.js +37 -0
  166. package/lib/WarnNoModeSetPlugin.js +17 -0
  167. package/lib/WatchIgnorePlugin.js +106 -0
  168. package/lib/Watching.js +211 -0
  169. package/lib/WebpackError.js +31 -0
  170. package/lib/WebpackOptionsApply.js +546 -0
  171. package/lib/WebpackOptionsDefaulter.js +391 -0
  172. package/lib/WebpackOptionsValidationError.js +390 -0
  173. package/lib/buildChunkGraph.js +712 -0
  174. package/lib/compareLocations.js +52 -0
  175. package/lib/debug/ProfilingPlugin.js +442 -0
  176. package/lib/dependencies/AMDDefineDependency.js +137 -0
  177. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +336 -0
  178. package/lib/dependencies/AMDPlugin.js +249 -0
  179. package/lib/dependencies/AMDRequireArrayDependency.js +49 -0
  180. package/lib/dependencies/AMDRequireContextDependency.js +20 -0
  181. package/lib/dependencies/AMDRequireDependenciesBlock.js +47 -0
  182. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +274 -0
  183. package/lib/dependencies/AMDRequireDependency.js +135 -0
  184. package/lib/dependencies/AMDRequireItemDependency.js +22 -0
  185. package/lib/dependencies/CommonJsPlugin.js +158 -0
  186. package/lib/dependencies/CommonJsRequireContextDependency.js +23 -0
  187. package/lib/dependencies/CommonJsRequireDependency.js +22 -0
  188. package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +138 -0
  189. package/lib/dependencies/ConstDependency.js +33 -0
  190. package/lib/dependencies/ContextDependency.js +68 -0
  191. package/lib/dependencies/ContextDependencyHelpers.js +232 -0
  192. package/lib/dependencies/ContextDependencyTemplateAsId.js +43 -0
  193. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +39 -0
  194. package/lib/dependencies/ContextElementDependency.js +21 -0
  195. package/lib/dependencies/CriticalDependencyWarning.js +20 -0
  196. package/lib/dependencies/DelegatedExportsDependency.js +33 -0
  197. package/lib/dependencies/DelegatedSourceDependency.js +18 -0
  198. package/lib/dependencies/DependencyReference.js +64 -0
  199. package/lib/dependencies/DllEntryDependency.js +20 -0
  200. package/lib/dependencies/HarmonyAcceptDependency.js +48 -0
  201. package/lib/dependencies/HarmonyAcceptImportDependency.js +23 -0
  202. package/lib/dependencies/HarmonyCompatibilityDependency.js +31 -0
  203. package/lib/dependencies/HarmonyDetectionParserPlugin.js +96 -0
  204. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +154 -0
  205. package/lib/dependencies/HarmonyExportExpressionDependency.js +58 -0
  206. package/lib/dependencies/HarmonyExportHeaderDependency.js +30 -0
  207. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +659 -0
  208. package/lib/dependencies/HarmonyExportSpecifierDependency.js +54 -0
  209. package/lib/dependencies/HarmonyImportDependency.js +109 -0
  210. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +222 -0
  211. package/lib/dependencies/HarmonyImportSideEffectDependency.js +31 -0
  212. package/lib/dependencies/HarmonyImportSpecifierDependency.js +163 -0
  213. package/lib/dependencies/HarmonyInitDependency.js +60 -0
  214. package/lib/dependencies/HarmonyModulesPlugin.js +143 -0
  215. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +26 -0
  216. package/lib/dependencies/ImportContextDependency.js +23 -0
  217. package/lib/dependencies/ImportDependenciesBlock.js +18 -0
  218. package/lib/dependencies/ImportDependency.js +34 -0
  219. package/lib/dependencies/ImportEagerDependency.js +32 -0
  220. package/lib/dependencies/ImportParserPlugin.js +248 -0
  221. package/lib/dependencies/ImportPlugin.js +79 -0
  222. package/lib/dependencies/ImportWeakDependency.js +34 -0
  223. package/lib/dependencies/JsonExportsDependency.js +26 -0
  224. package/lib/dependencies/LoaderDependency.js +21 -0
  225. package/lib/dependencies/LoaderPlugin.js +115 -0
  226. package/lib/dependencies/LocalModule.js +23 -0
  227. package/lib/dependencies/LocalModuleDependency.js +28 -0
  228. package/lib/dependencies/LocalModulesHelpers.js +52 -0
  229. package/lib/dependencies/ModuleDependency.js +23 -0
  230. package/lib/dependencies/ModuleDependencyTemplateAsId.js +17 -0
  231. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +17 -0
  232. package/lib/dependencies/ModuleHotAcceptDependency.js +23 -0
  233. package/lib/dependencies/ModuleHotDeclineDependency.js +23 -0
  234. package/lib/dependencies/MultiEntryDependency.js +25 -0
  235. package/lib/dependencies/NullDependency.js +20 -0
  236. package/lib/dependencies/PrefetchDependency.js +18 -0
  237. package/lib/dependencies/RequireContextDependency.js +22 -0
  238. package/lib/dependencies/RequireContextDependencyParserPlugin.js +56 -0
  239. package/lib/dependencies/RequireContextPlugin.js +143 -0
  240. package/lib/dependencies/RequireEnsureDependenciesBlock.js +33 -0
  241. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +116 -0
  242. package/lib/dependencies/RequireEnsureDependency.js +58 -0
  243. package/lib/dependencies/RequireEnsureItemDependency.js +21 -0
  244. package/lib/dependencies/RequireEnsurePlugin.js +74 -0
  245. package/lib/dependencies/RequireHeaderDependency.js +26 -0
  246. package/lib/dependencies/RequireIncludeDependency.js +39 -0
  247. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +23 -0
  248. package/lib/dependencies/RequireIncludePlugin.js +61 -0
  249. package/lib/dependencies/RequireResolveContextDependency.js +23 -0
  250. package/lib/dependencies/RequireResolveDependency.js +22 -0
  251. package/lib/dependencies/RequireResolveDependencyParserPlugin.js +86 -0
  252. package/lib/dependencies/RequireResolveHeaderDependency.js +26 -0
  253. package/lib/dependencies/SingleEntryDependency.js +21 -0
  254. package/lib/dependencies/SystemPlugin.js +122 -0
  255. package/lib/dependencies/UnsupportedDependency.js +27 -0
  256. package/lib/dependencies/WebAssemblyExportImportedDependency.js +31 -0
  257. package/lib/dependencies/WebAssemblyImportDependency.js +54 -0
  258. package/lib/dependencies/WebpackMissingModule.js +20 -0
  259. package/lib/dependencies/getFunctionExpression.js +52 -0
  260. package/lib/formatLocation.js +75 -0
  261. package/lib/logging/Logger.js +128 -0
  262. package/lib/logging/createConsoleLogger.js +210 -0
  263. package/lib/logging/runtime.js +36 -0
  264. package/lib/logging/truncateArgs.js +76 -0
  265. package/lib/node/NodeChunkTemplatePlugin.js +31 -0
  266. package/lib/node/NodeEnvironmentPlugin.js +44 -0
  267. package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +36 -0
  268. package/lib/node/NodeMainTemplate.runtime.js +32 -0
  269. package/lib/node/NodeMainTemplateAsync.runtime.js +50 -0
  270. package/lib/node/NodeMainTemplatePlugin.js +321 -0
  271. package/lib/node/NodeOutputFileSystem.js +22 -0
  272. package/lib/node/NodeSourcePlugin.js +141 -0
  273. package/lib/node/NodeTargetPlugin.js +19 -0
  274. package/lib/node/NodeTemplatePlugin.js +31 -0
  275. package/lib/node/NodeWatchFileSystem.js +109 -0
  276. package/lib/node/ReadFileCompileWasmTemplatePlugin.js +61 -0
  277. package/lib/node/nodeConsole.js +135 -0
  278. package/lib/optimize/AggressiveMergingPlugin.js +87 -0
  279. package/lib/optimize/AggressiveSplittingPlugin.js +294 -0
  280. package/lib/optimize/ChunkModuleIdRangePlugin.js +66 -0
  281. package/lib/optimize/ConcatenatedModule.js +1477 -0
  282. package/lib/optimize/EnsureChunkConditionsPlugin.js +70 -0
  283. package/lib/optimize/FlagIncludedChunksPlugin.js +99 -0
  284. package/lib/optimize/LimitChunkCountPlugin.js +231 -0
  285. package/lib/optimize/MergeDuplicateChunksPlugin.js +78 -0
  286. package/lib/optimize/MinChunkSizePlugin.js +82 -0
  287. package/lib/optimize/MinMaxSizeWarning.js +29 -0
  288. package/lib/optimize/ModuleConcatenationPlugin.js +485 -0
  289. package/lib/optimize/NaturalChunkOrderPlugin.js +41 -0
  290. package/lib/optimize/OccurrenceChunkOrderPlugin.js +66 -0
  291. package/lib/optimize/OccurrenceModuleOrderPlugin.js +112 -0
  292. package/lib/optimize/OccurrenceOrderPlugin.js +135 -0
  293. package/lib/optimize/RemoveEmptyChunksPlugin.js +42 -0
  294. package/lib/optimize/RemoveParentModulesPlugin.js +127 -0
  295. package/lib/optimize/RuntimeChunkPlugin.js +41 -0
  296. package/lib/optimize/SideEffectsFlagPlugin.js +352 -0
  297. package/lib/optimize/SplitChunksPlugin.js +971 -0
  298. package/lib/performance/AssetsOverSizeLimitWarning.js +30 -0
  299. package/lib/performance/EntrypointsOverSizeLimitWarning.js +30 -0
  300. package/lib/performance/NoAsyncChunksWarning.js +21 -0
  301. package/lib/performance/SizeLimitsPlugin.js +125 -0
  302. package/lib/util/LazyBucketSortedSet.js +235 -0
  303. package/lib/util/Queue.js +46 -0
  304. package/lib/util/Semaphore.js +53 -0
  305. package/lib/util/SetHelpers.js +48 -0
  306. package/lib/util/SortableSet.js +140 -0
  307. package/lib/util/StackedSetMap.js +142 -0
  308. package/lib/util/TrackingSet.js +35 -0
  309. package/lib/util/cachedMerge.js +35 -0
  310. package/lib/util/cleverMerge.js +77 -0
  311. package/lib/util/createHash.js +174 -0
  312. package/lib/util/deterministicGrouping.js +274 -0
  313. package/lib/util/hash/BatchedHash.js +71 -0
  314. package/lib/util/hash/md4.js +25 -0
  315. package/lib/util/hash/wasm-hash.js +174 -0
  316. package/lib/util/identifier.js +127 -0
  317. package/lib/util/objectToMap.js +16 -0
  318. package/lib/validateSchema.js +67 -0
  319. package/lib/wasm/UnsupportedWebAssemblyFeatureError.js +17 -0
  320. package/lib/wasm/WasmFinalizeExportsPlugin.js +69 -0
  321. package/lib/wasm/WasmMainTemplatePlugin.js +341 -0
  322. package/lib/wasm/WebAssemblyGenerator.js +458 -0
  323. package/lib/wasm/WebAssemblyInInitialChunkError.js +88 -0
  324. package/lib/wasm/WebAssemblyJavascriptGenerator.js +152 -0
  325. package/lib/wasm/WebAssemblyModulesPlugin.js +128 -0
  326. package/lib/wasm/WebAssemblyParser.js +175 -0
  327. package/lib/wasm/WebAssemblyUtils.js +59 -0
  328. package/lib/web/FetchCompileWasmTemplatePlugin.js +37 -0
  329. package/lib/web/JsonpChunkTemplatePlugin.js +71 -0
  330. package/lib/web/JsonpExportMainTemplatePlugin.js +50 -0
  331. package/lib/web/JsonpHotUpdateChunkTemplatePlugin.js +39 -0
  332. package/lib/web/JsonpMainTemplate.runtime.js +71 -0
  333. package/lib/web/JsonpMainTemplatePlugin.js +615 -0
  334. package/lib/web/JsonpTemplatePlugin.js +23 -0
  335. package/lib/web/WebEnvironmentPlugin.js +18 -0
  336. package/lib/webpack.js +206 -0
  337. package/lib/webpack.web.js +31 -0
  338. package/lib/webworker/WebWorkerChunkTemplatePlugin.js +35 -0
  339. package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +40 -0
  340. package/lib/webworker/WebWorkerMainTemplate.runtime.js +73 -0
  341. package/lib/webworker/WebWorkerMainTemplatePlugin.js +192 -0
  342. package/lib/webworker/WebWorkerTemplatePlugin.js +25 -0
  343. package/package.json +211 -0
  344. package/schemas/WebpackOptions.json +2285 -0
  345. package/schemas/ajv.absolutePath.js +57 -0
  346. package/schemas/plugins/BannerPlugin.json +101 -0
  347. package/schemas/plugins/DllPlugin.json +36 -0
  348. package/schemas/plugins/DllReferencePlugin.json +205 -0
  349. package/schemas/plugins/HashedModuleIdsPlugin.json +26 -0
  350. package/schemas/plugins/IgnorePlugin.json +37 -0
  351. package/schemas/plugins/LoaderOptionsPlugin.json +27 -0
  352. package/schemas/plugins/ProgressPlugin.json +52 -0
  353. package/schemas/plugins/SourceMapDevToolPlugin.json +185 -0
  354. package/schemas/plugins/WatchIgnorePlugin.json +18 -0
  355. package/schemas/plugins/debug/ProfilingPlugin.json +13 -0
  356. package/schemas/plugins/optimize/AggressiveSplittingPlugin.json +23 -0
  357. package/schemas/plugins/optimize/LimitChunkCountPlugin.json +16 -0
  358. package/schemas/plugins/optimize/MinChunkSizePlugin.json +12 -0
  359. package/schemas/plugins/optimize/OccurrenceOrderChunkIdsPlugin.json +11 -0
  360. package/schemas/plugins/optimize/OccurrenceOrderModuleIdsPlugin.json +11 -0
  361. package/web_modules/node-libs-browser.js +0 -0
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * A subset of Set that offers sorting functionality
5
+ * @template T item type in set
6
+ * @extends {Set<T>}
7
+ */
8
+ class SortableSet extends Set {
9
+ /**
10
+ * Create a new sortable set
11
+ * @param {Iterable<T>=} initialIterable The initial iterable value
12
+ * @typedef {function(T, T): number} SortFunction
13
+ * @param {SortFunction=} defaultSort Default sorting function
14
+ */
15
+ constructor(initialIterable, defaultSort) {
16
+ super(initialIterable);
17
+ /** @private @type {function(T, T): number}} */
18
+ this._sortFn = defaultSort;
19
+ /** @private @type {function(T, T): number} | null} */
20
+ this._lastActiveSortFn = null;
21
+ /** @private @type {Map<Function, T[]> | undefined} */
22
+ this._cache = undefined;
23
+ /** @private @type {Map<Function, T[]|string|number> | undefined} */
24
+ this._cacheOrderIndependent = undefined;
25
+ }
26
+
27
+ /**
28
+ * @param {T} value value to add to set
29
+ * @returns {this} returns itself
30
+ */
31
+ add(value) {
32
+ this._lastActiveSortFn = null;
33
+ this._invalidateCache();
34
+ this._invalidateOrderedCache();
35
+ super.add(value);
36
+ return this;
37
+ }
38
+
39
+ /**
40
+ * @param {T} value value to delete
41
+ * @returns {boolean} true if value existed in set, false otherwise
42
+ */
43
+ delete(value) {
44
+ this._invalidateCache();
45
+ this._invalidateOrderedCache();
46
+ return super.delete(value);
47
+ }
48
+
49
+ /**
50
+ * @returns {void}
51
+ */
52
+ clear() {
53
+ this._invalidateCache();
54
+ this._invalidateOrderedCache();
55
+ return super.clear();
56
+ }
57
+
58
+ /**
59
+ * Sort with a comparer function
60
+ * @param {SortFunction} sortFn Sorting comparer function
61
+ * @returns {void}
62
+ */
63
+ sortWith(sortFn) {
64
+ if (this.size <= 1 || sortFn === this._lastActiveSortFn) {
65
+ // already sorted - nothing to do
66
+ return;
67
+ }
68
+
69
+ const sortedArray = Array.from(this).sort(sortFn);
70
+ super.clear();
71
+ for (let i = 0; i < sortedArray.length; i += 1) {
72
+ super.add(sortedArray[i]);
73
+ }
74
+ this._lastActiveSortFn = sortFn;
75
+ this._invalidateCache();
76
+ }
77
+
78
+ sort() {
79
+ this.sortWith(this._sortFn);
80
+ }
81
+
82
+ /**
83
+ * Get data from cache
84
+ * @param {function(SortableSet<T>): T[]} fn function to calculate value
85
+ * @returns {T[]} returns result of fn(this), cached until set changes
86
+ */
87
+ getFromCache(fn) {
88
+ if (this._cache === undefined) {
89
+ this._cache = new Map();
90
+ } else {
91
+ const data = this._cache.get(fn);
92
+ if (data !== undefined) {
93
+ return data;
94
+ }
95
+ }
96
+ const newData = fn(this);
97
+ this._cache.set(fn, newData);
98
+ return newData;
99
+ }
100
+
101
+ /**
102
+ * @param {function(SortableSet<T>): string|number|T[]} fn function to calculate value
103
+ * @returns {any} returns result of fn(this), cached until set changes
104
+ */
105
+ getFromUnorderedCache(fn) {
106
+ if (this._cacheOrderIndependent === undefined) {
107
+ this._cacheOrderIndependent = new Map();
108
+ } else {
109
+ const data = this._cacheOrderIndependent.get(fn);
110
+ if (data !== undefined) {
111
+ return data;
112
+ }
113
+ }
114
+ const newData = fn(this);
115
+ this._cacheOrderIndependent.set(fn, newData);
116
+ return newData;
117
+ }
118
+
119
+ /**
120
+ * @private
121
+ * @returns {void}
122
+ */
123
+ _invalidateCache() {
124
+ if (this._cache !== undefined) {
125
+ this._cache.clear();
126
+ }
127
+ }
128
+
129
+ /**
130
+ * @private
131
+ * @returns {void}
132
+ */
133
+ _invalidateOrderedCache() {
134
+ if (this._cacheOrderIndependent !== undefined) {
135
+ this._cacheOrderIndependent.clear();
136
+ }
137
+ }
138
+ }
139
+
140
+ module.exports = SortableSet;
@@ -0,0 +1,142 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const util = require("util");
8
+
9
+ const TOMBSTONE = {};
10
+ const UNDEFINED_MARKER = {};
11
+
12
+ class StackedSetMap {
13
+ constructor(parentStack) {
14
+ this.stack = parentStack === undefined ? [] : parentStack.slice();
15
+ this.map = new Map();
16
+ this.stack.push(this.map);
17
+ }
18
+
19
+ add(item) {
20
+ this.map.set(item, true);
21
+ }
22
+
23
+ set(item, value) {
24
+ this.map.set(item, value === undefined ? UNDEFINED_MARKER : value);
25
+ }
26
+
27
+ delete(item) {
28
+ if (this.stack.length > 1) {
29
+ this.map.set(item, TOMBSTONE);
30
+ } else {
31
+ this.map.delete(item);
32
+ }
33
+ }
34
+
35
+ has(item) {
36
+ const topValue = this.map.get(item);
37
+ if (topValue !== undefined) return topValue !== TOMBSTONE;
38
+ if (this.stack.length > 1) {
39
+ for (var i = this.stack.length - 2; i >= 0; i--) {
40
+ const value = this.stack[i].get(item);
41
+ if (value !== undefined) {
42
+ this.map.set(item, value);
43
+ return value !== TOMBSTONE;
44
+ }
45
+ }
46
+ this.map.set(item, TOMBSTONE);
47
+ }
48
+ return false;
49
+ }
50
+
51
+ get(item) {
52
+ const topValue = this.map.get(item);
53
+ if (topValue !== undefined) {
54
+ return topValue === TOMBSTONE || topValue === UNDEFINED_MARKER
55
+ ? undefined
56
+ : topValue;
57
+ }
58
+ if (this.stack.length > 1) {
59
+ for (var i = this.stack.length - 2; i >= 0; i--) {
60
+ const value = this.stack[i].get(item);
61
+ if (value !== undefined) {
62
+ this.map.set(item, value);
63
+ return value === TOMBSTONE || value === UNDEFINED_MARKER
64
+ ? undefined
65
+ : value;
66
+ }
67
+ }
68
+ this.map.set(item, TOMBSTONE);
69
+ }
70
+ return undefined;
71
+ }
72
+
73
+ _compress() {
74
+ if (this.stack.length === 1) return;
75
+ this.map = new Map();
76
+ for (const data of this.stack) {
77
+ for (const pair of data) {
78
+ if (pair[1] === TOMBSTONE) {
79
+ this.map.delete(pair[0]);
80
+ } else {
81
+ this.map.set(pair[0], pair[1]);
82
+ }
83
+ }
84
+ }
85
+ this.stack = [this.map];
86
+ }
87
+
88
+ asArray() {
89
+ this._compress();
90
+ return Array.from(this.map.entries(), pair => pair[0]);
91
+ }
92
+
93
+ asSet() {
94
+ return new Set(this.asArray());
95
+ }
96
+
97
+ asPairArray() {
98
+ this._compress();
99
+ return Array.from(this.map.entries(), pair =>
100
+ /** @type {[TODO, TODO]} */ (pair[1] === UNDEFINED_MARKER
101
+ ? [pair[0], undefined]
102
+ : pair)
103
+ );
104
+ }
105
+
106
+ asMap() {
107
+ return new Map(this.asPairArray());
108
+ }
109
+
110
+ get size() {
111
+ this._compress();
112
+ return this.map.size;
113
+ }
114
+
115
+ createChild() {
116
+ return new StackedSetMap(this.stack);
117
+ }
118
+
119
+ get length() {
120
+ throw new Error("This is no longer an Array");
121
+ }
122
+
123
+ set length(value) {
124
+ throw new Error("This is no longer an Array");
125
+ }
126
+ }
127
+
128
+ // TODO remove in webpack 5
129
+ StackedSetMap.prototype.push = util.deprecate(
130
+ /**
131
+ * @deprecated
132
+ * @this {StackedSetMap}
133
+ * @param {any} item Item to add
134
+ * @returns {void}
135
+ */
136
+ function(item) {
137
+ this.add(item);
138
+ },
139
+ "This is no longer an Array: Use add instead."
140
+ );
141
+
142
+ module.exports = StackedSetMap;
@@ -0,0 +1,35 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ module.exports = class TrackingSet {
8
+ constructor(set) {
9
+ this.set = set;
10
+ this.set2 = new Set();
11
+ this.stack = set.stack;
12
+ }
13
+
14
+ add(item) {
15
+ this.set2.add(item);
16
+ return this.set.add(item);
17
+ }
18
+
19
+ delete(item) {
20
+ this.set2.delete(item);
21
+ return this.set.delete(item);
22
+ }
23
+
24
+ has(item) {
25
+ return this.set.has(item);
26
+ }
27
+
28
+ createChild() {
29
+ return this.set.createChild();
30
+ }
31
+
32
+ getAddedItems() {
33
+ return this.set2;
34
+ }
35
+ };
@@ -0,0 +1,35 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const mergeCache = new WeakMap();
8
+
9
+ /**
10
+ * Merges two given objects and caches the result to avoid computation if same objects passed as arguments again.
11
+ * @example
12
+ * // performs Object.assign(first, second), stores the result in WeakMap and returns result
13
+ * cachedMerge({a: 1}, {a: 2})
14
+ * {a: 2}
15
+ * // when same arguments passed, gets the result from WeakMap and returns it.
16
+ * cachedMerge({a: 1}, {a: 2})
17
+ * {a: 2}
18
+ * @param {object} first first object
19
+ * @param {object} second second object
20
+ * @returns {object} merged object of first and second object
21
+ */
22
+ const cachedMerge = (first, second) => {
23
+ let innerCache = mergeCache.get(first);
24
+ if (innerCache === undefined) {
25
+ innerCache = new WeakMap();
26
+ mergeCache.set(first, innerCache);
27
+ }
28
+ const prevMerge = innerCache.get(second);
29
+ if (prevMerge !== undefined) return prevMerge;
30
+ const newMerge = Object.assign({}, first, second);
31
+ innerCache.set(second, newMerge);
32
+ return newMerge;
33
+ };
34
+
35
+ module.exports = cachedMerge;
@@ -0,0 +1,77 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const mergeCache = new WeakMap();
9
+
10
+ /**
11
+ * Merges two given objects and caches the result to avoid computation if same objects passed as arguments again.
12
+ * @example
13
+ * // performs cleverMerge(first, second), stores the result in WeakMap and returns result
14
+ * cachedCleverMerge({a: 1}, {a: 2})
15
+ * {a: 2}
16
+ * // when same arguments passed, gets the result from WeakMap and returns it.
17
+ * cachedCleverMerge({a: 1}, {a: 2})
18
+ * {a: 2}
19
+ * @param {object} first first object
20
+ * @param {object} second second object
21
+ * @returns {object} merged object of first and second object
22
+ */
23
+ const cachedCleverMerge = (first, second) => {
24
+ let innerCache = mergeCache.get(first);
25
+ if (innerCache === undefined) {
26
+ innerCache = new WeakMap();
27
+ mergeCache.set(first, innerCache);
28
+ }
29
+ const prevMerge = innerCache.get(second);
30
+ if (prevMerge !== undefined) return prevMerge;
31
+ const newMerge = cleverMerge(first, second);
32
+ innerCache.set(second, newMerge);
33
+ return newMerge;
34
+ };
35
+
36
+ /**
37
+ * Merges two objects. Objects are not deeply merged.
38
+ * TODO webpack 5: merge objects deeply clever.
39
+ * Arrays might reference the old value with "..."
40
+ * @param {object} first first object
41
+ * @param {object} second second object
42
+ * @returns {object} merged object of first and second object
43
+ */
44
+ const cleverMerge = (first, second) => {
45
+ const newObject = Object.assign({}, first);
46
+ for (const key of Object.keys(second)) {
47
+ if (!(key in newObject)) {
48
+ newObject[key] = second[key];
49
+ continue;
50
+ }
51
+ const secondValue = second[key];
52
+ if (!Array.isArray(secondValue)) {
53
+ newObject[key] = secondValue;
54
+ continue;
55
+ }
56
+ const firstValue = newObject[key];
57
+ if (Array.isArray(firstValue)) {
58
+ const newArray = [];
59
+ for (const item of secondValue) {
60
+ if (item === "...") {
61
+ for (const item of firstValue) {
62
+ newArray.push(item);
63
+ }
64
+ } else {
65
+ newArray.push(item);
66
+ }
67
+ }
68
+ newObject[key] = newArray;
69
+ } else {
70
+ newObject[key] = secondValue;
71
+ }
72
+ }
73
+ return newObject;
74
+ };
75
+
76
+ exports.cachedCleverMerge = cachedCleverMerge;
77
+ exports.cleverMerge = cleverMerge;
@@ -0,0 +1,174 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const AbstractMethodError = require("../AbstractMethodError");
8
+
9
+ const BULK_SIZE = 1000;
10
+
11
+ class Hash {
12
+ /**
13
+ * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
14
+ * @param {string|Buffer} data data
15
+ * @param {string=} inputEncoding data encoding
16
+ * @returns {this} updated hash
17
+ */
18
+ update(data, inputEncoding) {
19
+ throw new AbstractMethodError();
20
+ }
21
+
22
+ /**
23
+ * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
24
+ * @param {string=} encoding encoding of the return value
25
+ * @returns {string|Buffer} digest
26
+ */
27
+ digest(encoding) {
28
+ throw new AbstractMethodError();
29
+ }
30
+ }
31
+
32
+ class BulkUpdateDecorator extends Hash {
33
+ /**
34
+ * @param {Hash} hash hash
35
+ */
36
+ constructor(hash) {
37
+ super();
38
+ this.hash = hash;
39
+ this.buffer = "";
40
+ }
41
+
42
+ /**
43
+ * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
44
+ * @param {string|Buffer} data data
45
+ * @param {string=} inputEncoding data encoding
46
+ * @returns {this} updated hash
47
+ */
48
+ update(data, inputEncoding) {
49
+ if (
50
+ inputEncoding !== undefined ||
51
+ typeof data !== "string" ||
52
+ data.length > BULK_SIZE
53
+ ) {
54
+ if (this.buffer.length > 0) {
55
+ this.hash.update(this.buffer);
56
+ this.buffer = "";
57
+ }
58
+ this.hash.update(data, inputEncoding);
59
+ } else {
60
+ this.buffer += data;
61
+ if (this.buffer.length > BULK_SIZE) {
62
+ this.hash.update(this.buffer);
63
+ this.buffer = "";
64
+ }
65
+ }
66
+ return this;
67
+ }
68
+
69
+ /**
70
+ * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
71
+ * @param {string=} encoding encoding of the return value
72
+ * @returns {string|Buffer} digest
73
+ */
74
+ digest(encoding) {
75
+ if (this.buffer.length > 0) {
76
+ this.hash.update(this.buffer);
77
+ }
78
+ var digestResult = this.hash.digest(encoding);
79
+ return typeof digestResult === "string"
80
+ ? digestResult
81
+ : digestResult.toString();
82
+ }
83
+ }
84
+
85
+ /**
86
+ * istanbul ignore next
87
+ */
88
+ class DebugHash extends Hash {
89
+ constructor() {
90
+ super();
91
+ this.string = "";
92
+ }
93
+
94
+ /**
95
+ * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
96
+ * @param {string|Buffer} data data
97
+ * @param {string=} inputEncoding data encoding
98
+ * @returns {this} updated hash
99
+ */
100
+ update(data, inputEncoding) {
101
+ if (typeof data !== "string") data = data.toString("utf-8");
102
+ this.string += data;
103
+ return this;
104
+ }
105
+
106
+ /**
107
+ * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
108
+ * @param {string=} encoding encoding of the return value
109
+ * @returns {string|Buffer} digest
110
+ */
111
+ digest(encoding) {
112
+ return this.string.replace(/[^a-z0-9]+/gi, m =>
113
+ Buffer.from(m).toString("hex")
114
+ );
115
+ }
116
+ }
117
+
118
+ /** @type {typeof import("crypto") | undefined} */
119
+ let crypto = undefined;
120
+ /** @type {typeof import("./hash/md4") | undefined} */
121
+ let createMd4 = undefined;
122
+ /** @type {typeof import("./hash/BatchedHash") | undefined} */
123
+ let BatchedHash = undefined;
124
+
125
+ /** @type {number} */
126
+ const NODE_MAJOR_VERSION = parseInt(process.versions.node, 10);
127
+
128
+ /**
129
+ * Creates a hash by name or function
130
+ * @param {string | HashConstructor} algorithm the algorithm name or a constructor creating a hash
131
+ * @returns {Hash} the hash
132
+ */
133
+ module.exports = algorithm => {
134
+ if (typeof algorithm === "function") {
135
+ return new BulkUpdateDecorator(new algorithm());
136
+ }
137
+
138
+ switch (algorithm) {
139
+ // TODO add non-cryptographic algorithm here
140
+ case "debug":
141
+ return new DebugHash();
142
+ case "md4":
143
+ if (NODE_MAJOR_VERSION >= 18) {
144
+ if (createMd4 === undefined) {
145
+ createMd4 = require("./hash/md4");
146
+ if (BatchedHash === undefined) {
147
+ BatchedHash = require("./hash/BatchedHash");
148
+ }
149
+ }
150
+ return new /** @type {typeof import("./hash/BatchedHash")} */ (BatchedHash)(
151
+ createMd4()
152
+ );
153
+ }
154
+ // If we are on Node.js < 18, fall through to the default case
155
+ // eslint-disable-next-line no-fallthrough
156
+
157
+ case "native-md4":
158
+ if (NODE_MAJOR_VERSION >= 18) {
159
+ if (crypto === undefined) crypto = require("crypto");
160
+ return new BulkUpdateDecorator(
161
+ /** @type {typeof import("crypto")} */ (crypto).createHash("md4")
162
+ );
163
+ }
164
+ // If we are on Node.js < 18, fall through to the default case
165
+ // eslint-disable-next-line no-fallthrough
166
+
167
+ default:
168
+ if (crypto === undefined) crypto = require("crypto");
169
+ return new BulkUpdateDecorator(crypto.createHash(algorithm));
170
+ }
171
+ };
172
+
173
+ module.exports.Hash = Hash;
174
+ /** @typedef {typeof Hash} HashConstructor */