@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,138 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const CommonJsRequireDependency = require("./CommonJsRequireDependency");
8
+ const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
9
+ const RequireHeaderDependency = require("./RequireHeaderDependency");
10
+ const LocalModuleDependency = require("./LocalModuleDependency");
11
+ const ContextDependencyHelpers = require("./ContextDependencyHelpers");
12
+ const LocalModulesHelpers = require("./LocalModulesHelpers");
13
+ const ParserHelpers = require("../ParserHelpers");
14
+
15
+ class CommonJsRequireDependencyParserPlugin {
16
+ constructor(options) {
17
+ this.options = options;
18
+ }
19
+
20
+ apply(parser) {
21
+ const options = this.options;
22
+
23
+ const processItem = (expr, param) => {
24
+ if (param.isString()) {
25
+ const dep = new CommonJsRequireDependency(param.string, param.range);
26
+ dep.loc = expr.loc;
27
+ dep.optional = !!parser.scope.inTry;
28
+ parser.state.current.addDependency(dep);
29
+ return true;
30
+ }
31
+ };
32
+ const processContext = (expr, param) => {
33
+ const dep = ContextDependencyHelpers.create(
34
+ CommonJsRequireContextDependency,
35
+ expr.range,
36
+ param,
37
+ expr,
38
+ options,
39
+ {},
40
+ parser
41
+ );
42
+ if (!dep) return;
43
+ dep.loc = expr.loc;
44
+ dep.optional = !!parser.scope.inTry;
45
+ parser.state.current.addDependency(dep);
46
+ return true;
47
+ };
48
+
49
+ parser.hooks.expression
50
+ .for("require.cache")
51
+ .tap(
52
+ "CommonJsRequireDependencyParserPlugin",
53
+ ParserHelpers.toConstantDependencyWithWebpackRequire(
54
+ parser,
55
+ "__webpack_require__.c"
56
+ )
57
+ );
58
+ parser.hooks.expression
59
+ .for("require")
60
+ .tap("CommonJsRequireDependencyParserPlugin", expr => {
61
+ const dep = new CommonJsRequireContextDependency(
62
+ {
63
+ request: options.unknownContextRequest,
64
+ recursive: options.unknownContextRecursive,
65
+ regExp: options.unknownContextRegExp,
66
+ mode: "sync"
67
+ },
68
+ expr.range
69
+ );
70
+ dep.critical =
71
+ options.unknownContextCritical &&
72
+ "require function is used in a way in which dependencies cannot be statically extracted";
73
+ dep.loc = expr.loc;
74
+ dep.optional = !!parser.scope.inTry;
75
+ parser.state.current.addDependency(dep);
76
+ return true;
77
+ });
78
+
79
+ const createHandler = callNew => expr => {
80
+ if (expr.arguments.length !== 1) return;
81
+ let localModule;
82
+ const param = parser.evaluateExpression(expr.arguments[0]);
83
+ if (param.isConditional()) {
84
+ let isExpression = false;
85
+ const prevLength = parser.state.current.dependencies.length;
86
+ const dep = new RequireHeaderDependency(expr.callee.range);
87
+ dep.loc = expr.loc;
88
+ parser.state.current.addDependency(dep);
89
+ for (const p of param.options) {
90
+ const result = processItem(expr, p);
91
+ if (result === undefined) {
92
+ isExpression = true;
93
+ }
94
+ }
95
+ if (isExpression) {
96
+ parser.state.current.dependencies.length = prevLength;
97
+ } else {
98
+ return true;
99
+ }
100
+ }
101
+ if (
102
+ param.isString() &&
103
+ (localModule = LocalModulesHelpers.getLocalModule(
104
+ parser.state,
105
+ param.string
106
+ ))
107
+ ) {
108
+ const dep = new LocalModuleDependency(localModule, expr.range, callNew);
109
+ dep.loc = expr.loc;
110
+ parser.state.current.addDependency(dep);
111
+ return true;
112
+ } else {
113
+ const result = processItem(expr, param);
114
+ if (result === undefined) {
115
+ processContext(expr, param);
116
+ } else {
117
+ const dep = new RequireHeaderDependency(expr.callee.range);
118
+ dep.loc = expr.loc;
119
+ parser.state.current.addDependency(dep);
120
+ }
121
+ return true;
122
+ }
123
+ };
124
+ parser.hooks.call
125
+ .for("require")
126
+ .tap("CommonJsRequireDependencyParserPlugin", createHandler(false));
127
+ parser.hooks.new
128
+ .for("require")
129
+ .tap("CommonJsRequireDependencyParserPlugin", createHandler(true));
130
+ parser.hooks.call
131
+ .for("module.require")
132
+ .tap("CommonJsRequireDependencyParserPlugin", createHandler(false));
133
+ parser.hooks.new
134
+ .for("module.require")
135
+ .tap("CommonJsRequireDependencyParserPlugin", createHandler(true));
136
+ }
137
+ }
138
+ module.exports = CommonJsRequireDependencyParserPlugin;
@@ -0,0 +1,33 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const NullDependency = require("./NullDependency");
7
+
8
+ class ConstDependency extends NullDependency {
9
+ constructor(expression, range, requireWebpackRequire) {
10
+ super();
11
+ this.expression = expression;
12
+ this.range = range;
13
+ this.requireWebpackRequire = requireWebpackRequire;
14
+ }
15
+
16
+ updateHash(hash) {
17
+ hash.update(this.range + "");
18
+ hash.update(this.expression + "");
19
+ }
20
+ }
21
+
22
+ ConstDependency.Template = class ConstDependencyTemplate {
23
+ apply(dep, source) {
24
+ if (typeof dep.range === "number") {
25
+ source.insert(dep.range, dep.expression);
26
+ return;
27
+ }
28
+
29
+ source.replace(dep.range[0], dep.range[1] - 1, dep.expression);
30
+ }
31
+ };
32
+
33
+ module.exports = ConstDependency;
@@ -0,0 +1,68 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const Dependency = require("../Dependency");
7
+ const CriticalDependencyWarning = require("./CriticalDependencyWarning");
8
+
9
+ const regExpToString = r => (r ? r + "" : "");
10
+
11
+ class ContextDependency extends Dependency {
12
+ // options: { request, recursive, regExp, include, exclude, mode, chunkName, groupOptions }
13
+ constructor(options) {
14
+ super();
15
+ this.options = options;
16
+ this.userRequest = this.options.request;
17
+ /** @type {false | string} */
18
+ this.critical = false;
19
+ this.hadGlobalOrStickyRegExp = false;
20
+ if (this.options.regExp.global || this.options.regExp.sticky) {
21
+ this.options.regExp = null;
22
+ this.hadGlobalOrStickyRegExp = true;
23
+ }
24
+ }
25
+
26
+ getResourceIdentifier() {
27
+ return (
28
+ `context${this.options.request} ${this.options.recursive} ` +
29
+ `${regExpToString(this.options.regExp)} ${regExpToString(
30
+ this.options.include
31
+ )} ${regExpToString(this.options.exclude)} ` +
32
+ `${this.options.mode} ${this.options.chunkName} ` +
33
+ `${JSON.stringify(this.options.groupOptions)}`
34
+ );
35
+ }
36
+
37
+ getWarnings() {
38
+ let warnings = super.getWarnings() || [];
39
+ if (this.critical) {
40
+ warnings.push(new CriticalDependencyWarning(this.critical));
41
+ }
42
+ if (this.hadGlobalOrStickyRegExp) {
43
+ warnings.push(
44
+ new CriticalDependencyWarning(
45
+ "Contexts can't use RegExps with the 'g' or 'y' flags."
46
+ )
47
+ );
48
+ }
49
+ return warnings;
50
+ }
51
+ }
52
+
53
+ // TODO remove in webpack 5
54
+ Object.defineProperty(ContextDependency.prototype, "async", {
55
+ configurable: false,
56
+ get() {
57
+ throw new Error(
58
+ "ContextDependency.async was removed. Use ContextDependency.options.mode instead."
59
+ );
60
+ },
61
+ set() {
62
+ throw new Error(
63
+ "ContextDependency.async was removed. Pass options.mode to constructor instead"
64
+ );
65
+ }
66
+ });
67
+
68
+ module.exports = ContextDependency;
@@ -0,0 +1,232 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const ContextDependencyHelpers = exports;
8
+
9
+ /**
10
+ * Escapes regular expression metacharacters
11
+ * @param {string} str String to quote
12
+ * @returns {string} Escaped string
13
+ */
14
+ const quotemeta = str => {
15
+ return str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&");
16
+ };
17
+
18
+ const splitContextFromPrefix = prefix => {
19
+ const idx = prefix.lastIndexOf("/");
20
+ let context = ".";
21
+ if (idx >= 0) {
22
+ context = prefix.substr(0, idx);
23
+ prefix = `.${prefix.substr(idx)}`;
24
+ }
25
+ return {
26
+ context,
27
+ prefix
28
+ };
29
+ };
30
+
31
+ const splitQueryFromPostfix = postfix => {
32
+ const idx = postfix.indexOf("?");
33
+ let query = "";
34
+ if (idx >= 0) {
35
+ query = postfix.substr(idx);
36
+ postfix = postfix.substr(0, idx);
37
+ }
38
+ return {
39
+ postfix,
40
+ query
41
+ };
42
+ };
43
+
44
+ ContextDependencyHelpers.create = (
45
+ Dep,
46
+ range,
47
+ param,
48
+ expr,
49
+ options,
50
+ contextOptions,
51
+ // when parser is not passed in, expressions won't be walked
52
+ parser = null
53
+ ) => {
54
+ if (param.isTemplateString()) {
55
+ let prefixRaw = param.quasis[0].string;
56
+ let postfixRaw =
57
+ param.quasis.length > 1
58
+ ? param.quasis[param.quasis.length - 1].string
59
+ : "";
60
+
61
+ const valueRange = param.range;
62
+ const { context, prefix } = splitContextFromPrefix(prefixRaw);
63
+ const { postfix, query } = splitQueryFromPostfix(postfixRaw);
64
+
65
+ // When there are more than two quasis, the generated RegExp can be more precise
66
+ // We join the quasis with the expression regexp
67
+ const innerQuasis = param.quasis.slice(1, param.quasis.length - 1);
68
+ const innerRegExp =
69
+ options.wrappedContextRegExp.source +
70
+ innerQuasis
71
+ .map(q => quotemeta(q.string) + options.wrappedContextRegExp.source)
72
+ .join("");
73
+
74
+ // Example: `./context/pre${e}inner${e}inner2${e}post?query`
75
+ // context: "./context"
76
+ // prefix: "./pre"
77
+ // innerQuasis: [BEE("inner"), BEE("inner2")]
78
+ // (BEE = BasicEvaluatedExpression)
79
+ // postfix: "post"
80
+ // query: "?query"
81
+ // regExp: /^\.\/pre.*inner.*inner2.*post$/
82
+ const regExp = new RegExp(
83
+ `^${quotemeta(prefix)}${innerRegExp}${quotemeta(postfix)}$`
84
+ );
85
+ const dep = new Dep(
86
+ Object.assign(
87
+ {
88
+ request: context + query,
89
+ recursive: options.wrappedContextRecursive,
90
+ regExp,
91
+ mode: "sync"
92
+ },
93
+ contextOptions
94
+ ),
95
+ range,
96
+ valueRange
97
+ );
98
+ dep.loc = expr.loc;
99
+ const replaces = [];
100
+
101
+ param.parts.forEach((part, i) => {
102
+ if (i % 2 === 0) {
103
+ // Quasis or merged quasi
104
+ let range = part.range;
105
+ let value = part.string;
106
+ if (param.templateStringKind === "cooked") {
107
+ value = JSON.stringify(value);
108
+ value = value.slice(1, value.length - 1);
109
+ }
110
+ if (i === 0) {
111
+ // prefix
112
+ value = prefix;
113
+ range = [param.range[0], part.range[1]];
114
+ value =
115
+ (param.templateStringKind === "cooked" ? "`" : "String.raw`") +
116
+ value;
117
+ } else if (i === param.parts.length - 1) {
118
+ // postfix
119
+ value = postfix;
120
+ range = [part.range[0], param.range[1]];
121
+ value = value + "`";
122
+ } else if (
123
+ part.expression &&
124
+ part.expression.type === "TemplateElement" &&
125
+ part.expression.value.raw === value
126
+ ) {
127
+ // Shortcut when it's a single quasi and doesn't need to be replaced
128
+ return;
129
+ }
130
+ replaces.push({
131
+ range,
132
+ value
133
+ });
134
+ } else {
135
+ // Expression
136
+ if (parser) {
137
+ parser.walkExpression(part.expression);
138
+ }
139
+ }
140
+ });
141
+
142
+ dep.replaces = replaces;
143
+ dep.critical =
144
+ options.wrappedContextCritical &&
145
+ "a part of the request of a dependency is an expression";
146
+ return dep;
147
+ } else if (
148
+ param.isWrapped() &&
149
+ ((param.prefix && param.prefix.isString()) ||
150
+ (param.postfix && param.postfix.isString()))
151
+ ) {
152
+ let prefixRaw =
153
+ param.prefix && param.prefix.isString() ? param.prefix.string : "";
154
+ let postfixRaw =
155
+ param.postfix && param.postfix.isString() ? param.postfix.string : "";
156
+ const prefixRange =
157
+ param.prefix && param.prefix.isString() ? param.prefix.range : null;
158
+ const postfixRange =
159
+ param.postfix && param.postfix.isString() ? param.postfix.range : null;
160
+ const valueRange = param.range;
161
+ const { context, prefix } = splitContextFromPrefix(prefixRaw);
162
+ const { postfix, query } = splitQueryFromPostfix(postfixRaw);
163
+ const regExp = new RegExp(
164
+ `^${quotemeta(prefix)}${options.wrappedContextRegExp.source}${quotemeta(
165
+ postfix
166
+ )}$`
167
+ );
168
+ const dep = new Dep(
169
+ Object.assign(
170
+ {
171
+ request: context + query,
172
+ recursive: options.wrappedContextRecursive,
173
+ regExp,
174
+ mode: "sync"
175
+ },
176
+ contextOptions
177
+ ),
178
+ range,
179
+ valueRange
180
+ );
181
+ dep.loc = expr.loc;
182
+ const replaces = [];
183
+ if (prefixRange) {
184
+ replaces.push({
185
+ range: prefixRange,
186
+ value: JSON.stringify(prefix)
187
+ });
188
+ }
189
+ if (postfixRange) {
190
+ replaces.push({
191
+ range: postfixRange,
192
+ value: JSON.stringify(postfix)
193
+ });
194
+ }
195
+ dep.replaces = replaces;
196
+ dep.critical =
197
+ options.wrappedContextCritical &&
198
+ "a part of the request of a dependency is an expression";
199
+
200
+ if (parser && param.wrappedInnerExpressions) {
201
+ for (const part of param.wrappedInnerExpressions) {
202
+ if (part.expression) parser.walkExpression(part.expression);
203
+ }
204
+ }
205
+
206
+ return dep;
207
+ } else {
208
+ const dep = new Dep(
209
+ Object.assign(
210
+ {
211
+ request: options.exprContextRequest,
212
+ recursive: options.exprContextRecursive,
213
+ regExp: options.exprContextRegExp,
214
+ mode: "sync"
215
+ },
216
+ contextOptions
217
+ ),
218
+ range,
219
+ param.range
220
+ );
221
+ dep.loc = expr.loc;
222
+ dep.critical =
223
+ options.exprContextCritical &&
224
+ "the request of a dependency is an expression";
225
+
226
+ if (parser) {
227
+ parser.walkExpression(param.expression);
228
+ }
229
+
230
+ return dep;
231
+ }
232
+ };
@@ -0,0 +1,43 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class ContextDependencyTemplateAsId {
8
+ apply(dep, source, runtime) {
9
+ const moduleExports = runtime.moduleExports({
10
+ module: dep.module,
11
+ request: dep.request
12
+ });
13
+
14
+ if (dep.module) {
15
+ if (dep.valueRange) {
16
+ if (Array.isArray(dep.replaces)) {
17
+ for (let i = 0; i < dep.replaces.length; i++) {
18
+ const rep = dep.replaces[i];
19
+ source.replace(rep.range[0], rep.range[1] - 1, rep.value);
20
+ }
21
+ }
22
+ source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
23
+ // TODO webpack 5 remove `prepend` it's no longer used
24
+ source.replace(
25
+ dep.range[0],
26
+ dep.valueRange[0] - 1,
27
+ `${moduleExports}.resolve(${
28
+ typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : ""
29
+ }`
30
+ );
31
+ } else {
32
+ source.replace(
33
+ dep.range[0],
34
+ dep.range[1] - 1,
35
+ `${moduleExports}.resolve`
36
+ );
37
+ }
38
+ } else {
39
+ source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
40
+ }
41
+ }
42
+ }
43
+ module.exports = ContextDependencyTemplateAsId;
@@ -0,0 +1,39 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class ContextDependencyTemplateAsRequireCall {
8
+ apply(dep, source, runtime) {
9
+ const moduleExports = runtime.moduleExports({
10
+ module: dep.module,
11
+ request: dep.request
12
+ });
13
+
14
+ if (dep.module) {
15
+ if (dep.valueRange) {
16
+ if (Array.isArray(dep.replaces)) {
17
+ for (let i = 0; i < dep.replaces.length; i++) {
18
+ const rep = dep.replaces[i];
19
+ source.replace(rep.range[0], rep.range[1] - 1, rep.value);
20
+ }
21
+ }
22
+ source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
23
+ // TODO webpack 5 remove `prepend` it's no longer used
24
+ source.replace(
25
+ dep.range[0],
26
+ dep.valueRange[0] - 1,
27
+ `${moduleExports}(${
28
+ typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : ""
29
+ }`
30
+ );
31
+ } else {
32
+ source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
33
+ }
34
+ } else {
35
+ source.replace(dep.range[0], dep.range[1] - 1, moduleExports);
36
+ }
37
+ }
38
+ }
39
+ module.exports = ContextDependencyTemplateAsRequireCall;
@@ -0,0 +1,21 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const ModuleDependency = require("./ModuleDependency");
7
+
8
+ class ContextElementDependency extends ModuleDependency {
9
+ constructor(request, userRequest) {
10
+ super(request);
11
+ if (userRequest) {
12
+ this.userRequest = userRequest;
13
+ }
14
+ }
15
+
16
+ get type() {
17
+ return "context element";
18
+ }
19
+ }
20
+
21
+ module.exports = ContextElementDependency;
@@ -0,0 +1,20 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const WebpackError = require("../WebpackError");
8
+
9
+ class CriticalDependencyWarning extends WebpackError {
10
+ constructor(message) {
11
+ super();
12
+
13
+ this.name = "CriticalDependencyWarning";
14
+ this.message = "Critical dependency: " + message;
15
+
16
+ Error.captureStackTrace(this, this.constructor);
17
+ }
18
+ }
19
+
20
+ module.exports = CriticalDependencyWarning;
@@ -0,0 +1,33 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const DependencyReference = require("./DependencyReference");
8
+ const NullDependency = require("./NullDependency");
9
+
10
+ class DelegatedExportsDependency extends NullDependency {
11
+ constructor(originModule, exports) {
12
+ super();
13
+ this.originModule = originModule;
14
+ this.exports = exports;
15
+ }
16
+
17
+ get type() {
18
+ return "delegated exports";
19
+ }
20
+
21
+ getReference() {
22
+ return new DependencyReference(this.originModule, true, false);
23
+ }
24
+
25
+ getExports() {
26
+ return {
27
+ exports: this.exports,
28
+ dependencies: undefined
29
+ };
30
+ }
31
+ }
32
+
33
+ module.exports = DelegatedExportsDependency;
@@ -0,0 +1,18 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const ModuleDependency = require("./ModuleDependency");
7
+
8
+ class DelegatedSourceDependency extends ModuleDependency {
9
+ constructor(request) {
10
+ super(request);
11
+ }
12
+
13
+ get type() {
14
+ return "delegated source";
15
+ }
16
+ }
17
+
18
+ module.exports = DelegatedSourceDependency;