@depup/webpack 5.109.2-depup.0 → 5.110.1-depup.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 (640) hide show
  1. package/README.md +5 -5
  2. package/changes.json +7 -7
  3. package/lib/APIPlugin.js +123 -17
  4. package/lib/AsyncDependenciesBlock.js +10 -7
  5. package/lib/AutomaticPrefetchPlugin.js +1 -1
  6. package/lib/BannerPlugin.js +10 -6
  7. package/lib/CacheFacade.js +6 -6
  8. package/lib/Chunk.js +14 -11
  9. package/lib/ChunkGraph.js +26 -17
  10. package/lib/ChunkGroup.js +7 -7
  11. package/lib/ChunkTemplate.js +35 -44
  12. package/lib/CircularModulesPlugin.js +205 -28
  13. package/lib/CleanPlugin.js +4 -7
  14. package/lib/CodeGenerationResults.js +11 -8
  15. package/lib/CompatibilityPlugin.js +7 -7
  16. package/lib/Compilation.js +688 -409
  17. package/lib/Compiler.js +53 -38
  18. package/lib/ConcatenationScope.js +117 -8
  19. package/lib/ConditionalInitFragment.js +3 -3
  20. package/lib/ConstPlugin.js +13 -11
  21. package/lib/ContextExclusionPlugin.js +1 -1
  22. package/lib/ContextModule.js +146 -54
  23. package/lib/ContextModuleFactory.js +46 -14
  24. package/lib/ContextReplacementPlugin.js +12 -14
  25. package/lib/DefinePlugin.js +121 -37
  26. package/lib/DependenciesBlock.js +9 -6
  27. package/lib/Dependency.js +36 -16
  28. package/lib/DependencyTemplate.js +11 -12
  29. package/lib/DependencyTemplates.js +3 -3
  30. package/lib/DotenvPlugin.js +50 -13
  31. package/lib/DynamicEntryPlugin.js +8 -4
  32. package/lib/EntryOptionPlugin.js +8 -4
  33. package/lib/EntryPlugin.js +2 -2
  34. package/lib/Entrypoint.js +6 -2
  35. package/lib/EnvironmentPlugin.js +2 -2
  36. package/lib/EvalDevToolModulePlugin.js +8 -4
  37. package/lib/EvalSourceMapDevToolPlugin.js +15 -8
  38. package/lib/ExportsInfo.js +101 -14
  39. package/lib/ExportsInfoApiPlugin.js +2 -4
  40. package/lib/ExternalModule.js +232 -77
  41. package/lib/ExternalModuleFactoryPlugin.js +97 -38
  42. package/lib/ExternalsPlugin.js +10 -6
  43. package/lib/FileSystemInfo.js +44 -70
  44. package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
  45. package/lib/FlagDependencyExportsPlugin.js +76 -19
  46. package/lib/FlagDependencyUsagePlugin.js +32 -47
  47. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  48. package/lib/Generator.js +36 -15
  49. package/lib/HotModuleReplacementPlugin.js +16 -44
  50. package/lib/IgnorePlugin.js +8 -4
  51. package/lib/IgnoreWarningsPlugin.js +2 -2
  52. package/lib/InitFragment.js +8 -4
  53. package/lib/JavascriptMetaInfoPlugin.js +35 -4
  54. package/lib/LazyBarrel.js +3 -4
  55. package/lib/LibraryTemplatePlugin.js +10 -6
  56. package/lib/LoaderOptionsPlugin.js +7 -3
  57. package/lib/LoaderTargetPlugin.js +1 -1
  58. package/lib/MainTemplate.js +49 -42
  59. package/lib/ManifestPlugin.js +12 -11
  60. package/lib/Module.js +62 -33
  61. package/lib/ModuleFactory.js +3 -3
  62. package/lib/ModuleFilenameHelpers.js +9 -4
  63. package/lib/ModuleGraph.js +195 -21
  64. package/lib/ModuleGraphConnection.js +6 -13
  65. package/lib/ModuleInfoHeaderPlugin.js +8 -10
  66. package/lib/ModuleTemplate.js +62 -63
  67. package/lib/MultiCompiler.js +130 -64
  68. package/lib/MultiStats.js +40 -9
  69. package/lib/MultiWatching.js +3 -3
  70. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  71. package/lib/NodeStuffPlugin.js +29 -19
  72. package/lib/NormalModule.js +141 -85
  73. package/lib/NormalModuleFactory.js +555 -110
  74. package/lib/NormalModuleReplacementPlugin.js +5 -8
  75. package/lib/NullFactory.js +6 -2
  76. package/lib/OptionsApply.js +7 -3
  77. package/lib/Parser.js +7 -3
  78. package/lib/PlatformPlugin.js +2 -2
  79. package/lib/PrefetchPlugin.js +1 -1
  80. package/lib/ProgressPlugin.js +16 -13
  81. package/lib/ProvidePlugin.js +3 -5
  82. package/lib/RawModule.js +25 -17
  83. package/lib/RecordIdsPlugin.js +3 -3
  84. package/lib/RequestShortener.js +1 -1
  85. package/lib/ResolverFactory.js +2 -2
  86. package/lib/RuntimeGlobals.js +22 -10
  87. package/lib/RuntimeModule.js +29 -19
  88. package/lib/RuntimePlugin.js +332 -169
  89. package/lib/RuntimeTemplate.js +2792 -352
  90. package/lib/SelfModuleFactory.js +7 -3
  91. package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
  92. package/lib/SourceMapDevToolPlugin.js +30 -20
  93. package/lib/Stats.js +3 -4
  94. package/lib/Template.js +32 -22
  95. package/lib/TemplatedPathPlugin.js +96 -14
  96. package/lib/UseStrictPlugin.js +4 -6
  97. package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
  98. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  99. package/lib/WarnNoModeSetPlugin.js +1 -1
  100. package/lib/WatchIgnorePlugin.js +8 -6
  101. package/lib/Watching.js +8 -8
  102. package/lib/WebpackIsIncludedPlugin.js +2 -4
  103. package/lib/WebpackOptionsApply.js +308 -18
  104. package/lib/WebpackOptionsDefaulter.js +6 -2
  105. package/lib/asset/AssetBytesGenerator.js +12 -10
  106. package/lib/asset/AssetBytesParser.js +2 -4
  107. package/lib/asset/AssetGenerator.js +188 -95
  108. package/lib/asset/AssetModule.js +7 -3
  109. package/lib/asset/AssetModulesPlugin.js +110 -38
  110. package/lib/asset/AssetParser.js +9 -7
  111. package/lib/asset/AssetSourceGenerator.js +60 -13
  112. package/lib/asset/AssetSourceParser.js +2 -4
  113. package/lib/asset/RawDataUrlModule.js +24 -16
  114. package/lib/asset/WebManifestGenerator.js +8 -10
  115. package/lib/asset/WebManifestParser.js +24 -10
  116. package/lib/async-modules/AsyncModuleHelpers.js +2 -2
  117. package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
  118. package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
  119. package/lib/async-modules/isGeneratorLowered.js +4 -4
  120. package/lib/buildChunkGraph.js +36 -27
  121. package/lib/bun/BunTargetPlugin.js +1 -1
  122. package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
  123. package/lib/cache/AddManagedPathsPlugin.js +1 -1
  124. package/lib/cache/IdleFileCachePlugin.js +2 -2
  125. package/lib/cache/MemoryCachePlugin.js +18 -10
  126. package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
  127. package/lib/cache/PackFileCacheStrategy.js +30 -23
  128. package/lib/cache/ResolverCachePlugin.js +38 -18
  129. package/lib/cache/getLazyHashedEtag.js +1 -2
  130. package/lib/cache/mergeEtags.js +1 -1
  131. package/lib/cli.js +1 -3
  132. package/lib/config/browserslistTargetHandler.js +41 -5
  133. package/lib/config/defaults.js +261 -79
  134. package/lib/config/defineConfig.js +10 -2
  135. package/lib/config/getClaimedAssetTypes.js +65 -0
  136. package/lib/config/normalization.js +36 -16
  137. package/lib/config/target.js +46 -3
  138. package/lib/container/ContainerEntryDependency.js +1 -1
  139. package/lib/container/ContainerEntryModule.js +24 -15
  140. package/lib/container/ContainerEntryModuleFactory.js +7 -3
  141. package/lib/container/ContainerPlugin.js +9 -10
  142. package/lib/container/ContainerReferencePlugin.js +6 -2
  143. package/lib/container/FallbackDependency.js +1 -1
  144. package/lib/container/FallbackModule.js +24 -17
  145. package/lib/container/FallbackModuleFactory.js +7 -3
  146. package/lib/container/HoistContainerReferencesPlugin.js +6 -11
  147. package/lib/container/ModuleFederationPlugin.js +7 -24
  148. package/lib/container/RemoteModule.js +27 -19
  149. package/lib/container/RemoteRuntimeModule.js +10 -8
  150. package/lib/container/moduleFederationHooks.js +32 -0
  151. package/lib/css/CssGenerator.js +171 -43
  152. package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
  153. package/lib/css/CssLoadingRuntimeModule.js +57 -24
  154. package/lib/css/CssModule.js +10 -7
  155. package/lib/css/CssModulesPlugin.js +168 -88
  156. package/lib/css/CssParser.js +1113 -568
  157. package/lib/css/CssServerStylesRuntimeModule.js +54 -0
  158. package/lib/css/cssMinify.js +168 -0
  159. package/lib/css/data.js +5324 -0
  160. package/lib/css/syntax.js +9579 -232
  161. package/lib/debug/ProfilingPlugin.js +14 -9
  162. package/lib/deno/DenoTargetPlugin.js +1 -1
  163. package/lib/dependencies/AMDDefineDependency.js +112 -87
  164. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
  165. package/lib/dependencies/AMDPlugin.js +9 -7
  166. package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
  167. package/lib/dependencies/AMDRequireContextDependency.js +2 -2
  168. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
  169. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
  170. package/lib/dependencies/AMDRequireDependency.js +8 -7
  171. package/lib/dependencies/AMDRequireItemDependency.js +1 -1
  172. package/lib/dependencies/AMDRuntimeModules.js +21 -1
  173. package/lib/dependencies/BuildTimeConstDependency.js +102 -0
  174. package/lib/dependencies/CachedConstDependency.js +11 -8
  175. package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
  176. package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
  177. package/lib/dependencies/CommonJsExportsDependency.js +53 -49
  178. package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
  179. package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
  180. package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
  181. package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
  182. package/lib/dependencies/CommonJsPlugin.js +35 -6
  183. package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
  184. package/lib/dependencies/CommonJsRequireDependency.js +156 -27
  185. package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
  186. package/lib/dependencies/ConstDependency.js +8 -9
  187. package/lib/dependencies/ContextDependency.js +12 -8
  188. package/lib/dependencies/ContextDependencyHelpers.js +14 -9
  189. package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
  190. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
  191. package/lib/dependencies/ContextElementDependency.js +31 -12
  192. package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
  193. package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
  194. package/lib/dependencies/CssIcssExportDependency.js +56 -28
  195. package/lib/dependencies/CssIcssImportDependency.js +17 -13
  196. package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
  197. package/lib/dependencies/CssImportDependency.js +18 -9
  198. package/lib/dependencies/CssUrlDependency.js +17 -13
  199. package/lib/dependencies/DllEntryDependency.js +1 -1
  200. package/lib/dependencies/DynamicExports.js +2 -2
  201. package/lib/dependencies/ExportBindingInitFragment.js +36 -9
  202. package/lib/dependencies/ExportsInfoDependency.js +7 -8
  203. package/lib/dependencies/ExternalModuleDependency.js +9 -5
  204. package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
  205. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
  206. package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
  207. package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
  208. package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
  209. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +13 -10
  210. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
  211. package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
  212. package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
  213. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -63
  214. package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
  215. package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
  216. package/lib/dependencies/HarmonyExports.js +7 -4
  217. package/lib/dependencies/HarmonyImportDependency.js +27 -19
  218. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
  219. package/lib/dependencies/HarmonyImportGuard.js +20 -30
  220. package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
  221. package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
  222. package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
  223. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
  224. package/lib/dependencies/HtmlEntryDependency.js +37 -29
  225. package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
  226. package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
  227. package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
  228. package/lib/dependencies/HtmlSourceDependency.js +22 -14
  229. package/lib/dependencies/ImportContextDependency.js +2 -2
  230. package/lib/dependencies/ImportDependency.js +24 -20
  231. package/lib/dependencies/ImportEagerDependency.js +6 -9
  232. package/lib/dependencies/ImportMetaContextDependency.js +2 -2
  233. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
  234. package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
  235. package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
  236. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
  237. package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
  238. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
  239. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
  240. package/lib/dependencies/ImportMetaPlugin.js +154 -71
  241. package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
  242. package/lib/dependencies/ImportParserPlugin.js +49 -35
  243. package/lib/dependencies/ImportPhase.js +12 -5
  244. package/lib/dependencies/ImportPlugin.js +7 -3
  245. package/lib/dependencies/ImportWeakDependency.js +6 -9
  246. package/lib/dependencies/JsonExportsDependency.js +11 -7
  247. package/lib/dependencies/LoaderDependency.js +2 -2
  248. package/lib/dependencies/LoaderImportDependency.js +2 -2
  249. package/lib/dependencies/LoaderPlugin.js +11 -7
  250. package/lib/dependencies/LocalModuleDependency.js +5 -5
  251. package/lib/dependencies/LocalModulesHelpers.js +1 -1
  252. package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
  253. package/lib/dependencies/ModuleDependency.js +9 -6
  254. package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
  255. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
  256. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  257. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
  258. package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
  259. package/lib/dependencies/NullDependency.js +3 -3
  260. package/lib/dependencies/ProvidedDependency.js +14 -10
  261. package/lib/dependencies/PureExpressionDependency.js +9 -10
  262. package/lib/dependencies/RequireContextDependency.js +2 -2
  263. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
  264. package/lib/dependencies/RequireContextPlugin.js +8 -4
  265. package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
  266. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
  267. package/lib/dependencies/RequireEnsureDependency.js +8 -7
  268. package/lib/dependencies/RequireEnsurePlugin.js +7 -3
  269. package/lib/dependencies/RequireHeaderDependency.js +51 -12
  270. package/lib/dependencies/RequireIncludeDependency.js +6 -6
  271. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
  272. package/lib/dependencies/RequireIncludePlugin.js +7 -3
  273. package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
  274. package/lib/dependencies/RequireResolveContextDependency.js +2 -2
  275. package/lib/dependencies/RequireResolveDependency.js +4 -4
  276. package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
  277. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
  278. package/lib/dependencies/StaticExportsDependency.js +2 -2
  279. package/lib/dependencies/SystemPlugin.js +10 -6
  280. package/lib/dependencies/SystemRuntimeModule.js +10 -0
  281. package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
  282. package/lib/dependencies/URLContextDependency.js +2 -2
  283. package/lib/dependencies/URLDependency.js +110 -64
  284. package/lib/dependencies/URLPlugin.js +7 -3
  285. package/lib/dependencies/UnsupportedDependency.js +4 -4
  286. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
  287. package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
  288. package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
  289. package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
  290. package/lib/dependencies/WorkerDependency.js +28 -22
  291. package/lib/dependencies/WorkletDependency.js +15 -14
  292. package/lib/dependencies/getFunctionExpression.js +8 -4
  293. package/lib/dependencies/processExportInfo.js +5 -5
  294. package/lib/dll/DelegatedModule.js +34 -22
  295. package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
  296. package/lib/dll/DelegatedPlugin.js +2 -2
  297. package/lib/dll/DllEntryPlugin.js +2 -2
  298. package/lib/dll/DllModule.js +22 -15
  299. package/lib/dll/DllModuleFactory.js +7 -3
  300. package/lib/dll/DllPlugin.js +7 -5
  301. package/lib/dll/DllReferencePlugin.js +10 -7
  302. package/lib/dll/LibManifestPlugin.js +5 -5
  303. package/lib/electron/ElectronTargetPlugin.js +53 -49
  304. package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
  305. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  306. package/lib/errors/BroadContextsWarning.js +43 -0
  307. package/lib/errors/BuildCycleError.js +1 -1
  308. package/lib/errors/CacheEffectivenessWarning.js +55 -0
  309. package/lib/errors/ChunkRenderError.js +1 -1
  310. package/lib/errors/CircularDependenciesWarning.js +38 -0
  311. package/lib/errors/CodeGenerationError.js +1 -1
  312. package/lib/errors/CommentCompilationWarning.js +1 -1
  313. package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
  314. package/lib/errors/DuplicateModulesWarning.js +45 -0
  315. package/lib/errors/DynamicExportsWarning.js +30 -0
  316. package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
  317. package/lib/errors/EntrypointOverlapWarning.js +45 -0
  318. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  319. package/lib/errors/EvalUsageWarning.js +28 -0
  320. package/lib/errors/HookWebpackError.js +5 -5
  321. package/lib/errors/HotspotsWarning.js +57 -0
  322. package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
  323. package/lib/errors/InlinedAssetsWarning.js +36 -0
  324. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  325. package/lib/errors/LargeModulesWarning.js +45 -0
  326. package/lib/errors/LegacyJavascriptWarning.js +48 -0
  327. package/lib/errors/MissingSideEffectsWarning.js +36 -0
  328. package/lib/errors/MixedExportsWarning.js +41 -0
  329. package/lib/errors/ModuleDependencyError.js +13 -16
  330. package/lib/errors/ModuleDependencyWarning.js +5 -15
  331. package/lib/errors/ModuleHashingError.js +1 -1
  332. package/lib/errors/ModuleNotFoundError.js +2 -2
  333. package/lib/errors/ModuleParseError.js +1 -2
  334. package/lib/errors/ModuleRestoreError.js +1 -1
  335. package/lib/errors/ModuleStoreError.js +1 -1
  336. package/lib/errors/NodeStuffInWebError.js +1 -1
  337. package/lib/errors/OsDependentRuleWarning.js +31 -0
  338. package/lib/errors/PureAnnotationsWarning.js +36 -0
  339. package/lib/errors/RedundantDynamicImportWarning.js +31 -0
  340. package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
  341. package/lib/errors/SplitChunksCappedWarning.js +41 -0
  342. package/lib/errors/TinyChunksWarning.js +40 -0
  343. package/lib/errors/TopLevelThisWarning.js +34 -0
  344. package/lib/errors/UnsplitVendorsWarning.js +42 -0
  345. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  346. package/lib/errors/UnusedAliasesWarning.js +29 -0
  347. package/lib/errors/UnusedDefinesWarning.js +29 -0
  348. package/lib/errors/UnusedExternalsWarning.js +29 -0
  349. package/lib/errors/UnusedReexportsWarning.js +42 -0
  350. package/lib/errors/UnusedRuleWarning.js +29 -0
  351. package/lib/errors/WebpackError.js +9 -5
  352. package/lib/errors/deriveStackFromNestedError.js +90 -0
  353. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  354. package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
  355. package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
  356. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +155 -62
  357. package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
  358. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  359. package/lib/hmr/LazyCompilationPlugin.js +45 -24
  360. package/lib/hmr/lazyCompilationBackend.js +9 -6
  361. package/lib/hmr/parserHooks.js +56 -0
  362. package/lib/html/HtmlGenerator.js +277 -77
  363. package/lib/html/HtmlModule.js +7 -3
  364. package/lib/html/HtmlModulesPlugin.js +282 -162
  365. package/lib/html/HtmlParser.js +31 -86
  366. package/lib/html/data.js +1928 -0
  367. package/lib/html/htmlMinify.js +288 -0
  368. package/lib/html/syntax.js +5557 -1155
  369. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
  370. package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
  371. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  372. package/lib/ids/HashedModuleIdsPlugin.js +6 -2
  373. package/lib/ids/IdHelpers.js +7 -8
  374. package/lib/ids/NamedChunkIdsPlugin.js +1 -1
  375. package/lib/ids/NamedModuleIdsPlugin.js +1 -1
  376. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  377. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  378. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
  379. package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
  380. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  381. package/lib/index.js +10 -0
  382. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
  383. package/lib/javascript/BasicEvaluatedExpression.js +18 -14
  384. package/lib/javascript/ChunkFormatHelpers.js +6 -6
  385. package/lib/javascript/ChunkHelpers.js +1 -1
  386. package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
  387. package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
  388. package/lib/javascript/JavascriptGenerator.js +65 -165
  389. package/lib/javascript/JavascriptModule.js +9 -3
  390. package/lib/javascript/JavascriptModulesPlugin.js +98 -113
  391. package/lib/javascript/JavascriptParser.js +242 -99
  392. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  393. package/lib/javascript/ScopeAnalyzer.js +1094 -0
  394. package/lib/javascript/StartupHelpers.js +55 -9
  395. package/lib/javascript/syntax.js +2678 -232
  396. package/lib/json/JsonData.js +8 -4
  397. package/lib/json/JsonGenerator.js +38 -16
  398. package/lib/json/JsonModule.js +7 -3
  399. package/lib/json/JsonModulesPlugin.js +1 -1
  400. package/lib/json/JsonParser.js +5 -6
  401. package/lib/library/AbstractLibraryPlugin.js +20 -14
  402. package/lib/library/AmdLibraryPlugin.js +11 -7
  403. package/lib/library/AssignLibraryPlugin.js +19 -13
  404. package/lib/library/EnableLibraryPlugin.js +2 -2
  405. package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
  406. package/lib/library/JsonpLibraryPlugin.js +11 -7
  407. package/lib/library/ModuleLibraryPlugin.js +256 -64
  408. package/lib/library/SystemLibraryPlugin.js +12 -8
  409. package/lib/library/UmdLibraryPlugin.js +62 -25
  410. package/lib/loaders/LoaderRunner.js +14 -1
  411. package/lib/loaders/loadLoader.js +8 -4
  412. package/lib/logging/createConsoleLogger.js +7 -4
  413. package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
  414. package/lib/node/NodeEnvironmentPlugin.js +17 -3
  415. package/lib/node/NodeSourcePlugin.js +1 -1
  416. package/lib/node/NodeTargetPlugin.js +4 -3
  417. package/lib/node/NodeTemplatePlugin.js +1 -1
  418. package/lib/node/NodeWatchFileSystem.js +70 -9
  419. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
  420. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +72 -19
  421. package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
  422. package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
  423. package/lib/node/nodeConsole.js +7 -3
  424. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  425. package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
  426. package/lib/optimize/ConcatenatedModule.js +985 -470
  427. package/lib/optimize/ConstExportsPlugin.js +11 -7
  428. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  429. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
  430. package/lib/optimize/InlineExports.js +9 -5
  431. package/lib/optimize/InnerGraph.js +28 -12
  432. package/lib/optimize/InnerGraphPlugin.js +23 -18
  433. package/lib/optimize/LimitChunkCountPlugin.js +7 -3
  434. package/lib/optimize/MangleExportsPlugin.js +7 -8
  435. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
  436. package/lib/optimize/MinChunkSizePlugin.js +7 -3
  437. package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
  438. package/lib/optimize/RealContentHashPlugin.js +10 -6
  439. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  440. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  441. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  442. package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
  443. package/lib/optimize/SplitChunksPlugin.js +86 -24
  444. package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
  445. package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
  446. package/lib/performance/BroadContextsPlugin.js +142 -0
  447. package/lib/performance/CacheEffectivenessPlugin.js +125 -0
  448. package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
  449. package/lib/performance/DuplicateModulesPlugin.js +93 -0
  450. package/lib/performance/DuplicatePackagesPlugin.js +119 -0
  451. package/lib/performance/DuplicatePackagesWarning.js +84 -0
  452. package/lib/performance/DynamicExportsPlugin.js +120 -0
  453. package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
  454. package/lib/performance/EntrypointOverlapPlugin.js +122 -0
  455. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
  456. package/lib/performance/EvalUsagePlugin.js +115 -0
  457. package/lib/performance/HotspotsPlugin.js +296 -0
  458. package/lib/performance/InlinedAssetsPlugin.js +99 -0
  459. package/lib/performance/LargeModulesPlugin.js +126 -0
  460. package/lib/performance/LegacyJavascriptPlugin.js +139 -0
  461. package/lib/performance/MissingSideEffectsPlugin.js +138 -0
  462. package/lib/performance/MixedExportsPlugin.js +136 -0
  463. package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
  464. package/lib/performance/PureAnnotationsPlugin.js +219 -0
  465. package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
  466. package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
  467. package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
  468. package/lib/performance/SizeLimitsPlugin.js +139 -7
  469. package/lib/performance/SplitChunksCappedPlugin.js +99 -0
  470. package/lib/performance/TinyChunksPlugin.js +128 -0
  471. package/lib/performance/TopLevelThisPlugin.js +208 -0
  472. package/lib/performance/UnsplitVendorsPlugin.js +112 -0
  473. package/lib/performance/UnusedAliasesPlugin.js +253 -0
  474. package/lib/performance/UnusedDefinesPlugin.js +87 -0
  475. package/lib/performance/UnusedExternalsPlugin.js +110 -0
  476. package/lib/performance/UnusedReexportsPlugin.js +159 -0
  477. package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
  478. package/lib/performance/getModuleSize.js +22 -0
  479. package/lib/performance/getSourceModules.js +22 -0
  480. package/lib/performance/hasOnlyUnusedExports.js +40 -0
  481. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
  482. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
  483. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
  484. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  485. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  486. package/lib/prefetch/ResourceHintPlugin.js +295 -78
  487. package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
  488. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
  489. package/lib/prefetch/parseResourceHintOptions.js +31 -4
  490. package/lib/rules/BasicEffectRulePlugin.js +2 -2
  491. package/lib/rules/BasicMatcherRulePlugin.js +8 -4
  492. package/lib/rules/GlobMatcherRulePlugin.js +68 -0
  493. package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
  494. package/lib/rules/RuleSetCompiler.js +146 -12
  495. package/lib/rules/UseEffectRulePlugin.js +18 -11
  496. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
  497. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  498. package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
  499. package/lib/runtime/BaseUriRuntimeModule.js +33 -7
  500. package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
  501. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
  502. package/lib/runtime/CompatRuntimeModule.js +5 -3
  503. package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
  504. package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
  505. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
  506. package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
  507. package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
  508. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
  509. package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
  510. package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
  511. package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
  512. package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
  513. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
  514. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
  515. package/lib/runtime/GlobalRuntimeModule.js +18 -0
  516. package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
  517. package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
  518. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
  519. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
  520. package/lib/runtime/NonceRuntimeModule.js +10 -0
  521. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
  522. package/lib/runtime/PublicPathRuntimeModule.js +12 -2
  523. package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
  524. package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
  525. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
  526. package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
  527. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  528. package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
  529. package/lib/runtime/SystemContextRuntimeModule.js +10 -0
  530. package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
  531. package/lib/runtime/WorkerRuntimeModule.js +11 -1
  532. package/lib/runtime/baseUri.js +63 -0
  533. package/lib/schemes/DataUriPlugin.js +1 -1
  534. package/lib/schemes/FileUriPlugin.js +1 -1
  535. package/lib/schemes/HttpUriPlugin.js +24 -15
  536. package/lib/schemes/VirtualUrlPlugin.js +13 -7
  537. package/lib/serialization/AggregateErrorSerializer.js +1 -1
  538. package/lib/serialization/BinaryMiddleware.js +4 -4
  539. package/lib/serialization/ErrorObjectSerializer.js +1 -1
  540. package/lib/serialization/FileMiddleware.js +7 -7
  541. package/lib/serialization/ObjectMiddleware.js +139 -114
  542. package/lib/serialization/PlainObjectSerializer.js +19 -16
  543. package/lib/sharing/ConsumeSharedModule.js +30 -21
  544. package/lib/sharing/ConsumeSharedPlugin.js +18 -10
  545. package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
  546. package/lib/sharing/ProvideSharedModule.js +25 -16
  547. package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
  548. package/lib/sharing/ProvideSharedPlugin.js +8 -4
  549. package/lib/sharing/SharePlugin.js +17 -5
  550. package/lib/sharing/ShareRuntimeModule.js +4 -4
  551. package/lib/sharing/resolveMatchedConfigs.js +9 -6
  552. package/lib/sharing/utils.js +1 -3
  553. package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
  554. package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
  555. package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
  556. package/lib/stats/StatsFactory.js +25 -26
  557. package/lib/stats/StatsPrinter.js +16 -12
  558. package/lib/typescript/TypeScriptPlugin.js +12 -14
  559. package/lib/url/URLParserPlugin.js +26 -13
  560. package/lib/util/AsyncQueue.js +4 -3
  561. package/lib/util/Hash.js +5 -1
  562. package/lib/util/LazySet.js +35 -22
  563. package/lib/util/LocConverter.js +36 -13
  564. package/lib/util/SourceProcessor.js +1050 -24
  565. package/lib/util/StringXor.js +1 -1
  566. package/lib/util/chainedImports.js +9 -5
  567. package/lib/util/cleverMerge.js +1 -1
  568. package/lib/util/comparators.js +45 -14
  569. package/lib/util/concatenate.js +203 -77
  570. package/lib/util/conventions.js +5 -1
  571. package/lib/util/createHash.js +2 -2
  572. package/lib/util/createHooksRegistry.js +8 -10
  573. package/lib/util/dataURL.js +225 -1
  574. package/lib/util/extractSourceMap.js +4 -3
  575. package/lib/util/findCaseMismatch.js +139 -0
  576. package/lib/util/formatLocation.js +1 -2
  577. package/lib/util/fs.js +22 -5
  578. package/lib/util/globUtils.js +298 -24
  579. package/lib/util/hash/BatchedHash.js +5 -1
  580. package/lib/util/hash/BulkUpdateHash.js +5 -1
  581. package/lib/util/hash/DebugHash.js +5 -1
  582. package/lib/util/hash/hash-digest.js +6 -2
  583. package/lib/util/identifier.js +4 -0
  584. package/lib/util/implicitTypeLoaderFallback.js +1 -1
  585. package/lib/util/internalSerializables.js +6 -0
  586. package/lib/util/lazyModule.js +56 -0
  587. package/lib/util/makeSerializable.js +7 -3
  588. package/lib/util/matchAlias.js +25 -0
  589. package/lib/util/mimeTypes.js +11 -5
  590. package/lib/util/nonNumericOnlyHash.js +4 -3
  591. package/lib/util/parseJson.js +5 -3
  592. package/lib/util/preloadModuleType.js +32 -0
  593. package/lib/util/registerExternalSerializer.js +7 -5
  594. package/lib/util/runtime.js +2 -2
  595. package/lib/util/semver.js +1 -1
  596. package/lib/util/serialization.js +28 -28
  597. package/lib/util/source.js +2 -2
  598. package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
  599. package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
  600. package/lib/wasm/wasmModuleFilename.js +54 -0
  601. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
  602. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
  603. package/lib/wasm-async/AsyncWasmModule.js +3 -3
  604. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
  605. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
  606. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
  607. package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
  608. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
  609. package/lib/wasm-sync/SyncWasmModule.js +2 -2
  610. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
  611. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
  612. package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
  613. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
  614. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
  615. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
  616. package/lib/wasm-sync/WebAssemblyParser.js +4 -6
  617. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  618. package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
  619. package/lib/web/FetchCompileWasmPlugin.js +46 -16
  620. package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
  621. package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
  622. package/lib/web/JsonpTemplatePlugin.js +2 -2
  623. package/lib/webpack.js +22 -11
  624. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
  625. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
  626. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  627. package/module.d.ts +1 -0
  628. package/package.json +32 -25
  629. package/schemas/WebpackOptions.check.js +1 -1
  630. package/schemas/WebpackOptions.json +670 -36
  631. package/schemas/plugins/HtmlParserOptions.check.js +1 -1
  632. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  633. package/schemas/plugins/container/ContainerPlugin.json +10 -0
  634. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  635. package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
  636. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
  637. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  638. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  639. package/types.d.ts +3144 -454
  640. package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
@@ -9,7 +9,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
9
9
  const RuntimeModule = require("../RuntimeModule");
10
10
  const Template = require("../Template");
11
11
 
12
- /** @typedef {import("../Compilation")} Compilation */
12
+ /** @import Compilation from "../Compilation" */
13
13
 
14
14
  /**
15
15
  * Provides a single object URL (one per base URI) for the worklet bootstrap
@@ -23,6 +23,16 @@ class GetWorkletBootstrapRuntimeModule extends RuntimeModule {
23
23
  super("get worklet bootstrap", RuntimeModule.STAGE_ATTACH);
24
24
  }
25
25
 
26
+ /**
27
+ * Returns true, if the runtime module should get it's own scope.
28
+ * When false, `generate()` must emit complete statements ending with `;`
29
+ * so a following runtime IIFE is not parsed as a call (ASI).
30
+ * @returns {boolean} true, if the runtime module should get it's own scope
31
+ */
32
+ shouldIsolate() {
33
+ return false;
34
+ }
35
+
26
36
  /**
27
37
  * Generates runtime code for this runtime module.
28
38
  * @returns {string | null} runtime code
@@ -38,8 +48,11 @@ class GetWorkletBootstrapRuntimeModule extends RuntimeModule {
38
48
  Template.indent([
39
49
  "var script = [",
40
50
  Template.indent([
41
- // worklet scopes have no `self`; chunks assume a worker-like scope
42
- '"globalThis.self = globalThis.self || globalThis;",',
51
+ // worklet scopes have no `self`; chunks assume a worker-like scope.
52
+ // `||=` is newer than worklets themselves, so it stays gated.
53
+ `${JSON.stringify(
54
+ `${runtimeTemplate.assignOr("globalThis.self", "globalThis")};`
55
+ )},`,
43
56
  // some runtime modules read `location`; forward the document base
44
57
  '"globalThis.location = " + JSON.stringify(base) + ";"'
45
58
  ]),
@@ -8,16 +8,34 @@ const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const RuntimeModule = require("../RuntimeModule");
9
9
  const Template = require("../Template");
10
10
 
11
+ /** @typedef {import("../Compilation")} Compilation */
12
+
11
13
  class GlobalRuntimeModule extends RuntimeModule {
12
14
  constructor() {
13
15
  super("global");
14
16
  }
15
17
 
18
+ /**
19
+ * Returns true, if the runtime module should get it's own scope.
20
+ * When false, `generate()` must emit complete statements ending with `;`
21
+ * so a following runtime IIFE is not parsed as a call (ASI).
22
+ * @returns {boolean} true, if the runtime module should get it's own scope
23
+ */
24
+ shouldIsolate() {
25
+ return false;
26
+ }
27
+
16
28
  /**
17
29
  * Generates runtime code for this runtime module.
18
30
  * @returns {string | null} runtime code
19
31
  */
20
32
  generate() {
33
+ const compilation = /** @type {Compilation} */ (this.compilation);
34
+ // `environment.globalThis` promises the binding is there, so nothing has to
35
+ // be searched for.
36
+ if (compilation.outputOptions.environment.globalThis) {
37
+ return `${RuntimeGlobals.global} = globalThis;`;
38
+ }
21
39
  return Template.asString([
22
40
  `${RuntimeGlobals.global} = (function() {`,
23
41
  Template.indent([
@@ -9,13 +9,23 @@ const RuntimeGlobals = require("../RuntimeGlobals");
9
9
  const RuntimeModule = require("../RuntimeModule");
10
10
  const Template = require("../Template");
11
11
 
12
- /** @typedef {import("../Compilation")} Compilation */
12
+ /** @import Compilation from "../Compilation" */
13
13
 
14
14
  class HasOwnPropertyRuntimeModule extends RuntimeModule {
15
15
  constructor() {
16
16
  super("hasOwnProperty shorthand");
17
17
  }
18
18
 
19
+ /**
20
+ * Returns true, if the runtime module should get it's own scope.
21
+ * When false, `generate()` must emit complete statements ending with `;`
22
+ * so a following runtime IIFE is not parsed as a call (ASI).
23
+ * @returns {boolean} true, if the runtime module should get it's own scope
24
+ */
25
+ shouldIsolate() {
26
+ return false;
27
+ }
28
+
19
29
  /**
20
30
  * Generates runtime code for this runtime module.
21
31
  * @returns {string | null} runtime code
@@ -28,7 +38,7 @@ class HasOwnPropertyRuntimeModule extends RuntimeModule {
28
38
  `${RuntimeGlobals.hasOwnProperty} = ${runtimeTemplate.returningFunction(
29
39
  runtimeTemplate.objectHasOwn("obj", "prop"),
30
40
  "obj, prop"
31
- )}`
41
+ )};`
32
42
  ]);
33
43
  }
34
44
  }
@@ -5,13 +5,13 @@
5
5
  "use strict";
6
6
 
7
7
  const { SyncWaterfallHook } = require("tapable");
8
- /** @typedef {import("../Compilation")} Compilation */
8
+ /** @import Compilation from "../Compilation" */
9
9
  const RuntimeGlobals = require("../RuntimeGlobals");
10
10
  const Template = require("../Template");
11
11
  const createHooksRegistry = require("../util/createHooksRegistry");
12
12
  const HelperRuntimeModule = require("./HelperRuntimeModule");
13
13
 
14
- /** @typedef {import("../Chunk")} Chunk */
14
+ /** @import Chunk from "../Chunk" */
15
15
 
16
16
  /**
17
17
  * @typedef {object} LoadScriptCompilationHooks
@@ -9,12 +9,9 @@ const Template = require("../Template");
9
9
  const HarmonyImportDependency = require("../dependencies/HarmonyImportDependency");
10
10
  const HelperRuntimeModule = require("./HelperRuntimeModule");
11
11
 
12
- /** @typedef {import("../ChunkGraph")} ChunkGraph */
13
- /** @typedef {import("../Module")} Module */
14
- /** @typedef {import("../ModuleGraph")} ModuleGraph */
15
- /** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
16
- /** @typedef {import("../Module").ExportsType} ExportsType */
17
- /** @typedef {import("../ChunkGraph").ModuleId} ModuleId */
12
+ /** @import { ModuleId } from "../ChunkGraph" */
13
+ /** @import Module, { RuntimeRequirements, ExportsType } from "../Module" */
14
+ /** @import ModuleGraph from "../ModuleGraph" */
18
15
 
19
16
  /**
20
17
  * @typedef {object} DeferredCycleState
@@ -224,6 +221,16 @@ function getOptimizedDeferredModule(
224
221
  }
225
222
 
226
223
  class MakeOptimizedDeferredNamespaceObjectRuntimeModule extends HelperRuntimeModule {
224
+ /**
225
+ * Returns true, if the runtime module should get it's own scope.
226
+ * When false, `generate()` must emit complete statements ending with `;`
227
+ * so a following runtime IIFE is not parsed as a call (ASI).
228
+ * @returns {boolean} true, if the runtime module should get it's own scope
229
+ */
230
+ shouldIsolate() {
231
+ return false;
232
+ }
233
+
227
234
  /**
228
235
  * @param {boolean} hasAsyncRuntime if async module is used.
229
236
  */
@@ -293,6 +300,16 @@ class MakeOptimizedDeferredNamespaceObjectRuntimeModule extends HelperRuntimeMod
293
300
  }
294
301
 
295
302
  class MakeDeferredNamespaceObjectRuntimeModule extends HelperRuntimeModule {
303
+ /**
304
+ * Returns true, if the runtime module should get it's own scope.
305
+ * When false, `generate()` must emit complete statements ending with `;`
306
+ * so a following runtime IIFE is not parsed as a call (ASI).
307
+ * @returns {boolean} true, if the runtime module should get it's own scope
308
+ */
309
+ shouldIsolate() {
310
+ return false;
311
+ }
312
+
296
313
  /**
297
314
  * @param {boolean} hasAsyncRuntime if async module is used.
298
315
  */
@@ -8,13 +8,23 @@ const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const Template = require("../Template");
9
9
  const HelperRuntimeModule = require("./HelperRuntimeModule");
10
10
 
11
- /** @typedef {import("../Compilation")} Compilation */
11
+ /** @import Compilation from "../Compilation" */
12
12
 
13
13
  class MakeNamespaceObjectRuntimeModule extends HelperRuntimeModule {
14
14
  constructor() {
15
15
  super("make namespace object");
16
16
  }
17
17
 
18
+ /**
19
+ * Returns true, if the runtime module should get it's own scope.
20
+ * When false, `generate()` must emit complete statements ending with `;`
21
+ * so a following runtime IIFE is not parsed as a call (ASI).
22
+ * @returns {boolean} true, if the runtime module should get it's own scope
23
+ */
24
+ shouldIsolate() {
25
+ return false;
26
+ }
27
+
18
28
  /**
19
29
  * Generates runtime code for this runtime module.
20
30
  * @returns {string | null} runtime code
@@ -23,14 +33,20 @@ class MakeNamespaceObjectRuntimeModule extends HelperRuntimeModule {
23
33
  const compilation = /** @type {Compilation} */ (this.compilation);
24
34
  const { runtimeTemplate } = compilation;
25
35
  const fn = RuntimeGlobals.makeNamespaceObject;
36
+ const toStringTag =
37
+ "Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });";
26
38
  return Template.asString([
27
39
  "// define __esModule on exports",
28
40
  `${fn} = ${runtimeTemplate.basicFunction("exports", [
29
- `if(${runtimeTemplate.supportsSymbol() ? "" : "typeof Symbol !== 'undefined' && "}Symbol.toStringTag) {`,
30
- Template.indent([
31
- "Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });"
32
- ]),
33
- "}",
41
+ // `environment.symbol` promises the well-known symbols too, so only an
42
+ // environment without it needs the feature test around the tag.
43
+ ...(runtimeTemplate.supportsSymbol()
44
+ ? [toStringTag]
45
+ : [
46
+ "if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {",
47
+ Template.indent([toStringTag]),
48
+ "}"
49
+ ]),
34
50
  "Object.defineProperty(exports, '__esModule', { value: true });"
35
51
  ])};`
36
52
  ]);
@@ -13,6 +13,16 @@ class NonceRuntimeModule extends RuntimeModule {
13
13
  super("nonce", RuntimeModule.STAGE_ATTACH);
14
14
  }
15
15
 
16
+ /**
17
+ * Returns true, if the runtime module should get it's own scope.
18
+ * When false, `generate()` must emit complete statements ending with `;`
19
+ * so a following runtime IIFE is not parsed as a call (ASI).
20
+ * @returns {boolean} true, if the runtime module should get it's own scope
21
+ */
22
+ shouldIsolate() {
23
+ return false;
24
+ }
25
+
16
26
  /**
17
27
  * Generates runtime code for this runtime module.
18
28
  * @returns {string | null} runtime code
@@ -8,7 +8,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const RuntimeModule = require("../RuntimeModule");
9
9
  const Template = require("../Template");
10
10
 
11
- /** @typedef {import("../Compilation")} Compilation */
11
+ /** @import Compilation from "../Compilation" */
12
12
 
13
13
  class OnChunksLoadedRuntimeModule extends RuntimeModule {
14
14
  constructor() {
@@ -29,7 +29,7 @@ class OnChunksLoadedRuntimeModule extends RuntimeModule {
29
29
  [
30
30
  "if(chunkIds) {",
31
31
  Template.indent([
32
- "priority = priority || 0;",
32
+ `${runtimeTemplate.assignOr("priority", "0")};`,
33
33
  "for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];",
34
34
  "deferred[i] = [chunkIds, fn, priority];",
35
35
  "return;"
@@ -45,7 +45,9 @@ class OnChunksLoadedRuntimeModule extends RuntimeModule {
45
45
  `${runtimeTemplate.renderLet()} fulfilled = true;`,
46
46
  "for (var j = 0; j < chunkIds.length; j++) {",
47
47
  Template.indent([
48
- `if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(${
48
+ // Parenthesized: `&` binds looser than `===`, so `priority & 1 === 0`
49
+ // is `priority & false` and gates every priority, not just the odd ones.
50
+ `if (((priority & 1) === 0 || notFulfilled >= priority) && Object.keys(${
49
51
  RuntimeGlobals.onChunksLoaded
50
52
  }).every(${runtimeTemplate.returningFunction(
51
53
  `${RuntimeGlobals.onChunksLoaded}[key](chunkIds[j])`,
@@ -7,10 +7,20 @@
7
7
  const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const RuntimeModule = require("../RuntimeModule");
9
9
 
10
- /** @typedef {import("../../declarations/WebpackOptions").PublicPath} PublicPath */
11
- /** @typedef {import("../Compilation")} Compilation */
10
+ /** @import { PublicPath } from "../../declarations/WebpackOptions" */
11
+ /** @import Compilation from "../Compilation" */
12
12
 
13
13
  class PublicPathRuntimeModule extends RuntimeModule {
14
+ /**
15
+ * Returns true, if the runtime module should get it's own scope.
16
+ * When false, `generate()` must emit complete statements ending with `;`
17
+ * so a following runtime IIFE is not parsed as a call (ASI).
18
+ * @returns {boolean} true, if the runtime module should get it's own scope
19
+ */
20
+ shouldIsolate() {
21
+ return false;
22
+ }
23
+
14
24
  /**
15
25
  * @param {PublicPath} publicPath public path
16
26
  */
@@ -8,13 +8,23 @@ const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const Template = require("../Template");
9
9
  const HelperRuntimeModule = require("./HelperRuntimeModule");
10
10
 
11
- /** @typedef {import("../Compilation")} Compilation */
11
+ /** @import Compilation from "../Compilation" */
12
12
 
13
13
  class RelativeUrlRuntimeModule extends HelperRuntimeModule {
14
14
  constructor() {
15
15
  super("relative url");
16
16
  }
17
17
 
18
+ /**
19
+ * Returns true, if the runtime module should get it's own scope.
20
+ * When false, `generate()` must emit complete statements ending with `;`
21
+ * so a following runtime IIFE is not parsed as a call (ASI).
22
+ * @returns {boolean} true, if the runtime module should get it's own scope
23
+ */
24
+ shouldIsolate() {
25
+ return false;
26
+ }
27
+
18
28
  /**
19
29
  * Generates runtime code for this runtime module.
20
30
  * @returns {string | null} runtime code
@@ -7,14 +7,24 @@
7
7
  const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const RuntimeModule = require("../RuntimeModule");
9
9
 
10
- /** @typedef {import("../Chunk")} Chunk */
11
- /** @typedef {import("../ChunkGraph")} ChunkGraph */
10
+ /** @import Chunk from "../Chunk" */
11
+ /** @import ChunkGraph from "../ChunkGraph" */
12
12
 
13
13
  class RuntimeIdRuntimeModule extends RuntimeModule {
14
14
  constructor() {
15
15
  super("runtimeId");
16
16
  }
17
17
 
18
+ /**
19
+ * Returns true, if the runtime module should get it's own scope.
20
+ * When false, `generate()` must emit complete statements ending with `;`
21
+ * so a following runtime IIFE is not parsed as a call (ASI).
22
+ * @returns {boolean} true, if the runtime module should get it's own scope
23
+ */
24
+ shouldIsolate() {
25
+ return false;
26
+ }
27
+
18
28
  /**
19
29
  * Generates runtime code for this runtime module.
20
30
  * @returns {string | null} runtime code
@@ -8,13 +8,23 @@ const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const Template = require("../Template");
9
9
  const HelperRuntimeModule = require("./HelperRuntimeModule");
10
10
 
11
- /** @typedef {import("../Compilation")} Compilation */
11
+ /** @import Compilation from "../Compilation" */
12
12
 
13
13
  class SetAnonymousDefaultNameRuntimeModule extends HelperRuntimeModule {
14
14
  constructor() {
15
15
  super("set anonymous default export name");
16
16
  }
17
17
 
18
+ /**
19
+ * Returns true, if the runtime module should get it's own scope.
20
+ * When false, `generate()` must emit complete statements ending with `;`
21
+ * so a following runtime IIFE is not parsed as a call (ASI).
22
+ * @returns {boolean} true, if the runtime module should get it's own scope
23
+ */
24
+ shouldIsolate() {
25
+ return false;
26
+ }
27
+
18
28
  /**
19
29
  * Generates runtime code for this runtime module.
20
30
  * @returns {string | null} runtime code
@@ -5,12 +5,19 @@
5
5
  "use strict";
6
6
 
7
7
  const RuntimeGlobals = require("../RuntimeGlobals");
8
- const StartupChunkDependenciesRuntimeModule = require("./StartupChunkDependenciesRuntimeModule");
9
- const StartupEntrypointRuntimeModule = require("./StartupEntrypointRuntimeModule");
8
+ const lazyModule = require("../util/lazyModule");
10
9
 
11
- /** @typedef {import("../../declarations/WebpackOptions").ChunkLoadingType} ChunkLoadingType */
12
- /** @typedef {import("../Chunk")} Chunk */
13
- /** @typedef {import("../Compiler")} Compiler */
10
+ /** @import { ChunkLoadingType } from "../../declarations/WebpackOptions" */
11
+ /** @import Chunk from "../Chunk" */
12
+ /** @import Compiler from "../Compiler" */
13
+
14
+ // only a chunk with startup dependencies emits these
15
+ const getStartupChunkDependenciesRuntimeModule = lazyModule(() =>
16
+ require("./StartupChunkDependenciesRuntimeModule")
17
+ );
18
+ const getStartupEntrypointRuntimeModule = lazyModule(() =>
19
+ require("./StartupEntrypointRuntimeModule")
20
+ );
14
21
 
15
22
  /**
16
23
  * Options that describe which chunk loading backend should receive startup
@@ -74,9 +81,10 @@ class StartupChunkDependenciesPlugin {
74
81
  set.add(RuntimeGlobals.startup);
75
82
  set.add(RuntimeGlobals.ensureChunk);
76
83
  set.add(RuntimeGlobals.ensureChunkIncludeEntries);
77
- compilation.addRuntimeModule(
84
+ compilation.addLazyRuntimeModule(
78
85
  chunk,
79
- new StartupChunkDependenciesRuntimeModule(this.asyncChunkLoading)
86
+ getStartupChunkDependenciesRuntimeModule,
87
+ (Ctor) => new Ctor(this.asyncChunkLoading)
80
88
  );
81
89
  }
82
90
  }
@@ -88,9 +96,10 @@ class StartupChunkDependenciesPlugin {
88
96
  set.add(RuntimeGlobals.require);
89
97
  set.add(RuntimeGlobals.ensureChunk);
90
98
  set.add(RuntimeGlobals.ensureChunkIncludeEntries);
91
- compilation.addRuntimeModule(
99
+ compilation.addLazyRuntimeModule(
92
100
  chunk,
93
- new StartupEntrypointRuntimeModule(this.asyncChunkLoading)
101
+ getStartupEntrypointRuntimeModule,
102
+ (Ctor) => new Ctor(this.asyncChunkLoading)
94
103
  );
95
104
  });
96
105
  });
@@ -9,9 +9,9 @@ const RuntimeGlobals = require("../RuntimeGlobals");
9
9
  const RuntimeModule = require("../RuntimeModule");
10
10
  const Template = require("../Template");
11
11
 
12
- /** @typedef {import("../Chunk")} Chunk */
13
- /** @typedef {import("../ChunkGraph")} ChunkGraph */
14
- /** @typedef {import("../Compilation")} Compilation */
12
+ /** @import Chunk from "../Chunk" */
13
+ /** @import ChunkGraph from "../ChunkGraph" */
14
+ /** @import Compilation from "../Compilation" */
15
15
 
16
16
  class StartupChunkDependenciesRuntimeModule extends RuntimeModule {
17
17
  /**
@@ -6,10 +6,22 @@
6
6
 
7
7
  const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const RuntimeModule = require("../RuntimeModule");
9
+ const { entryModuleIdExpression } = require("../javascript/StartupHelpers");
9
10
 
10
- /** @typedef {import("../Compilation")} Compilation */
11
+ /** @import Chunk from "../Chunk" */
12
+ /** @import Compilation from "../Compilation" */
11
13
 
12
14
  class StartupEntrypointRuntimeModule extends RuntimeModule {
15
+ /**
16
+ * Returns true, if the runtime module should get it's own scope.
17
+ * When false, `generate()` must emit complete statements ending with `;`
18
+ * so a following runtime IIFE is not parsed as a call (ASI).
19
+ * @returns {boolean} true, if the runtime module should get it's own scope
20
+ */
21
+ shouldIsolate() {
22
+ return false;
23
+ }
24
+
13
25
  /**
14
26
  * @param {boolean} asyncChunkLoading use async chunk loading
15
27
  */
@@ -25,7 +37,8 @@ class StartupEntrypointRuntimeModule extends RuntimeModule {
25
37
  */
26
38
  generate() {
27
39
  const compilation = /** @type {Compilation} */ (this.compilation);
28
- const { runtimeTemplate } = compilation;
40
+ const { runtimeTemplate, chunkGraph } = compilation;
41
+ const chunk = /** @type {Chunk} */ (this.chunk);
29
42
  const cst = runtimeTemplate.renderConst();
30
43
  return `${
31
44
  RuntimeGlobals.startupEntrypoint
@@ -33,7 +46,11 @@ class StartupEntrypointRuntimeModule extends RuntimeModule {
33
46
  "// arguments: chunkIds, moduleId are deprecated",
34
47
  `${cst} moduleId = chunkIds;`,
35
48
  `if(!fn) chunkIds = result, fn = ${runtimeTemplate.returningFunction(
36
- `${RuntimeGlobals.require}(${RuntimeGlobals.entryModuleId} = moduleId)`
49
+ `${RuntimeGlobals.require}(${entryModuleIdExpression(
50
+ chunkGraph,
51
+ chunk,
52
+ "moduleId"
53
+ )})`
37
54
  )};`,
38
55
  ...(this.asyncChunkLoading
39
56
  ? [
@@ -49,7 +66,7 @@ class StartupEntrypointRuntimeModule extends RuntimeModule {
49
66
  `${cst} r = fn();`,
50
67
  "return r === undefined ? result : r;"
51
68
  ])
52
- ])}`;
69
+ ])};`;
53
70
  }
54
71
  }
55
72
 
@@ -12,6 +12,16 @@ class SystemContextRuntimeModule extends RuntimeModule {
12
12
  super("__system_context__");
13
13
  }
14
14
 
15
+ /**
16
+ * Returns true, if the runtime module should get it's own scope.
17
+ * When false, `generate()` must emit complete statements ending with `;`
18
+ * so a following runtime IIFE is not parsed as a call (ASI).
19
+ * @returns {boolean} true, if the runtime module should get it's own scope
20
+ */
21
+ shouldIsolate() {
22
+ return false;
23
+ }
24
+
15
25
  /**
16
26
  * Generates runtime code for this runtime module.
17
27
  * @returns {string | null} runtime code
@@ -9,7 +9,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
9
9
  const RuntimeModule = require("../RuntimeModule");
10
10
  const Template = require("../Template");
11
11
 
12
- /** @typedef {import("../Compilation")} Compilation */
12
+ /** @import Compilation from "../Compilation" */
13
13
 
14
14
  class ToBinaryRuntimeModule extends RuntimeModule {
15
15
  constructor() {
@@ -7,13 +7,23 @@
7
7
  const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
9
 
10
- /** @typedef {import("../Compilation")} Compilation */
10
+ /** @import Compilation from "../Compilation" */
11
11
 
12
12
  class WorkerRuntimeModule extends HelperRuntimeModule {
13
13
  constructor() {
14
14
  super("worker");
15
15
  }
16
16
 
17
+ /**
18
+ * Returns true, if the runtime module should get it's own scope.
19
+ * When false, `generate()` must emit complete statements ending with `;`
20
+ * so a following runtime IIFE is not parsed as a call (ASI).
21
+ * @returns {boolean} true, if the runtime module should get it's own scope
22
+ */
23
+ shouldIsolate() {
24
+ return false;
25
+ }
26
+
17
27
  /**
18
28
  * Generates runtime code for this runtime module.
19
29
  * @returns {string | null} runtime code
@@ -0,0 +1,63 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Alexander Akait @alexander-akait
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const RuntimeGlobals = require("../RuntimeGlobals");
9
+
10
+ const SCHEME_REGEXP = /^[a-z][a-z\d+\-.]*:/i;
11
+
12
+ /**
13
+ * Whether `new URL(path, baseUri)` can resolve against it. Parsing is not the question:
14
+ * an opaque scheme like `data:` or `mailto:` is a valid url and still no base for
15
+ * anything, so the resolution itself is what gets asked.
16
+ * @param {string} baseUri an entry's base uri
17
+ * @returns {boolean} true when a relative path resolves against it
18
+ */
19
+ const isAbsoluteBaseUri = (baseUri) => {
20
+ try {
21
+ // eslint-disable-next-line no-new
22
+ new URL("./", baseUri);
23
+ return true;
24
+ } catch (_error) {
25
+ return false;
26
+ }
27
+ };
28
+
29
+ /**
30
+ * Whether a base names a place relative to the chunk, so a literal can spell it. A
31
+ * scheme makes it a base of its own, and a protocol-relative one takes its scheme from
32
+ * wherever the chunk was loaded — neither is something a literal can state.
33
+ * @param {string} baseUri an entry's base uri
34
+ * @returns {boolean} true when it can be baked beside the chunk
35
+ */
36
+ const isChunkRelativeBaseUri = (baseUri) =>
37
+ !SCHEME_REGEXP.test(baseUri) && !baseUri.startsWith("//");
38
+
39
+ /**
40
+ * Assignment of `__webpack_require__.b` for a chunk. An entry `baseUri` replaces the
41
+ * base an asset url resolves against, but only an absolute one is a base by itself —
42
+ * a relative one is read against the base this target would use without it, so it
43
+ * lands beside the chunk rather than throwing wherever the runtime reads it.
44
+ * @param {string | undefined} baseUri the entry's base uri, if it set one
45
+ * @param {string} fallback expression for the base this target uses without one
46
+ * @returns {string} the assignment, ending with `;`
47
+ */
48
+ const renderBaseUri = (baseUri, fallback) => {
49
+ // An empty one names no base of its own, so it leaves the target's alone.
50
+ if (!baseUri) return `${RuntimeGlobals.baseURI} = ${fallback};`;
51
+ // A scheme already makes it a base of its own. Whether anything resolves against an
52
+ // opaque one is the user's to answer, as it was before.
53
+ if (SCHEME_REGEXP.test(baseUri)) {
54
+ return `${RuntimeGlobals.baseURI} = ${JSON.stringify(baseUri)};`;
55
+ }
56
+ return `${RuntimeGlobals.baseURI} = new URL(${JSON.stringify(
57
+ baseUri
58
+ )}, ${fallback}).href;`;
59
+ };
60
+
61
+ module.exports.isAbsoluteBaseUri = isAbsoluteBaseUri;
62
+ module.exports.isChunkRelativeBaseUri = isChunkRelativeBaseUri;
63
+ module.exports.renderBaseUri = renderBaseUri;
@@ -8,7 +8,7 @@
8
8
  const NormalModule = require("../NormalModule");
9
9
  const { URIRegEx, decodeDataURI } = require("../util/dataURL");
10
10
 
11
- /** @typedef {import("../Compiler")} Compiler */
11
+ /** @import Compiler from "../Compiler" */
12
12
 
13
13
  const PLUGIN_NAME = "DataUriPlugin";
14
14
 
@@ -8,7 +8,7 @@
8
8
  const { fileURLToPath } = require("url");
9
9
  const { NormalModule } = require("..");
10
10
 
11
- /** @typedef {import("../Compiler")} Compiler */
11
+ /** @import Compiler from "../Compiler" */
12
12
 
13
13
  const PLUGIN_NAME = "FileUriPlugin";
14
14