@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,114 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const { OriginalSource, RawSource } = require("webpack-sources");
8
+
9
+ const Module = require("./Module");
10
+ const WebpackMissingModule = require("./dependencies/WebpackMissingModule");
11
+ const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
12
+ const DelegatedExportsDependency = require("./dependencies/DelegatedExportsDependency");
13
+
14
+ /** @typedef {import("./dependencies/ModuleDependency")} ModuleDependency */
15
+ /** @typedef {import("./util/createHash").Hash} Hash */
16
+
17
+ class DelegatedModule extends Module {
18
+ constructor(sourceRequest, data, type, userRequest, originalRequest) {
19
+ super("javascript/dynamic", null);
20
+
21
+ // Info from Factory
22
+ this.sourceRequest = sourceRequest;
23
+ this.request = data.id;
24
+ this.type = type;
25
+ this.userRequest = userRequest;
26
+ this.originalRequest = originalRequest;
27
+ this.delegateData = data;
28
+
29
+ // Build info
30
+ this.delegatedSourceDependency = undefined;
31
+ }
32
+
33
+ libIdent(options) {
34
+ return typeof this.originalRequest === "string"
35
+ ? this.originalRequest
36
+ : this.originalRequest.libIdent(options);
37
+ }
38
+
39
+ identifier() {
40
+ return `delegated ${JSON.stringify(this.request)} from ${
41
+ this.sourceRequest
42
+ }`;
43
+ }
44
+
45
+ readableIdentifier() {
46
+ return `delegated ${this.userRequest} from ${this.sourceRequest}`;
47
+ }
48
+
49
+ needRebuild() {
50
+ return false;
51
+ }
52
+
53
+ build(options, compilation, resolver, fs, callback) {
54
+ this.built = true;
55
+ this.buildMeta = Object.assign({}, this.delegateData.buildMeta);
56
+ this.buildInfo = {};
57
+ this.delegatedSourceDependency = new DelegatedSourceDependency(
58
+ this.sourceRequest
59
+ );
60
+ this.addDependency(this.delegatedSourceDependency);
61
+ this.addDependency(
62
+ new DelegatedExportsDependency(this, this.delegateData.exports || true)
63
+ );
64
+ callback();
65
+ }
66
+
67
+ source(depTemplates, runtime) {
68
+ const dep = /** @type {DelegatedSourceDependency} */ (this.dependencies[0]);
69
+ const sourceModule = dep.module;
70
+ let str;
71
+
72
+ if (!sourceModule) {
73
+ str = WebpackMissingModule.moduleCode(this.sourceRequest);
74
+ } else {
75
+ str = `module.exports = (${runtime.moduleExports({
76
+ module: sourceModule,
77
+ request: dep.request
78
+ })})`;
79
+
80
+ switch (this.type) {
81
+ case "require":
82
+ str += `(${JSON.stringify(this.request)})`;
83
+ break;
84
+ case "object":
85
+ str += `[${JSON.stringify(this.request)}]`;
86
+ break;
87
+ }
88
+
89
+ str += ";";
90
+ }
91
+
92
+ if (this.useSourceMap) {
93
+ return new OriginalSource(str, this.identifier());
94
+ } else {
95
+ return new RawSource(str);
96
+ }
97
+ }
98
+
99
+ size() {
100
+ return 42;
101
+ }
102
+
103
+ /**
104
+ * @param {Hash} hash the hash used to track dependencies
105
+ * @returns {void}
106
+ */
107
+ updateHash(hash) {
108
+ hash.update(this.type);
109
+ hash.update(JSON.stringify(this.request));
110
+ super.updateHash(hash);
111
+ }
112
+ }
113
+
114
+ module.exports = DelegatedModule;
@@ -0,0 +1,95 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const DelegatedModule = require("./DelegatedModule");
8
+
9
+ // options.source
10
+ // options.type
11
+ // options.context
12
+ // options.scope
13
+ // options.content
14
+ class DelegatedModuleFactoryPlugin {
15
+ constructor(options) {
16
+ this.options = options;
17
+ options.type = options.type || "require";
18
+ options.extensions = options.extensions || [
19
+ "",
20
+ ".wasm",
21
+ ".mjs",
22
+ ".js",
23
+ ".json"
24
+ ];
25
+ }
26
+
27
+ apply(normalModuleFactory) {
28
+ const scope = this.options.scope;
29
+ if (scope) {
30
+ normalModuleFactory.hooks.factory.tap(
31
+ "DelegatedModuleFactoryPlugin",
32
+ factory => (data, callback) => {
33
+ const dependency = data.dependencies[0];
34
+ const request = dependency.request;
35
+ if (request && request.indexOf(scope + "/") === 0) {
36
+ const innerRequest = "." + request.substr(scope.length);
37
+ let resolved;
38
+ if (innerRequest in this.options.content) {
39
+ resolved = this.options.content[innerRequest];
40
+ return callback(
41
+ null,
42
+ new DelegatedModule(
43
+ this.options.source,
44
+ resolved,
45
+ this.options.type,
46
+ innerRequest,
47
+ request
48
+ )
49
+ );
50
+ }
51
+ for (let i = 0; i < this.options.extensions.length; i++) {
52
+ const extension = this.options.extensions[i];
53
+ const requestPlusExt = innerRequest + extension;
54
+ if (requestPlusExt in this.options.content) {
55
+ resolved = this.options.content[requestPlusExt];
56
+ return callback(
57
+ null,
58
+ new DelegatedModule(
59
+ this.options.source,
60
+ resolved,
61
+ this.options.type,
62
+ requestPlusExt,
63
+ request + extension
64
+ )
65
+ );
66
+ }
67
+ }
68
+ }
69
+ return factory(data, callback);
70
+ }
71
+ );
72
+ } else {
73
+ normalModuleFactory.hooks.module.tap(
74
+ "DelegatedModuleFactoryPlugin",
75
+ module => {
76
+ if (module.libIdent) {
77
+ const request = module.libIdent(this.options);
78
+ if (request && request in this.options.content) {
79
+ const resolved = this.options.content[request];
80
+ return new DelegatedModule(
81
+ this.options.source,
82
+ resolved,
83
+ this.options.type,
84
+ request,
85
+ module
86
+ );
87
+ }
88
+ }
89
+ return module;
90
+ }
91
+ );
92
+ }
93
+ }
94
+ }
95
+ module.exports = DelegatedModuleFactoryPlugin;
@@ -0,0 +1,39 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
9
+ const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
10
+ const DelegatedExportsDependency = require("./dependencies/DelegatedExportsDependency");
11
+ const NullFactory = require("./NullFactory");
12
+
13
+ class DelegatedPlugin {
14
+ constructor(options) {
15
+ this.options = options;
16
+ }
17
+
18
+ apply(compiler) {
19
+ compiler.hooks.compilation.tap(
20
+ "DelegatedPlugin",
21
+ (compilation, { normalModuleFactory }) => {
22
+ compilation.dependencyFactories.set(
23
+ DelegatedSourceDependency,
24
+ normalModuleFactory
25
+ );
26
+ compilation.dependencyFactories.set(
27
+ DelegatedExportsDependency,
28
+ new NullFactory()
29
+ );
30
+ }
31
+ );
32
+
33
+ compiler.hooks.compile.tap("DelegatedPlugin", ({ normalModuleFactory }) => {
34
+ new DelegatedModuleFactoryPlugin(this.options).apply(normalModuleFactory);
35
+ });
36
+ }
37
+ }
38
+
39
+ module.exports = DelegatedPlugin;
@@ -0,0 +1,124 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const DependenciesBlockVariable = require("./DependenciesBlockVariable");
8
+
9
+ /** @typedef {import("./ChunkGroup")} ChunkGroup */
10
+ /** @typedef {import("./Dependency")} Dependency */
11
+ /** @typedef {import("./AsyncDependenciesBlock")} AsyncDependenciesBlock */
12
+ /** @typedef {import("./DependenciesBlockVariable")} DependenciesBlockVariable */
13
+ /** @typedef {(d: Dependency) => boolean} DependencyFilterFunction */
14
+ /** @typedef {import("./util/createHash").Hash} Hash */
15
+
16
+ class DependenciesBlock {
17
+ constructor() {
18
+ /** @type {Dependency[]} */
19
+ this.dependencies = [];
20
+ /** @type {AsyncDependenciesBlock[]} */
21
+ this.blocks = [];
22
+ /** @type {DependenciesBlockVariable[]} */
23
+ this.variables = [];
24
+ }
25
+
26
+ /**
27
+ * Adds a DependencyBlock to DependencyBlock relationship.
28
+ * This is used for when a Module has a AsyncDependencyBlock tie (for code-splitting)
29
+ *
30
+ * @param {AsyncDependenciesBlock} block block being added
31
+ * @returns {void}
32
+ */
33
+ addBlock(block) {
34
+ this.blocks.push(block);
35
+ block.parent = this;
36
+ }
37
+
38
+ /**
39
+ * @param {string} name name of dependency
40
+ * @param {string} expression expression string for variable
41
+ * @param {Dependency[]} dependencies dependency instances tied to variable
42
+ * @returns {void}
43
+ */
44
+ addVariable(name, expression, dependencies) {
45
+ for (let v of this.variables) {
46
+ if (v.name === name && v.expression === expression) {
47
+ return;
48
+ }
49
+ }
50
+ this.variables.push(
51
+ new DependenciesBlockVariable(name, expression, dependencies)
52
+ );
53
+ }
54
+
55
+ /**
56
+ * @param {Dependency} dependency dependency being tied to block.
57
+ * This is an "edge" pointing to another "node" on module graph.
58
+ * @returns {void}
59
+ */
60
+ addDependency(dependency) {
61
+ this.dependencies.push(dependency);
62
+ }
63
+
64
+ /**
65
+ * @param {Dependency} dependency dependency being removed
66
+ * @returns {void}
67
+ */
68
+ removeDependency(dependency) {
69
+ const idx = this.dependencies.indexOf(dependency);
70
+ if (idx >= 0) {
71
+ this.dependencies.splice(idx, 1);
72
+ }
73
+ }
74
+
75
+ /**
76
+ * @param {Hash} hash the hash used to track dependencies
77
+ * @returns {void}
78
+ */
79
+ updateHash(hash) {
80
+ for (const dep of this.dependencies) dep.updateHash(hash);
81
+ for (const block of this.blocks) block.updateHash(hash);
82
+ for (const variable of this.variables) variable.updateHash(hash);
83
+ }
84
+
85
+ disconnect() {
86
+ for (const dep of this.dependencies) dep.disconnect();
87
+ for (const block of this.blocks) block.disconnect();
88
+ for (const variable of this.variables) variable.disconnect();
89
+ }
90
+
91
+ unseal() {
92
+ for (const block of this.blocks) block.unseal();
93
+ }
94
+
95
+ /**
96
+ * @param {DependencyFilterFunction} filter filter function for dependencies, gets passed all dependency ties from current instance
97
+ * @returns {boolean} returns boolean for filter
98
+ */
99
+ hasDependencies(filter) {
100
+ if (filter) {
101
+ for (const dep of this.dependencies) {
102
+ if (filter(dep)) return true;
103
+ }
104
+ } else {
105
+ if (this.dependencies.length > 0) {
106
+ return true;
107
+ }
108
+ }
109
+
110
+ for (const block of this.blocks) {
111
+ if (block.hasDependencies(filter)) return true;
112
+ }
113
+ for (const variable of this.variables) {
114
+ if (variable.hasDependencies(filter)) return true;
115
+ }
116
+ return false;
117
+ }
118
+
119
+ sortItems() {
120
+ for (const block of this.blocks) block.sortItems();
121
+ }
122
+ }
123
+
124
+ module.exports = DependenciesBlock;
@@ -0,0 +1,72 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const { RawSource, ReplaceSource } = require("webpack-sources");
8
+
9
+ /** @typedef {import("./Dependency")} Dependency */
10
+ /** @typedef {import("./Dependency").DependencyTemplate} DependencyTemplate */
11
+ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
12
+ /** @typedef {import("./util/createHash").Hash} Hash */
13
+ /** @typedef {(d: Dependency) => boolean} DependencyFilterFunction */
14
+ /** @typedef {Map<Function, DependencyTemplate>} DependencyTemplates */
15
+
16
+ class DependenciesBlockVariable {
17
+ /**
18
+ * Creates an instance of DependenciesBlockVariable.
19
+ * @param {string} name name of DependenciesBlockVariable
20
+ * @param {string} expression expression string
21
+ * @param {Dependency[]=} dependencies dependencies tied to this varaiable
22
+ */
23
+ constructor(name, expression, dependencies) {
24
+ this.name = name;
25
+ this.expression = expression;
26
+ this.dependencies = dependencies || [];
27
+ }
28
+
29
+ /**
30
+ * @param {Hash} hash hash for instance to update
31
+ * @returns {void}
32
+ */
33
+ updateHash(hash) {
34
+ hash.update(this.name);
35
+ hash.update(this.expression);
36
+ for (const d of this.dependencies) {
37
+ d.updateHash(hash);
38
+ }
39
+ }
40
+
41
+ /**
42
+ * @param {DependencyTemplates} dependencyTemplates Dependency constructors and templates Map.
43
+ * @param {RuntimeTemplate} runtimeTemplate runtimeTemplate to generate expression souce
44
+ * @returns {ReplaceSource} returns constructed source for expression via templates
45
+ */
46
+ expressionSource(dependencyTemplates, runtimeTemplate) {
47
+ const source = new ReplaceSource(new RawSource(this.expression));
48
+ for (const dep of this.dependencies) {
49
+ const template = dependencyTemplates.get(dep.constructor);
50
+ if (!template) {
51
+ throw new Error(`No template for dependency: ${dep.constructor.name}`);
52
+ }
53
+ template.apply(dep, source, runtimeTemplate, dependencyTemplates);
54
+ }
55
+ return source;
56
+ }
57
+
58
+ disconnect() {
59
+ for (const d of this.dependencies) {
60
+ d.disconnect();
61
+ }
62
+ }
63
+
64
+ hasDependencies(filter) {
65
+ if (filter) {
66
+ return this.dependencies.some(filter);
67
+ }
68
+ return this.dependencies.length > 0;
69
+ }
70
+ }
71
+
72
+ module.exports = DependenciesBlockVariable;
@@ -0,0 +1,89 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const util = require("util");
8
+ const compareLocations = require("./compareLocations");
9
+ const DependencyReference = require("./dependencies/DependencyReference");
10
+
11
+ /** @typedef {import("./Module")} Module */
12
+ /** @typedef {import("webpack-sources").Source} Source */
13
+ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
14
+
15
+ /**
16
+ * @typedef {Object} DependencyTemplate
17
+ * @property {function(Dependency, Source, RuntimeTemplate, Map<Function, DependencyTemplate>): void} apply
18
+ */
19
+
20
+ /** @typedef {Object} SourcePosition
21
+ * @property {number} line
22
+ * @property {number=} column
23
+ */
24
+
25
+ /** @typedef {Object} RealDependencyLocation
26
+ * @property {SourcePosition} start
27
+ * @property {SourcePosition=} end
28
+ * @property {number=} index
29
+ */
30
+
31
+ /** @typedef {Object} SynteticDependencyLocation
32
+ * @property {string} name
33
+ * @property {number=} index
34
+ */
35
+
36
+ /** @typedef {SynteticDependencyLocation|RealDependencyLocation} DependencyLocation */
37
+
38
+ class Dependency {
39
+ constructor() {
40
+ /** @type {Module|null} */
41
+ this.module = null;
42
+ // TODO remove in webpack 5
43
+ /** @type {boolean} */
44
+ this.weak = false;
45
+ /** @type {boolean} */
46
+ this.optional = false;
47
+ /** @type {DependencyLocation} */
48
+ this.loc = undefined;
49
+ }
50
+
51
+ getResourceIdentifier() {
52
+ return null;
53
+ }
54
+
55
+ // Returns the referenced module and export
56
+ getReference() {
57
+ if (!this.module) return null;
58
+ return new DependencyReference(this.module, true, this.weak);
59
+ }
60
+
61
+ // Returns the exported names
62
+ getExports() {
63
+ return null;
64
+ }
65
+
66
+ getWarnings() {
67
+ return null;
68
+ }
69
+
70
+ getErrors() {
71
+ return null;
72
+ }
73
+
74
+ updateHash(hash) {
75
+ hash.update((this.module && this.module.id) + "");
76
+ }
77
+
78
+ disconnect() {
79
+ this.module = null;
80
+ }
81
+ }
82
+
83
+ // TODO remove in webpack 5
84
+ Dependency.compare = util.deprecate(
85
+ (a, b) => compareLocations(a.loc, b.loc),
86
+ "Dependency.compare is deprecated and will be removed in the next major version"
87
+ );
88
+
89
+ module.exports = Dependency;
@@ -0,0 +1,54 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const DllEntryDependency = require("./dependencies/DllEntryDependency");
8
+ const SingleEntryDependency = require("./dependencies/SingleEntryDependency");
9
+ const DllModuleFactory = require("./DllModuleFactory");
10
+
11
+ class DllEntryPlugin {
12
+ constructor(context, entries, name) {
13
+ this.context = context;
14
+ this.entries = entries;
15
+ this.name = name;
16
+ }
17
+
18
+ apply(compiler) {
19
+ compiler.hooks.compilation.tap(
20
+ "DllEntryPlugin",
21
+ (compilation, { normalModuleFactory }) => {
22
+ const dllModuleFactory = new DllModuleFactory();
23
+ compilation.dependencyFactories.set(
24
+ DllEntryDependency,
25
+ dllModuleFactory
26
+ );
27
+ compilation.dependencyFactories.set(
28
+ SingleEntryDependency,
29
+ normalModuleFactory
30
+ );
31
+ }
32
+ );
33
+ compiler.hooks.make.tapAsync("DllEntryPlugin", (compilation, callback) => {
34
+ compilation.addEntry(
35
+ this.context,
36
+ new DllEntryDependency(
37
+ this.entries.map((e, idx) => {
38
+ const dep = new SingleEntryDependency(e);
39
+ dep.loc = {
40
+ name: this.name,
41
+ index: idx
42
+ };
43
+ return dep;
44
+ }),
45
+ this.name
46
+ ),
47
+ this.name,
48
+ callback
49
+ );
50
+ });
51
+ }
52
+ }
53
+
54
+ module.exports = DllEntryPlugin;
@@ -0,0 +1,60 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const { RawSource } = require("webpack-sources");
8
+ const Module = require("./Module");
9
+
10
+ /** @typedef {import("./util/createHash").Hash} Hash */
11
+
12
+ class DllModule extends Module {
13
+ constructor(context, dependencies, name, type) {
14
+ super("javascript/dynamic", context);
15
+
16
+ // Info from Factory
17
+ this.dependencies = dependencies;
18
+ this.name = name;
19
+ this.type = type;
20
+ }
21
+
22
+ identifier() {
23
+ return `dll ${this.name}`;
24
+ }
25
+
26
+ readableIdentifier() {
27
+ return `dll ${this.name}`;
28
+ }
29
+
30
+ build(options, compilation, resolver, fs, callback) {
31
+ this.built = true;
32
+ this.buildMeta = {};
33
+ this.buildInfo = {};
34
+ return callback();
35
+ }
36
+
37
+ source() {
38
+ return new RawSource("module.exports = __webpack_require__;");
39
+ }
40
+
41
+ needRebuild() {
42
+ return false;
43
+ }
44
+
45
+ size() {
46
+ return 12;
47
+ }
48
+
49
+ /**
50
+ * @param {Hash} hash the hash used to track dependencies
51
+ * @returns {void}
52
+ */
53
+ updateHash(hash) {
54
+ hash.update("dll module");
55
+ hash.update(this.name || "");
56
+ super.updateHash(hash);
57
+ }
58
+ }
59
+
60
+ module.exports = DllModule;
@@ -0,0 +1,29 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const { Tapable } = require("tapable");
8
+ const DllModule = require("./DllModule");
9
+
10
+ class DllModuleFactory extends Tapable {
11
+ constructor() {
12
+ super();
13
+ this.hooks = {};
14
+ }
15
+ create(data, callback) {
16
+ const dependency = data.dependencies[0];
17
+ callback(
18
+ null,
19
+ new DllModule(
20
+ data.context,
21
+ dependency.dependencies,
22
+ dependency.name,
23
+ dependency.type
24
+ )
25
+ );
26
+ }
27
+ }
28
+
29
+ module.exports = DllModuleFactory;