@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,103 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const path = require("path");
7
+
8
+ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
9
+ const ConstDependency = require("./dependencies/ConstDependency");
10
+ const UnsupportedFeatureWarning = require("./UnsupportedFeatureWarning");
11
+
12
+ const ParserHelpers = exports;
13
+
14
+ ParserHelpers.addParsedVariableToModule = (parser, name, expression) => {
15
+ if (!parser.state.current.addVariable) return false;
16
+ var deps = [];
17
+ parser.parse(expression, {
18
+ current: {
19
+ addDependency: dep => {
20
+ dep.userRequest = name;
21
+ deps.push(dep);
22
+ }
23
+ },
24
+ module: parser.state.module
25
+ });
26
+ parser.state.current.addVariable(name, expression, deps);
27
+ return true;
28
+ };
29
+
30
+ ParserHelpers.requireFileAsExpression = (context, pathToModule) => {
31
+ var moduleJsPath = path.relative(context, pathToModule);
32
+ if (!/^[A-Z]:/i.test(moduleJsPath)) {
33
+ moduleJsPath = "./" + moduleJsPath.replace(/\\/g, "/");
34
+ }
35
+ return "require(" + JSON.stringify(moduleJsPath) + ")";
36
+ };
37
+
38
+ ParserHelpers.toConstantDependency = (parser, value) => {
39
+ return function constDependency(expr) {
40
+ var dep = new ConstDependency(value, expr.range, false);
41
+ dep.loc = expr.loc;
42
+ parser.state.current.addDependency(dep);
43
+ return true;
44
+ };
45
+ };
46
+
47
+ ParserHelpers.toConstantDependencyWithWebpackRequire = (parser, value) => {
48
+ return function constDependencyWithWebpackRequire(expr) {
49
+ var dep = new ConstDependency(value, expr.range, true);
50
+ dep.loc = expr.loc;
51
+ parser.state.current.addDependency(dep);
52
+ return true;
53
+ };
54
+ };
55
+
56
+ ParserHelpers.evaluateToString = value => {
57
+ return function stringExpression(expr) {
58
+ return new BasicEvaluatedExpression().setString(value).setRange(expr.range);
59
+ };
60
+ };
61
+
62
+ ParserHelpers.evaluateToBoolean = value => {
63
+ return function booleanExpression(expr) {
64
+ return new BasicEvaluatedExpression()
65
+ .setBoolean(value)
66
+ .setRange(expr.range);
67
+ };
68
+ };
69
+
70
+ ParserHelpers.evaluateToIdentifier = (identifier, truthy) => {
71
+ return function identifierExpression(expr) {
72
+ let evex = new BasicEvaluatedExpression()
73
+ .setIdentifier(identifier)
74
+ .setRange(expr.range);
75
+ if (truthy === true) {
76
+ evex = evex.setTruthy();
77
+ } else if (truthy === false) {
78
+ evex = evex.setFalsy();
79
+ }
80
+ return evex;
81
+ };
82
+ };
83
+
84
+ ParserHelpers.expressionIsUnsupported = (parser, message) => {
85
+ return function unsupportedExpression(expr) {
86
+ var dep = new ConstDependency("(void 0)", expr.range, false);
87
+ dep.loc = expr.loc;
88
+ parser.state.current.addDependency(dep);
89
+ if (!parser.state.module) return;
90
+ parser.state.module.warnings.push(
91
+ new UnsupportedFeatureWarning(parser.state.module, message, expr.loc)
92
+ );
93
+ return true;
94
+ };
95
+ };
96
+
97
+ ParserHelpers.skipTraversal = function skipTraversal() {
98
+ return true;
99
+ };
100
+
101
+ ParserHelpers.approve = function approve() {
102
+ return true;
103
+ };
@@ -0,0 +1,37 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const PrefetchDependency = require("./dependencies/PrefetchDependency");
7
+
8
+ class PrefetchPlugin {
9
+ constructor(context, request) {
10
+ if (!request) {
11
+ this.request = context;
12
+ } else {
13
+ this.context = context;
14
+ this.request = request;
15
+ }
16
+ }
17
+
18
+ apply(compiler) {
19
+ compiler.hooks.compilation.tap(
20
+ "PrefetchPlugin",
21
+ (compilation, { normalModuleFactory }) => {
22
+ compilation.dependencyFactories.set(
23
+ PrefetchDependency,
24
+ normalModuleFactory
25
+ );
26
+ }
27
+ );
28
+ compiler.hooks.make.tapAsync("PrefetchPlugin", (compilation, callback) => {
29
+ compilation.prefetch(
30
+ this.context || compiler.context,
31
+ new PrefetchDependency(this.request),
32
+ callback
33
+ );
34
+ });
35
+ }
36
+ }
37
+ module.exports = PrefetchPlugin;
@@ -0,0 +1,307 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const validateOptions = require("schema-utils");
8
+ const schema = require("../schemas/plugins/ProgressPlugin.json");
9
+
10
+ /** @typedef {import("../declarations/plugins/ProgressPlugin").ProgressPluginArgument} ProgressPluginArgument */
11
+ /** @typedef {import("../declarations/plugins/ProgressPlugin").ProgressPluginOptions} ProgressPluginOptions */
12
+
13
+ const createDefaultHandler = (profile, logger) => {
14
+ let lastState;
15
+ let lastStateTime;
16
+
17
+ const defaultHandler = (percentage, msg, ...args) => {
18
+ logger.status(`${Math.floor(percentage * 100)}%`, msg, ...args);
19
+ if (profile) {
20
+ let state = msg;
21
+ state = state.replace(/^\d+\/\d+\s+/, "");
22
+ if (percentage === 0) {
23
+ lastState = null;
24
+ lastStateTime = Date.now();
25
+ } else if (state !== lastState || percentage === 1) {
26
+ const now = Date.now();
27
+ if (lastState) {
28
+ const diff = now - lastStateTime;
29
+ const stateMsg = `${diff}ms ${lastState}`;
30
+ if (diff > 1000) {
31
+ logger.warn(stateMsg);
32
+ } else if (diff > 10) {
33
+ logger.info(stateMsg);
34
+ } else if (diff > 0) {
35
+ logger.log(stateMsg);
36
+ } else {
37
+ logger.debug(stateMsg);
38
+ }
39
+ }
40
+ lastState = state;
41
+ lastStateTime = now;
42
+ }
43
+ }
44
+ if (percentage === 1) logger.status();
45
+ };
46
+
47
+ return defaultHandler;
48
+ };
49
+
50
+ class ProgressPlugin {
51
+ /**
52
+ * @param {ProgressPluginArgument} options options
53
+ */
54
+ constructor(options) {
55
+ if (typeof options === "function") {
56
+ options = {
57
+ handler: options
58
+ };
59
+ }
60
+
61
+ options = options || {};
62
+ validateOptions(schema, options, "Progress Plugin");
63
+ options = Object.assign({}, ProgressPlugin.defaultOptions, options);
64
+
65
+ this.profile = options.profile;
66
+ this.handler = options.handler;
67
+ this.modulesCount = options.modulesCount;
68
+ this.showEntries = options.entries;
69
+ this.showModules = options.modules;
70
+ this.showActiveModules = options.activeModules;
71
+ }
72
+
73
+ apply(compiler) {
74
+ const { modulesCount } = this;
75
+ const handler =
76
+ this.handler ||
77
+ createDefaultHandler(
78
+ this.profile,
79
+ compiler.getInfrastructureLogger("webpack.Progress")
80
+ );
81
+ const showEntries = this.showEntries;
82
+ const showModules = this.showModules;
83
+ const showActiveModules = this.showActiveModules;
84
+ if (compiler.compilers) {
85
+ const states = new Array(compiler.compilers.length);
86
+ compiler.compilers.forEach((compiler, idx) => {
87
+ new ProgressPlugin((p, msg, ...args) => {
88
+ states[idx] = [p, msg, ...args];
89
+ handler(
90
+ states
91
+ .map(state => (state && state[0]) || 0)
92
+ .reduce((a, b) => a + b) / states.length,
93
+ `[${idx}] ${msg}`,
94
+ ...args
95
+ );
96
+ }).apply(compiler);
97
+ });
98
+ } else {
99
+ let lastModulesCount = 0;
100
+ let lastEntriesCount = 0;
101
+ let moduleCount = modulesCount;
102
+ let entriesCount = 1;
103
+ let doneModules = 0;
104
+ let doneEntries = 0;
105
+ const activeModules = new Set();
106
+ let lastActiveModule = "";
107
+
108
+ const update = () => {
109
+ const percentByModules =
110
+ doneModules / Math.max(lastModulesCount, moduleCount);
111
+ const percentByEntries =
112
+ doneEntries / Math.max(lastEntriesCount, entriesCount);
113
+
114
+ const items = [
115
+ 0.1 + Math.max(percentByModules, percentByEntries) * 0.6,
116
+ "building"
117
+ ];
118
+ if (showEntries) {
119
+ items.push(`${doneEntries}/${entriesCount} entries`);
120
+ }
121
+ if (showModules) {
122
+ items.push(`${doneModules}/${moduleCount} modules`);
123
+ }
124
+ if (showActiveModules) {
125
+ items.push(`${activeModules.size} active`);
126
+ items.push(lastActiveModule);
127
+ }
128
+ handler(...items);
129
+ };
130
+
131
+ const moduleAdd = module => {
132
+ moduleCount++;
133
+ if (showActiveModules) {
134
+ const ident = module.identifier();
135
+ if (ident) {
136
+ activeModules.add(ident);
137
+ lastActiveModule = ident;
138
+ }
139
+ }
140
+ update();
141
+ };
142
+
143
+ const entryAdd = (entry, name) => {
144
+ entriesCount++;
145
+ update();
146
+ };
147
+
148
+ const moduleDone = module => {
149
+ doneModules++;
150
+ if (showActiveModules) {
151
+ const ident = module.identifier();
152
+ if (ident) {
153
+ activeModules.delete(ident);
154
+ if (lastActiveModule === ident) {
155
+ lastActiveModule = "";
156
+ for (const m of activeModules) {
157
+ lastActiveModule = m;
158
+ }
159
+ }
160
+ }
161
+ }
162
+ update();
163
+ };
164
+
165
+ const entryDone = (entry, name) => {
166
+ doneEntries++;
167
+ update();
168
+ };
169
+
170
+ compiler.hooks.compilation.tap("ProgressPlugin", compilation => {
171
+ if (compilation.compiler.isChild()) return;
172
+ lastModulesCount = moduleCount;
173
+ lastEntriesCount = entriesCount;
174
+ moduleCount = entriesCount = 0;
175
+ doneModules = doneEntries = 0;
176
+ handler(0, "compiling");
177
+
178
+ compilation.hooks.buildModule.tap("ProgressPlugin", moduleAdd);
179
+ compilation.hooks.failedModule.tap("ProgressPlugin", moduleDone);
180
+ compilation.hooks.succeedModule.tap("ProgressPlugin", moduleDone);
181
+
182
+ compilation.hooks.addEntry.tap("ProgressPlugin", entryAdd);
183
+ compilation.hooks.failedEntry.tap("ProgressPlugin", entryDone);
184
+ compilation.hooks.succeedEntry.tap("ProgressPlugin", entryDone);
185
+
186
+ const hooks = {
187
+ finishModules: "finish module graph",
188
+ seal: "sealing",
189
+ beforeChunks: "chunk graph",
190
+ afterChunks: "after chunk graph",
191
+ optimizeDependenciesBasic: "basic dependencies optimization",
192
+ optimizeDependencies: "dependencies optimization",
193
+ optimizeDependenciesAdvanced: "advanced dependencies optimization",
194
+ afterOptimizeDependencies: "after dependencies optimization",
195
+ optimize: "optimizing",
196
+ optimizeModulesBasic: "basic module optimization",
197
+ optimizeModules: "module optimization",
198
+ optimizeModulesAdvanced: "advanced module optimization",
199
+ afterOptimizeModules: "after module optimization",
200
+ optimizeChunksBasic: "basic chunk optimization",
201
+ optimizeChunks: "chunk optimization",
202
+ optimizeChunksAdvanced: "advanced chunk optimization",
203
+ afterOptimizeChunks: "after chunk optimization",
204
+ optimizeTree: "module and chunk tree optimization",
205
+ afterOptimizeTree: "after module and chunk tree optimization",
206
+ optimizeChunkModulesBasic: "basic chunk modules optimization",
207
+ optimizeChunkModules: "chunk modules optimization",
208
+ optimizeChunkModulesAdvanced: "advanced chunk modules optimization",
209
+ afterOptimizeChunkModules: "after chunk modules optimization",
210
+ reviveModules: "module reviving",
211
+ optimizeModuleOrder: "module order optimization",
212
+ advancedOptimizeModuleOrder: "advanced module order optimization",
213
+ beforeModuleIds: "before module ids",
214
+ moduleIds: "module ids",
215
+ optimizeModuleIds: "module id optimization",
216
+ afterOptimizeModuleIds: "module id optimization",
217
+ reviveChunks: "chunk reviving",
218
+ optimizeChunkOrder: "chunk order optimization",
219
+ beforeChunkIds: "before chunk ids",
220
+ optimizeChunkIds: "chunk id optimization",
221
+ afterOptimizeChunkIds: "after chunk id optimization",
222
+ recordModules: "record modules",
223
+ recordChunks: "record chunks",
224
+ beforeHash: "hashing",
225
+ afterHash: "after hashing",
226
+ recordHash: "record hash",
227
+ beforeModuleAssets: "module assets processing",
228
+ beforeChunkAssets: "chunk assets processing",
229
+ additionalChunkAssets: "additional chunk assets processing",
230
+ record: "recording",
231
+ additionalAssets: "additional asset processing",
232
+ optimizeChunkAssets: "chunk asset optimization",
233
+ afterOptimizeChunkAssets: "after chunk asset optimization",
234
+ optimizeAssets: "asset optimization",
235
+ afterOptimizeAssets: "after asset optimization",
236
+ afterSeal: "after seal"
237
+ };
238
+ const numberOfHooks = Object.keys(hooks).length;
239
+ Object.keys(hooks).forEach((name, idx) => {
240
+ const title = hooks[name];
241
+ const percentage = (idx / numberOfHooks) * 0.25 + 0.7;
242
+ compilation.hooks[name].intercept({
243
+ name: "ProgressPlugin",
244
+ context: true,
245
+ call: () => {
246
+ handler(percentage, title);
247
+ },
248
+ tap: (context, tap) => {
249
+ if (context) {
250
+ // p is percentage from 0 to 1
251
+ // args is any number of messages in a hierarchical matter
252
+ context.reportProgress = (p, ...args) => {
253
+ handler(percentage, title, tap.name, ...args);
254
+ };
255
+ }
256
+ handler(percentage, title, tap.name);
257
+ }
258
+ });
259
+ });
260
+ });
261
+ compiler.hooks.emit.intercept({
262
+ name: "ProgressPlugin",
263
+ context: true,
264
+ call: () => {
265
+ handler(0.95, "emitting");
266
+ },
267
+ tap: (context, tap) => {
268
+ if (context) {
269
+ context.reportProgress = (p, ...args) => {
270
+ handler(0.95, "emitting", tap.name, ...args);
271
+ };
272
+ }
273
+ handler(0.95, "emitting", tap.name);
274
+ }
275
+ });
276
+ compiler.hooks.afterEmit.intercept({
277
+ name: "ProgressPlugin",
278
+ context: true,
279
+ call: () => {
280
+ handler(0.98, "after emitting");
281
+ },
282
+ tap: (context, tap) => {
283
+ if (context) {
284
+ context.reportProgress = (p, ...args) => {
285
+ handler(0.98, "after emitting", tap.name, ...args);
286
+ };
287
+ }
288
+ handler(0.98, "after emitting", tap.name);
289
+ }
290
+ });
291
+ compiler.hooks.done.tap("ProgressPlugin", () => {
292
+ handler(1, "");
293
+ });
294
+ }
295
+ }
296
+ }
297
+
298
+ ProgressPlugin.defaultOptions = {
299
+ profile: false,
300
+ modulesCount: 500,
301
+ modules: true,
302
+ activeModules: true,
303
+ // TODO webpack 5 default this to true
304
+ entries: false
305
+ };
306
+
307
+ module.exports = ProgressPlugin;
@@ -0,0 +1,86 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const ParserHelpers = require("./ParserHelpers");
8
+ const ConstDependency = require("./dependencies/ConstDependency");
9
+
10
+ const NullFactory = require("./NullFactory");
11
+
12
+ class ProvidePlugin {
13
+ constructor(definitions) {
14
+ this.definitions = definitions;
15
+ }
16
+
17
+ apply(compiler) {
18
+ const definitions = this.definitions;
19
+ compiler.hooks.compilation.tap(
20
+ "ProvidePlugin",
21
+ (compilation, { normalModuleFactory }) => {
22
+ compilation.dependencyFactories.set(ConstDependency, new NullFactory());
23
+ compilation.dependencyTemplates.set(
24
+ ConstDependency,
25
+ new ConstDependency.Template()
26
+ );
27
+ const handler = (parser, parserOptions) => {
28
+ Object.keys(definitions).forEach(name => {
29
+ var request = [].concat(definitions[name]);
30
+ var splittedName = name.split(".");
31
+ if (splittedName.length > 0) {
32
+ splittedName.slice(1).forEach((_, i) => {
33
+ const name = splittedName.slice(0, i + 1).join(".");
34
+ parser.hooks.canRename
35
+ .for(name)
36
+ .tap("ProvidePlugin", ParserHelpers.approve);
37
+ });
38
+ }
39
+ parser.hooks.expression.for(name).tap("ProvidePlugin", expr => {
40
+ let nameIdentifier = name;
41
+ const scopedName = name.includes(".");
42
+ let expression = `require(${JSON.stringify(request[0])})`;
43
+ if (scopedName) {
44
+ nameIdentifier = `__webpack_provided_${name.replace(
45
+ /\./g,
46
+ "_dot_"
47
+ )}`;
48
+ }
49
+ if (request.length > 1) {
50
+ expression += request
51
+ .slice(1)
52
+ .map(r => `[${JSON.stringify(r)}]`)
53
+ .join("");
54
+ }
55
+ if (
56
+ !ParserHelpers.addParsedVariableToModule(
57
+ parser,
58
+ nameIdentifier,
59
+ expression
60
+ )
61
+ ) {
62
+ return false;
63
+ }
64
+ if (scopedName) {
65
+ ParserHelpers.toConstantDependency(
66
+ parser,
67
+ nameIdentifier
68
+ )(expr);
69
+ }
70
+ return true;
71
+ });
72
+ });
73
+ };
74
+ normalModuleFactory.hooks.parser
75
+ .for("javascript/auto")
76
+ .tap("ProvidePlugin", handler);
77
+ normalModuleFactory.hooks.parser
78
+ .for("javascript/dynamic")
79
+ .tap("ProvidePlugin", handler);
80
+
81
+ // Disable ProvidePlugin for javascript/esm, see https://github.com/webpack/webpack/issues/7032
82
+ }
83
+ );
84
+ }
85
+ }
86
+ module.exports = ProvidePlugin;
@@ -0,0 +1,56 @@
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 { OriginalSource, RawSource } = require("webpack-sources");
9
+
10
+ module.exports = class RawModule extends Module {
11
+ constructor(source, identifier, readableIdentifier) {
12
+ super("javascript/dynamic", null);
13
+ this.sourceStr = source;
14
+ this.identifierStr = identifier || this.sourceStr;
15
+ this.readableIdentifierStr = readableIdentifier || this.identifierStr;
16
+ this.built = false;
17
+ }
18
+
19
+ identifier() {
20
+ return this.identifierStr;
21
+ }
22
+
23
+ size() {
24
+ return this.sourceStr.length;
25
+ }
26
+
27
+ readableIdentifier(requestShortener) {
28
+ return requestShortener.shorten(this.readableIdentifierStr);
29
+ }
30
+
31
+ needRebuild() {
32
+ return false;
33
+ }
34
+
35
+ build(options, compilations, resolver, fs, callback) {
36
+ this.built = true;
37
+ this.buildMeta = {};
38
+ this.buildInfo = {
39
+ cacheable: true
40
+ };
41
+ callback();
42
+ }
43
+
44
+ source() {
45
+ if (this.useSourceMap) {
46
+ return new OriginalSource(this.sourceStr, this.identifier());
47
+ } else {
48
+ return new RawSource(this.sourceStr);
49
+ }
50
+ }
51
+
52
+ updateHash(hash) {
53
+ hash.update(this.sourceStr);
54
+ super.updateHash(hash);
55
+ }
56
+ };