@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,290 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const { Tapable, SyncHook, MultiHook } = require("tapable");
8
+ const asyncLib = require("neo-async");
9
+ const MultiWatching = require("./MultiWatching");
10
+ const MultiStats = require("./MultiStats");
11
+ const ConcurrentCompilationError = require("./ConcurrentCompilationError");
12
+
13
+ module.exports = class MultiCompiler extends Tapable {
14
+ constructor(compilers) {
15
+ super();
16
+ this.hooks = {
17
+ done: new SyncHook(["stats"]),
18
+ invalid: new MultiHook(compilers.map(c => c.hooks.invalid)),
19
+ run: new MultiHook(compilers.map(c => c.hooks.run)),
20
+ watchClose: new SyncHook([]),
21
+ watchRun: new MultiHook(compilers.map(c => c.hooks.watchRun)),
22
+ infrastructureLog: new MultiHook(
23
+ compilers.map(c => c.hooks.infrastructureLog)
24
+ )
25
+ };
26
+ if (!Array.isArray(compilers)) {
27
+ compilers = Object.keys(compilers).map(name => {
28
+ compilers[name].name = name;
29
+ return compilers[name];
30
+ });
31
+ }
32
+ this.compilers = compilers;
33
+ let doneCompilers = 0;
34
+ let compilerStats = [];
35
+ let index = 0;
36
+ for (const compiler of this.compilers) {
37
+ let compilerDone = false;
38
+ const compilerIndex = index++;
39
+ // eslint-disable-next-line no-loop-func
40
+ compiler.hooks.done.tap("MultiCompiler", stats => {
41
+ if (!compilerDone) {
42
+ compilerDone = true;
43
+ doneCompilers++;
44
+ }
45
+ compilerStats[compilerIndex] = stats;
46
+ if (doneCompilers === this.compilers.length) {
47
+ this.hooks.done.call(new MultiStats(compilerStats));
48
+ }
49
+ });
50
+ // eslint-disable-next-line no-loop-func
51
+ compiler.hooks.invalid.tap("MultiCompiler", () => {
52
+ if (compilerDone) {
53
+ compilerDone = false;
54
+ doneCompilers--;
55
+ }
56
+ });
57
+ }
58
+ this.running = false;
59
+ }
60
+
61
+ get outputPath() {
62
+ let commonPath = this.compilers[0].outputPath;
63
+ for (const compiler of this.compilers) {
64
+ while (
65
+ compiler.outputPath.indexOf(commonPath) !== 0 &&
66
+ /[/\\]/.test(commonPath)
67
+ ) {
68
+ commonPath = commonPath.replace(/[/\\][^/\\]*$/, "");
69
+ }
70
+ }
71
+
72
+ if (!commonPath && this.compilers[0].outputPath[0] === "/") return "/";
73
+ return commonPath;
74
+ }
75
+
76
+ get inputFileSystem() {
77
+ throw new Error("Cannot read inputFileSystem of a MultiCompiler");
78
+ }
79
+
80
+ get outputFileSystem() {
81
+ throw new Error("Cannot read outputFileSystem of a MultiCompiler");
82
+ }
83
+
84
+ set inputFileSystem(value) {
85
+ for (const compiler of this.compilers) {
86
+ compiler.inputFileSystem = value;
87
+ }
88
+ }
89
+
90
+ set outputFileSystem(value) {
91
+ for (const compiler of this.compilers) {
92
+ compiler.outputFileSystem = value;
93
+ }
94
+ }
95
+
96
+ getInfrastructureLogger(name) {
97
+ return this.compilers[0].getInfrastructureLogger(name);
98
+ }
99
+
100
+ validateDependencies(callback) {
101
+ const edges = new Set();
102
+ const missing = [];
103
+ const targetFound = compiler => {
104
+ for (const edge of edges) {
105
+ if (edge.target === compiler) {
106
+ return true;
107
+ }
108
+ }
109
+ return false;
110
+ };
111
+ const sortEdges = (e1, e2) => {
112
+ return (
113
+ e1.source.name.localeCompare(e2.source.name) ||
114
+ e1.target.name.localeCompare(e2.target.name)
115
+ );
116
+ };
117
+ for (const source of this.compilers) {
118
+ if (source.dependencies) {
119
+ for (const dep of source.dependencies) {
120
+ const target = this.compilers.find(c => c.name === dep);
121
+ if (!target) {
122
+ missing.push(dep);
123
+ } else {
124
+ edges.add({
125
+ source,
126
+ target
127
+ });
128
+ }
129
+ }
130
+ }
131
+ }
132
+ const errors = missing.map(m => `Compiler dependency \`${m}\` not found.`);
133
+ const stack = this.compilers.filter(c => !targetFound(c));
134
+ while (stack.length > 0) {
135
+ const current = stack.pop();
136
+ for (const edge of edges) {
137
+ if (edge.source === current) {
138
+ edges.delete(edge);
139
+ const target = edge.target;
140
+ if (!targetFound(target)) {
141
+ stack.push(target);
142
+ }
143
+ }
144
+ }
145
+ }
146
+ if (edges.size > 0) {
147
+ const lines = Array.from(edges)
148
+ .sort(sortEdges)
149
+ .map(edge => `${edge.source.name} -> ${edge.target.name}`);
150
+ lines.unshift("Circular dependency found in compiler dependencies.");
151
+ errors.unshift(lines.join("\n"));
152
+ }
153
+ if (errors.length > 0) {
154
+ const message = errors.join("\n");
155
+ callback(new Error(message));
156
+ return false;
157
+ }
158
+ return true;
159
+ }
160
+
161
+ runWithDependencies(compilers, fn, callback) {
162
+ const fulfilledNames = new Set();
163
+ let remainingCompilers = compilers;
164
+ const isDependencyFulfilled = d => fulfilledNames.has(d);
165
+ const getReadyCompilers = () => {
166
+ let readyCompilers = [];
167
+ let list = remainingCompilers;
168
+ remainingCompilers = [];
169
+ for (const c of list) {
170
+ const ready =
171
+ !c.dependencies || c.dependencies.every(isDependencyFulfilled);
172
+ if (ready) {
173
+ readyCompilers.push(c);
174
+ } else {
175
+ remainingCompilers.push(c);
176
+ }
177
+ }
178
+ return readyCompilers;
179
+ };
180
+ const runCompilers = callback => {
181
+ if (remainingCompilers.length === 0) return callback();
182
+ asyncLib.map(
183
+ getReadyCompilers(),
184
+ (compiler, callback) => {
185
+ fn(compiler, err => {
186
+ if (err) return callback(err);
187
+ fulfilledNames.add(compiler.name);
188
+ runCompilers(callback);
189
+ });
190
+ },
191
+ callback
192
+ );
193
+ };
194
+ runCompilers(callback);
195
+ }
196
+
197
+ watch(watchOptions, handler) {
198
+ if (this.running) return handler(new ConcurrentCompilationError());
199
+
200
+ let watchings = [];
201
+ let allStats = this.compilers.map(() => null);
202
+ let compilerStatus = this.compilers.map(() => false);
203
+ if (this.validateDependencies(handler)) {
204
+ this.running = true;
205
+ this.runWithDependencies(
206
+ this.compilers,
207
+ (compiler, callback) => {
208
+ const compilerIdx = this.compilers.indexOf(compiler);
209
+ let firstRun = true;
210
+ let watching = compiler.watch(
211
+ Array.isArray(watchOptions)
212
+ ? watchOptions[compilerIdx]
213
+ : watchOptions,
214
+ (err, stats) => {
215
+ if (err) handler(err);
216
+ if (stats) {
217
+ allStats[compilerIdx] = stats;
218
+ compilerStatus[compilerIdx] = "new";
219
+ if (compilerStatus.every(Boolean)) {
220
+ const freshStats = allStats.filter((s, idx) => {
221
+ return compilerStatus[idx] === "new";
222
+ });
223
+ compilerStatus.fill(true);
224
+ const multiStats = new MultiStats(freshStats);
225
+ handler(null, multiStats);
226
+ }
227
+ }
228
+ if (firstRun && !err) {
229
+ firstRun = false;
230
+ callback();
231
+ }
232
+ }
233
+ );
234
+ watchings.push(watching);
235
+ },
236
+ () => {
237
+ // ignore
238
+ }
239
+ );
240
+ }
241
+
242
+ return new MultiWatching(watchings, this);
243
+ }
244
+
245
+ run(callback) {
246
+ if (this.running) {
247
+ return callback(new ConcurrentCompilationError());
248
+ }
249
+
250
+ const finalCallback = (err, stats) => {
251
+ this.running = false;
252
+
253
+ if (callback !== undefined) {
254
+ return callback(err, stats);
255
+ }
256
+ };
257
+
258
+ const allStats = this.compilers.map(() => null);
259
+ if (this.validateDependencies(callback)) {
260
+ this.running = true;
261
+ this.runWithDependencies(
262
+ this.compilers,
263
+ (compiler, callback) => {
264
+ const compilerIdx = this.compilers.indexOf(compiler);
265
+ compiler.run((err, stats) => {
266
+ if (err) {
267
+ return callback(err);
268
+ }
269
+ allStats[compilerIdx] = stats;
270
+ callback();
271
+ });
272
+ },
273
+ err => {
274
+ if (err) {
275
+ return finalCallback(err);
276
+ }
277
+ finalCallback(null, new MultiStats(allStats));
278
+ }
279
+ );
280
+ }
281
+ }
282
+
283
+ purgeInputFileSystem() {
284
+ for (const compiler of this.compilers) {
285
+ if (compiler.inputFileSystem && compiler.inputFileSystem.purge) {
286
+ compiler.inputFileSystem.purge();
287
+ }
288
+ }
289
+ }
290
+ };
@@ -0,0 +1,80 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const MultiEntryDependency = require("./dependencies/MultiEntryDependency");
8
+ const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
9
+ const MultiModuleFactory = require("./MultiModuleFactory");
10
+
11
+ /** @typedef {import("./Compiler")} Compiler */
12
+
13
+ class MultiEntryPlugin {
14
+ /**
15
+ * The MultiEntryPlugin is invoked whenever this.options.entry value is an array of paths
16
+ * @param {string} context context path
17
+ * @param {string[]} entries array of entry paths
18
+ * @param {string} name entry key name
19
+ */
20
+ constructor(context, entries, name) {
21
+ this.context = context;
22
+ this.entries = entries;
23
+ this.name = name;
24
+ }
25
+
26
+ /**
27
+ * @param {Compiler} compiler the compiler instance
28
+ * @returns {void}
29
+ */
30
+ apply(compiler) {
31
+ compiler.hooks.compilation.tap(
32
+ "MultiEntryPlugin",
33
+ (compilation, { normalModuleFactory }) => {
34
+ const multiModuleFactory = new MultiModuleFactory();
35
+
36
+ compilation.dependencyFactories.set(
37
+ MultiEntryDependency,
38
+ multiModuleFactory
39
+ );
40
+ compilation.dependencyFactories.set(
41
+ SingleEntryDependency,
42
+ normalModuleFactory
43
+ );
44
+ }
45
+ );
46
+
47
+ compiler.hooks.make.tapAsync(
48
+ "MultiEntryPlugin",
49
+ (compilation, callback) => {
50
+ const { context, entries, name } = this;
51
+
52
+ const dep = MultiEntryPlugin.createDependency(entries, name);
53
+ compilation.addEntry(context, dep, name, callback);
54
+ }
55
+ );
56
+ }
57
+
58
+ /**
59
+ * @param {string[]} entries each entry path string
60
+ * @param {string} name name of the entry
61
+ * @returns {MultiEntryDependency} returns a constructed Dependency
62
+ */
63
+ static createDependency(entries, name) {
64
+ return new MultiEntryDependency(
65
+ entries.map((e, idx) => {
66
+ const dep = new SingleEntryDependency(e);
67
+ // Because entrypoints are not dependencies found in an
68
+ // existing module, we give it a synthetic id
69
+ dep.loc = {
70
+ name,
71
+ index: idx
72
+ };
73
+ return dep;
74
+ }),
75
+ name
76
+ );
77
+ }
78
+ }
79
+
80
+ module.exports = MultiEntryPlugin;
@@ -0,0 +1,87 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const Module = require("./Module");
8
+ const Template = require("./Template");
9
+ const { RawSource } = require("webpack-sources");
10
+
11
+ /** @typedef {import("./util/createHash").Hash} Hash */
12
+
13
+ class MultiModule extends Module {
14
+ constructor(context, dependencies, name) {
15
+ super("javascript/dynamic", context);
16
+
17
+ // Info from Factory
18
+ this.dependencies = dependencies;
19
+ this.name = name;
20
+ this._identifier = `multi ${this.dependencies
21
+ .map(d => d.request)
22
+ .join(" ")}`;
23
+ }
24
+
25
+ identifier() {
26
+ return this._identifier;
27
+ }
28
+
29
+ readableIdentifier(requestShortener) {
30
+ return `multi ${this.dependencies
31
+ .map(d => requestShortener.shorten(d.request))
32
+ .join(" ")}`;
33
+ }
34
+
35
+ build(options, compilation, resolver, fs, callback) {
36
+ this.built = true;
37
+ this.buildMeta = {};
38
+ this.buildInfo = {};
39
+ return callback();
40
+ }
41
+
42
+ needRebuild() {
43
+ return false;
44
+ }
45
+
46
+ size() {
47
+ return 16 + this.dependencies.length * 12;
48
+ }
49
+
50
+ /**
51
+ * @param {Hash} hash the hash used to track dependencies
52
+ * @returns {void}
53
+ */
54
+ updateHash(hash) {
55
+ hash.update("multi module");
56
+ hash.update(this.name || "");
57
+ super.updateHash(hash);
58
+ }
59
+
60
+ source(dependencyTemplates, runtimeTemplate) {
61
+ const str = [];
62
+ let idx = 0;
63
+ for (const dep of this.dependencies) {
64
+ if (dep.module) {
65
+ if (idx === this.dependencies.length - 1) {
66
+ str.push("module.exports = ");
67
+ }
68
+ str.push("__webpack_require__(");
69
+ if (runtimeTemplate.outputOptions.pathinfo) {
70
+ str.push(Template.toComment(dep.request));
71
+ }
72
+ str.push(`${JSON.stringify(dep.module.id)}`);
73
+ str.push(")");
74
+ } else {
75
+ const content = require("./dependencies/WebpackMissingModule").module(
76
+ dep.request
77
+ );
78
+ str.push(content);
79
+ }
80
+ str.push(";\n");
81
+ idx++;
82
+ }
83
+ return new RawSource(str.join(""));
84
+ }
85
+ }
86
+
87
+ module.exports = MultiModule;
@@ -0,0 +1,23 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const { Tapable } = require("tapable");
8
+ const MultiModule = require("./MultiModule");
9
+
10
+ module.exports = class MultiModuleFactory extends Tapable {
11
+ constructor() {
12
+ super();
13
+ this.hooks = {};
14
+ }
15
+
16
+ create(data, callback) {
17
+ const dependency = data.dependencies[0];
18
+ callback(
19
+ null,
20
+ new MultiModule(data.context, dependency.dependencies, dependency.name)
21
+ );
22
+ }
23
+ };
@@ -0,0 +1,92 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const Stats = require("./Stats");
8
+
9
+ const optionOrFallback = (optionValue, fallbackValue) =>
10
+ optionValue !== undefined ? optionValue : fallbackValue;
11
+
12
+ class MultiStats {
13
+ constructor(stats) {
14
+ this.stats = stats;
15
+ this.hash = stats.map(stat => stat.hash).join("");
16
+ }
17
+
18
+ hasErrors() {
19
+ return this.stats
20
+ .map(stat => stat.hasErrors())
21
+ .reduce((a, b) => a || b, false);
22
+ }
23
+
24
+ hasWarnings() {
25
+ return this.stats
26
+ .map(stat => stat.hasWarnings())
27
+ .reduce((a, b) => a || b, false);
28
+ }
29
+
30
+ toJson(options, forToString) {
31
+ if (typeof options === "boolean" || typeof options === "string") {
32
+ options = Stats.presetToOptions(options);
33
+ } else if (!options) {
34
+ options = {};
35
+ }
36
+ const jsons = this.stats.map((stat, idx) => {
37
+ const childOptions = Stats.getChildOptions(options, idx);
38
+ const obj = stat.toJson(childOptions, forToString);
39
+ obj.name = stat.compilation && stat.compilation.name;
40
+ return obj;
41
+ });
42
+ const showVersion =
43
+ options.version === undefined
44
+ ? jsons.every(j => j.version)
45
+ : options.version !== false;
46
+ const showHash =
47
+ options.hash === undefined
48
+ ? jsons.every(j => j.hash)
49
+ : options.hash !== false;
50
+ if (showVersion) {
51
+ for (const j of jsons) {
52
+ delete j.version;
53
+ }
54
+ }
55
+ const obj = {
56
+ errors: jsons.reduce((arr, j) => {
57
+ return arr.concat(
58
+ j.errors.map(msg => {
59
+ return `(${j.name}) ${msg}`;
60
+ })
61
+ );
62
+ }, []),
63
+ warnings: jsons.reduce((arr, j) => {
64
+ return arr.concat(
65
+ j.warnings.map(msg => {
66
+ return `(${j.name}) ${msg}`;
67
+ })
68
+ );
69
+ }, [])
70
+ };
71
+ if (showVersion) obj.version = require("../package.json").version;
72
+ if (showHash) obj.hash = this.hash;
73
+ if (options.children !== false) obj.children = jsons;
74
+ return obj;
75
+ }
76
+
77
+ toString(options) {
78
+ if (typeof options === "boolean" || typeof options === "string") {
79
+ options = Stats.presetToOptions(options);
80
+ } else if (!options) {
81
+ options = {};
82
+ }
83
+
84
+ const useColors = optionOrFallback(options.colors, false);
85
+
86
+ const obj = this.toJson(options, true);
87
+
88
+ return Stats.jsonToString(obj, useColors);
89
+ }
90
+ }
91
+
92
+ module.exports = MultiStats;
@@ -0,0 +1,50 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const asyncLib = require("neo-async");
8
+
9
+ class MultiWatching {
10
+ constructor(watchings, compiler) {
11
+ this.watchings = watchings;
12
+ this.compiler = compiler;
13
+ }
14
+
15
+ invalidate() {
16
+ for (const watching of this.watchings) {
17
+ watching.invalidate();
18
+ }
19
+ }
20
+
21
+ suspend() {
22
+ for (const watching of this.watchings) {
23
+ watching.suspend();
24
+ }
25
+ }
26
+
27
+ resume() {
28
+ for (const watching of this.watchings) {
29
+ watching.resume();
30
+ }
31
+ }
32
+
33
+ close(callback) {
34
+ asyncLib.forEach(
35
+ this.watchings,
36
+ (watching, finishedCallback) => {
37
+ watching.close(finishedCallback);
38
+ },
39
+ err => {
40
+ this.compiler.hooks.watchClose.call();
41
+ if (typeof callback === "function") {
42
+ this.compiler.running = false;
43
+ callback(err);
44
+ }
45
+ }
46
+ );
47
+ }
48
+ }
49
+
50
+ module.exports = MultiWatching;
@@ -0,0 +1,29 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class NamedChunksPlugin {
8
+ static defaultNameResolver(chunk) {
9
+ return chunk.name || null;
10
+ }
11
+
12
+ constructor(nameResolver) {
13
+ this.nameResolver = nameResolver || NamedChunksPlugin.defaultNameResolver;
14
+ }
15
+
16
+ apply(compiler) {
17
+ compiler.hooks.compilation.tap("NamedChunksPlugin", compilation => {
18
+ compilation.hooks.beforeChunkIds.tap("NamedChunksPlugin", chunks => {
19
+ for (const chunk of chunks) {
20
+ if (chunk.id === null) {
21
+ chunk.id = this.nameResolver(chunk);
22
+ }
23
+ }
24
+ });
25
+ });
26
+ }
27
+ }
28
+
29
+ module.exports = NamedChunksPlugin;
@@ -0,0 +1,58 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const createHash = require("./util/createHash");
8
+ const RequestShortener = require("./RequestShortener");
9
+
10
+ const getHash = str => {
11
+ const hash = createHash("md4");
12
+ hash.update(str);
13
+ const digest = /** @type {string} */ (hash.digest("hex"));
14
+ return digest.substr(0, 4);
15
+ };
16
+
17
+ class NamedModulesPlugin {
18
+ constructor(options) {
19
+ this.options = options || {};
20
+ }
21
+
22
+ apply(compiler) {
23
+ compiler.hooks.compilation.tap("NamedModulesPlugin", compilation => {
24
+ compilation.hooks.beforeModuleIds.tap("NamedModulesPlugin", modules => {
25
+ const namedModules = new Map();
26
+ const context = this.options.context || compiler.options.context;
27
+
28
+ for (const module of modules) {
29
+ if (module.id === null && module.libIdent) {
30
+ module.id = module.libIdent({ context });
31
+ }
32
+
33
+ if (module.id !== null) {
34
+ const namedModule = namedModules.get(module.id);
35
+ if (namedModule !== undefined) {
36
+ namedModule.push(module);
37
+ } else {
38
+ namedModules.set(module.id, [module]);
39
+ }
40
+ }
41
+ }
42
+
43
+ for (const namedModule of namedModules.values()) {
44
+ if (namedModule.length > 1) {
45
+ for (const module of namedModule) {
46
+ const requestShortener = new RequestShortener(context);
47
+ module.id = `${module.id}?${getHash(
48
+ requestShortener.shorten(module.identifier())
49
+ )}`;
50
+ }
51
+ }
52
+ }
53
+ });
54
+ });
55
+ }
56
+ }
57
+
58
+ module.exports = NamedModulesPlugin;