@depup/webpack 5.105.4-depup.37

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 (709) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +38 -0
  3. package/bin/webpack.js +196 -0
  4. package/hot/dev-server.js +90 -0
  5. package/hot/emitter-event-target.js +7 -0
  6. package/hot/emitter.js +2 -0
  7. package/hot/lazy-compilation-node.js +66 -0
  8. package/hot/lazy-compilation-universal.js +18 -0
  9. package/hot/lazy-compilation-web.js +93 -0
  10. package/hot/load-http.js +7 -0
  11. package/hot/log-apply-result.js +49 -0
  12. package/hot/log.js +78 -0
  13. package/hot/only-dev-server.js +118 -0
  14. package/hot/poll.js +41 -0
  15. package/hot/signal.js +66 -0
  16. package/lib/APIPlugin.js +392 -0
  17. package/lib/AbstractMethodError.js +56 -0
  18. package/lib/AsyncDependenciesBlock.js +128 -0
  19. package/lib/AsyncDependencyToInitialChunkError.js +34 -0
  20. package/lib/AutomaticPrefetchPlugin.js +66 -0
  21. package/lib/BannerPlugin.js +138 -0
  22. package/lib/Cache.js +168 -0
  23. package/lib/CacheFacade.js +349 -0
  24. package/lib/CaseSensitiveModulesWarning.js +72 -0
  25. package/lib/Chunk.js +899 -0
  26. package/lib/ChunkGraph.js +1968 -0
  27. package/lib/ChunkGroup.js +615 -0
  28. package/lib/ChunkRenderError.js +38 -0
  29. package/lib/ChunkTemplate.js +181 -0
  30. package/lib/CleanPlugin.js +495 -0
  31. package/lib/CodeGenerationError.js +35 -0
  32. package/lib/CodeGenerationResults.js +167 -0
  33. package/lib/CommentCompilationWarning.js +33 -0
  34. package/lib/CompatibilityPlugin.js +240 -0
  35. package/lib/Compilation.js +5876 -0
  36. package/lib/Compiler.js +1413 -0
  37. package/lib/ConcatenationScope.js +181 -0
  38. package/lib/ConcurrentCompilationError.js +18 -0
  39. package/lib/ConditionalInitFragment.js +120 -0
  40. package/lib/ConstPlugin.js +567 -0
  41. package/lib/ContextExclusionPlugin.js +33 -0
  42. package/lib/ContextModule.js +1411 -0
  43. package/lib/ContextModuleFactory.js +514 -0
  44. package/lib/ContextReplacementPlugin.js +227 -0
  45. package/lib/CssModule.js +179 -0
  46. package/lib/DefinePlugin.js +878 -0
  47. package/lib/DelegatedModule.js +279 -0
  48. package/lib/DelegatedModuleFactoryPlugin.js +116 -0
  49. package/lib/DelegatedPlugin.js +49 -0
  50. package/lib/DependenciesBlock.js +120 -0
  51. package/lib/Dependency.js +390 -0
  52. package/lib/DependencyTemplate.js +71 -0
  53. package/lib/DependencyTemplates.js +67 -0
  54. package/lib/DllEntryPlugin.js +76 -0
  55. package/lib/DllModule.js +175 -0
  56. package/lib/DllModuleFactory.js +38 -0
  57. package/lib/DllPlugin.js +73 -0
  58. package/lib/DllReferencePlugin.js +189 -0
  59. package/lib/DotenvPlugin.js +468 -0
  60. package/lib/DynamicEntryPlugin.js +93 -0
  61. package/lib/EntryOptionPlugin.js +98 -0
  62. package/lib/EntryPlugin.js +72 -0
  63. package/lib/Entrypoint.js +120 -0
  64. package/lib/EnvironmentNotSupportAsyncWarning.js +51 -0
  65. package/lib/EnvironmentPlugin.js +74 -0
  66. package/lib/ErrorHelpers.js +100 -0
  67. package/lib/EvalDevToolModulePlugin.js +135 -0
  68. package/lib/EvalSourceMapDevToolPlugin.js +252 -0
  69. package/lib/ExportsInfo.js +1663 -0
  70. package/lib/ExportsInfoApiPlugin.js +87 -0
  71. package/lib/ExternalModule.js +1169 -0
  72. package/lib/ExternalModuleFactoryPlugin.js +370 -0
  73. package/lib/ExternalsPlugin.js +93 -0
  74. package/lib/FalseIIFEUmdWarning.js +20 -0
  75. package/lib/FileSystemInfo.js +4131 -0
  76. package/lib/FlagAllModulesAsUsedPlugin.js +55 -0
  77. package/lib/FlagDependencyExportsPlugin.js +437 -0
  78. package/lib/FlagDependencyUsagePlugin.js +348 -0
  79. package/lib/FlagEntryExportAsUsedPlugin.js +56 -0
  80. package/lib/Generator.js +188 -0
  81. package/lib/GraphHelpers.js +46 -0
  82. package/lib/HarmonyLinkingError.js +17 -0
  83. package/lib/HookWebpackError.js +121 -0
  84. package/lib/HotModuleReplacementPlugin.js +930 -0
  85. package/lib/HotUpdateChunk.js +16 -0
  86. package/lib/IgnoreErrorModuleFactory.js +39 -0
  87. package/lib/IgnorePlugin.js +105 -0
  88. package/lib/IgnoreWarningsPlugin.js +41 -0
  89. package/lib/InitFragment.js +204 -0
  90. package/lib/InvalidDependenciesModuleWarning.js +44 -0
  91. package/lib/JavascriptMetaInfoPlugin.js +78 -0
  92. package/lib/LibManifestPlugin.js +144 -0
  93. package/lib/LibraryTemplatePlugin.js +48 -0
  94. package/lib/LoaderOptionsPlugin.js +81 -0
  95. package/lib/LoaderTargetPlugin.js +39 -0
  96. package/lib/MainTemplate.js +371 -0
  97. package/lib/ManifestPlugin.js +242 -0
  98. package/lib/Module.js +1319 -0
  99. package/lib/ModuleBuildError.js +83 -0
  100. package/lib/ModuleDependencyError.js +44 -0
  101. package/lib/ModuleDependencyWarning.js +49 -0
  102. package/lib/ModuleError.js +69 -0
  103. package/lib/ModuleFactory.js +57 -0
  104. package/lib/ModuleFilenameHelpers.js +388 -0
  105. package/lib/ModuleGraph.js +1024 -0
  106. package/lib/ModuleGraphConnection.js +199 -0
  107. package/lib/ModuleHashingError.js +31 -0
  108. package/lib/ModuleInfoHeaderPlugin.js +318 -0
  109. package/lib/ModuleNotFoundError.js +90 -0
  110. package/lib/ModuleParseError.js +125 -0
  111. package/lib/ModuleProfile.js +108 -0
  112. package/lib/ModuleRestoreError.js +46 -0
  113. package/lib/ModuleSourceTypeConstants.js +179 -0
  114. package/lib/ModuleStoreError.js +45 -0
  115. package/lib/ModuleTemplate.js +173 -0
  116. package/lib/ModuleTypeConstants.js +190 -0
  117. package/lib/ModuleWarning.js +68 -0
  118. package/lib/MultiCompiler.js +678 -0
  119. package/lib/MultiStats.js +213 -0
  120. package/lib/MultiWatching.js +77 -0
  121. package/lib/NoEmitOnErrorsPlugin.js +30 -0
  122. package/lib/NoModeWarning.js +23 -0
  123. package/lib/NodeStuffInWebError.js +35 -0
  124. package/lib/NodeStuffPlugin.js +587 -0
  125. package/lib/NormalModule.js +1798 -0
  126. package/lib/NormalModuleFactory.js +1455 -0
  127. package/lib/NormalModuleReplacementPlugin.js +75 -0
  128. package/lib/NullFactory.js +24 -0
  129. package/lib/OptimizationStages.js +10 -0
  130. package/lib/OptionsApply.js +24 -0
  131. package/lib/Parser.js +40 -0
  132. package/lib/PlatformPlugin.js +41 -0
  133. package/lib/PrefetchPlugin.js +56 -0
  134. package/lib/ProgressPlugin.js +712 -0
  135. package/lib/ProvidePlugin.js +121 -0
  136. package/lib/RawModule.js +180 -0
  137. package/lib/RecordIdsPlugin.js +216 -0
  138. package/lib/RequestShortener.js +36 -0
  139. package/lib/RequireJsStuffPlugin.js +84 -0
  140. package/lib/ResolverFactory.js +156 -0
  141. package/lib/RuntimeGlobals.js +450 -0
  142. package/lib/RuntimeModule.js +242 -0
  143. package/lib/RuntimePlugin.js +547 -0
  144. package/lib/RuntimeTemplate.js +1288 -0
  145. package/lib/SelfModuleFactory.js +33 -0
  146. package/lib/SingleEntryPlugin.js +8 -0
  147. package/lib/SizeFormatHelpers.js +25 -0
  148. package/lib/SourceMapDevToolModuleOptionsPlugin.js +52 -0
  149. package/lib/SourceMapDevToolPlugin.js +646 -0
  150. package/lib/Stats.js +89 -0
  151. package/lib/Template.js +427 -0
  152. package/lib/TemplatedPathPlugin.js +400 -0
  153. package/lib/UnhandledSchemeError.js +34 -0
  154. package/lib/UnsupportedFeatureWarning.js +35 -0
  155. package/lib/UseStrictPlugin.js +81 -0
  156. package/lib/WarnCaseSensitiveModulesPlugin.js +64 -0
  157. package/lib/WarnDeprecatedOptionPlugin.js +60 -0
  158. package/lib/WarnNoModeSetPlugin.js +27 -0
  159. package/lib/WatchIgnorePlugin.js +155 -0
  160. package/lib/Watching.js +531 -0
  161. package/lib/WebpackError.js +81 -0
  162. package/lib/WebpackIsIncludedPlugin.js +93 -0
  163. package/lib/WebpackOptionsApply.js +941 -0
  164. package/lib/WebpackOptionsDefaulter.js +26 -0
  165. package/lib/asset/AssetBytesGenerator.js +172 -0
  166. package/lib/asset/AssetBytesParser.js +37 -0
  167. package/lib/asset/AssetGenerator.js +816 -0
  168. package/lib/asset/AssetModulesPlugin.js +358 -0
  169. package/lib/asset/AssetParser.js +73 -0
  170. package/lib/asset/AssetSourceGenerator.js +171 -0
  171. package/lib/asset/AssetSourceParser.js +37 -0
  172. package/lib/asset/RawDataUrlModule.js +179 -0
  173. package/lib/async-modules/AsyncModuleHelpers.js +52 -0
  174. package/lib/async-modules/AwaitDependenciesInitFragment.js +90 -0
  175. package/lib/async-modules/InferAsyncModulesPlugin.js +54 -0
  176. package/lib/buildChunkGraph.js +1392 -0
  177. package/lib/cache/AddBuildDependenciesPlugin.js +32 -0
  178. package/lib/cache/AddManagedPathsPlugin.js +40 -0
  179. package/lib/cache/IdleFileCachePlugin.js +242 -0
  180. package/lib/cache/MemoryCachePlugin.js +57 -0
  181. package/lib/cache/MemoryWithGcCachePlugin.js +142 -0
  182. package/lib/cache/PackFileCacheStrategy.js +1600 -0
  183. package/lib/cache/ResolverCachePlugin.js +450 -0
  184. package/lib/cache/getLazyHashedEtag.js +91 -0
  185. package/lib/cache/mergeEtags.js +71 -0
  186. package/lib/cli.js +859 -0
  187. package/lib/config/browserslistTargetHandler.js +388 -0
  188. package/lib/config/defaults.js +2086 -0
  189. package/lib/config/normalization.js +681 -0
  190. package/lib/config/target.js +389 -0
  191. package/lib/container/ContainerEntryDependency.js +50 -0
  192. package/lib/container/ContainerEntryModule.js +303 -0
  193. package/lib/container/ContainerEntryModuleFactory.js +27 -0
  194. package/lib/container/ContainerExposedDependency.js +62 -0
  195. package/lib/container/ContainerPlugin.js +118 -0
  196. package/lib/container/ContainerReferencePlugin.js +139 -0
  197. package/lib/container/FallbackDependency.js +66 -0
  198. package/lib/container/FallbackItemDependency.js +34 -0
  199. package/lib/container/FallbackModule.js +193 -0
  200. package/lib/container/FallbackModuleFactory.js +27 -0
  201. package/lib/container/HoistContainerReferencesPlugin.js +256 -0
  202. package/lib/container/ModuleFederationPlugin.js +131 -0
  203. package/lib/container/RemoteModule.js +225 -0
  204. package/lib/container/RemoteRuntimeModule.js +144 -0
  205. package/lib/container/RemoteToExternalDependency.js +33 -0
  206. package/lib/container/options.js +105 -0
  207. package/lib/css/CssGenerator.js +587 -0
  208. package/lib/css/CssLoadingRuntimeModule.js +513 -0
  209. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
  210. package/lib/css/CssModulesPlugin.js +939 -0
  211. package/lib/css/CssParser.js +2621 -0
  212. package/lib/css/walkCssTokens.js +1740 -0
  213. package/lib/debug/ProfilingPlugin.js +589 -0
  214. package/lib/dependencies/AMDDefineDependency.js +267 -0
  215. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +504 -0
  216. package/lib/dependencies/AMDPlugin.js +243 -0
  217. package/lib/dependencies/AMDRequireArrayDependency.js +124 -0
  218. package/lib/dependencies/AMDRequireContextDependency.js +69 -0
  219. package/lib/dependencies/AMDRequireDependenciesBlock.js +28 -0
  220. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +425 -0
  221. package/lib/dependencies/AMDRequireDependency.js +189 -0
  222. package/lib/dependencies/AMDRequireItemDependency.js +41 -0
  223. package/lib/dependencies/AMDRuntimeModules.js +50 -0
  224. package/lib/dependencies/CachedConstDependency.js +135 -0
  225. package/lib/dependencies/CommonJsDependencyHelpers.js +65 -0
  226. package/lib/dependencies/CommonJsExportRequireDependency.js +416 -0
  227. package/lib/dependencies/CommonJsExportsDependency.js +184 -0
  228. package/lib/dependencies/CommonJsExportsParserPlugin.js +425 -0
  229. package/lib/dependencies/CommonJsFullRequireDependency.js +162 -0
  230. package/lib/dependencies/CommonJsImportsParserPlugin.js +611 -0
  231. package/lib/dependencies/CommonJsPlugin.js +316 -0
  232. package/lib/dependencies/CommonJsRequireContextDependency.js +73 -0
  233. package/lib/dependencies/CommonJsRequireDependency.js +42 -0
  234. package/lib/dependencies/CommonJsSelfReferenceDependency.js +156 -0
  235. package/lib/dependencies/ConstDependency.js +118 -0
  236. package/lib/dependencies/ContextDependency.js +183 -0
  237. package/lib/dependencies/ContextDependencyHelpers.js +277 -0
  238. package/lib/dependencies/ContextDependencyTemplateAsId.js +63 -0
  239. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +62 -0
  240. package/lib/dependencies/ContextElementDependency.js +147 -0
  241. package/lib/dependencies/CreateRequireParserPlugin.js +356 -0
  242. package/lib/dependencies/CreateScriptUrlDependency.js +75 -0
  243. package/lib/dependencies/CriticalDependencyWarning.js +29 -0
  244. package/lib/dependencies/CssIcssExportDependency.js +539 -0
  245. package/lib/dependencies/CssIcssImportDependency.js +183 -0
  246. package/lib/dependencies/CssIcssSymbolDependency.js +131 -0
  247. package/lib/dependencies/CssImportDependency.js +120 -0
  248. package/lib/dependencies/CssUrlDependency.js +189 -0
  249. package/lib/dependencies/DelegatedSourceDependency.js +33 -0
  250. package/lib/dependencies/DllEntryDependency.js +61 -0
  251. package/lib/dependencies/DynamicExports.js +73 -0
  252. package/lib/dependencies/EntryDependency.js +30 -0
  253. package/lib/dependencies/ExportsInfoDependency.js +161 -0
  254. package/lib/dependencies/ExternalModuleDependency.js +109 -0
  255. package/lib/dependencies/ExternalModuleInitFragment.js +137 -0
  256. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +87 -0
  257. package/lib/dependencies/HarmonyAcceptDependency.js +237 -0
  258. package/lib/dependencies/HarmonyAcceptImportDependency.js +37 -0
  259. package/lib/dependencies/HarmonyCompatibilityDependency.js +91 -0
  260. package/lib/dependencies/HarmonyDetectionParserPlugin.js +103 -0
  261. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +165 -0
  262. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +254 -0
  263. package/lib/dependencies/HarmonyExportExpressionDependency.js +211 -0
  264. package/lib/dependencies/HarmonyExportHeaderDependency.js +78 -0
  265. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +1494 -0
  266. package/lib/dependencies/HarmonyExportInitFragment.js +191 -0
  267. package/lib/dependencies/HarmonyExportSpecifierDependency.js +127 -0
  268. package/lib/dependencies/HarmonyExports.js +46 -0
  269. package/lib/dependencies/HarmonyImportDependency.js +459 -0
  270. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +576 -0
  271. package/lib/dependencies/HarmonyImportSideEffectDependency.js +91 -0
  272. package/lib/dependencies/HarmonyImportSpecifierDependency.js +514 -0
  273. package/lib/dependencies/HarmonyModulesPlugin.js +158 -0
  274. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +39 -0
  275. package/lib/dependencies/ImportContextDependency.js +81 -0
  276. package/lib/dependencies/ImportDependency.js +158 -0
  277. package/lib/dependencies/ImportEagerDependency.js +76 -0
  278. package/lib/dependencies/ImportMetaContextDependency.js +42 -0
  279. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +312 -0
  280. package/lib/dependencies/ImportMetaContextPlugin.js +72 -0
  281. package/lib/dependencies/ImportMetaHotAcceptDependency.js +41 -0
  282. package/lib/dependencies/ImportMetaHotDeclineDependency.js +42 -0
  283. package/lib/dependencies/ImportMetaPlugin.js +447 -0
  284. package/lib/dependencies/ImportParserPlugin.js +602 -0
  285. package/lib/dependencies/ImportPhase.js +125 -0
  286. package/lib/dependencies/ImportPlugin.js +98 -0
  287. package/lib/dependencies/ImportWeakDependency.js +74 -0
  288. package/lib/dependencies/JsonExportsDependency.js +137 -0
  289. package/lib/dependencies/LoaderDependency.js +38 -0
  290. package/lib/dependencies/LoaderImportDependency.js +39 -0
  291. package/lib/dependencies/LoaderPlugin.js +294 -0
  292. package/lib/dependencies/LocalModule.js +60 -0
  293. package/lib/dependencies/LocalModuleDependency.js +84 -0
  294. package/lib/dependencies/LocalModulesHelpers.js +68 -0
  295. package/lib/dependencies/ModuleDecoratorDependency.js +136 -0
  296. package/lib/dependencies/ModuleDependency.js +100 -0
  297. package/lib/dependencies/ModuleDependencyTemplateAsId.js +35 -0
  298. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +39 -0
  299. package/lib/dependencies/ModuleHotAcceptDependency.js +41 -0
  300. package/lib/dependencies/ModuleHotDeclineDependency.js +42 -0
  301. package/lib/dependencies/ModuleInitFragmentDependency.js +87 -0
  302. package/lib/dependencies/NullDependency.js +42 -0
  303. package/lib/dependencies/PrefetchDependency.js +27 -0
  304. package/lib/dependencies/ProvidedDependency.js +156 -0
  305. package/lib/dependencies/PureExpressionDependency.js +161 -0
  306. package/lib/dependencies/RequireContextDependency.js +38 -0
  307. package/lib/dependencies/RequireContextDependencyParserPlugin.js +69 -0
  308. package/lib/dependencies/RequireContextPlugin.js +167 -0
  309. package/lib/dependencies/RequireEnsureDependenciesBlock.js +29 -0
  310. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +145 -0
  311. package/lib/dependencies/RequireEnsureDependency.js +115 -0
  312. package/lib/dependencies/RequireEnsureItemDependency.js +36 -0
  313. package/lib/dependencies/RequireEnsurePlugin.js +86 -0
  314. package/lib/dependencies/RequireHeaderDependency.js +70 -0
  315. package/lib/dependencies/RequireIncludeDependency.js +79 -0
  316. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +100 -0
  317. package/lib/dependencies/RequireIncludePlugin.js +63 -0
  318. package/lib/dependencies/RequireResolveContextDependency.js +67 -0
  319. package/lib/dependencies/RequireResolveDependency.js +58 -0
  320. package/lib/dependencies/RequireResolveHeaderDependency.js +81 -0
  321. package/lib/dependencies/RuntimeRequirementsDependency.js +85 -0
  322. package/lib/dependencies/StaticExportsDependency.js +72 -0
  323. package/lib/dependencies/SystemPlugin.js +168 -0
  324. package/lib/dependencies/SystemRuntimeModule.js +35 -0
  325. package/lib/dependencies/URLContextDependency.js +65 -0
  326. package/lib/dependencies/URLDependency.js +165 -0
  327. package/lib/dependencies/URLPlugin.js +67 -0
  328. package/lib/dependencies/UnsupportedDependency.js +82 -0
  329. package/lib/dependencies/WebAssemblyExportImportedDependency.js +93 -0
  330. package/lib/dependencies/WebAssemblyImportDependency.js +108 -0
  331. package/lib/dependencies/WebpackIsIncludedDependency.js +84 -0
  332. package/lib/dependencies/WorkerDependency.js +141 -0
  333. package/lib/dependencies/WorkerPlugin.js +565 -0
  334. package/lib/dependencies/getFunctionExpression.js +66 -0
  335. package/lib/dependencies/processExportInfo.js +67 -0
  336. package/lib/electron/ElectronTargetPlugin.js +71 -0
  337. package/lib/errors/BuildCycleError.js +30 -0
  338. package/lib/esm/ExportWebpackRequireRuntimeModule.js +30 -0
  339. package/lib/esm/ModuleChunkFormatPlugin.js +273 -0
  340. package/lib/esm/ModuleChunkLoadingPlugin.js +143 -0
  341. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +426 -0
  342. package/lib/formatLocation.js +67 -0
  343. package/lib/hmr/HotModuleReplacement.runtime.js +419 -0
  344. package/lib/hmr/HotModuleReplacementRuntimeModule.js +42 -0
  345. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +471 -0
  346. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
  347. package/lib/hmr/LazyCompilationPlugin.js +473 -0
  348. package/lib/hmr/lazyCompilationBackend.js +167 -0
  349. package/lib/ids/ChunkModuleIdRangePlugin.js +94 -0
  350. package/lib/ids/DeterministicChunkIdsPlugin.js +73 -0
  351. package/lib/ids/DeterministicModuleIdsPlugin.js +98 -0
  352. package/lib/ids/HashedModuleIdsPlugin.js +85 -0
  353. package/lib/ids/IdHelpers.js +492 -0
  354. package/lib/ids/NamedChunkIdsPlugin.js +92 -0
  355. package/lib/ids/NamedModuleIdsPlugin.js +68 -0
  356. package/lib/ids/NaturalChunkIdsPlugin.js +35 -0
  357. package/lib/ids/NaturalModuleIdsPlugin.js +40 -0
  358. package/lib/ids/OccurrenceChunkIdsPlugin.js +86 -0
  359. package/lib/ids/OccurrenceModuleIdsPlugin.js +168 -0
  360. package/lib/ids/SyncModuleIdsPlugin.js +161 -0
  361. package/lib/index.js +681 -0
  362. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +153 -0
  363. package/lib/javascript/BasicEvaluatedExpression.js +603 -0
  364. package/lib/javascript/ChunkFormatHelpers.js +70 -0
  365. package/lib/javascript/ChunkHelpers.js +45 -0
  366. package/lib/javascript/CommonJsChunkFormatPlugin.js +148 -0
  367. package/lib/javascript/EnableChunkLoadingPlugin.js +127 -0
  368. package/lib/javascript/JavascriptGenerator.js +277 -0
  369. package/lib/javascript/JavascriptModulesPlugin.js +1905 -0
  370. package/lib/javascript/JavascriptParser.js +5476 -0
  371. package/lib/javascript/JavascriptParserHelpers.js +129 -0
  372. package/lib/javascript/StartupHelpers.js +178 -0
  373. package/lib/json/JsonData.js +74 -0
  374. package/lib/json/JsonGenerator.js +234 -0
  375. package/lib/json/JsonModulesPlugin.js +66 -0
  376. package/lib/json/JsonParser.js +93 -0
  377. package/lib/library/AbstractLibraryPlugin.js +339 -0
  378. package/lib/library/AmdLibraryPlugin.js +181 -0
  379. package/lib/library/AssignLibraryPlugin.js +445 -0
  380. package/lib/library/EnableLibraryPlugin.js +306 -0
  381. package/lib/library/ExportPropertyLibraryPlugin.js +116 -0
  382. package/lib/library/JsonpLibraryPlugin.js +92 -0
  383. package/lib/library/ModuleLibraryPlugin.js +438 -0
  384. package/lib/library/SystemLibraryPlugin.js +256 -0
  385. package/lib/library/UmdLibraryPlugin.js +355 -0
  386. package/lib/logging/Logger.js +223 -0
  387. package/lib/logging/createConsoleLogger.js +217 -0
  388. package/lib/logging/runtime.js +45 -0
  389. package/lib/logging/truncateArgs.js +83 -0
  390. package/lib/node/CommonJsChunkLoadingPlugin.js +120 -0
  391. package/lib/node/NodeEnvironmentPlugin.js +73 -0
  392. package/lib/node/NodeSourcePlugin.js +19 -0
  393. package/lib/node/NodeTargetPlugin.js +102 -0
  394. package/lib/node/NodeTemplatePlugin.js +42 -0
  395. package/lib/node/NodeWatchFileSystem.js +198 -0
  396. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +286 -0
  397. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +123 -0
  398. package/lib/node/ReadFileCompileWasmPlugin.js +127 -0
  399. package/lib/node/RequireChunkLoadingRuntimeModule.js +239 -0
  400. package/lib/node/nodeConsole.js +185 -0
  401. package/lib/optimize/AggressiveMergingPlugin.js +98 -0
  402. package/lib/optimize/AggressiveSplittingPlugin.js +352 -0
  403. package/lib/optimize/ConcatenatedModule.js +2290 -0
  404. package/lib/optimize/EnsureChunkConditionsPlugin.js +88 -0
  405. package/lib/optimize/FlagIncludedChunksPlugin.js +137 -0
  406. package/lib/optimize/InnerGraph.js +368 -0
  407. package/lib/optimize/InnerGraphPlugin.js +455 -0
  408. package/lib/optimize/LimitChunkCountPlugin.js +302 -0
  409. package/lib/optimize/MangleExportsPlugin.js +194 -0
  410. package/lib/optimize/MergeDuplicateChunksPlugin.js +138 -0
  411. package/lib/optimize/MinChunkSizePlugin.js +121 -0
  412. package/lib/optimize/MinMaxSizeWarning.js +35 -0
  413. package/lib/optimize/ModuleConcatenationPlugin.js +971 -0
  414. package/lib/optimize/RealContentHashPlugin.js +488 -0
  415. package/lib/optimize/RemoveEmptyChunksPlugin.js +60 -0
  416. package/lib/optimize/RemoveParentModulesPlugin.js +216 -0
  417. package/lib/optimize/RuntimeChunkPlugin.js +52 -0
  418. package/lib/optimize/SideEffectsFlagPlugin.js +417 -0
  419. package/lib/optimize/SplitChunksPlugin.js +1836 -0
  420. package/lib/performance/AssetsOverSizeLimitWarning.js +37 -0
  421. package/lib/performance/EntrypointsOverSizeLimitWarning.js +40 -0
  422. package/lib/performance/NoAsyncChunksWarning.js +21 -0
  423. package/lib/performance/SizeLimitsPlugin.js +183 -0
  424. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +46 -0
  425. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +95 -0
  426. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +56 -0
  427. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +52 -0
  428. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +46 -0
  429. package/lib/rules/BasicEffectRulePlugin.js +56 -0
  430. package/lib/rules/BasicMatcherRulePlugin.js +68 -0
  431. package/lib/rules/ObjectMatcherRulePlugin.js +79 -0
  432. package/lib/rules/RuleSetCompiler.js +447 -0
  433. package/lib/rules/UseEffectRulePlugin.js +236 -0
  434. package/lib/runtime/AsyncModuleRuntimeModule.js +199 -0
  435. package/lib/runtime/AutoPublicPathRuntimeModule.js +90 -0
  436. package/lib/runtime/BaseUriRuntimeModule.js +35 -0
  437. package/lib/runtime/ChunkNameRuntimeModule.js +28 -0
  438. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +40 -0
  439. package/lib/runtime/CompatRuntimeModule.js +83 -0
  440. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +69 -0
  441. package/lib/runtime/CreateScriptRuntimeModule.js +38 -0
  442. package/lib/runtime/CreateScriptUrlRuntimeModule.js +38 -0
  443. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +42 -0
  444. package/lib/runtime/EnsureChunkRuntimeModule.js +69 -0
  445. package/lib/runtime/GetChunkFilenameRuntimeModule.js +299 -0
  446. package/lib/runtime/GetFullHashRuntimeModule.js +31 -0
  447. package/lib/runtime/GetMainFilenameRuntimeModule.js +49 -0
  448. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +99 -0
  449. package/lib/runtime/GlobalRuntimeModule.js +47 -0
  450. package/lib/runtime/HasOwnPropertyRuntimeModule.js +35 -0
  451. package/lib/runtime/HelperRuntimeModule.js +18 -0
  452. package/lib/runtime/LoadScriptRuntimeModule.js +174 -0
  453. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +232 -0
  454. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +39 -0
  455. package/lib/runtime/NonceRuntimeModule.js +24 -0
  456. package/lib/runtime/OnChunksLoadedRuntimeModule.js +78 -0
  457. package/lib/runtime/PublicPathRuntimeModule.js +38 -0
  458. package/lib/runtime/RelativeUrlRuntimeModule.js +44 -0
  459. package/lib/runtime/RuntimeIdRuntimeModule.js +33 -0
  460. package/lib/runtime/StartupChunkDependenciesPlugin.js +88 -0
  461. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +77 -0
  462. package/lib/runtime/StartupEntrypointRuntimeModule.js +54 -0
  463. package/lib/runtime/SystemContextRuntimeModule.js +23 -0
  464. package/lib/runtime/ToBinaryRuntimeModule.js +72 -0
  465. package/lib/schemes/DataUriPlugin.js +47 -0
  466. package/lib/schemes/FileUriPlugin.js +54 -0
  467. package/lib/schemes/HttpUriPlugin.js +1410 -0
  468. package/lib/schemes/VirtualUrlPlugin.js +248 -0
  469. package/lib/serialization/AggregateErrorSerializer.js +41 -0
  470. package/lib/serialization/ArraySerializer.js +38 -0
  471. package/lib/serialization/BinaryMiddleware.js +1164 -0
  472. package/lib/serialization/DateObjectSerializer.js +28 -0
  473. package/lib/serialization/ErrorObjectSerializer.js +49 -0
  474. package/lib/serialization/FileMiddleware.js +766 -0
  475. package/lib/serialization/MapObjectSerializer.js +48 -0
  476. package/lib/serialization/NullPrototypeObjectSerializer.js +53 -0
  477. package/lib/serialization/ObjectMiddleware.js +877 -0
  478. package/lib/serialization/PlainObjectSerializer.js +119 -0
  479. package/lib/serialization/RegExpObjectSerializer.js +29 -0
  480. package/lib/serialization/Serializer.js +82 -0
  481. package/lib/serialization/SerializerMiddleware.js +226 -0
  482. package/lib/serialization/SetObjectSerializer.js +40 -0
  483. package/lib/serialization/SingleItemMiddleware.js +36 -0
  484. package/lib/serialization/types.js +13 -0
  485. package/lib/sharing/ConsumeSharedFallbackDependency.js +33 -0
  486. package/lib/sharing/ConsumeSharedModule.js +344 -0
  487. package/lib/sharing/ConsumeSharedPlugin.js +380 -0
  488. package/lib/sharing/ConsumeSharedRuntimeModule.js +358 -0
  489. package/lib/sharing/ProvideForSharedDependency.js +33 -0
  490. package/lib/sharing/ProvideSharedDependency.js +80 -0
  491. package/lib/sharing/ProvideSharedModule.js +196 -0
  492. package/lib/sharing/ProvideSharedModuleFactory.js +37 -0
  493. package/lib/sharing/ProvideSharedPlugin.js +248 -0
  494. package/lib/sharing/SharePlugin.js +91 -0
  495. package/lib/sharing/ShareRuntimeModule.js +152 -0
  496. package/lib/sharing/resolveMatchedConfigs.js +106 -0
  497. package/lib/sharing/utils.js +421 -0
  498. package/lib/stats/DefaultStatsFactoryPlugin.js +2791 -0
  499. package/lib/stats/DefaultStatsPresetPlugin.js +417 -0
  500. package/lib/stats/DefaultStatsPrinterPlugin.js +1860 -0
  501. package/lib/stats/StatsFactory.js +406 -0
  502. package/lib/stats/StatsPrinter.js +300 -0
  503. package/lib/url/URLParserPlugin.js +266 -0
  504. package/lib/util/AppendOnlyStackedSet.js +78 -0
  505. package/lib/util/ArrayHelpers.js +46 -0
  506. package/lib/util/ArrayQueue.js +104 -0
  507. package/lib/util/AsyncQueue.js +411 -0
  508. package/lib/util/Hash.js +68 -0
  509. package/lib/util/IterableHelpers.js +46 -0
  510. package/lib/util/LazyBucketSortedSet.js +272 -0
  511. package/lib/util/LazySet.js +236 -0
  512. package/lib/util/MapHelpers.js +34 -0
  513. package/lib/util/ParallelismFactorCalculator.js +70 -0
  514. package/lib/util/Queue.js +52 -0
  515. package/lib/util/Semaphore.js +51 -0
  516. package/lib/util/SetHelpers.js +94 -0
  517. package/lib/util/SortableSet.js +176 -0
  518. package/lib/util/StackedCacheMap.js +140 -0
  519. package/lib/util/StackedMap.js +164 -0
  520. package/lib/util/StringXor.js +103 -0
  521. package/lib/util/TupleQueue.js +70 -0
  522. package/lib/util/TupleSet.js +185 -0
  523. package/lib/util/URLAbsoluteSpecifier.js +86 -0
  524. package/lib/util/WeakTupleMap.js +227 -0
  525. package/lib/util/binarySearchBounds.js +136 -0
  526. package/lib/util/chainedImports.js +99 -0
  527. package/lib/util/cleverMerge.js +676 -0
  528. package/lib/util/comparators.js +645 -0
  529. package/lib/util/compileBooleanMatcher.js +313 -0
  530. package/lib/util/concatenate.js +232 -0
  531. package/lib/util/conventions.js +126 -0
  532. package/lib/util/create-schema-validation.js +41 -0
  533. package/lib/util/createHash.js +91 -0
  534. package/lib/util/dataURL.js +39 -0
  535. package/lib/util/deprecation.js +350 -0
  536. package/lib/util/deterministicGrouping.js +561 -0
  537. package/lib/util/extractSourceMap.js +318 -0
  538. package/lib/util/extractUrlAndGlobal.js +18 -0
  539. package/lib/util/findGraphRoots.js +211 -0
  540. package/lib/util/fs.js +675 -0
  541. package/lib/util/generateDebugId.js +33 -0
  542. package/lib/util/hash/BatchedHash.js +115 -0
  543. package/lib/util/hash/BulkUpdateHash.js +145 -0
  544. package/lib/util/hash/DebugHash.js +75 -0
  545. package/lib/util/hash/hash-digest.js +217 -0
  546. package/lib/util/hash/md4.js +20 -0
  547. package/lib/util/hash/wasm-hash.js +232 -0
  548. package/lib/util/hash/xxhash64.js +20 -0
  549. package/lib/util/identifier.js +471 -0
  550. package/lib/util/internalSerializables.js +222 -0
  551. package/lib/util/magicComment.js +25 -0
  552. package/lib/util/makeSerializable.js +60 -0
  553. package/lib/util/memoize.js +36 -0
  554. package/lib/util/nonNumericOnlyHash.js +22 -0
  555. package/lib/util/numberHash.js +95 -0
  556. package/lib/util/objectToMap.js +15 -0
  557. package/lib/util/processAsyncTree.js +68 -0
  558. package/lib/util/propertyAccess.js +30 -0
  559. package/lib/util/propertyName.js +76 -0
  560. package/lib/util/registerExternalSerializer.js +334 -0
  561. package/lib/util/removeBOM.js +25 -0
  562. package/lib/util/runtime.js +717 -0
  563. package/lib/util/semver.js +604 -0
  564. package/lib/util/serialization.js +153 -0
  565. package/lib/util/smartGrouping.js +221 -0
  566. package/lib/util/source.js +62 -0
  567. package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
  568. package/lib/validateSchema.js +177 -0
  569. package/lib/wasm/EnableWasmLoadingPlugin.js +146 -0
  570. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +154 -0
  571. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +74 -0
  572. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +212 -0
  573. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +209 -0
  574. package/lib/wasm-async/AsyncWebAssemblyParser.js +80 -0
  575. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +107 -0
  576. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +20 -0
  577. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +422 -0
  578. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +91 -0
  579. package/lib/wasm-sync/WebAssemblyGenerator.js +535 -0
  580. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +111 -0
  581. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +236 -0
  582. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +151 -0
  583. package/lib/wasm-sync/WebAssemblyParser.js +201 -0
  584. package/lib/wasm-sync/WebAssemblyUtils.js +66 -0
  585. package/lib/web/FetchCompileAsyncWasmPlugin.js +70 -0
  586. package/lib/web/FetchCompileWasmPlugin.js +86 -0
  587. package/lib/web/JsonpChunkLoadingPlugin.js +101 -0
  588. package/lib/web/JsonpChunkLoadingRuntimeModule.js +455 -0
  589. package/lib/web/JsonpTemplatePlugin.js +37 -0
  590. package/lib/webpack.js +227 -0
  591. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +110 -0
  592. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +231 -0
  593. package/lib/webworker/WebWorkerTemplatePlugin.js +26 -0
  594. package/module.d.ts +238 -0
  595. package/package.json +258 -0
  596. package/schemas/WebpackOptions.check.d.ts +7 -0
  597. package/schemas/WebpackOptions.check.js +6 -0
  598. package/schemas/WebpackOptions.json +6179 -0
  599. package/schemas/_container.json +155 -0
  600. package/schemas/_sharing.json +118 -0
  601. package/schemas/plugins/BannerPlugin.check.d.ts +7 -0
  602. package/schemas/plugins/BannerPlugin.check.js +6 -0
  603. package/schemas/plugins/BannerPlugin.json +115 -0
  604. package/schemas/plugins/DllPlugin.check.d.ts +7 -0
  605. package/schemas/plugins/DllPlugin.check.js +6 -0
  606. package/schemas/plugins/DllPlugin.json +36 -0
  607. package/schemas/plugins/DllReferencePlugin.check.d.ts +7 -0
  608. package/schemas/plugins/DllReferencePlugin.check.js +6 -0
  609. package/schemas/plugins/DllReferencePlugin.json +206 -0
  610. package/schemas/plugins/IgnorePlugin.check.d.ts +7 -0
  611. package/schemas/plugins/IgnorePlugin.check.js +6 -0
  612. package/schemas/plugins/IgnorePlugin.json +34 -0
  613. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +7 -0
  614. package/schemas/plugins/LoaderOptionsPlugin.check.js +6 -0
  615. package/schemas/plugins/LoaderOptionsPlugin.json +27 -0
  616. package/schemas/plugins/ManifestPlugin.check.d.ts +7 -0
  617. package/schemas/plugins/ManifestPlugin.check.js +6 -0
  618. package/schemas/plugins/ManifestPlugin.json +98 -0
  619. package/schemas/plugins/ProgressPlugin.check.d.ts +7 -0
  620. package/schemas/plugins/ProgressPlugin.check.js +6 -0
  621. package/schemas/plugins/ProgressPlugin.json +65 -0
  622. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +7 -0
  623. package/schemas/plugins/SourceMapDevToolPlugin.check.js +6 -0
  624. package/schemas/plugins/SourceMapDevToolPlugin.json +168 -0
  625. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +7 -0
  626. package/schemas/plugins/WatchIgnorePlugin.check.js +6 -0
  627. package/schemas/plugins/WatchIgnorePlugin.json +25 -0
  628. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +7 -0
  629. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +6 -0
  630. package/schemas/plugins/asset/AssetGeneratorOptions.json +3 -0
  631. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +7 -0
  632. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +6 -0
  633. package/schemas/plugins/asset/AssetInlineGeneratorOptions.json +3 -0
  634. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +7 -0
  635. package/schemas/plugins/asset/AssetParserOptions.check.js +6 -0
  636. package/schemas/plugins/asset/AssetParserOptions.json +3 -0
  637. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +7 -0
  638. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +6 -0
  639. package/schemas/plugins/asset/AssetResourceGeneratorOptions.json +3 -0
  640. package/schemas/plugins/container/ContainerPlugin.check.d.ts +7 -0
  641. package/schemas/plugins/container/ContainerPlugin.check.js +6 -0
  642. package/schemas/plugins/container/ContainerPlugin.json +294 -0
  643. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +7 -0
  644. package/schemas/plugins/container/ContainerReferencePlugin.check.js +6 -0
  645. package/schemas/plugins/container/ContainerReferencePlugin.json +132 -0
  646. package/schemas/plugins/container/ExternalsType.check.d.ts +7 -0
  647. package/schemas/plugins/container/ExternalsType.check.js +6 -0
  648. package/schemas/plugins/container/ExternalsType.json +3 -0
  649. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +7 -0
  650. package/schemas/plugins/container/ModuleFederationPlugin.check.js +6 -0
  651. package/schemas/plugins/container/ModuleFederationPlugin.json +525 -0
  652. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +7 -0
  653. package/schemas/plugins/css/CssGeneratorOptions.check.js +6 -0
  654. package/schemas/plugins/css/CssGeneratorOptions.json +3 -0
  655. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +7 -0
  656. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +6 -0
  657. package/schemas/plugins/css/CssModuleGeneratorOptions.json +3 -0
  658. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +7 -0
  659. package/schemas/plugins/css/CssModuleParserOptions.check.js +6 -0
  660. package/schemas/plugins/css/CssModuleParserOptions.json +3 -0
  661. package/schemas/plugins/css/CssParserOptions.check.d.ts +7 -0
  662. package/schemas/plugins/css/CssParserOptions.check.js +6 -0
  663. package/schemas/plugins/css/CssParserOptions.json +3 -0
  664. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +7 -0
  665. package/schemas/plugins/debug/ProfilingPlugin.check.js +6 -0
  666. package/schemas/plugins/debug/ProfilingPlugin.json +12 -0
  667. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +7 -0
  668. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +6 -0
  669. package/schemas/plugins/ids/HashedModuleIdsPlugin.json +57 -0
  670. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +7 -0
  671. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +6 -0
  672. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.json +11 -0
  673. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +7 -0
  674. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +6 -0
  675. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.json +11 -0
  676. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +7 -0
  677. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +6 -0
  678. package/schemas/plugins/json/JsonModulesPluginGenerator.json +3 -0
  679. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +7 -0
  680. package/schemas/plugins/json/JsonModulesPluginParser.check.js +6 -0
  681. package/schemas/plugins/json/JsonModulesPluginParser.json +3 -0
  682. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +7 -0
  683. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +6 -0
  684. package/schemas/plugins/optimize/AggressiveSplittingPlugin.json +23 -0
  685. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +7 -0
  686. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +6 -0
  687. package/schemas/plugins/optimize/LimitChunkCountPlugin.json +21 -0
  688. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +7 -0
  689. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +6 -0
  690. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.json +11 -0
  691. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +7 -0
  692. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +6 -0
  693. package/schemas/plugins/optimize/MinChunkSizePlugin.json +20 -0
  694. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +7 -0
  695. package/schemas/plugins/schemes/HttpUriPlugin.check.js +6 -0
  696. package/schemas/plugins/schemes/HttpUriPlugin.json +74 -0
  697. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
  698. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
  699. package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
  700. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +7 -0
  701. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +6 -0
  702. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +120 -0
  703. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +7 -0
  704. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +6 -0
  705. package/schemas/plugins/sharing/ProvideSharedPlugin.json +94 -0
  706. package/schemas/plugins/sharing/SharePlugin.check.d.ts +7 -0
  707. package/schemas/plugins/sharing/SharePlugin.check.js +6 -0
  708. package/schemas/plugins/sharing/SharePlugin.json +133 -0
  709. package/types.d.ts +20217 -0
@@ -0,0 +1,1169 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const { OriginalSource, RawSource } = require("webpack-sources");
9
+ const ConcatenationScope = require("./ConcatenationScope");
10
+ const EnvironmentNotSupportAsyncWarning = require("./EnvironmentNotSupportAsyncWarning");
11
+ const { UsageState } = require("./ExportsInfo");
12
+ const InitFragment = require("./InitFragment");
13
+ const Module = require("./Module");
14
+ const {
15
+ CSS_IMPORT_TYPES,
16
+ CSS_URL_TYPES,
17
+ JAVASCRIPT_TYPE,
18
+ JAVASCRIPT_TYPES
19
+ } = require("./ModuleSourceTypeConstants");
20
+ const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
21
+ const RuntimeGlobals = require("./RuntimeGlobals");
22
+ const Template = require("./Template");
23
+ const { DEFAULTS } = require("./config/defaults");
24
+ const StaticExportsDependency = require("./dependencies/StaticExportsDependency");
25
+ const createHash = require("./util/createHash");
26
+ const extractUrlAndGlobal = require("./util/extractUrlAndGlobal");
27
+ const makeSerializable = require("./util/makeSerializable");
28
+ const propertyAccess = require("./util/propertyAccess");
29
+ const { register } = require("./util/serialization");
30
+
31
+ /** @typedef {import("webpack-sources").Source} Source */
32
+ /** @typedef {import("../declarations/WebpackOptions").ExternalsType} ExternalsType */
33
+ /** @typedef {import("../declarations/WebpackOptions").HashFunction} HashFunction */
34
+ /** @typedef {import("./config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
35
+ /** @typedef {import("./Chunk")} Chunk */
36
+ /** @typedef {import("./ChunkGraph")} ChunkGraph */
37
+ /** @typedef {import("./Compilation")} Compilation */
38
+ /** @typedef {import("./Compilation").UnsafeCacheData} UnsafeCacheData */
39
+ /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
40
+ /** @typedef {import("./ExportsInfo")} ExportsInfo */
41
+ /** @typedef {import("./Generator").GenerateContext} GenerateContext */
42
+ /** @typedef {import("./Generator").SourceTypes} SourceTypes */
43
+ /** @typedef {import("./Module").ModuleId} ModuleId */
44
+ /** @typedef {import("./Module").BuildCallback} BuildCallback */
45
+ /** @typedef {import("./Module").BuildInfo} BuildInfo */
46
+ /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */
47
+ /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */
48
+ /** @typedef {import("./Module").CodeGenerationResultData} CodeGenerationResultData */
49
+ /** @typedef {import("./Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */
50
+ /** @typedef {import("./Module").LibIdentOptions} LibIdentOptions */
51
+ /** @typedef {import("./Module").LibIdent} LibIdent */
52
+ /** @typedef {import("./Module").NeedBuildCallback} NeedBuildCallback */
53
+ /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */
54
+ /** @typedef {import("./Module").RuntimeRequirements} RuntimeRequirements */
55
+ /** @typedef {import("./Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */
56
+ /** @typedef {import("./Module").Sources} Sources */
57
+ /** @typedef {import("./ModuleGraph")} ModuleGraph */
58
+ /** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */
59
+ /** @typedef {import("./RequestShortener")} RequestShortener */
60
+ /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
61
+ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
62
+ /** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
63
+ /** @typedef {import("./javascript/JavascriptParser").ImportAttributes} ImportAttributes */
64
+ /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
65
+ /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
66
+ /** @typedef {import("./util/Hash")} Hash */
67
+ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
68
+ /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
69
+
70
+ /** @typedef {{ attributes?: ImportAttributes, externalType: "import" | "module" | undefined }} ImportDependencyMeta */
71
+ /** @typedef {{ layer?: string, supports?: string, media?: string }} CssImportDependencyMeta */
72
+ /** @typedef {{ sourceType: "css-url" }} AssetDependencyMeta */
73
+
74
+ /** @typedef {ImportDependencyMeta | CssImportDependencyMeta | AssetDependencyMeta} DependencyMeta */
75
+
76
+ /**
77
+ * @typedef {object} SourceData
78
+ * @property {boolean=} iife
79
+ * @property {string=} init
80
+ * @property {string} expression
81
+ * @property {InitFragment<ChunkRenderContext>[]=} chunkInitFragments
82
+ * @property {ReadOnlyRuntimeRequirements=} runtimeRequirements
83
+ * @property {[string, string][]=} specifiers
84
+ */
85
+
86
+ /** @typedef {true | [string, string][]} Imported */
87
+
88
+ /** @type {RuntimeRequirements} */
89
+ const RUNTIME_REQUIREMENTS = new Set([RuntimeGlobals.module]);
90
+ /** @type {RuntimeRequirements} */
91
+ const RUNTIME_REQUIREMENTS_FOR_SCRIPT = new Set([RuntimeGlobals.loadScript]);
92
+ /** @type {RuntimeRequirements} */
93
+ const RUNTIME_REQUIREMENTS_FOR_MODULE = new Set([
94
+ RuntimeGlobals.definePropertyGetters
95
+ ]);
96
+ /** @type {RuntimeRequirements} */
97
+ const EMPTY_RUNTIME_REQUIREMENTS = new Set();
98
+
99
+ /**
100
+ * @param {string | string[]} variableName the variable name or path
101
+ * @param {string} type the module system
102
+ * @returns {SourceData} the generated source
103
+ */
104
+ const getSourceForGlobalVariableExternal = (variableName, type) => {
105
+ if (!Array.isArray(variableName)) {
106
+ // make it an array as the look up works the same basically
107
+ variableName = [variableName];
108
+ }
109
+
110
+ // needed for e.g. window["some"]["thing"]
111
+ const objectLookup = variableName
112
+ .map((r) => `[${JSON.stringify(r)}]`)
113
+ .join("");
114
+ return {
115
+ iife: type === "this",
116
+ expression: `${type}${objectLookup}`
117
+ };
118
+ };
119
+
120
+ /** @typedef {string | string[]} ModuleAndSpecifiers */
121
+
122
+ /**
123
+ * @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
124
+ * @returns {SourceData} the generated source
125
+ */
126
+ const getSourceForCommonJsExternal = (moduleAndSpecifiers) => {
127
+ if (!Array.isArray(moduleAndSpecifiers)) {
128
+ return {
129
+ expression: `require(${JSON.stringify(moduleAndSpecifiers)})`
130
+ };
131
+ }
132
+ const moduleName = moduleAndSpecifiers[0];
133
+ return {
134
+ expression: `require(${JSON.stringify(moduleName)})${propertyAccess(
135
+ moduleAndSpecifiers,
136
+ 1
137
+ )}`
138
+ };
139
+ };
140
+
141
+ /**
142
+ * @param {RuntimeTemplate} runtimeTemplate the runtime template
143
+ * @returns {InitFragment<ChunkRenderContext>} code
144
+ */
145
+ const getExternalModuleNodeCommonjsInitFragment = (runtimeTemplate) => {
146
+ const importMetaName = runtimeTemplate.outputOptions.importMetaName;
147
+
148
+ return new InitFragment(
149
+ `import { createRequire as __WEBPACK_EXTERNAL_createRequire } from ${runtimeTemplate.renderNodePrefixForCoreModule(
150
+ "module"
151
+ )};\n${runtimeTemplate.renderConst()} __WEBPACK_EXTERNAL_createRequire_require = __WEBPACK_EXTERNAL_createRequire(${importMetaName}.url);\n`,
152
+ InitFragment.STAGE_HARMONY_IMPORTS,
153
+ 0,
154
+ "external module node-commonjs"
155
+ );
156
+ };
157
+
158
+ /**
159
+ * @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
160
+ * @param {RuntimeTemplate} runtimeTemplate the runtime template
161
+ * @returns {SourceData} the generated source
162
+ */
163
+ const getSourceForCommonJsExternalInNodeModule = (
164
+ moduleAndSpecifiers,
165
+ runtimeTemplate
166
+ ) => {
167
+ const chunkInitFragments = [
168
+ getExternalModuleNodeCommonjsInitFragment(runtimeTemplate)
169
+ ];
170
+ if (!Array.isArray(moduleAndSpecifiers)) {
171
+ return {
172
+ chunkInitFragments,
173
+ expression: `__WEBPACK_EXTERNAL_createRequire_require(${JSON.stringify(
174
+ moduleAndSpecifiers
175
+ )})`
176
+ };
177
+ }
178
+ const moduleName = moduleAndSpecifiers[0];
179
+ return {
180
+ chunkInitFragments,
181
+ expression: `__WEBPACK_EXTERNAL_createRequire_require(${JSON.stringify(
182
+ moduleName
183
+ )})${propertyAccess(moduleAndSpecifiers, 1)}`
184
+ };
185
+ };
186
+
187
+ /**
188
+ * @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
189
+ * @param {RuntimeTemplate} runtimeTemplate the runtime template
190
+ * @param {ImportDependencyMeta=} dependencyMeta the dependency meta
191
+ * @returns {SourceData} the generated source
192
+ */
193
+ const getSourceForImportExternal = (
194
+ moduleAndSpecifiers,
195
+ runtimeTemplate,
196
+ dependencyMeta
197
+ ) => {
198
+ const importName = runtimeTemplate.outputOptions.importFunctionName;
199
+ if (
200
+ !runtimeTemplate.supportsDynamicImport() &&
201
+ (importName === "import" || importName === "module-import")
202
+ ) {
203
+ throw new Error(
204
+ "The target environment doesn't support 'import()' so it's not possible to use external type 'import'"
205
+ );
206
+ }
207
+ const attributes =
208
+ dependencyMeta && dependencyMeta.attributes
209
+ ? dependencyMeta.attributes._isLegacyAssert
210
+ ? `, { assert: ${JSON.stringify(
211
+ dependencyMeta.attributes,
212
+ importAssertionReplacer
213
+ )} }`
214
+ : `, { with: ${JSON.stringify(dependencyMeta.attributes)} }`
215
+ : "";
216
+ if (!Array.isArray(moduleAndSpecifiers)) {
217
+ return {
218
+ expression: `${importName}(${JSON.stringify(
219
+ moduleAndSpecifiers
220
+ )}${attributes});`
221
+ };
222
+ }
223
+ if (moduleAndSpecifiers.length === 1) {
224
+ return {
225
+ expression: `${importName}(${JSON.stringify(
226
+ moduleAndSpecifiers[0]
227
+ )}${attributes});`
228
+ };
229
+ }
230
+ const moduleName = moduleAndSpecifiers[0];
231
+ return {
232
+ expression: `${importName}(${JSON.stringify(
233
+ moduleName
234
+ )}${attributes}).then(${runtimeTemplate.returningFunction(
235
+ `module${propertyAccess(moduleAndSpecifiers, 1)}`,
236
+ "module"
237
+ )});`
238
+ };
239
+ };
240
+
241
+ /**
242
+ * @param {string} key key
243
+ * @param {ImportAttributes | string | boolean | undefined} value value
244
+ * @returns {ImportAttributes | string | boolean | undefined} replaced value
245
+ */
246
+ const importAssertionReplacer = (key, value) => {
247
+ if (key === "_isLegacyAssert") {
248
+ return;
249
+ }
250
+
251
+ return value;
252
+ };
253
+
254
+ /**
255
+ * @extends {InitFragment<GenerateContext>}
256
+ */
257
+ class ModuleExternalInitFragment extends InitFragment {
258
+ /**
259
+ * @param {string} request import source
260
+ * @param {Imported} imported the imported specifiers
261
+ * @param {string=} ident recomputed ident
262
+ * @param {ImportDependencyMeta=} dependencyMeta the dependency meta
263
+ * @param {HashFunction=} hashFunction the hash function to use
264
+ */
265
+ constructor(
266
+ request,
267
+ imported,
268
+ ident,
269
+ dependencyMeta,
270
+ hashFunction = DEFAULTS.HASH_FUNCTION
271
+ ) {
272
+ if (ident === undefined) {
273
+ ident = Template.toIdentifier(request);
274
+ if (ident !== request) {
275
+ ident += `_${createHash(hashFunction)
276
+ .update(request)
277
+ .digest("hex")
278
+ .slice(0, 8)}`;
279
+ }
280
+ }
281
+
282
+ super(
283
+ "",
284
+ InitFragment.STAGE_HARMONY_IMPORTS,
285
+ 0,
286
+ `external module import ${ident} ${imported === true ? imported : imported.join(" ")}`
287
+ );
288
+ this._ident = ident;
289
+ this._request = request;
290
+ this._dependencyMeta = dependencyMeta;
291
+ this._identifier = this.buildIdentifier(ident);
292
+ this._imported = this.buildImported(imported);
293
+ }
294
+
295
+ /**
296
+ * @returns {Imported} imported
297
+ */
298
+ getImported() {
299
+ return this._imported;
300
+ }
301
+
302
+ /**
303
+ * @param {Imported} imported imported
304
+ */
305
+ setImported(imported) {
306
+ this._imported = imported;
307
+ }
308
+
309
+ /**
310
+ * @param {GenerateContext} context context
311
+ * @returns {string | Source | undefined} the source code that will be included as initialization code
312
+ */
313
+ getContent(context) {
314
+ const {
315
+ _dependencyMeta: dependencyMeta,
316
+ _imported: imported,
317
+ _request: request,
318
+ _identifier: identifier
319
+ } = this;
320
+ const attributes =
321
+ dependencyMeta && dependencyMeta.attributes
322
+ ? dependencyMeta.attributes._isLegacyAssert &&
323
+ dependencyMeta.attributes._isLegacyAssert
324
+ ? ` assert ${JSON.stringify(
325
+ dependencyMeta.attributes,
326
+ importAssertionReplacer
327
+ )}`
328
+ : ` with ${JSON.stringify(dependencyMeta.attributes)}`
329
+ : "";
330
+ let content = "";
331
+ if (imported === true) {
332
+ // namespace
333
+ content = `import * as ${identifier} from ${JSON.stringify(request)}${
334
+ attributes
335
+ };\n`;
336
+ } else if (imported.length === 0) {
337
+ // just import, no use
338
+ content = `import ${JSON.stringify(request)}${attributes};\n`;
339
+ } else {
340
+ content = `import { ${imported
341
+ .map(([name, finalName]) => {
342
+ if (name !== finalName) {
343
+ return `${name} as ${finalName}`;
344
+ }
345
+ return name;
346
+ })
347
+ .join(", ")} } from ${JSON.stringify(request)}${attributes};\n`;
348
+ }
349
+ return content;
350
+ }
351
+
352
+ getNamespaceIdentifier() {
353
+ return this._identifier;
354
+ }
355
+
356
+ /**
357
+ * @param {string} ident ident
358
+ * @returns {string} identifier
359
+ */
360
+ buildIdentifier(ident) {
361
+ return `__WEBPACK_EXTERNAL_MODULE_${ident}__`;
362
+ }
363
+
364
+ /**
365
+ * @param {Imported} imported imported
366
+ * @returns {Imported} normalized imported
367
+ */
368
+ buildImported(imported) {
369
+ if (Array.isArray(imported)) {
370
+ return imported.map(([name]) => {
371
+ const ident = `${this._ident}_${name}`;
372
+ return [name, this.buildIdentifier(ident)];
373
+ });
374
+ }
375
+ return imported;
376
+ }
377
+ }
378
+
379
+ register(
380
+ ModuleExternalInitFragment,
381
+ "webpack/lib/ExternalModule",
382
+ "ModuleExternalInitFragment",
383
+ {
384
+ serialize(obj, { write }) {
385
+ write(obj._request);
386
+ write(obj._imported);
387
+ write(obj._ident);
388
+ write(obj._dependencyMeta);
389
+ },
390
+ deserialize({ read }) {
391
+ return new ModuleExternalInitFragment(read(), read(), read(), read());
392
+ }
393
+ }
394
+ );
395
+
396
+ /**
397
+ * @param {string} input input
398
+ * @param {ExportsInfo} exportsInfo the exports info
399
+ * @param {RuntimeSpec=} runtime the runtime
400
+ * @param {RuntimeTemplate=} runtimeTemplate the runtime template
401
+ * @returns {string | undefined} the module remapping
402
+ */
403
+ const generateModuleRemapping = (
404
+ input,
405
+ exportsInfo,
406
+ runtime,
407
+ runtimeTemplate
408
+ ) => {
409
+ if (exportsInfo.otherExportsInfo.getUsed(runtime) === UsageState.Unused) {
410
+ /** @type {string[]} */
411
+ const properties = [];
412
+ for (const exportInfo of exportsInfo.orderedExports) {
413
+ const used = exportInfo.getUsedName(exportInfo.name, runtime);
414
+ if (!used) continue;
415
+ const nestedInfo = exportInfo.getNestedExportsInfo();
416
+ if (nestedInfo) {
417
+ const nestedExpr = generateModuleRemapping(
418
+ `${input}${propertyAccess([exportInfo.name])}`,
419
+ nestedInfo
420
+ );
421
+ if (nestedExpr) {
422
+ properties.push(`[${JSON.stringify(used)}]: y(${nestedExpr})`);
423
+ continue;
424
+ }
425
+ }
426
+ properties.push(
427
+ `[${JSON.stringify(used)}]: ${
428
+ /** @type {RuntimeTemplate} */ (runtimeTemplate).returningFunction(
429
+ `${input}${propertyAccess([exportInfo.name])}`
430
+ )
431
+ }`
432
+ );
433
+ }
434
+ return `x({ ${properties.join(", ")} })`;
435
+ }
436
+ };
437
+
438
+ /**
439
+ * @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
440
+ * @param {ExportsInfo} exportsInfo exports info of this module
441
+ * @param {RuntimeSpec} runtime the runtime
442
+ * @param {RuntimeTemplate} runtimeTemplate the runtime template
443
+ * @param {ImportDependencyMeta} dependencyMeta the dependency meta
444
+ * @param {ConcatenationScope=} concatenationScope concatenationScope
445
+ * @returns {SourceData} the generated source
446
+ */
447
+ const getSourceForModuleExternal = (
448
+ moduleAndSpecifiers,
449
+ exportsInfo,
450
+ runtime,
451
+ runtimeTemplate,
452
+ dependencyMeta,
453
+ concatenationScope
454
+ ) => {
455
+ /** @type {Imported} */
456
+ let imported = true;
457
+ if (concatenationScope) {
458
+ const usedExports = exportsInfo.getUsedExports(runtime);
459
+ switch (usedExports) {
460
+ case true:
461
+ case null:
462
+ // unknown exports
463
+ imported = true;
464
+ break;
465
+ case false:
466
+ // no used exports
467
+ imported = [];
468
+ break;
469
+ default:
470
+ imported = [...usedExports.entries()];
471
+ }
472
+ }
473
+
474
+ if (!Array.isArray(moduleAndSpecifiers)) {
475
+ moduleAndSpecifiers = [moduleAndSpecifiers];
476
+ }
477
+
478
+ // Return to `namespace` when the external request includes a specific export
479
+ if (moduleAndSpecifiers.length > 1) {
480
+ imported = true;
481
+ }
482
+
483
+ const initFragment = new ModuleExternalInitFragment(
484
+ moduleAndSpecifiers[0],
485
+ imported,
486
+ undefined,
487
+ dependencyMeta,
488
+ runtimeTemplate.outputOptions.hashFunction
489
+ );
490
+ const normalizedImported = initFragment.getImported();
491
+
492
+ const baseAccess = `${initFragment.getNamespaceIdentifier()}${propertyAccess(
493
+ moduleAndSpecifiers,
494
+ 1
495
+ )}`;
496
+ let expression = baseAccess;
497
+
498
+ const useNamespace = imported === true;
499
+ /** @type {undefined | string} */
500
+ let moduleRemapping;
501
+ if (useNamespace) {
502
+ moduleRemapping = generateModuleRemapping(
503
+ baseAccess,
504
+ exportsInfo,
505
+ runtime,
506
+ runtimeTemplate
507
+ );
508
+ expression = moduleRemapping || baseAccess;
509
+ }
510
+ return {
511
+ expression,
512
+ init: moduleRemapping
513
+ ? `var x = ${runtimeTemplate.basicFunction(
514
+ "y",
515
+ `var x = {}; ${RuntimeGlobals.definePropertyGetters}(x, y); return x`
516
+ )} \nvar y = ${runtimeTemplate.returningFunction(
517
+ runtimeTemplate.returningFunction("x"),
518
+ "x"
519
+ )}`
520
+ : undefined,
521
+ specifiers: normalizedImported === true ? undefined : normalizedImported,
522
+ runtimeRequirements: moduleRemapping
523
+ ? RUNTIME_REQUIREMENTS_FOR_MODULE
524
+ : undefined,
525
+ chunkInitFragments: [
526
+ /** @type {InitFragment<EXPECTED_ANY>} */ (initFragment)
527
+ ]
528
+ };
529
+ };
530
+
531
+ /**
532
+ * @param {string | string[]} urlAndGlobal the script request
533
+ * @param {RuntimeTemplate} runtimeTemplate the runtime template
534
+ * @returns {SourceData} the generated source
535
+ */
536
+ const getSourceForScriptExternal = (urlAndGlobal, runtimeTemplate) => {
537
+ if (typeof urlAndGlobal === "string") {
538
+ urlAndGlobal = extractUrlAndGlobal(urlAndGlobal);
539
+ }
540
+ const url = urlAndGlobal[0];
541
+ const globalName = urlAndGlobal[1];
542
+ return {
543
+ init: "var __webpack_error__ = new Error();",
544
+ expression: `new Promise(${runtimeTemplate.basicFunction(
545
+ "resolve, reject",
546
+ [
547
+ `if(typeof ${globalName} !== "undefined") return resolve();`,
548
+ `${RuntimeGlobals.loadScript}(${JSON.stringify(
549
+ url
550
+ )}, ${runtimeTemplate.basicFunction("event", [
551
+ `if(typeof ${globalName} !== "undefined") return resolve();`,
552
+ "var errorType = event && (event.type === 'load' ? 'missing' : event.type);",
553
+ "var realSrc = event && event.target && event.target.src;",
554
+ "__webpack_error__.message = 'Loading script failed.\\n(' + errorType + ': ' + realSrc + ')';",
555
+ "__webpack_error__.name = 'ScriptExternalLoadError';",
556
+ "__webpack_error__.type = errorType;",
557
+ "__webpack_error__.request = realSrc;",
558
+ "reject(__webpack_error__);"
559
+ ])}, ${JSON.stringify(globalName)});`
560
+ ]
561
+ )}).then(${runtimeTemplate.returningFunction(
562
+ `${globalName}${propertyAccess(urlAndGlobal, 2)}`
563
+ )})`,
564
+ runtimeRequirements: RUNTIME_REQUIREMENTS_FOR_SCRIPT
565
+ };
566
+ };
567
+
568
+ /**
569
+ * @param {string} variableName the variable name to check
570
+ * @param {string} request the request path
571
+ * @param {RuntimeTemplate} runtimeTemplate the runtime template
572
+ * @returns {string} the generated source
573
+ */
574
+ const checkExternalVariable = (variableName, request, runtimeTemplate) =>
575
+ `if(typeof ${variableName} === 'undefined') { ${runtimeTemplate.throwMissingModuleErrorBlock(
576
+ { request }
577
+ )} }\n`;
578
+
579
+ /**
580
+ * @param {ModuleId | string} id the module id
581
+ * @param {boolean} optional true, if the module is optional
582
+ * @param {string | string[]} request the request path
583
+ * @param {RuntimeTemplate} runtimeTemplate the runtime template
584
+ * @returns {SourceData} the generated source
585
+ */
586
+ const getSourceForAmdOrUmdExternal = (
587
+ id,
588
+ optional,
589
+ request,
590
+ runtimeTemplate
591
+ ) => {
592
+ const externalVariable = `__WEBPACK_EXTERNAL_MODULE_${Template.toIdentifier(
593
+ `${id}`
594
+ )}__`;
595
+ return {
596
+ init: optional
597
+ ? checkExternalVariable(
598
+ externalVariable,
599
+ Array.isArray(request) ? request.join(".") : request,
600
+ runtimeTemplate
601
+ )
602
+ : undefined,
603
+ expression: externalVariable
604
+ };
605
+ };
606
+
607
+ /**
608
+ * @param {boolean} optional true, if the module is optional
609
+ * @param {string | string[]} request the request path
610
+ * @param {RuntimeTemplate} runtimeTemplate the runtime template
611
+ * @returns {SourceData} the generated source
612
+ */
613
+ const getSourceForDefaultCase = (optional, request, runtimeTemplate) => {
614
+ if (!Array.isArray(request)) {
615
+ // make it an array as the look up works the same basically
616
+ request = [request];
617
+ }
618
+
619
+ const variableName = request[0];
620
+ const objectLookup = propertyAccess(request, 1);
621
+ return {
622
+ init: optional
623
+ ? checkExternalVariable(variableName, request.join("."), runtimeTemplate)
624
+ : undefined,
625
+ expression: `${variableName}${objectLookup}`
626
+ };
627
+ };
628
+
629
+ /** @typedef {Record<string, string | string[]>} RequestRecord */
630
+ /** @typedef {string | string[] | RequestRecord} ExternalModuleRequest */
631
+
632
+ class ExternalModule extends Module {
633
+ /**
634
+ * @param {ExternalModuleRequest} request request
635
+ * @param {ExternalsType} type type
636
+ * @param {string} userRequest user request
637
+ * @param {DependencyMeta=} dependencyMeta dependency meta
638
+ */
639
+ constructor(request, type, userRequest, dependencyMeta) {
640
+ super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);
641
+
642
+ // Info from Factory
643
+ /** @type {ExternalModuleRequest} */
644
+ this.request = request;
645
+ /** @type {ExternalsType} */
646
+ this.externalType = type;
647
+ /** @type {string} */
648
+ this.userRequest = userRequest;
649
+ /** @type {DependencyMeta=} */
650
+ this.dependencyMeta = dependencyMeta;
651
+ }
652
+
653
+ /**
654
+ * @returns {SourceTypes} types available (do not mutate)
655
+ */
656
+ getSourceTypes() {
657
+ if (
658
+ this.externalType === "asset" &&
659
+ this.dependencyMeta &&
660
+ /** @type {AssetDependencyMeta} */
661
+ (this.dependencyMeta).sourceType === "css-url"
662
+ ) {
663
+ return CSS_URL_TYPES;
664
+ } else if (this.externalType === "css-import") {
665
+ return CSS_IMPORT_TYPES;
666
+ }
667
+
668
+ return JAVASCRIPT_TYPES;
669
+ }
670
+
671
+ /**
672
+ * @param {LibIdentOptions} options options
673
+ * @returns {LibIdent | null} an identifier for library inclusion
674
+ */
675
+ libIdent(options) {
676
+ return this.userRequest;
677
+ }
678
+
679
+ /**
680
+ * @param {Chunk} chunk the chunk which condition should be checked
681
+ * @param {Compilation} compilation the compilation
682
+ * @returns {boolean} true, if the chunk is ok for the module
683
+ */
684
+ chunkCondition(chunk, { chunkGraph }) {
685
+ return this.externalType === "css-import"
686
+ ? true
687
+ : chunkGraph.getNumberOfEntryModules(chunk) > 0;
688
+ }
689
+
690
+ /**
691
+ * @returns {string} a unique identifier of the module
692
+ */
693
+ identifier() {
694
+ return `external ${this._resolveExternalType(this.externalType)} ${JSON.stringify(this.request)}`;
695
+ }
696
+
697
+ /**
698
+ * @param {RequestShortener} requestShortener the request shortener
699
+ * @returns {string} a user readable identifier of the module
700
+ */
701
+ readableIdentifier(requestShortener) {
702
+ return `external ${JSON.stringify(this.request)}`;
703
+ }
704
+
705
+ /**
706
+ * @param {NeedBuildContext} context context info
707
+ * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
708
+ * @returns {void}
709
+ */
710
+ needBuild(context, callback) {
711
+ return callback(null, !this.buildMeta);
712
+ }
713
+
714
+ /**
715
+ * @param {WebpackOptions} options webpack options
716
+ * @param {Compilation} compilation the compilation
717
+ * @param {ResolverWithOptions} resolver the resolver
718
+ * @param {InputFileSystem} fs the file system
719
+ * @param {BuildCallback} callback callback function
720
+ * @returns {void}
721
+ */
722
+ build(options, compilation, resolver, fs, callback) {
723
+ this.buildMeta = {
724
+ async: false,
725
+ exportsType: undefined
726
+ };
727
+ this.buildInfo = {
728
+ strict: true,
729
+ topLevelDeclarations: new Set(),
730
+ javascriptModule: compilation.outputOptions.module
731
+ };
732
+ const { request, externalType } = this._getRequestAndExternalType();
733
+ this.buildMeta.exportsType = "dynamic";
734
+ let canMangle = false;
735
+ this.clearDependenciesAndBlocks();
736
+ switch (externalType) {
737
+ case "this":
738
+ this.buildInfo.strict = false;
739
+ break;
740
+ case "system":
741
+ if (!Array.isArray(request) || request.length === 1) {
742
+ this.buildMeta.exportsType = "namespace";
743
+ canMangle = true;
744
+ }
745
+ break;
746
+ case "module":
747
+ if (this.buildInfo.javascriptModule) {
748
+ if (!Array.isArray(request) || request.length === 1) {
749
+ this.buildMeta.exportsType = "namespace";
750
+ canMangle = true;
751
+ }
752
+ } else {
753
+ this.buildMeta.async = true;
754
+ EnvironmentNotSupportAsyncWarning.check(
755
+ this,
756
+ compilation.runtimeTemplate,
757
+ "external module"
758
+ );
759
+ if (!Array.isArray(request) || request.length === 1) {
760
+ this.buildMeta.exportsType = "namespace";
761
+ canMangle = false;
762
+ }
763
+ }
764
+ break;
765
+ case "script":
766
+ this.buildMeta.async = true;
767
+ EnvironmentNotSupportAsyncWarning.check(
768
+ this,
769
+ compilation.runtimeTemplate,
770
+ "external script"
771
+ );
772
+ break;
773
+ case "promise":
774
+ this.buildMeta.async = true;
775
+ EnvironmentNotSupportAsyncWarning.check(
776
+ this,
777
+ compilation.runtimeTemplate,
778
+ "external promise"
779
+ );
780
+ break;
781
+ case "import":
782
+ this.buildMeta.async = true;
783
+ EnvironmentNotSupportAsyncWarning.check(
784
+ this,
785
+ compilation.runtimeTemplate,
786
+ "external import"
787
+ );
788
+ if (!Array.isArray(request) || request.length === 1) {
789
+ this.buildMeta.exportsType = "namespace";
790
+ canMangle = false;
791
+ }
792
+ break;
793
+ }
794
+ this.addDependency(new StaticExportsDependency(true, canMangle));
795
+ callback();
796
+ }
797
+
798
+ /**
799
+ * restore unsafe cache data
800
+ * @param {UnsafeCacheData} unsafeCacheData data from getUnsafeCacheData
801
+ * @param {NormalModuleFactory} normalModuleFactory the normal module factory handling the unsafe caching
802
+ */
803
+ restoreFromUnsafeCache(unsafeCacheData, normalModuleFactory) {
804
+ this._restoreFromUnsafeCache(unsafeCacheData, normalModuleFactory);
805
+ }
806
+
807
+ /**
808
+ * @param {ConcatenationBailoutReasonContext} context context
809
+ * @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
810
+ */
811
+ getConcatenationBailoutReason(context) {
812
+ switch (this.externalType) {
813
+ case "amd":
814
+ case "amd-require":
815
+ case "umd":
816
+ case "umd2":
817
+ case "system":
818
+ case "jsonp":
819
+ return `${this.externalType} externals can't be concatenated`;
820
+ }
821
+ return undefined;
822
+ }
823
+
824
+ /**
825
+ * @private
826
+ * @returns {{ request: string | string[], externalType: ExternalsType }} the request and external type
827
+ */
828
+ _getRequestAndExternalType() {
829
+ let { request, externalType } = this;
830
+ if (typeof request === "object" && !Array.isArray(request)) {
831
+ request = request[externalType];
832
+ }
833
+ externalType = this._resolveExternalType(externalType);
834
+ return { request, externalType };
835
+ }
836
+
837
+ /**
838
+ * Resolve the detailed external type from the raw external type.
839
+ * e.g. resolve "module" or "import" from "module-import" type
840
+ * @param {ExternalsType} externalType raw external type
841
+ * @returns {ExternalsType} resolved external type
842
+ */
843
+ _resolveExternalType(externalType) {
844
+ if (externalType === "module-import") {
845
+ if (
846
+ this.dependencyMeta &&
847
+ /** @type {ImportDependencyMeta} */
848
+ (this.dependencyMeta).externalType
849
+ ) {
850
+ return /** @type {ImportDependencyMeta} */ (this.dependencyMeta)
851
+ .externalType;
852
+ }
853
+ return "module";
854
+ } else if (externalType === "asset") {
855
+ if (
856
+ this.dependencyMeta &&
857
+ /** @type {AssetDependencyMeta} */
858
+ (this.dependencyMeta).sourceType
859
+ ) {
860
+ return /** @type {AssetDependencyMeta} */ (this.dependencyMeta)
861
+ .sourceType;
862
+ }
863
+
864
+ return "asset";
865
+ }
866
+
867
+ return externalType;
868
+ }
869
+
870
+ /**
871
+ * @private
872
+ * @param {string | string[]} request request
873
+ * @param {ExternalsType} externalType the external type
874
+ * @param {RuntimeTemplate} runtimeTemplate the runtime template
875
+ * @param {ModuleGraph} moduleGraph the module graph
876
+ * @param {ChunkGraph} chunkGraph the chunk graph
877
+ * @param {RuntimeSpec} runtime the runtime
878
+ * @param {DependencyMeta | undefined} dependencyMeta the dependency meta
879
+ * @param {ConcatenationScope=} concatenationScope concatenationScope
880
+ * @returns {SourceData} the source data
881
+ */
882
+ _getSourceData(
883
+ request,
884
+ externalType,
885
+ runtimeTemplate,
886
+ moduleGraph,
887
+ chunkGraph,
888
+ runtime,
889
+ dependencyMeta,
890
+ concatenationScope
891
+ ) {
892
+ switch (externalType) {
893
+ case "this":
894
+ case "window":
895
+ case "self":
896
+ return getSourceForGlobalVariableExternal(request, this.externalType);
897
+ case "global":
898
+ return getSourceForGlobalVariableExternal(
899
+ request,
900
+ runtimeTemplate.globalObject
901
+ );
902
+ case "commonjs":
903
+ case "commonjs2":
904
+ case "commonjs-module":
905
+ case "commonjs-static":
906
+ return getSourceForCommonJsExternal(request);
907
+ case "node-commonjs":
908
+ return /** @type {BuildInfo} */ (this.buildInfo).javascriptModule
909
+ ? getSourceForCommonJsExternalInNodeModule(request, runtimeTemplate)
910
+ : getSourceForCommonJsExternal(request);
911
+ case "amd":
912
+ case "amd-require":
913
+ case "umd":
914
+ case "umd2":
915
+ case "system":
916
+ case "jsonp": {
917
+ const id = chunkGraph.getModuleId(this);
918
+ return getSourceForAmdOrUmdExternal(
919
+ id !== null ? id : this.identifier(),
920
+ this.isOptional(moduleGraph),
921
+ request,
922
+ runtimeTemplate
923
+ );
924
+ }
925
+ case "import":
926
+ return getSourceForImportExternal(
927
+ request,
928
+ runtimeTemplate,
929
+ /** @type {ImportDependencyMeta} */ (dependencyMeta)
930
+ );
931
+ case "script":
932
+ return getSourceForScriptExternal(request, runtimeTemplate);
933
+ case "module": {
934
+ if (!(/** @type {BuildInfo} */ (this.buildInfo).javascriptModule)) {
935
+ if (!runtimeTemplate.supportsDynamicImport()) {
936
+ throw new Error(
937
+ `The target environment doesn't support dynamic import() syntax so it's not possible to use external type 'module' within a script${
938
+ runtimeTemplate.supportsEcmaScriptModuleSyntax()
939
+ ? "\nDid you mean to build a EcmaScript Module ('output.module: true')?"
940
+ : ""
941
+ }`
942
+ );
943
+ }
944
+ return getSourceForImportExternal(
945
+ request,
946
+ runtimeTemplate,
947
+ /** @type {ImportDependencyMeta} */ (dependencyMeta)
948
+ );
949
+ }
950
+ if (!runtimeTemplate.supportsEcmaScriptModuleSyntax()) {
951
+ throw new Error(
952
+ "The target environment doesn't support EcmaScriptModule syntax so it's not possible to use external type 'module'"
953
+ );
954
+ }
955
+ return getSourceForModuleExternal(
956
+ request,
957
+ moduleGraph.getExportsInfo(this),
958
+ runtime,
959
+ runtimeTemplate,
960
+ /** @type {ImportDependencyMeta} */ (dependencyMeta),
961
+ concatenationScope
962
+ );
963
+ }
964
+ case "var":
965
+ case "promise":
966
+ case "assign":
967
+ default:
968
+ return getSourceForDefaultCase(
969
+ this.isOptional(moduleGraph),
970
+ request,
971
+ runtimeTemplate
972
+ );
973
+ }
974
+ }
975
+
976
+ /**
977
+ * @param {CodeGenerationContext} context context for code generation
978
+ * @returns {CodeGenerationResult} result
979
+ */
980
+ codeGeneration({
981
+ runtimeTemplate,
982
+ moduleGraph,
983
+ chunkGraph,
984
+ runtime,
985
+ concatenationScope
986
+ }) {
987
+ const { request, externalType } = this._getRequestAndExternalType();
988
+ switch (externalType) {
989
+ case "asset": {
990
+ /** @type {Sources} */
991
+ const sources = new Map();
992
+ sources.set(
993
+ JAVASCRIPT_TYPE,
994
+ new RawSource(`module.exports = ${JSON.stringify(request)};`)
995
+ );
996
+ /** @type {CodeGenerationResultData} */
997
+ const data = new Map();
998
+ data.set("url", { javascript: /** @type {string} */ (request) });
999
+ return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS, data };
1000
+ }
1001
+ case "css-url": {
1002
+ /** @type {Sources} */
1003
+ const sources = new Map();
1004
+ /** @type {CodeGenerationResultData} */
1005
+ const data = new Map();
1006
+ data.set("url", { "css-url": /** @type {string} */ (request) });
1007
+ return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS, data };
1008
+ }
1009
+ case "css-import": {
1010
+ /** @type {Sources} */
1011
+ const sources = new Map();
1012
+ const dependencyMeta = /** @type {CssImportDependencyMeta} */ (
1013
+ this.dependencyMeta
1014
+ );
1015
+ const layer =
1016
+ dependencyMeta.layer !== undefined
1017
+ ? ` layer(${dependencyMeta.layer})`
1018
+ : "";
1019
+ const supports = dependencyMeta.supports
1020
+ ? ` supports(${dependencyMeta.supports})`
1021
+ : "";
1022
+ const media = dependencyMeta.media ? ` ${dependencyMeta.media}` : "";
1023
+ sources.set(
1024
+ "css-import",
1025
+ new RawSource(
1026
+ `@import url(${JSON.stringify(
1027
+ request
1028
+ )})${layer}${supports}${media};`
1029
+ )
1030
+ );
1031
+ return {
1032
+ sources,
1033
+ runtimeRequirements: EMPTY_RUNTIME_REQUIREMENTS
1034
+ };
1035
+ }
1036
+ default: {
1037
+ const sourceData = this._getSourceData(
1038
+ request,
1039
+ externalType,
1040
+ runtimeTemplate,
1041
+ moduleGraph,
1042
+ chunkGraph,
1043
+ runtime,
1044
+ this.dependencyMeta,
1045
+ concatenationScope
1046
+ );
1047
+
1048
+ // sourceString can be empty str only when there is concatenationScope
1049
+ let sourceString = sourceData.expression;
1050
+ if (sourceData.iife) {
1051
+ sourceString = `(function() { return ${sourceString}; }())`;
1052
+ }
1053
+
1054
+ const specifiers = sourceData.specifiers;
1055
+ if (specifiers) {
1056
+ sourceString = "";
1057
+ const scope = /** @type {ConcatenationScope} */ (concatenationScope);
1058
+ for (const [specifier, finalName] of specifiers) {
1059
+ scope.registerRawExport(specifier, finalName);
1060
+ }
1061
+ } else if (concatenationScope) {
1062
+ sourceString = `${runtimeTemplate.renderConst()} ${ConcatenationScope.NAMESPACE_OBJECT_EXPORT} = ${sourceString};`;
1063
+ concatenationScope.registerNamespaceExport(
1064
+ ConcatenationScope.NAMESPACE_OBJECT_EXPORT
1065
+ );
1066
+ } else {
1067
+ sourceString = `module.exports = ${sourceString};`;
1068
+ }
1069
+ if (sourceData.init) {
1070
+ sourceString = `${sourceData.init}\n${sourceString}`;
1071
+ }
1072
+
1073
+ /** @type {undefined | CodeGenerationResultData} */
1074
+ let data;
1075
+ if (sourceData.chunkInitFragments) {
1076
+ data = new Map();
1077
+ data.set("chunkInitFragments", sourceData.chunkInitFragments);
1078
+ }
1079
+
1080
+ /** @type {Sources} */
1081
+ const sources = new Map();
1082
+ if (this.useSourceMap || this.useSimpleSourceMap) {
1083
+ sources.set(
1084
+ JAVASCRIPT_TYPE,
1085
+ new OriginalSource(sourceString, this.identifier())
1086
+ );
1087
+ } else {
1088
+ sources.set(JAVASCRIPT_TYPE, new RawSource(sourceString));
1089
+ }
1090
+
1091
+ let runtimeRequirements = sourceData.runtimeRequirements;
1092
+ if (!concatenationScope) {
1093
+ if (!runtimeRequirements) {
1094
+ runtimeRequirements = RUNTIME_REQUIREMENTS;
1095
+ } else {
1096
+ const set = new Set(runtimeRequirements);
1097
+ set.add(RuntimeGlobals.module);
1098
+ runtimeRequirements = set;
1099
+ }
1100
+ }
1101
+
1102
+ return {
1103
+ sources,
1104
+ runtimeRequirements:
1105
+ runtimeRequirements || EMPTY_RUNTIME_REQUIREMENTS,
1106
+ data
1107
+ };
1108
+ }
1109
+ }
1110
+ }
1111
+
1112
+ /**
1113
+ * @param {string=} type the source type for which the size should be estimated
1114
+ * @returns {number} the estimated size of the module (must be non-zero)
1115
+ */
1116
+ size(type) {
1117
+ return 42;
1118
+ }
1119
+
1120
+ /**
1121
+ * @param {Hash} hash the hash used to track dependencies
1122
+ * @param {UpdateHashContext} context context
1123
+ * @returns {void}
1124
+ */
1125
+ updateHash(hash, context) {
1126
+ const { chunkGraph } = context;
1127
+ hash.update(
1128
+ `${this._resolveExternalType(this.externalType)}${JSON.stringify(this.request)}${this.isOptional(
1129
+ chunkGraph.moduleGraph
1130
+ )}`
1131
+ );
1132
+ super.updateHash(hash, context);
1133
+ }
1134
+
1135
+ /**
1136
+ * @param {ObjectSerializerContext} context context
1137
+ */
1138
+ serialize(context) {
1139
+ const { write } = context;
1140
+
1141
+ write(this.request);
1142
+ write(this.externalType);
1143
+ write(this.userRequest);
1144
+ write(this.dependencyMeta);
1145
+
1146
+ super.serialize(context);
1147
+ }
1148
+
1149
+ /**
1150
+ * @param {ObjectDeserializerContext} context context
1151
+ */
1152
+ deserialize(context) {
1153
+ const { read } = context;
1154
+
1155
+ this.request = read();
1156
+ this.externalType = read();
1157
+ this.userRequest = read();
1158
+ this.dependencyMeta = read();
1159
+
1160
+ super.deserialize(context);
1161
+ }
1162
+ }
1163
+
1164
+ makeSerializable(ExternalModule, "webpack/lib/ExternalModule");
1165
+
1166
+ module.exports = ExternalModule;
1167
+ module.exports.ModuleExternalInitFragment = ModuleExternalInitFragment;
1168
+ module.exports.getExternalModuleNodeCommonjsInitFragment =
1169
+ getExternalModuleNodeCommonjsInitFragment;