@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,109 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const DependencyReference = require("./DependencyReference");
8
+ const ModuleDependency = require("./ModuleDependency");
9
+ const Template = require("../Template");
10
+
11
+ class HarmonyImportDependency extends ModuleDependency {
12
+ constructor(request, originModule, sourceOrder, parserScope) {
13
+ super(request);
14
+ this.redirectedModule = undefined;
15
+ this.originModule = originModule;
16
+ this.sourceOrder = sourceOrder;
17
+ this.parserScope = parserScope;
18
+ }
19
+
20
+ get _module() {
21
+ return this.redirectedModule || this.module;
22
+ }
23
+
24
+ getReference() {
25
+ if (!this._module) return null;
26
+ return new DependencyReference(
27
+ this._module,
28
+ false,
29
+ this.weak,
30
+ this.sourceOrder
31
+ );
32
+ }
33
+
34
+ getImportVar() {
35
+ let importVarMap = this.parserScope.importVarMap;
36
+ if (!importVarMap) this.parserScope.importVarMap = importVarMap = new Map();
37
+ let importVar = importVarMap.get(this._module);
38
+ if (importVar) return importVar;
39
+ importVar = `${Template.toIdentifier(
40
+ `${this.userRequest}`
41
+ )}__WEBPACK_IMPORTED_MODULE_${importVarMap.size}__`;
42
+ importVarMap.set(this._module, importVar);
43
+ return importVar;
44
+ }
45
+
46
+ getImportStatement(update, runtime) {
47
+ return runtime.importStatement({
48
+ update,
49
+ module: this._module,
50
+ importVar: this.getImportVar(),
51
+ request: this.request,
52
+ originModule: this.originModule
53
+ });
54
+ }
55
+
56
+ updateHash(hash) {
57
+ super.updateHash(hash);
58
+ const importedModule = this._module;
59
+ hash.update(
60
+ (importedModule &&
61
+ (!importedModule.buildMeta || importedModule.buildMeta.exportsType)) +
62
+ ""
63
+ );
64
+ hash.update((importedModule && importedModule.id) + "");
65
+ }
66
+
67
+ disconnect() {
68
+ super.disconnect();
69
+ this.redirectedModule = undefined;
70
+ }
71
+ }
72
+
73
+ module.exports = HarmonyImportDependency;
74
+
75
+ const importEmittedMap = new WeakMap();
76
+
77
+ HarmonyImportDependency.Template = class HarmonyImportDependencyTemplate {
78
+ apply(dep, source, runtime) {
79
+ // no-op
80
+ }
81
+
82
+ getHarmonyInitOrder(dep) {
83
+ return dep.sourceOrder;
84
+ }
85
+
86
+ static isImportEmitted(dep, source) {
87
+ let sourceInfo = importEmittedMap.get(source);
88
+ if (!sourceInfo) return false;
89
+ const key = dep._module || dep.request;
90
+ return key && sourceInfo.emittedImports.get(key);
91
+ }
92
+
93
+ harmonyInit(dep, source, runtime, dependencyTemplates) {
94
+ let sourceInfo = importEmittedMap.get(source);
95
+ if (!sourceInfo) {
96
+ importEmittedMap.set(
97
+ source,
98
+ (sourceInfo = {
99
+ emittedImports: new Map()
100
+ })
101
+ );
102
+ }
103
+ const key = dep._module || dep.request;
104
+ if (key && sourceInfo.emittedImports.get(key)) return;
105
+ sourceInfo.emittedImports.set(key, true);
106
+ const content = dep.getImportStatement(false, runtime);
107
+ source.insert(-1, content);
108
+ }
109
+ };
@@ -0,0 +1,222 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const { SyncBailHook } = require("tapable");
8
+ const HarmonyImportSideEffectDependency = require("./HarmonyImportSideEffectDependency");
9
+ const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDependency");
10
+ const HarmonyAcceptImportDependency = require("./HarmonyAcceptImportDependency");
11
+ const HarmonyAcceptDependency = require("./HarmonyAcceptDependency");
12
+ const ConstDependency = require("./ConstDependency");
13
+
14
+ module.exports = class HarmonyImportDependencyParserPlugin {
15
+ constructor(moduleOptions) {
16
+ this.strictExportPresence = moduleOptions.strictExportPresence;
17
+ this.strictThisContextOnImports = moduleOptions.strictThisContextOnImports;
18
+ }
19
+
20
+ apply(parser) {
21
+ parser.hooks.import.tap(
22
+ "HarmonyImportDependencyParserPlugin",
23
+ (statement, source) => {
24
+ parser.state.lastHarmonyImportOrder =
25
+ (parser.state.lastHarmonyImportOrder || 0) + 1;
26
+ const clearDep = new ConstDependency("", statement.range);
27
+ clearDep.loc = statement.loc;
28
+ parser.state.module.addDependency(clearDep);
29
+ const sideEffectDep = new HarmonyImportSideEffectDependency(
30
+ source,
31
+ parser.state.module,
32
+ parser.state.lastHarmonyImportOrder,
33
+ parser.state.harmonyParserScope
34
+ );
35
+ sideEffectDep.loc = statement.loc;
36
+ parser.state.module.addDependency(sideEffectDep);
37
+ return true;
38
+ }
39
+ );
40
+ parser.hooks.importSpecifier.tap(
41
+ "HarmonyImportDependencyParserPlugin",
42
+ (statement, source, id, name) => {
43
+ parser.scope.definitions.delete(name);
44
+ parser.scope.renames.set(name, "imported var");
45
+ if (!parser.state.harmonySpecifier) {
46
+ parser.state.harmonySpecifier = new Map();
47
+ }
48
+ parser.state.harmonySpecifier.set(name, {
49
+ source,
50
+ id,
51
+ sourceOrder: parser.state.lastHarmonyImportOrder
52
+ });
53
+ return true;
54
+ }
55
+ );
56
+ parser.hooks.expression
57
+ .for("imported var")
58
+ .tap("HarmonyImportDependencyParserPlugin", expr => {
59
+ const name = expr.name;
60
+ const settings = parser.state.harmonySpecifier.get(name);
61
+ const dep = new HarmonyImportSpecifierDependency(
62
+ settings.source,
63
+ parser.state.module,
64
+ settings.sourceOrder,
65
+ parser.state.harmonyParserScope,
66
+ settings.id,
67
+ name,
68
+ expr.range,
69
+ this.strictExportPresence
70
+ );
71
+ dep.shorthand = parser.scope.inShorthand;
72
+ dep.directImport = true;
73
+ dep.loc = expr.loc;
74
+ parser.state.module.addDependency(dep);
75
+ return true;
76
+ });
77
+ parser.hooks.expressionAnyMember
78
+ .for("imported var")
79
+ .tap("HarmonyImportDependencyParserPlugin", expr => {
80
+ const name = expr.object.name;
81
+ const settings = parser.state.harmonySpecifier.get(name);
82
+ if (settings.id !== null) return false;
83
+ const dep = new HarmonyImportSpecifierDependency(
84
+ settings.source,
85
+ parser.state.module,
86
+ settings.sourceOrder,
87
+ parser.state.harmonyParserScope,
88
+ expr.property.name || expr.property.value,
89
+ name,
90
+ expr.range,
91
+ this.strictExportPresence
92
+ );
93
+ dep.shorthand = parser.scope.inShorthand;
94
+ dep.directImport = false;
95
+ dep.loc = expr.loc;
96
+ parser.state.module.addDependency(dep);
97
+ return true;
98
+ });
99
+ if (this.strictThisContextOnImports) {
100
+ // only in case when we strictly follow the spec we need a special case here
101
+ parser.hooks.callAnyMember
102
+ .for("imported var")
103
+ .tap("HarmonyImportDependencyParserPlugin", expr => {
104
+ if (expr.callee.type !== "MemberExpression") return;
105
+ if (expr.callee.object.type !== "Identifier") return;
106
+ const name = expr.callee.object.name;
107
+ const settings = parser.state.harmonySpecifier.get(name);
108
+ if (settings.id !== null) return false;
109
+ const dep = new HarmonyImportSpecifierDependency(
110
+ settings.source,
111
+ parser.state.module,
112
+ settings.sourceOrder,
113
+ parser.state.harmonyParserScope,
114
+ expr.callee.property.name || expr.callee.property.value,
115
+ name,
116
+ expr.callee.range,
117
+ this.strictExportPresence
118
+ );
119
+ dep.shorthand = parser.scope.inShorthand;
120
+ dep.directImport = false;
121
+ dep.namespaceObjectAsContext = true;
122
+ dep.loc = expr.callee.loc;
123
+ parser.state.module.addDependency(dep);
124
+ if (expr.arguments) parser.walkExpressions(expr.arguments);
125
+ return true;
126
+ });
127
+ }
128
+ parser.hooks.call
129
+ .for("imported var")
130
+ .tap("HarmonyImportDependencyParserPlugin", expr => {
131
+ const args = expr.arguments;
132
+ const fullExpr = expr;
133
+ expr = expr.callee;
134
+ if (expr.type !== "Identifier") return;
135
+ const name = expr.name;
136
+ const settings = parser.state.harmonySpecifier.get(name);
137
+ const dep = new HarmonyImportSpecifierDependency(
138
+ settings.source,
139
+ parser.state.module,
140
+ settings.sourceOrder,
141
+ parser.state.harmonyParserScope,
142
+ settings.id,
143
+ name,
144
+ expr.range,
145
+ this.strictExportPresence
146
+ );
147
+ dep.directImport = true;
148
+ dep.callArgs = args;
149
+ dep.call = fullExpr;
150
+ dep.loc = expr.loc;
151
+ parser.state.module.addDependency(dep);
152
+ if (args) parser.walkExpressions(args);
153
+ return true;
154
+ });
155
+ // TODO webpack 5: refactor this, no custom hooks
156
+ if (!parser.hooks.hotAcceptCallback) {
157
+ parser.hooks.hotAcceptCallback = new SyncBailHook([
158
+ "expression",
159
+ "requests"
160
+ ]);
161
+ }
162
+ if (!parser.hooks.hotAcceptWithoutCallback) {
163
+ parser.hooks.hotAcceptWithoutCallback = new SyncBailHook([
164
+ "expression",
165
+ "requests"
166
+ ]);
167
+ }
168
+ parser.hooks.hotAcceptCallback.tap(
169
+ "HarmonyImportDependencyParserPlugin",
170
+ (expr, requests) => {
171
+ const harmonyParserScope = parser.state.harmonyParserScope;
172
+ if (!harmonyParserScope) {
173
+ // This is not a harmony module, skip it
174
+ return;
175
+ }
176
+ const dependencies = requests.map(request => {
177
+ const dep = new HarmonyAcceptImportDependency(
178
+ request,
179
+ parser.state.module,
180
+ harmonyParserScope
181
+ );
182
+ dep.loc = expr.loc;
183
+ parser.state.module.addDependency(dep);
184
+ return dep;
185
+ });
186
+ if (dependencies.length > 0) {
187
+ const dep = new HarmonyAcceptDependency(
188
+ expr.range,
189
+ dependencies,
190
+ true
191
+ );
192
+ dep.loc = expr.loc;
193
+ parser.state.module.addDependency(dep);
194
+ }
195
+ }
196
+ );
197
+ parser.hooks.hotAcceptWithoutCallback.tap(
198
+ "HarmonyImportDependencyParserPlugin",
199
+ (expr, requests) => {
200
+ const dependencies = requests.map(request => {
201
+ const dep = new HarmonyAcceptImportDependency(
202
+ request,
203
+ parser.state.module,
204
+ parser.state.harmonyParserScope
205
+ );
206
+ dep.loc = expr.loc;
207
+ parser.state.module.addDependency(dep);
208
+ return dep;
209
+ });
210
+ if (dependencies.length > 0) {
211
+ const dep = new HarmonyAcceptDependency(
212
+ expr.range,
213
+ dependencies,
214
+ false
215
+ );
216
+ dep.loc = expr.loc;
217
+ parser.state.module.addDependency(dep);
218
+ }
219
+ }
220
+ );
221
+ }
222
+ };
@@ -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 HarmonyImportDependency = require("./HarmonyImportDependency");
7
+
8
+ class HarmonyImportSideEffectDependency extends HarmonyImportDependency {
9
+ constructor(request, originModule, sourceOrder, parserScope) {
10
+ super(request, originModule, sourceOrder, parserScope);
11
+ }
12
+
13
+ getReference() {
14
+ if (this._module && this._module.factoryMeta.sideEffectFree) return null;
15
+
16
+ return super.getReference();
17
+ }
18
+
19
+ get type() {
20
+ return "harmony side effect evaluation";
21
+ }
22
+ }
23
+
24
+ HarmonyImportSideEffectDependency.Template = class HarmonyImportSideEffectDependencyTemplate extends HarmonyImportDependency.Template {
25
+ getHarmonyInitOrder(dep) {
26
+ if (dep._module && dep._module.factoryMeta.sideEffectFree) return NaN;
27
+ return super.getHarmonyInitOrder(dep);
28
+ }
29
+ };
30
+
31
+ module.exports = HarmonyImportSideEffectDependency;
@@ -0,0 +1,163 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const DependencyReference = require("./DependencyReference");
8
+ const HarmonyImportDependency = require("./HarmonyImportDependency");
9
+ const HarmonyLinkingError = require("../HarmonyLinkingError");
10
+
11
+ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
12
+ constructor(
13
+ request,
14
+ originModule,
15
+ sourceOrder,
16
+ parserScope,
17
+ id,
18
+ name,
19
+ range,
20
+ strictExportPresence
21
+ ) {
22
+ super(request, originModule, sourceOrder, parserScope);
23
+ this.id = id === null ? null : `${id}`;
24
+ this.redirectedId = undefined;
25
+ this.name = name;
26
+ this.range = range;
27
+ this.strictExportPresence = strictExportPresence;
28
+ this.namespaceObjectAsContext = false;
29
+ this.callArgs = undefined;
30
+ this.call = undefined;
31
+ this.directImport = undefined;
32
+ this.shorthand = undefined;
33
+ }
34
+
35
+ get type() {
36
+ return "harmony import specifier";
37
+ }
38
+
39
+ get _id() {
40
+ return this.redirectedId || this.id;
41
+ }
42
+
43
+ getReference() {
44
+ if (!this._module) return null;
45
+ return new DependencyReference(
46
+ this._module,
47
+ this._id && !this.namespaceObjectAsContext ? [this._id] : true,
48
+ false,
49
+ this.sourceOrder
50
+ );
51
+ }
52
+
53
+ getWarnings() {
54
+ if (
55
+ this.strictExportPresence ||
56
+ this.originModule.buildMeta.strictHarmonyModule
57
+ ) {
58
+ return [];
59
+ }
60
+ return this._getErrors();
61
+ }
62
+
63
+ getErrors() {
64
+ if (
65
+ this.strictExportPresence ||
66
+ this.originModule.buildMeta.strictHarmonyModule
67
+ ) {
68
+ return this._getErrors();
69
+ }
70
+ return [];
71
+ }
72
+
73
+ _getErrors() {
74
+ const importedModule = this._module;
75
+ if (!importedModule) {
76
+ return;
77
+ }
78
+
79
+ if (!importedModule.buildMeta || !importedModule.buildMeta.exportsType) {
80
+ // It's not an harmony module
81
+ if (
82
+ this.originModule.buildMeta.strictHarmonyModule &&
83
+ this._id &&
84
+ this._id !== "default"
85
+ ) {
86
+ // In strict harmony modules we only support the default export
87
+ return [
88
+ new HarmonyLinkingError(
89
+ `Can't import the named export '${this._id}' from non EcmaScript module (only default export is available)`
90
+ )
91
+ ];
92
+ }
93
+ return;
94
+ }
95
+
96
+ if (!this._id) {
97
+ return;
98
+ }
99
+
100
+ if (importedModule.isProvided(this._id) !== false) {
101
+ // It's provided or we are not sure
102
+ return;
103
+ }
104
+
105
+ // We are sure that it's not provided
106
+ const idIsNotNameMessage =
107
+ this._id !== this.name ? ` (imported as '${this.name}')` : "";
108
+ const errorMessage = `"export '${this._id}'${idIsNotNameMessage} was not found in '${this.userRequest}'`;
109
+ return [new HarmonyLinkingError(errorMessage)];
110
+ }
111
+
112
+ // implement this method to allow the occurrence order plugin to count correctly
113
+ getNumberOfIdOccurrences() {
114
+ return 0;
115
+ }
116
+
117
+ updateHash(hash) {
118
+ super.updateHash(hash);
119
+ const importedModule = this._module;
120
+ hash.update((importedModule && this._id) + "");
121
+ hash.update(
122
+ (importedModule && this._id && importedModule.isUsed(this._id)) + ""
123
+ );
124
+ hash.update(
125
+ (importedModule &&
126
+ (!importedModule.buildMeta || importedModule.buildMeta.exportsType)) +
127
+ ""
128
+ );
129
+ hash.update(
130
+ (importedModule &&
131
+ importedModule.used + JSON.stringify(importedModule.usedExports)) + ""
132
+ );
133
+ }
134
+
135
+ disconnect() {
136
+ super.disconnect();
137
+ this.redirectedId = undefined;
138
+ }
139
+ }
140
+
141
+ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependencyTemplate extends HarmonyImportDependency.Template {
142
+ apply(dep, source, runtime) {
143
+ super.apply(dep, source, runtime);
144
+ const content = this.getContent(dep, runtime);
145
+ source.replace(dep.range[0], dep.range[1] - 1, content);
146
+ }
147
+
148
+ getContent(dep, runtime) {
149
+ const exportExpr = runtime.exportFromImport({
150
+ module: dep._module,
151
+ request: dep.request,
152
+ exportName: dep._id,
153
+ originModule: dep.originModule,
154
+ asiSafe: dep.shorthand,
155
+ isCall: dep.call,
156
+ callContext: !dep.directImport,
157
+ importVar: dep.getImportVar()
158
+ });
159
+ return dep.shorthand ? `${dep.name}: ${exportExpr}` : exportExpr;
160
+ }
161
+ };
162
+
163
+ module.exports = HarmonyImportSpecifierDependency;
@@ -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 NullDependency = require("./NullDependency");
8
+
9
+ class HarmonyInitDependency extends NullDependency {
10
+ constructor(originModule) {
11
+ super();
12
+ this.originModule = originModule;
13
+ }
14
+
15
+ get type() {
16
+ return "harmony init";
17
+ }
18
+ }
19
+
20
+ module.exports = HarmonyInitDependency;
21
+
22
+ HarmonyInitDependency.Template = class HarmonyInitDependencyTemplate {
23
+ apply(dep, source, runtime, dependencyTemplates) {
24
+ const module = dep.originModule;
25
+ const list = [];
26
+ for (const dependency of module.dependencies) {
27
+ const template = dependencyTemplates.get(dependency.constructor);
28
+ if (
29
+ template &&
30
+ typeof template.harmonyInit === "function" &&
31
+ typeof template.getHarmonyInitOrder === "function"
32
+ ) {
33
+ const order = template.getHarmonyInitOrder(dependency);
34
+ if (!isNaN(order)) {
35
+ list.push({
36
+ order,
37
+ listOrder: list.length,
38
+ dependency,
39
+ template
40
+ });
41
+ }
42
+ }
43
+ }
44
+
45
+ list.sort((a, b) => {
46
+ const x = a.order - b.order;
47
+ if (x) return x;
48
+ return a.listOrder - b.listOrder;
49
+ });
50
+
51
+ for (const item of list) {
52
+ item.template.harmonyInit(
53
+ item.dependency,
54
+ source,
55
+ runtime,
56
+ dependencyTemplates
57
+ );
58
+ }
59
+ }
60
+ };