@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,115 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const LoaderDependency = require("./LoaderDependency");
8
+ const NormalModule = require("../NormalModule");
9
+
10
+ /** @typedef {import("../Module")} Module */
11
+
12
+ /**
13
+ * @callback LoadModuleCallback
14
+ * @param {Error=} err error object
15
+ * @param {string=} source source code
16
+ * @param {object=} map source map
17
+ * @param {Module=} module loaded module if successful
18
+ */
19
+
20
+ class LoaderPlugin {
21
+ apply(compiler) {
22
+ compiler.hooks.compilation.tap(
23
+ "LoaderPlugin",
24
+ (compilation, { normalModuleFactory }) => {
25
+ compilation.dependencyFactories.set(
26
+ LoaderDependency,
27
+ normalModuleFactory
28
+ );
29
+ }
30
+ );
31
+
32
+ compiler.hooks.compilation.tap("LoaderPlugin", compilation => {
33
+ compilation.hooks.normalModuleLoader.tap(
34
+ "LoaderPlugin",
35
+ (loaderContext, module) => {
36
+ /**
37
+ * @param {string} request the request string to load the module from
38
+ * @param {LoadModuleCallback} callback callback returning the loaded module or error
39
+ * @returns {void}
40
+ */
41
+ loaderContext.loadModule = (request, callback) => {
42
+ const dep = new LoaderDependency(request);
43
+ dep.loc = {
44
+ name: request
45
+ };
46
+ const factory = compilation.dependencyFactories.get(
47
+ dep.constructor
48
+ );
49
+ if (factory === undefined) {
50
+ return callback(
51
+ new Error(
52
+ `No module factory available for dependency type: ${dep.constructor.name}`
53
+ )
54
+ );
55
+ }
56
+ compilation.semaphore.release();
57
+ compilation.addModuleDependencies(
58
+ module,
59
+ [
60
+ {
61
+ factory,
62
+ dependencies: [dep]
63
+ }
64
+ ],
65
+ true,
66
+ "lm",
67
+ true,
68
+ err => {
69
+ compilation.semaphore.acquire(() => {
70
+ if (err) {
71
+ return callback(err);
72
+ }
73
+ if (!dep.module) {
74
+ return callback(new Error("Cannot load the module"));
75
+ }
76
+ // TODO consider removing this in webpack 5
77
+ if (dep.module instanceof NormalModule && dep.module.error) {
78
+ return callback(dep.module.error);
79
+ }
80
+ if (!dep.module._source) {
81
+ throw new Error(
82
+ "The module created for a LoaderDependency must have a property _source"
83
+ );
84
+ }
85
+ let source, map;
86
+ const moduleSource = dep.module._source;
87
+ if (moduleSource.sourceAndMap) {
88
+ const sourceAndMap = moduleSource.sourceAndMap();
89
+ map = sourceAndMap.map;
90
+ source = sourceAndMap.source;
91
+ } else {
92
+ map = moduleSource.map();
93
+ source = moduleSource.source();
94
+ }
95
+ if (dep.module.buildInfo.fileDependencies) {
96
+ for (const d of dep.module.buildInfo.fileDependencies) {
97
+ loaderContext.addDependency(d);
98
+ }
99
+ }
100
+ if (dep.module.buildInfo.contextDependencies) {
101
+ for (const d of dep.module.buildInfo.contextDependencies) {
102
+ loaderContext.addContextDependency(d);
103
+ }
104
+ }
105
+ return callback(null, source, map, dep.module);
106
+ });
107
+ }
108
+ );
109
+ };
110
+ }
111
+ );
112
+ });
113
+ }
114
+ }
115
+ module.exports = LoaderPlugin;
@@ -0,0 +1,23 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class LocalModule {
8
+ constructor(module, name, idx) {
9
+ this.module = module;
10
+ this.name = name;
11
+ this.idx = idx;
12
+ this.used = false;
13
+ }
14
+
15
+ flagUsed() {
16
+ this.used = true;
17
+ }
18
+
19
+ variableName() {
20
+ return "__WEBPACK_LOCAL_MODULE_" + this.idx + "__";
21
+ }
22
+ }
23
+ module.exports = LocalModule;
@@ -0,0 +1,28 @@
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 LocalModuleDependency extends NullDependency {
9
+ constructor(localModule, range, callNew) {
10
+ super();
11
+ localModule.flagUsed();
12
+ this.localModule = localModule;
13
+ this.range = range;
14
+ this.callNew = callNew;
15
+ }
16
+ }
17
+
18
+ LocalModuleDependency.Template = class LocalModuleDependencyTemplate {
19
+ apply(dep, source) {
20
+ if (!dep.range) return;
21
+ const moduleInstance = dep.callNew
22
+ ? `new (function () { return ${dep.localModule.variableName()}; })()`
23
+ : dep.localModule.variableName();
24
+ source.replace(dep.range[0], dep.range[1] - 1, moduleInstance);
25
+ }
26
+ };
27
+
28
+ module.exports = LocalModuleDependency;
@@ -0,0 +1,52 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const LocalModule = require("./LocalModule");
8
+ const LocalModulesHelpers = exports;
9
+
10
+ const lookup = (parent, mod) => {
11
+ if (mod.charAt(0) !== ".") return mod;
12
+
13
+ var path = parent.split("/");
14
+ var segs = mod.split("/");
15
+ path.pop();
16
+
17
+ for (let i = 0; i < segs.length; i++) {
18
+ const seg = segs[i];
19
+ if (seg === "..") {
20
+ path.pop();
21
+ } else if (seg !== ".") {
22
+ path.push(seg);
23
+ }
24
+ }
25
+
26
+ return path.join("/");
27
+ };
28
+
29
+ LocalModulesHelpers.addLocalModule = (state, name) => {
30
+ if (!state.localModules) {
31
+ state.localModules = [];
32
+ }
33
+ const m = new LocalModule(state.module, name, state.localModules.length);
34
+ state.localModules.push(m);
35
+ return m;
36
+ };
37
+
38
+ LocalModulesHelpers.getLocalModule = (state, name, namedModule) => {
39
+ if (!state.localModules) return null;
40
+ if (namedModule) {
41
+ // resolve dependency name relative to the defining named module
42
+ name = lookup(namedModule, name);
43
+ }
44
+ for (let i = 0; i < state.localModules.length; i++) {
45
+ if (state.localModules[i].name === name) {
46
+ return state.localModules[i];
47
+ }
48
+ }
49
+ return null;
50
+ };
51
+
52
+ module.exports = LocalModulesHelpers;
@@ -0,0 +1,23 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const Dependency = require("../Dependency");
7
+
8
+ class ModuleDependency extends Dependency {
9
+ /**
10
+ * @param {string} request request path which needs resolving
11
+ */
12
+ constructor(request) {
13
+ super();
14
+ this.request = request;
15
+ this.userRequest = request;
16
+ }
17
+
18
+ getResourceIdentifier() {
19
+ return `module${this.request}`;
20
+ }
21
+ }
22
+
23
+ module.exports = ModuleDependency;
@@ -0,0 +1,17 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class ModuleDependencyTemplateAsId {
8
+ apply(dep, source, runtime) {
9
+ if (!dep.range) return;
10
+ const content = runtime.moduleId({
11
+ module: dep.module,
12
+ request: dep.request
13
+ });
14
+ source.replace(dep.range[0], dep.range[1] - 1, content);
15
+ }
16
+ }
17
+ module.exports = ModuleDependencyTemplateAsId;
@@ -0,0 +1,17 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class ModuleDependencyTemplateAsRequireId {
8
+ apply(dep, source, runtime) {
9
+ if (!dep.range) return;
10
+ const content = runtime.moduleExports({
11
+ module: dep.module,
12
+ request: dep.request
13
+ });
14
+ source.replace(dep.range[0], dep.range[1] - 1, content);
15
+ }
16
+ }
17
+ module.exports = ModuleDependencyTemplateAsRequireId;
@@ -0,0 +1,23 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const ModuleDependency = require("./ModuleDependency");
7
+ const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
8
+
9
+ class ModuleHotAcceptDependency extends ModuleDependency {
10
+ constructor(request, range) {
11
+ super(request);
12
+ this.range = range;
13
+ this.weak = true;
14
+ }
15
+
16
+ get type() {
17
+ return "module.hot.accept";
18
+ }
19
+ }
20
+
21
+ ModuleHotAcceptDependency.Template = ModuleDependencyTemplateAsId;
22
+
23
+ module.exports = ModuleHotAcceptDependency;
@@ -0,0 +1,23 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const ModuleDependency = require("./ModuleDependency");
7
+ const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
8
+
9
+ class ModuleHotDeclineDependency extends ModuleDependency {
10
+ constructor(request, range) {
11
+ super(request);
12
+ this.range = range;
13
+ this.weak = true;
14
+ }
15
+
16
+ get type() {
17
+ return "module.hot.decline";
18
+ }
19
+ }
20
+
21
+ ModuleHotDeclineDependency.Template = ModuleDependencyTemplateAsId;
22
+
23
+ module.exports = ModuleHotDeclineDependency;
@@ -0,0 +1,25 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ /** @typedef {import("./SingleEntryDependency")} SingleEntryDependency */
7
+ const Dependency = require("../Dependency");
8
+
9
+ class MultiEntryDependency extends Dependency {
10
+ /**
11
+ * @param {SingleEntryDependency[]} dependencies an array of SingleEntryDependencies
12
+ * @param {string} name entry name
13
+ */
14
+ constructor(dependencies, name) {
15
+ super();
16
+ this.dependencies = dependencies;
17
+ this.name = name;
18
+ }
19
+
20
+ get type() {
21
+ return "multi entry";
22
+ }
23
+ }
24
+
25
+ module.exports = MultiEntryDependency;
@@ -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
+ const Dependency = require("../Dependency");
7
+
8
+ class NullDependency extends Dependency {
9
+ get type() {
10
+ return "null";
11
+ }
12
+
13
+ updateHash() {}
14
+ }
15
+
16
+ NullDependency.Template = class NullDependencyTemplate {
17
+ apply() {}
18
+ };
19
+
20
+ module.exports = NullDependency;
@@ -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 PrefetchDependency extends ModuleDependency {
9
+ constructor(request) {
10
+ super(request);
11
+ }
12
+
13
+ get type() {
14
+ return "prefetch";
15
+ }
16
+ }
17
+
18
+ module.exports = PrefetchDependency;
@@ -0,0 +1,22 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const ContextDependency = require("./ContextDependency");
7
+ const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");
8
+
9
+ class RequireContextDependency extends ContextDependency {
10
+ constructor(options, range) {
11
+ super(options);
12
+ this.range = range;
13
+ }
14
+
15
+ get type() {
16
+ return "require.context";
17
+ }
18
+ }
19
+
20
+ RequireContextDependency.Template = ModuleDependencyTemplateAsRequireId;
21
+
22
+ module.exports = RequireContextDependency;
@@ -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 RequireContextDependency = require("./RequireContextDependency");
8
+
9
+ module.exports = class RequireContextDependencyParserPlugin {
10
+ apply(parser) {
11
+ parser.hooks.call
12
+ .for("require.context")
13
+ .tap("RequireContextDependencyParserPlugin", expr => {
14
+ let regExp = /^\.\/.*$/;
15
+ let recursive = true;
16
+ let mode = "sync";
17
+ switch (expr.arguments.length) {
18
+ case 4: {
19
+ const modeExpr = parser.evaluateExpression(expr.arguments[3]);
20
+ if (!modeExpr.isString()) return;
21
+ mode = modeExpr.string;
22
+ }
23
+ // falls through
24
+ case 3: {
25
+ const regExpExpr = parser.evaluateExpression(expr.arguments[2]);
26
+ if (!regExpExpr.isRegExp()) return;
27
+ regExp = regExpExpr.regExp;
28
+ }
29
+ // falls through
30
+ case 2: {
31
+ const recursiveExpr = parser.evaluateExpression(expr.arguments[1]);
32
+ if (!recursiveExpr.isBoolean()) return;
33
+ recursive = recursiveExpr.bool;
34
+ }
35
+ // falls through
36
+ case 1: {
37
+ const requestExpr = parser.evaluateExpression(expr.arguments[0]);
38
+ if (!requestExpr.isString()) return;
39
+ const dep = new RequireContextDependency(
40
+ {
41
+ request: requestExpr.string,
42
+ recursive,
43
+ regExp,
44
+ mode
45
+ },
46
+ expr.range
47
+ );
48
+ dep.loc = expr.loc;
49
+ dep.optional = parser.scope.inTry;
50
+ parser.state.current.addDependency(dep);
51
+ return true;
52
+ }
53
+ }
54
+ });
55
+ }
56
+ };
@@ -0,0 +1,143 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const RequireContextDependency = require("./RequireContextDependency");
8
+ const ContextElementDependency = require("./ContextElementDependency");
9
+
10
+ const RequireContextDependencyParserPlugin = require("./RequireContextDependencyParserPlugin");
11
+
12
+ class RequireContextPlugin {
13
+ constructor(modulesDirectories, extensions, mainFiles) {
14
+ if (!Array.isArray(modulesDirectories)) {
15
+ throw new Error("modulesDirectories must be an array");
16
+ }
17
+ if (!Array.isArray(extensions)) {
18
+ throw new Error("extensions must be an array");
19
+ }
20
+ this.modulesDirectories = modulesDirectories;
21
+ this.extensions = extensions;
22
+ this.mainFiles = mainFiles;
23
+ }
24
+
25
+ apply(compiler) {
26
+ compiler.hooks.compilation.tap(
27
+ "RequireContextPlugin",
28
+ (compilation, { contextModuleFactory, normalModuleFactory }) => {
29
+ compilation.dependencyFactories.set(
30
+ RequireContextDependency,
31
+ contextModuleFactory
32
+ );
33
+ compilation.dependencyTemplates.set(
34
+ RequireContextDependency,
35
+ new RequireContextDependency.Template()
36
+ );
37
+
38
+ compilation.dependencyFactories.set(
39
+ ContextElementDependency,
40
+ normalModuleFactory
41
+ );
42
+
43
+ const handler = (parser, parserOptions) => {
44
+ if (
45
+ parserOptions.requireContext !== undefined &&
46
+ !parserOptions.requireContext
47
+ )
48
+ return;
49
+
50
+ new RequireContextDependencyParserPlugin().apply(parser);
51
+ };
52
+
53
+ normalModuleFactory.hooks.parser
54
+ .for("javascript/auto")
55
+ .tap("RequireContextPlugin", handler);
56
+ normalModuleFactory.hooks.parser
57
+ .for("javascript/dynamic")
58
+ .tap("RequireContextPlugin", handler);
59
+
60
+ contextModuleFactory.hooks.alternatives.tap(
61
+ "RequireContextPlugin",
62
+ items => {
63
+ if (items.length === 0) return items;
64
+ return items
65
+ .map(obj => {
66
+ return this.extensions
67
+ .filter(ext => {
68
+ const l = obj.request.length;
69
+ return (
70
+ l > ext.length &&
71
+ obj.request.substr(l - ext.length, l) === ext
72
+ );
73
+ })
74
+ .map(ext => {
75
+ const l = obj.request.length;
76
+ return {
77
+ context: obj.context,
78
+ request: obj.request.substr(0, l - ext.length)
79
+ };
80
+ })
81
+ .concat(obj);
82
+ })
83
+ .reduce((a, b) => a.concat(b), []);
84
+ }
85
+ );
86
+
87
+ contextModuleFactory.hooks.alternatives.tap(
88
+ "RequireContextPlugin",
89
+ items => {
90
+ if (items.length === 0) return items;
91
+ return items
92
+ .map(obj => {
93
+ return this.mainFiles
94
+ .filter(mainFile => {
95
+ const l = obj.request.length;
96
+ return (
97
+ l > mainFile.length + 1 &&
98
+ obj.request.substr(l - mainFile.length - 1, l) ===
99
+ "/" + mainFile
100
+ );
101
+ })
102
+ .map(mainFile => {
103
+ const l = obj.request.length;
104
+ return [
105
+ {
106
+ context: obj.context,
107
+ request: obj.request.substr(0, l - mainFile.length)
108
+ },
109
+ {
110
+ context: obj.context,
111
+ request: obj.request.substr(0, l - mainFile.length - 1)
112
+ }
113
+ ];
114
+ })
115
+ .reduce((a, b) => a.concat(b), [])
116
+ .concat(obj);
117
+ })
118
+ .reduce((a, b) => a.concat(b), []);
119
+ }
120
+ );
121
+
122
+ contextModuleFactory.hooks.alternatives.tap(
123
+ "RequireContextPlugin",
124
+ items => {
125
+ if (items.length === 0) return items;
126
+ return items.map(obj => {
127
+ for (let i = 0; i < this.modulesDirectories.length; i++) {
128
+ const dir = this.modulesDirectories[i];
129
+ const idx = obj.request.indexOf("./" + dir + "/");
130
+ if (idx === 0) {
131
+ obj.request = obj.request.slice(dir.length + 3);
132
+ break;
133
+ }
134
+ }
135
+ return obj;
136
+ });
137
+ }
138
+ );
139
+ }
140
+ );
141
+ }
142
+ }
143
+ module.exports = RequireContextPlugin;
@@ -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 AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
7
+ const RequireEnsureDependency = require("./RequireEnsureDependency");
8
+
9
+ module.exports = class RequireEnsureDependenciesBlock extends AsyncDependenciesBlock {
10
+ constructor(
11
+ expr,
12
+ successExpression,
13
+ errorExpression,
14
+ chunkName,
15
+ chunkNameRange,
16
+ module,
17
+ loc
18
+ ) {
19
+ super(chunkName, module, loc, null);
20
+ this.expr = expr;
21
+ const successBodyRange =
22
+ successExpression &&
23
+ successExpression.body &&
24
+ successExpression.body.range;
25
+ if (successBodyRange) {
26
+ this.range = [successBodyRange[0] + 1, successBodyRange[1] - 1];
27
+ }
28
+ this.chunkNameRange = chunkNameRange;
29
+ const dep = new RequireEnsureDependency(this);
30
+ dep.loc = loc;
31
+ this.addDependency(dep);
32
+ }
33
+ };