@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,568 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const {
8
+ ConcatSource,
9
+ OriginalSource,
10
+ PrefixSource,
11
+ RawSource
12
+ } = require("webpack-sources");
13
+ const {
14
+ Tapable,
15
+ SyncWaterfallHook,
16
+ SyncHook,
17
+ SyncBailHook
18
+ } = require("tapable");
19
+ const Template = require("./Template");
20
+
21
+ /** @typedef {import("webpack-sources").ConcatSource} ConcatSource */
22
+ /** @typedef {import("webpack-sources").Source} Source */
23
+ /** @typedef {import("./ModuleTemplate")} ModuleTemplate */
24
+ /** @typedef {import("./Chunk")} Chunk */
25
+ /** @typedef {import("./Module")} Module} */
26
+ /** @typedef {import("./util/createHash").Hash} Hash} */
27
+ /** @typedef {import("./Dependency").DependencyTemplate} DependencyTemplate} */
28
+
29
+ /**
30
+ * @typedef {Object} RenderManifestOptions
31
+ * @property {Chunk} chunk the chunk used to render
32
+ * @property {string} hash
33
+ * @property {string} fullHash
34
+ * @property {TODO} outputOptions
35
+ * @property {{javascript: ModuleTemplate, webassembly: ModuleTemplate}} moduleTemplates
36
+ * @property {Map<TODO, TODO>} dependencyTemplates
37
+ */
38
+
39
+ // require function shortcuts:
40
+ // __webpack_require__.s = the module id of the entry point
41
+ // __webpack_require__.c = the module cache
42
+ // __webpack_require__.m = the module functions
43
+ // __webpack_require__.p = the bundle public path
44
+ // __webpack_require__.i = the identity function used for harmony imports
45
+ // __webpack_require__.e = the chunk ensure function
46
+ // __webpack_require__.d = the exported property define getter function
47
+ // __webpack_require__.o = Object.prototype.hasOwnProperty.call
48
+ // __webpack_require__.r = define compatibility on export
49
+ // __webpack_require__.t = create a fake namespace object
50
+ // __webpack_require__.n = compatibility get default export
51
+ // __webpack_require__.h = the webpack hash
52
+ // __webpack_require__.w = an object containing all installed WebAssembly.Instance export objects keyed by module id
53
+ // __webpack_require__.oe = the uncaught error handler for the webpack runtime
54
+ // __webpack_require__.nc = the script nonce
55
+
56
+ module.exports = class MainTemplate extends Tapable {
57
+ /**
58
+ *
59
+ * @param {TODO=} outputOptions output options for the MainTemplate
60
+ */
61
+ constructor(outputOptions) {
62
+ super();
63
+ /** @type {TODO?} */
64
+ this.outputOptions = outputOptions || {};
65
+ this.hooks = {
66
+ /** @type {SyncWaterfallHook<TODO[], RenderManifestOptions>} */
67
+ renderManifest: new SyncWaterfallHook(["result", "options"]),
68
+ modules: new SyncWaterfallHook([
69
+ "modules",
70
+ "chunk",
71
+ "hash",
72
+ "moduleTemplate",
73
+ "dependencyTemplates"
74
+ ]),
75
+ moduleObj: new SyncWaterfallHook([
76
+ "source",
77
+ "chunk",
78
+ "hash",
79
+ "moduleIdExpression"
80
+ ]),
81
+ requireEnsure: new SyncWaterfallHook([
82
+ "source",
83
+ "chunk",
84
+ "hash",
85
+ "chunkIdExpression"
86
+ ]),
87
+ bootstrap: new SyncWaterfallHook([
88
+ "source",
89
+ "chunk",
90
+ "hash",
91
+ "moduleTemplate",
92
+ "dependencyTemplates"
93
+ ]),
94
+ localVars: new SyncWaterfallHook(["source", "chunk", "hash"]),
95
+ require: new SyncWaterfallHook(["source", "chunk", "hash"]),
96
+ requireExtensions: new SyncWaterfallHook(["source", "chunk", "hash"]),
97
+ /** @type {SyncWaterfallHook<string, Chunk, string>} */
98
+ beforeStartup: new SyncWaterfallHook(["source", "chunk", "hash"]),
99
+ /** @type {SyncWaterfallHook<string, Chunk, string>} */
100
+ startup: new SyncWaterfallHook(["source", "chunk", "hash"]),
101
+ /** @type {SyncWaterfallHook<string, Chunk, string>} */
102
+ afterStartup: new SyncWaterfallHook(["source", "chunk", "hash"]),
103
+ render: new SyncWaterfallHook([
104
+ "source",
105
+ "chunk",
106
+ "hash",
107
+ "moduleTemplate",
108
+ "dependencyTemplates"
109
+ ]),
110
+ renderWithEntry: new SyncWaterfallHook(["source", "chunk", "hash"]),
111
+ moduleRequire: new SyncWaterfallHook([
112
+ "source",
113
+ "chunk",
114
+ "hash",
115
+ "moduleIdExpression"
116
+ ]),
117
+ addModule: new SyncWaterfallHook([
118
+ "source",
119
+ "chunk",
120
+ "hash",
121
+ "moduleIdExpression",
122
+ "moduleExpression"
123
+ ]),
124
+ currentHash: new SyncWaterfallHook(["source", "requestedLength"]),
125
+ assetPath: new SyncWaterfallHook(["path", "options", "assetInfo"]),
126
+ hash: new SyncHook(["hash"]),
127
+ hashForChunk: new SyncHook(["hash", "chunk"]),
128
+ globalHashPaths: new SyncWaterfallHook(["paths"]),
129
+ globalHash: new SyncBailHook(["chunk", "paths"]),
130
+
131
+ // TODO this should be moved somewhere else
132
+ // It's weird here
133
+ hotBootstrap: new SyncWaterfallHook(["source", "chunk", "hash"])
134
+ };
135
+ this.hooks.startup.tap("MainTemplate", (source, chunk, hash) => {
136
+ /** @type {string[]} */
137
+ const buf = [];
138
+ if (chunk.entryModule) {
139
+ buf.push("// Load entry module and return exports");
140
+ buf.push(
141
+ `return ${this.renderRequireFunctionForModule(
142
+ hash,
143
+ chunk,
144
+ JSON.stringify(chunk.entryModule.id)
145
+ )}(${this.requireFn}.s = ${JSON.stringify(chunk.entryModule.id)});`
146
+ );
147
+ }
148
+ return Template.asString(buf);
149
+ });
150
+ this.hooks.render.tap(
151
+ "MainTemplate",
152
+ (bootstrapSource, chunk, hash, moduleTemplate, dependencyTemplates) => {
153
+ const source = new ConcatSource();
154
+ source.add("/******/ (function(modules) { // webpackBootstrap\n");
155
+ source.add(new PrefixSource("/******/", bootstrapSource));
156
+ source.add("/******/ })\n");
157
+ source.add(
158
+ "/************************************************************************/\n"
159
+ );
160
+ source.add("/******/ (");
161
+ source.add(
162
+ this.hooks.modules.call(
163
+ new RawSource(""),
164
+ chunk,
165
+ hash,
166
+ moduleTemplate,
167
+ dependencyTemplates
168
+ )
169
+ );
170
+ source.add(")");
171
+ return source;
172
+ }
173
+ );
174
+ this.hooks.localVars.tap("MainTemplate", (source, chunk, hash) => {
175
+ return Template.asString([
176
+ source,
177
+ "// The module cache",
178
+ "var installedModules = {};"
179
+ ]);
180
+ });
181
+ this.hooks.require.tap("MainTemplate", (source, chunk, hash) => {
182
+ return Template.asString([
183
+ source,
184
+ "// Check if module is in cache",
185
+ "if(installedModules[moduleId]) {",
186
+ Template.indent("return installedModules[moduleId].exports;"),
187
+ "}",
188
+ "// Create a new module (and put it into the cache)",
189
+ "var module = installedModules[moduleId] = {",
190
+ Template.indent(this.hooks.moduleObj.call("", chunk, hash, "moduleId")),
191
+ "};",
192
+ "",
193
+ Template.asString(
194
+ outputOptions.strictModuleExceptionHandling
195
+ ? [
196
+ "// Execute the module function",
197
+ "var threw = true;",
198
+ "try {",
199
+ Template.indent([
200
+ `modules[moduleId].call(module.exports, module, module.exports, ${this.renderRequireFunctionForModule(
201
+ hash,
202
+ chunk,
203
+ "moduleId"
204
+ )});`,
205
+ "threw = false;"
206
+ ]),
207
+ "} finally {",
208
+ Template.indent([
209
+ "if(threw) delete installedModules[moduleId];"
210
+ ]),
211
+ "}"
212
+ ]
213
+ : [
214
+ "// Execute the module function",
215
+ `modules[moduleId].call(module.exports, module, module.exports, ${this.renderRequireFunctionForModule(
216
+ hash,
217
+ chunk,
218
+ "moduleId"
219
+ )});`
220
+ ]
221
+ ),
222
+ "",
223
+ "// Flag the module as loaded",
224
+ "module.l = true;",
225
+ "",
226
+ "// Return the exports of the module",
227
+ "return module.exports;"
228
+ ]);
229
+ });
230
+ this.hooks.moduleObj.tap(
231
+ "MainTemplate",
232
+ (source, chunk, hash, varModuleId) => {
233
+ return Template.asString(["i: moduleId,", "l: false,", "exports: {}"]);
234
+ }
235
+ );
236
+ this.hooks.requireExtensions.tap("MainTemplate", (source, chunk, hash) => {
237
+ const buf = [];
238
+ const chunkMaps = chunk.getChunkMaps();
239
+ // Check if there are non initial chunks which need to be imported using require-ensure
240
+ if (Object.keys(chunkMaps.hash).length) {
241
+ buf.push("// This file contains only the entry chunk.");
242
+ buf.push("// The chunk loading function for additional chunks");
243
+ buf.push(`${this.requireFn}.e = function requireEnsure(chunkId) {`);
244
+ buf.push(Template.indent("var promises = [];"));
245
+ buf.push(
246
+ Template.indent(
247
+ this.hooks.requireEnsure.call("", chunk, hash, "chunkId")
248
+ )
249
+ );
250
+ buf.push(Template.indent("return Promise.all(promises);"));
251
+ buf.push("};");
252
+ } else if (
253
+ chunk.hasModuleInGraph(m =>
254
+ m.blocks.some(b => b.chunkGroup && b.chunkGroup.chunks.length > 0)
255
+ )
256
+ ) {
257
+ // There async blocks in the graph, so we need to add an empty requireEnsure
258
+ // function anyway. This can happen with multiple entrypoints.
259
+ buf.push("// The chunk loading function for additional chunks");
260
+ buf.push("// Since all referenced chunks are already included");
261
+ buf.push("// in this file, this function is empty here.");
262
+ buf.push(`${this.requireFn}.e = function requireEnsure() {`);
263
+ buf.push(Template.indent("return Promise.resolve();"));
264
+ buf.push("};");
265
+ }
266
+ buf.push("");
267
+ buf.push("// expose the modules object (__webpack_modules__)");
268
+ buf.push(`${this.requireFn}.m = modules;`);
269
+
270
+ buf.push("");
271
+ buf.push("// expose the module cache");
272
+ buf.push(`${this.requireFn}.c = installedModules;`);
273
+
274
+ buf.push("");
275
+ buf.push("// define getter function for harmony exports");
276
+ buf.push(`${this.requireFn}.d = function(exports, name, getter) {`);
277
+ buf.push(
278
+ Template.indent([
279
+ `if(!${this.requireFn}.o(exports, name)) {`,
280
+ Template.indent([
281
+ "Object.defineProperty(exports, name, { enumerable: true, get: getter });"
282
+ ]),
283
+ "}"
284
+ ])
285
+ );
286
+ buf.push("};");
287
+
288
+ buf.push("");
289
+ buf.push("// define __esModule on exports");
290
+ buf.push(`${this.requireFn}.r = function(exports) {`);
291
+ buf.push(
292
+ Template.indent([
293
+ "if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {",
294
+ Template.indent([
295
+ "Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });"
296
+ ]),
297
+ "}",
298
+ "Object.defineProperty(exports, '__esModule', { value: true });"
299
+ ])
300
+ );
301
+ buf.push("};");
302
+
303
+ buf.push("");
304
+ buf.push("// create a fake namespace object");
305
+ buf.push("// mode & 1: value is a module id, require it");
306
+ buf.push("// mode & 2: merge all properties of value into the ns");
307
+ buf.push("// mode & 4: return value when already ns object");
308
+ buf.push("// mode & 8|1: behave like require");
309
+ buf.push(`${this.requireFn}.t = function(value, mode) {`);
310
+ buf.push(
311
+ Template.indent([
312
+ `if(mode & 1) value = ${this.requireFn}(value);`,
313
+ `if(mode & 8) return value;`,
314
+ "if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;",
315
+ "var ns = Object.create(null);",
316
+ `${this.requireFn}.r(ns);`,
317
+ "Object.defineProperty(ns, 'default', { enumerable: true, value: value });",
318
+ "if(mode & 2 && typeof value != 'string') for(var key in value) " +
319
+ `${this.requireFn}.d(ns, key, function(key) { ` +
320
+ "return value[key]; " +
321
+ "}.bind(null, key));",
322
+ "return ns;"
323
+ ])
324
+ );
325
+ buf.push("};");
326
+
327
+ buf.push("");
328
+ buf.push(
329
+ "// getDefaultExport function for compatibility with non-harmony modules"
330
+ );
331
+ buf.push(this.requireFn + ".n = function(module) {");
332
+ buf.push(
333
+ Template.indent([
334
+ "var getter = module && module.__esModule ?",
335
+ Template.indent([
336
+ "function getDefault() { return module['default']; } :",
337
+ "function getModuleExports() { return module; };"
338
+ ]),
339
+ `${this.requireFn}.d(getter, 'a', getter);`,
340
+ "return getter;"
341
+ ])
342
+ );
343
+ buf.push("};");
344
+
345
+ buf.push("");
346
+ buf.push("// Object.prototype.hasOwnProperty.call");
347
+ buf.push(
348
+ `${this.requireFn}.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };`
349
+ );
350
+
351
+ const publicPath = this.getPublicPath({
352
+ hash: hash
353
+ });
354
+ buf.push("");
355
+ buf.push("// __webpack_public_path__");
356
+ buf.push(`${this.requireFn}.p = ${JSON.stringify(publicPath)};`);
357
+ return Template.asString(buf);
358
+ });
359
+
360
+ this.requireFn = "__webpack_require__";
361
+ }
362
+
363
+ /**
364
+ *
365
+ * @param {RenderManifestOptions} options render manifest options
366
+ * @returns {TODO[]} returns render manifest
367
+ */
368
+ getRenderManifest(options) {
369
+ const result = [];
370
+
371
+ this.hooks.renderManifest.call(result, options);
372
+
373
+ return result;
374
+ }
375
+
376
+ /**
377
+ * TODO webpack 5: remove moduleTemplate and dependencyTemplates
378
+ * @param {string} hash hash to be used for render call
379
+ * @param {Chunk} chunk Chunk instance
380
+ * @param {ModuleTemplate} moduleTemplate ModuleTemplate instance for render
381
+ * @param {Map<Function, DependencyTemplate>} dependencyTemplates dependency templates
382
+ * @returns {string[]} the generated source of the bootstrap code
383
+ */
384
+ renderBootstrap(hash, chunk, moduleTemplate, dependencyTemplates) {
385
+ const buf = [];
386
+ buf.push(
387
+ this.hooks.bootstrap.call(
388
+ "",
389
+ chunk,
390
+ hash,
391
+ moduleTemplate,
392
+ dependencyTemplates
393
+ )
394
+ );
395
+ buf.push(this.hooks.localVars.call("", chunk, hash));
396
+ buf.push("");
397
+ buf.push("// The require function");
398
+ buf.push(`function ${this.requireFn}(moduleId) {`);
399
+ buf.push(Template.indent(this.hooks.require.call("", chunk, hash)));
400
+ buf.push("}");
401
+ buf.push("");
402
+ buf.push(
403
+ Template.asString(this.hooks.requireExtensions.call("", chunk, hash))
404
+ );
405
+ buf.push("");
406
+ buf.push(Template.asString(this.hooks.beforeStartup.call("", chunk, hash)));
407
+ const afterStartupCode = Template.asString(
408
+ this.hooks.afterStartup.call("", chunk, hash)
409
+ );
410
+ if (afterStartupCode) {
411
+ // TODO webpack 5: this is a bit hacky to avoid a breaking change
412
+ // change it to a better way
413
+ buf.push("var startupResult = (function() {");
414
+ }
415
+ buf.push(Template.asString(this.hooks.startup.call("", chunk, hash)));
416
+ if (afterStartupCode) {
417
+ buf.push("})();");
418
+ buf.push(afterStartupCode);
419
+ buf.push("return startupResult;");
420
+ }
421
+ return buf;
422
+ }
423
+
424
+ /**
425
+ * @param {string} hash hash to be used for render call
426
+ * @param {Chunk} chunk Chunk instance
427
+ * @param {ModuleTemplate} moduleTemplate ModuleTemplate instance for render
428
+ * @param {Map<Function, DependencyTemplate>} dependencyTemplates dependency templates
429
+ * @returns {ConcatSource} the newly generated source from rendering
430
+ */
431
+ render(hash, chunk, moduleTemplate, dependencyTemplates) {
432
+ const buf = this.renderBootstrap(
433
+ hash,
434
+ chunk,
435
+ moduleTemplate,
436
+ dependencyTemplates
437
+ );
438
+ let source = this.hooks.render.call(
439
+ new OriginalSource(
440
+ Template.prefix(buf, " \t") + "\n",
441
+ "webpack/bootstrap"
442
+ ),
443
+ chunk,
444
+ hash,
445
+ moduleTemplate,
446
+ dependencyTemplates
447
+ );
448
+ if (chunk.hasEntryModule()) {
449
+ source = this.hooks.renderWithEntry.call(source, chunk, hash);
450
+ }
451
+ if (!source) {
452
+ throw new Error(
453
+ "Compiler error: MainTemplate plugin 'render' should return something"
454
+ );
455
+ }
456
+ chunk.rendered = true;
457
+ return new ConcatSource(source, ";");
458
+ }
459
+
460
+ /**
461
+ *
462
+ * @param {string} hash hash for render fn
463
+ * @param {Chunk} chunk Chunk instance for require
464
+ * @param {(number|string)=} varModuleId module id
465
+ * @returns {TODO} the moduleRequire hook call return signature
466
+ */
467
+ renderRequireFunctionForModule(hash, chunk, varModuleId) {
468
+ return this.hooks.moduleRequire.call(
469
+ this.requireFn,
470
+ chunk,
471
+ hash,
472
+ varModuleId
473
+ );
474
+ }
475
+
476
+ /**
477
+ *
478
+ * @param {string} hash hash for render add fn
479
+ * @param {Chunk} chunk Chunk instance for require add fn
480
+ * @param {(string|number)=} varModuleId module id
481
+ * @param {Module} varModule Module instance
482
+ * @returns {TODO} renderAddModule call
483
+ */
484
+ renderAddModule(hash, chunk, varModuleId, varModule) {
485
+ return this.hooks.addModule.call(
486
+ `modules[${varModuleId}] = ${varModule};`,
487
+ chunk,
488
+ hash,
489
+ varModuleId,
490
+ varModule
491
+ );
492
+ }
493
+
494
+ /**
495
+ *
496
+ * @param {string} hash string hash
497
+ * @param {number=} length length
498
+ * @returns {string} call hook return
499
+ */
500
+ renderCurrentHashCode(hash, length) {
501
+ length = length || Infinity;
502
+ return this.hooks.currentHash.call(
503
+ JSON.stringify(hash.substr(0, length)),
504
+ length
505
+ );
506
+ }
507
+
508
+ /**
509
+ *
510
+ * @param {object} options get public path options
511
+ * @returns {string} hook call
512
+ */
513
+ getPublicPath(options) {
514
+ return this.hooks.assetPath.call(
515
+ this.outputOptions.publicPath || "",
516
+ options
517
+ );
518
+ }
519
+
520
+ getAssetPath(path, options) {
521
+ return this.hooks.assetPath.call(path, options);
522
+ }
523
+
524
+ getAssetPathWithInfo(path, options) {
525
+ const assetInfo = {};
526
+ // TODO webpack 5: refactor assetPath hook to receive { path, info } object
527
+ const newPath = this.hooks.assetPath.call(path, options, assetInfo);
528
+ return { path: newPath, info: assetInfo };
529
+ }
530
+
531
+ /**
532
+ * Updates hash with information from this template
533
+ * @param {Hash} hash the hash to update
534
+ * @returns {void}
535
+ */
536
+ updateHash(hash) {
537
+ hash.update("maintemplate");
538
+ hash.update("3");
539
+ this.hooks.hash.call(hash);
540
+ }
541
+
542
+ /**
543
+ * TODO webpack 5: remove moduleTemplate and dependencyTemplates
544
+ * Updates hash with chunk-specific information from this template
545
+ * @param {Hash} hash the hash to update
546
+ * @param {Chunk} chunk the chunk
547
+ * @param {ModuleTemplate} moduleTemplate ModuleTemplate instance for render
548
+ * @param {Map<Function, DependencyTemplate>} dependencyTemplates dependency templates
549
+ * @returns {void}
550
+ */
551
+ updateHashForChunk(hash, chunk, moduleTemplate, dependencyTemplates) {
552
+ this.updateHash(hash);
553
+ this.hooks.hashForChunk.call(hash, chunk);
554
+ for (const line of this.renderBootstrap(
555
+ "0000",
556
+ chunk,
557
+ moduleTemplate,
558
+ dependencyTemplates
559
+ )) {
560
+ hash.update(line);
561
+ }
562
+ }
563
+
564
+ useChunkHash(chunk) {
565
+ const paths = this.hooks.globalHashPaths.call([]);
566
+ return !this.hooks.globalHash.call(chunk, paths);
567
+ }
568
+ };
@@ -0,0 +1,5 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ module.exports = require("memory-fs");