@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,210 @@
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 { LogType } = require("./Logger");
9
+
10
+ /** @typedef {import("./Logger").LogTypeEnum} LogTypeEnum */
11
+ /** @typedef {import("../../declarations/WebpackOptions").FilterTypes} FilterTypes */
12
+ /** @typedef {import("../../declarations/WebpackOptions").FilterItemTypes} FilterItemTypes */
13
+
14
+ /** @typedef {function(string): boolean} FilterFunction */
15
+
16
+ /**
17
+ * @typedef {Object} LoggerOptions
18
+ * @property {false|true|"none"|"error"|"warn"|"info"|"log"|"verbose"} level loglevel
19
+ * @property {FilterTypes|boolean} debug filter for debug logging
20
+ * @property {Console & { status?: Function, logTime?: Function }} console the console to log to
21
+ */
22
+
23
+ /**
24
+ * @param {FilterItemTypes} item an input item
25
+ * @returns {FilterFunction} filter funtion
26
+ */
27
+ const filterToFunction = item => {
28
+ if (typeof item === "string") {
29
+ const regExp = new RegExp(
30
+ `[\\\\/]${item.replace(
31
+ // eslint-disable-next-line no-useless-escape
32
+ /[-[\]{}()*+?.\\^$|]/g,
33
+ "\\$&"
34
+ )}([\\\\/]|$|!|\\?)`
35
+ );
36
+ return ident => regExp.test(ident);
37
+ }
38
+ if (item && typeof item === "object" && typeof item.test === "function") {
39
+ return ident => item.test(ident);
40
+ }
41
+ if (typeof item === "function") {
42
+ return item;
43
+ }
44
+ if (typeof item === "boolean") {
45
+ return () => item;
46
+ }
47
+ };
48
+
49
+ /**
50
+ * @enum {number}
51
+ */
52
+ const LogLevel = {
53
+ none: 6,
54
+ false: 6,
55
+ error: 5,
56
+ warn: 4,
57
+ info: 3,
58
+ log: 2,
59
+ true: 2,
60
+ verbose: 1
61
+ };
62
+
63
+ /**
64
+ * @param {LoggerOptions} options options object
65
+ * @returns {function(string, LogTypeEnum, any[]): void} logging function
66
+ */
67
+ module.exports = ({ level = "info", debug = false, console }) => {
68
+ const debugFilters =
69
+ typeof debug === "boolean"
70
+ ? [() => debug]
71
+ : /** @type {FilterItemTypes[]} */ ([])
72
+ .concat(debug)
73
+ .map(filterToFunction);
74
+ /** @type {number} */
75
+ const loglevel = LogLevel[`${level}`] || 0;
76
+
77
+ /**
78
+ * @param {string} name name of the logger
79
+ * @param {LogTypeEnum} type type of the log entry
80
+ * @param {any[]} args arguments of the log entry
81
+ * @returns {void}
82
+ */
83
+ const logger = (name, type, args) => {
84
+ const labeledArgs = () => {
85
+ if (Array.isArray(args)) {
86
+ if (args.length > 0 && typeof args[0] === "string") {
87
+ return [`[${name}] ${args[0]}`, ...args.slice(1)];
88
+ } else {
89
+ return [`[${name}]`, ...args];
90
+ }
91
+ } else {
92
+ return [];
93
+ }
94
+ };
95
+ const debug = debugFilters.some(f => f(name));
96
+ switch (type) {
97
+ case LogType.debug:
98
+ if (!debug) return;
99
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
100
+ if (typeof console.debug === "function") {
101
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
102
+ console.debug(...labeledArgs());
103
+ } else {
104
+ console.log(...labeledArgs());
105
+ }
106
+ break;
107
+ case LogType.log:
108
+ if (!debug && loglevel > LogLevel.log) return;
109
+ console.log(...labeledArgs());
110
+ break;
111
+ case LogType.info:
112
+ if (!debug && loglevel > LogLevel.info) return;
113
+ console.info(...labeledArgs());
114
+ break;
115
+ case LogType.warn:
116
+ if (!debug && loglevel > LogLevel.warn) return;
117
+ console.warn(...labeledArgs());
118
+ break;
119
+ case LogType.error:
120
+ if (!debug && loglevel > LogLevel.error) return;
121
+ console.error(...labeledArgs());
122
+ break;
123
+ case LogType.trace:
124
+ if (!debug) return;
125
+ console.trace();
126
+ break;
127
+ case LogType.groupCollapsed:
128
+ if (!debug && loglevel > LogLevel.log) return;
129
+ if (!debug && loglevel > LogLevel.verbose) {
130
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
131
+ if (typeof console.groupCollapsed === "function") {
132
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
133
+ console.groupCollapsed(...labeledArgs());
134
+ } else {
135
+ console.log(...labeledArgs());
136
+ }
137
+ break;
138
+ }
139
+ // falls through
140
+ case LogType.group:
141
+ if (!debug && loglevel > LogLevel.log) return;
142
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
143
+ if (typeof console.group === "function") {
144
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
145
+ console.group(...labeledArgs());
146
+ } else {
147
+ console.log(...labeledArgs());
148
+ }
149
+ break;
150
+ case LogType.groupEnd:
151
+ if (!debug && loglevel > LogLevel.log) return;
152
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
153
+ if (typeof console.groupEnd === "function") {
154
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
155
+ console.groupEnd();
156
+ }
157
+ break;
158
+ case LogType.time: {
159
+ if (!debug && loglevel > LogLevel.log) return;
160
+ const ms = args[1] * 1000 + args[2] / 1000000;
161
+ const msg = `[${name}] ${args[0]}: ${ms}ms`;
162
+ if (typeof console.logTime === "function") {
163
+ console.logTime(msg);
164
+ } else {
165
+ console.log(msg);
166
+ }
167
+ break;
168
+ }
169
+ case LogType.profile:
170
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
171
+ if (typeof console.profile === "function") {
172
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
173
+ console.profile(...labeledArgs());
174
+ }
175
+ break;
176
+ case LogType.profileEnd:
177
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
178
+ if (typeof console.profileEnd === "function") {
179
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
180
+ console.profileEnd(...labeledArgs());
181
+ }
182
+ break;
183
+ case LogType.clear:
184
+ if (!debug && loglevel > LogLevel.log) return;
185
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
186
+ if (typeof console.clear === "function") {
187
+ // eslint-disable-next-line node/no-unsupported-features/node-builtins
188
+ console.clear();
189
+ }
190
+ break;
191
+ case LogType.status:
192
+ if (!debug && loglevel > LogLevel.info) return;
193
+ if (typeof console.status === "function") {
194
+ if (args.length === 0) {
195
+ console.status();
196
+ } else {
197
+ console.status(...labeledArgs());
198
+ }
199
+ } else {
200
+ if (args.length !== 0) {
201
+ console.info(...labeledArgs());
202
+ }
203
+ }
204
+ break;
205
+ default:
206
+ throw new Error(`Unexpected LogType ${type}`);
207
+ }
208
+ };
209
+ return logger;
210
+ };
@@ -0,0 +1,36 @@
1
+ const SyncBailHook = require("tapable/lib/SyncBailHook");
2
+ const { Logger } = require("./Logger");
3
+ const createConsoleLogger = require("./createConsoleLogger");
4
+
5
+ /** @type {createConsoleLogger.LoggerOptions} */
6
+ let currentDefaultLoggerOptions = {
7
+ level: "info",
8
+ debug: false,
9
+ console
10
+ };
11
+ let currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
12
+
13
+ /**
14
+ * @param {string} name name of the logger
15
+ * @returns {Logger} a logger
16
+ */
17
+ exports.getLogger = name => {
18
+ return new Logger((type, args) => {
19
+ if (exports.hooks.log.call(name, type, args) === undefined) {
20
+ currentDefaultLogger(name, type, args);
21
+ }
22
+ });
23
+ };
24
+
25
+ /**
26
+ * @param {createConsoleLogger.LoggerOptions} options new options, merge with old options
27
+ * @returns {void}
28
+ */
29
+ exports.configureDefaultLogger = options => {
30
+ Object.assign(currentDefaultLoggerOptions, options);
31
+ currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
32
+ };
33
+
34
+ exports.hooks = {
35
+ log: new SyncBailHook(["origin", "type", "args"])
36
+ };
@@ -0,0 +1,76 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+
6
+ "use strict";
7
+
8
+ /**
9
+ * @param {any[]} args items to be truncated
10
+ * @param {number} maxLength maximum length of args including spaces between
11
+ * @returns {string[]} truncated args
12
+ */
13
+ const truncateArgs = (args, maxLength) => {
14
+ const lengths = args.map(a => `${a}`.length);
15
+ const availableLength = maxLength - lengths.length + 1;
16
+
17
+ if (availableLength > 0 && args.length === 1) {
18
+ if (availableLength >= args[0].length) {
19
+ return args;
20
+ } else if (availableLength > 3) {
21
+ return ["..." + args[0].slice(-availableLength + 3)];
22
+ } else {
23
+ return [args[0].slice(-availableLength)];
24
+ }
25
+ }
26
+
27
+ // Check if there is space for at least 4 chars per arg
28
+ if (availableLength < lengths.reduce((s, i) => s + Math.min(i, 6), 0)) {
29
+ // remove args
30
+ if (args.length > 1)
31
+ return truncateArgs(args.slice(0, args.length - 1), maxLength);
32
+ return [];
33
+ }
34
+
35
+ let currentLength = lengths.reduce((a, b) => a + b, 0);
36
+
37
+ // Check if all fits into maxLength
38
+ if (currentLength <= availableLength) return args;
39
+
40
+ // Try to remove chars from the longest items until it fits
41
+ while (currentLength > availableLength) {
42
+ const maxLength = Math.max(...lengths);
43
+ const shorterItems = lengths.filter(l => l !== maxLength);
44
+ const nextToMaxLength =
45
+ shorterItems.length > 0 ? Math.max(...shorterItems) : 0;
46
+ const maxReduce = maxLength - nextToMaxLength;
47
+ let maxItems = lengths.length - shorterItems.length;
48
+ let overrun = currentLength - availableLength;
49
+ for (let i = 0; i < lengths.length; i++) {
50
+ if (lengths[i] === maxLength) {
51
+ const reduce = Math.min(Math.floor(overrun / maxItems), maxReduce);
52
+ lengths[i] -= reduce;
53
+ currentLength -= reduce;
54
+ overrun -= reduce;
55
+ maxItems--;
56
+ }
57
+ }
58
+ }
59
+
60
+ // Return args reduced to length in lengths
61
+ return args.map((a, i) => {
62
+ const str = `${a}`;
63
+ const length = lengths[i];
64
+ if (str.length === length) {
65
+ return str;
66
+ } else if (length > 5) {
67
+ return "..." + str.slice(-length + 3);
68
+ } else if (length > 0) {
69
+ return str.slice(-length);
70
+ } else {
71
+ return "";
72
+ }
73
+ });
74
+ };
75
+
76
+ module.exports = truncateArgs;
@@ -0,0 +1,31 @@
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 { ConcatSource } = require("webpack-sources");
9
+
10
+ class NodeChunkTemplatePlugin {
11
+ apply(chunkTemplate) {
12
+ chunkTemplate.hooks.render.tap(
13
+ "NodeChunkTemplatePlugin",
14
+ (modules, chunk) => {
15
+ const source = new ConcatSource();
16
+ source.add(
17
+ `exports.ids = ${JSON.stringify(chunk.ids)};\nexports.modules = `
18
+ );
19
+ source.add(modules);
20
+ source.add(";");
21
+ return source;
22
+ }
23
+ );
24
+ chunkTemplate.hooks.hash.tap("NodeChunkTemplatePlugin", hash => {
25
+ hash.update("node");
26
+ hash.update("3");
27
+ });
28
+ }
29
+ }
30
+
31
+ module.exports = NodeChunkTemplatePlugin;
@@ -0,0 +1,44 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const NodeWatchFileSystem = require("./NodeWatchFileSystem");
8
+ const NodeOutputFileSystem = require("./NodeOutputFileSystem");
9
+ const NodeJsInputFileSystem = require("enhanced-resolve/lib/NodeJsInputFileSystem");
10
+ const CachedInputFileSystem = require("enhanced-resolve/lib/CachedInputFileSystem");
11
+ const createConsoleLogger = require("../logging/createConsoleLogger");
12
+ const nodeConsole = require("./nodeConsole");
13
+
14
+ class NodeEnvironmentPlugin {
15
+ constructor(options) {
16
+ this.options = options || {};
17
+ }
18
+
19
+ apply(compiler) {
20
+ compiler.infrastructureLogger = createConsoleLogger(
21
+ Object.assign(
22
+ {
23
+ level: "info",
24
+ debug: false,
25
+ console: nodeConsole
26
+ },
27
+ this.options.infrastructureLogging
28
+ )
29
+ );
30
+ compiler.inputFileSystem = new CachedInputFileSystem(
31
+ new NodeJsInputFileSystem(),
32
+ 60000
33
+ );
34
+ const inputFileSystem = compiler.inputFileSystem;
35
+ compiler.outputFileSystem = new NodeOutputFileSystem();
36
+ compiler.watchFileSystem = new NodeWatchFileSystem(
37
+ compiler.inputFileSystem
38
+ );
39
+ compiler.hooks.beforeRun.tap("NodeEnvironmentPlugin", compiler => {
40
+ if (compiler.inputFileSystem === inputFileSystem) inputFileSystem.purge();
41
+ });
42
+ }
43
+ }
44
+ module.exports = NodeEnvironmentPlugin;
@@ -0,0 +1,36 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const { ConcatSource } = require("webpack-sources");
8
+
9
+ class NodeHotUpdateChunkTemplatePlugin {
10
+ apply(hotUpdateChunkTemplate) {
11
+ hotUpdateChunkTemplate.hooks.render.tap(
12
+ "NodeHotUpdateChunkTemplatePlugin",
13
+ (modulesSource, modules, removedModules, hash, id) => {
14
+ const source = new ConcatSource();
15
+ source.add(
16
+ "exports.id = " + JSON.stringify(id) + ";\nexports.modules = "
17
+ );
18
+ source.add(modulesSource);
19
+ source.add(";");
20
+ return source;
21
+ }
22
+ );
23
+ hotUpdateChunkTemplate.hooks.hash.tap(
24
+ "NodeHotUpdateChunkTemplatePlugin",
25
+ hash => {
26
+ hash.update("NodeHotUpdateChunkTemplatePlugin");
27
+ hash.update("3");
28
+ hash.update(
29
+ hotUpdateChunkTemplate.outputOptions.hotUpdateFunction + ""
30
+ );
31
+ hash.update(hotUpdateChunkTemplate.outputOptions.library + "");
32
+ }
33
+ );
34
+ }
35
+ }
36
+ module.exports = NodeHotUpdateChunkTemplatePlugin;
@@ -0,0 +1,32 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ // eslint-disable-next-line no-unused-vars
6
+ var $hotChunkFilename$ = undefined;
7
+ var hotAddUpdateChunk = undefined;
8
+ var installedChunks = undefined;
9
+ var $hotMainFilename$ = undefined;
10
+
11
+ module.exports = function() {
12
+ // eslint-disable-next-line no-unused-vars
13
+ function hotDownloadUpdateChunk(chunkId) {
14
+ var chunk = require("./" + $hotChunkFilename$);
15
+ hotAddUpdateChunk(chunk.id, chunk.modules);
16
+ }
17
+
18
+ // eslint-disable-next-line no-unused-vars
19
+ function hotDownloadManifest() {
20
+ try {
21
+ var update = require("./" + $hotMainFilename$);
22
+ } catch (e) {
23
+ return Promise.resolve();
24
+ }
25
+ return Promise.resolve(update);
26
+ }
27
+
28
+ //eslint-disable-next-line no-unused-vars
29
+ function hotDisposeChunk(chunkId) {
30
+ delete installedChunks[chunkId];
31
+ }
32
+ };
@@ -0,0 +1,50 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ // eslint-disable-next-line no-unused-vars
6
+ var $hotChunkFilename$ = undefined;
7
+ var $require$ = undefined;
8
+ var hotAddUpdateChunk = undefined;
9
+ var $hotMainFilename$ = undefined;
10
+ var installedChunks = undefined;
11
+
12
+ module.exports = function() {
13
+ // eslint-disable-next-line no-unused-vars
14
+ function hotDownloadUpdateChunk(chunkId) {
15
+ var filename = require("path").join(__dirname, $hotChunkFilename$);
16
+ require("fs").readFile(filename, "utf-8", function(err, content) {
17
+ if (err) {
18
+ if ($require$.onError) return $require$.oe(err);
19
+ throw err;
20
+ }
21
+ var chunk = {};
22
+ require("vm").runInThisContext(
23
+ "(function(exports) {" + content + "\n})",
24
+ { filename: filename }
25
+ )(chunk);
26
+ hotAddUpdateChunk(chunk.id, chunk.modules);
27
+ });
28
+ }
29
+
30
+ // eslint-disable-next-line no-unused-vars
31
+ function hotDownloadManifest() {
32
+ var filename = require("path").join(__dirname, $hotMainFilename$);
33
+ return new Promise(function(resolve, reject) {
34
+ require("fs").readFile(filename, "utf-8", function(err, content) {
35
+ if (err) return resolve();
36
+ try {
37
+ var update = JSON.parse(content);
38
+ } catch (e) {
39
+ return reject(e);
40
+ }
41
+ resolve(update);
42
+ });
43
+ });
44
+ }
45
+
46
+ // eslint-disable-next-line no-unused-vars
47
+ function hotDisposeChunk(chunkId) {
48
+ delete installedChunks[chunkId];
49
+ }
50
+ };