@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,64 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Florent Cailhol @ooflorent
4
+ */
5
+ "use strict";
6
+
7
+ /** @typedef {import("../Module")} Module */
8
+
9
+ class DependencyReference {
10
+ // TODO webpack 5: module must be dynamic, you must pass a function returning a module
11
+ // This is needed to remove the hack in ConcatenatedModule
12
+ // The problem is that the `module` in Dependency could be replaced i. e. because of Scope Hoisting
13
+ /**
14
+ *
15
+ * @param {Module} module the referenced module
16
+ * @param {string[] | boolean} importedNames imported named from the module
17
+ * @param {boolean=} weak if this is a weak reference
18
+ * @param {number} order the order information or NaN if don't care
19
+ */
20
+ constructor(module, importedNames, weak = false, order = NaN) {
21
+ // TODO webpack 5: make it a getter
22
+ this.module = module;
23
+ // true: full object
24
+ // false: only sideeffects/no export
25
+ // array of strings: the exports with this names
26
+ this.importedNames = importedNames;
27
+ this.weak = !!weak;
28
+ this.order = order;
29
+ }
30
+
31
+ /**
32
+ * @param {DependencyReference[]} array an array (will be modified)
33
+ * @returns {DependencyReference[]} the array again
34
+ */
35
+ static sort(array) {
36
+ /** @type {WeakMap<DependencyReference, number>} */
37
+ const originalOrder = new WeakMap();
38
+ let i = 0;
39
+ for (const ref of array) {
40
+ originalOrder.set(ref, i++);
41
+ }
42
+ return array.sort((a, b) => {
43
+ const aOrder = a.order;
44
+ const bOrder = b.order;
45
+ if (isNaN(aOrder)) {
46
+ if (!isNaN(bOrder)) {
47
+ return 1;
48
+ }
49
+ } else {
50
+ if (isNaN(bOrder)) {
51
+ return -1;
52
+ }
53
+ if (aOrder !== bOrder) {
54
+ return aOrder - bOrder;
55
+ }
56
+ }
57
+ const aOrg = originalOrder.get(a);
58
+ const bOrg = originalOrder.get(b);
59
+ return aOrg - bOrg;
60
+ });
61
+ }
62
+ }
63
+
64
+ module.exports = DependencyReference;
@@ -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 DllEntryDependency extends Dependency {
9
+ constructor(dependencies, name) {
10
+ super();
11
+ this.dependencies = dependencies;
12
+ this.name = name;
13
+ }
14
+
15
+ get type() {
16
+ return "dll entry";
17
+ }
18
+ }
19
+
20
+ module.exports = DllEntryDependency;
@@ -0,0 +1,48 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const NullDependency = require("./NullDependency");
8
+ const HarmonyImportDependency = require("./HarmonyImportDependency");
9
+
10
+ class HarmonyAcceptDependency extends NullDependency {
11
+ constructor(range, dependencies, hasCallback) {
12
+ super();
13
+ this.range = range;
14
+ this.dependencies = dependencies;
15
+ this.hasCallback = hasCallback;
16
+ }
17
+
18
+ get type() {
19
+ return "accepted harmony modules";
20
+ }
21
+ }
22
+
23
+ HarmonyAcceptDependency.Template = class HarmonyAcceptDependencyTemplate {
24
+ apply(dep, source, runtime) {
25
+ const content = dep.dependencies
26
+ .filter(dependency =>
27
+ HarmonyImportDependency.Template.isImportEmitted(dependency, source)
28
+ )
29
+ .map(dependency => dependency.getImportStatement(true, runtime))
30
+ .join("");
31
+
32
+ if (dep.hasCallback) {
33
+ source.insert(
34
+ dep.range[0],
35
+ `function(__WEBPACK_OUTDATED_DEPENDENCIES__) { ${content}(`
36
+ );
37
+ source.insert(
38
+ dep.range[1],
39
+ ")(__WEBPACK_OUTDATED_DEPENDENCIES__); }.bind(this)"
40
+ );
41
+ return;
42
+ }
43
+
44
+ source.insert(dep.range[1] - 0.5, `, function() { ${content} }`);
45
+ }
46
+ };
47
+
48
+ module.exports = HarmonyAcceptDependency;
@@ -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 HarmonyImportDependency = require("./HarmonyImportDependency");
7
+
8
+ class HarmonyAcceptImportDependency extends HarmonyImportDependency {
9
+ constructor(request, originModule, parserScope) {
10
+ super(request, originModule, NaN, parserScope);
11
+ this.weak = true;
12
+ }
13
+
14
+ get type() {
15
+ return "harmony accept";
16
+ }
17
+ }
18
+
19
+ HarmonyAcceptImportDependency.Template = class HarmonyAcceptImportDependencyTemplate extends HarmonyImportDependency.Template {
20
+ apply(dep, source, runtime) {}
21
+ };
22
+
23
+ module.exports = HarmonyAcceptImportDependency;
@@ -0,0 +1,31 @@
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 HarmonyCompatibilityDependency extends NullDependency {
9
+ constructor(originModule) {
10
+ super();
11
+ this.originModule = originModule;
12
+ }
13
+
14
+ get type() {
15
+ return "harmony export header";
16
+ }
17
+ }
18
+
19
+ HarmonyCompatibilityDependency.Template = class HarmonyExportDependencyTemplate {
20
+ apply(dep, source, runtime) {
21
+ const usedExports = dep.originModule.usedExports;
22
+ if (usedExports !== false && !Array.isArray(usedExports)) {
23
+ const content = runtime.defineEsModuleFlagStatement({
24
+ exportsArgument: dep.originModule.exportsArgument
25
+ });
26
+ source.insert(-10, content);
27
+ }
28
+ }
29
+ };
30
+
31
+ module.exports = HarmonyCompatibilityDependency;
@@ -0,0 +1,96 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const HarmonyCompatibilityDependency = require("./HarmonyCompatibilityDependency");
8
+ const HarmonyInitDependency = require("./HarmonyInitDependency");
9
+
10
+ module.exports = class HarmonyDetectionParserPlugin {
11
+ apply(parser) {
12
+ parser.hooks.program.tap("HarmonyDetectionParserPlugin", ast => {
13
+ const isStrictHarmony = parser.state.module.type === "javascript/esm";
14
+ const isHarmony =
15
+ isStrictHarmony ||
16
+ ast.body.some(
17
+ statement =>
18
+ statement.type === "ImportDeclaration" ||
19
+ statement.type === "ExportDefaultDeclaration" ||
20
+ statement.type === "ExportNamedDeclaration" ||
21
+ statement.type === "ExportAllDeclaration"
22
+ );
23
+ if (isHarmony) {
24
+ const module = parser.state.module;
25
+ const compatDep = new HarmonyCompatibilityDependency(module);
26
+ compatDep.loc = {
27
+ start: {
28
+ line: -1,
29
+ column: 0
30
+ },
31
+ end: {
32
+ line: -1,
33
+ column: 0
34
+ },
35
+ index: -3
36
+ };
37
+ module.addDependency(compatDep);
38
+ const initDep = new HarmonyInitDependency(module);
39
+ initDep.loc = {
40
+ start: {
41
+ line: -1,
42
+ column: 0
43
+ },
44
+ end: {
45
+ line: -1,
46
+ column: 0
47
+ },
48
+ index: -2
49
+ };
50
+ module.addDependency(initDep);
51
+ parser.state.harmonyParserScope = parser.state.harmonyParserScope || {};
52
+ parser.scope.isStrict = true;
53
+ module.buildMeta.exportsType = "namespace";
54
+ module.buildInfo.strict = true;
55
+ module.buildInfo.exportsArgument = "__webpack_exports__";
56
+ if (isStrictHarmony) {
57
+ module.buildMeta.strictHarmonyModule = true;
58
+ module.buildInfo.moduleArgument = "__webpack_module__";
59
+ }
60
+ }
61
+ });
62
+
63
+ const skipInHarmony = () => {
64
+ const module = parser.state.module;
65
+ if (module && module.buildMeta && module.buildMeta.exportsType) {
66
+ return true;
67
+ }
68
+ };
69
+
70
+ const nullInHarmony = () => {
71
+ const module = parser.state.module;
72
+ if (module && module.buildMeta && module.buildMeta.exportsType) {
73
+ return null;
74
+ }
75
+ };
76
+
77
+ const nonHarmonyIdentifiers = ["define", "exports"];
78
+ for (const identifer of nonHarmonyIdentifiers) {
79
+ parser.hooks.evaluateTypeof
80
+ .for(identifer)
81
+ .tap("HarmonyDetectionParserPlugin", nullInHarmony);
82
+ parser.hooks.typeof
83
+ .for(identifer)
84
+ .tap("HarmonyDetectionParserPlugin", skipInHarmony);
85
+ parser.hooks.evaluate
86
+ .for(identifer)
87
+ .tap("HarmonyDetectionParserPlugin", nullInHarmony);
88
+ parser.hooks.expression
89
+ .for(identifer)
90
+ .tap("HarmonyDetectionParserPlugin", skipInHarmony);
91
+ parser.hooks.call
92
+ .for(identifer)
93
+ .tap("HarmonyDetectionParserPlugin", skipInHarmony);
94
+ }
95
+ }
96
+ };
@@ -0,0 +1,154 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const HarmonyExportExpressionDependency = require("./HarmonyExportExpressionDependency");
8
+ const HarmonyImportSideEffectDependency = require("./HarmonyImportSideEffectDependency");
9
+ const HarmonyExportHeaderDependency = require("./HarmonyExportHeaderDependency");
10
+ const HarmonyExportSpecifierDependency = require("./HarmonyExportSpecifierDependency");
11
+ const HarmonyExportImportedSpecifierDependency = require("./HarmonyExportImportedSpecifierDependency");
12
+ const ConstDependency = require("./ConstDependency");
13
+
14
+ module.exports = class HarmonyExportDependencyParserPlugin {
15
+ constructor(moduleOptions) {
16
+ this.strictExportPresence = moduleOptions.strictExportPresence;
17
+ }
18
+
19
+ apply(parser) {
20
+ parser.hooks.export.tap(
21
+ "HarmonyExportDependencyParserPlugin",
22
+ statement => {
23
+ const dep = new HarmonyExportHeaderDependency(
24
+ statement.declaration && statement.declaration.range,
25
+ statement.range
26
+ );
27
+ dep.loc = Object.create(statement.loc);
28
+ dep.loc.index = -1;
29
+ parser.state.current.addDependency(dep);
30
+ return true;
31
+ }
32
+ );
33
+ parser.hooks.exportImport.tap(
34
+ "HarmonyExportDependencyParserPlugin",
35
+ (statement, source) => {
36
+ parser.state.lastHarmonyImportOrder =
37
+ (parser.state.lastHarmonyImportOrder || 0) + 1;
38
+ const clearDep = new ConstDependency("", statement.range);
39
+ clearDep.loc = Object.create(statement.loc);
40
+ clearDep.loc.index = -1;
41
+ parser.state.current.addDependency(clearDep);
42
+ const sideEffectDep = new HarmonyImportSideEffectDependency(
43
+ source,
44
+ parser.state.module,
45
+ parser.state.lastHarmonyImportOrder,
46
+ parser.state.harmonyParserScope
47
+ );
48
+ sideEffectDep.loc = Object.create(statement.loc);
49
+ sideEffectDep.loc.index = -1;
50
+ parser.state.current.addDependency(sideEffectDep);
51
+ return true;
52
+ }
53
+ );
54
+ parser.hooks.exportExpression.tap(
55
+ "HarmonyExportDependencyParserPlugin",
56
+ (statement, expr) => {
57
+ const comments = parser.getComments([
58
+ statement.range[0],
59
+ expr.range[0]
60
+ ]);
61
+ const dep = new HarmonyExportExpressionDependency(
62
+ parser.state.module,
63
+ expr.range,
64
+ statement.range,
65
+ comments
66
+ .map(c => {
67
+ switch (c.type) {
68
+ case "Block":
69
+ return `/*${c.value}*/`;
70
+ case "Line":
71
+ return `//${c.value}\n`;
72
+ }
73
+ return "";
74
+ })
75
+ .join("")
76
+ );
77
+ dep.loc = Object.create(statement.loc);
78
+ dep.loc.index = -1;
79
+ parser.state.current.addDependency(dep);
80
+ return true;
81
+ }
82
+ );
83
+ parser.hooks.exportDeclaration.tap(
84
+ "HarmonyExportDependencyParserPlugin",
85
+ statement => {}
86
+ );
87
+ parser.hooks.exportSpecifier.tap(
88
+ "HarmonyExportDependencyParserPlugin",
89
+ (statement, id, name, idx) => {
90
+ const rename = parser.scope.renames.get(id);
91
+ let dep;
92
+ const harmonyNamedExports = (parser.state.harmonyNamedExports =
93
+ parser.state.harmonyNamedExports || new Set());
94
+ harmonyNamedExports.add(name);
95
+ if (rename === "imported var") {
96
+ const settings = parser.state.harmonySpecifier.get(id);
97
+ dep = new HarmonyExportImportedSpecifierDependency(
98
+ settings.source,
99
+ parser.state.module,
100
+ settings.sourceOrder,
101
+ parser.state.harmonyParserScope,
102
+ settings.id,
103
+ name,
104
+ harmonyNamedExports,
105
+ null,
106
+ this.strictExportPresence
107
+ );
108
+ } else {
109
+ dep = new HarmonyExportSpecifierDependency(
110
+ parser.state.module,
111
+ id,
112
+ name
113
+ );
114
+ }
115
+ dep.loc = Object.create(statement.loc);
116
+ dep.loc.index = idx;
117
+ parser.state.current.addDependency(dep);
118
+ return true;
119
+ }
120
+ );
121
+ parser.hooks.exportImportSpecifier.tap(
122
+ "HarmonyExportDependencyParserPlugin",
123
+ (statement, source, id, name, idx) => {
124
+ const harmonyNamedExports = (parser.state.harmonyNamedExports =
125
+ parser.state.harmonyNamedExports || new Set());
126
+ let harmonyStarExports = null;
127
+ if (name) {
128
+ harmonyNamedExports.add(name);
129
+ } else {
130
+ harmonyStarExports = parser.state.harmonyStarExports =
131
+ parser.state.harmonyStarExports || [];
132
+ }
133
+ const dep = new HarmonyExportImportedSpecifierDependency(
134
+ source,
135
+ parser.state.module,
136
+ parser.state.lastHarmonyImportOrder,
137
+ parser.state.harmonyParserScope,
138
+ id,
139
+ name,
140
+ harmonyNamedExports,
141
+ harmonyStarExports && harmonyStarExports.slice(),
142
+ this.strictExportPresence
143
+ );
144
+ if (harmonyStarExports) {
145
+ harmonyStarExports.push(dep);
146
+ }
147
+ dep.loc = Object.create(statement.loc);
148
+ dep.loc.index = idx;
149
+ parser.state.current.addDependency(dep);
150
+ return true;
151
+ }
152
+ );
153
+ }
154
+ };
@@ -0,0 +1,58 @@
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 HarmonyExportExpressionDependency extends NullDependency {
9
+ constructor(originModule, range, rangeStatement, prefix) {
10
+ super();
11
+ this.originModule = originModule;
12
+ this.range = range;
13
+ this.rangeStatement = rangeStatement;
14
+ this.prefix = prefix;
15
+ }
16
+
17
+ get type() {
18
+ return "harmony export expression";
19
+ }
20
+
21
+ getExports() {
22
+ return {
23
+ exports: ["default"],
24
+ dependencies: undefined
25
+ };
26
+ }
27
+ }
28
+
29
+ HarmonyExportExpressionDependency.Template = class HarmonyExportDependencyTemplate {
30
+ apply(dep, source) {
31
+ const used = dep.originModule.isUsed("default");
32
+ const content = this.getContent(dep.originModule, used);
33
+
34
+ if (dep.range) {
35
+ source.replace(
36
+ dep.rangeStatement[0],
37
+ dep.range[0] - 1,
38
+ content + "(" + dep.prefix
39
+ );
40
+ source.replace(dep.range[1], dep.rangeStatement[1] - 1, ");");
41
+ return;
42
+ }
43
+
44
+ source.replace(dep.rangeStatement[0], dep.rangeStatement[1] - 1, content);
45
+ }
46
+
47
+ getContent(module, used) {
48
+ const exportsName = module.exportsArgument;
49
+ if (used) {
50
+ return `/* harmony default export */ ${exportsName}[${JSON.stringify(
51
+ used
52
+ )}] = `;
53
+ }
54
+ return "/* unused harmony default export */ var _unused_webpack_default_export = ";
55
+ }
56
+ };
57
+
58
+ module.exports = HarmonyExportExpressionDependency;
@@ -0,0 +1,30 @@
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 HarmonyExportHeaderDependency extends NullDependency {
9
+ constructor(range, rangeStatement) {
10
+ super();
11
+ this.range = range;
12
+ this.rangeStatement = rangeStatement;
13
+ }
14
+
15
+ get type() {
16
+ return "harmony export header";
17
+ }
18
+ }
19
+
20
+ HarmonyExportHeaderDependency.Template = class HarmonyExportDependencyTemplate {
21
+ apply(dep, source) {
22
+ const content = "";
23
+ const replaceUntil = dep.range
24
+ ? dep.range[0] - 1
25
+ : dep.rangeStatement[1] - 1;
26
+ source.replace(dep.rangeStatement[0], replaceUntil, content);
27
+ }
28
+ };
29
+
30
+ module.exports = HarmonyExportHeaderDependency;