webpack 5.92.1 → 5.94.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 (350) hide show
  1. package/README.md +8 -5
  2. package/bin/webpack.js +6 -7
  3. package/hot/log.js +1 -2
  4. package/hot/only-dev-server.js +1 -1
  5. package/hot/poll.js +1 -1
  6. package/hot/signal.js +1 -1
  7. package/lib/APIPlugin.js +4 -3
  8. package/lib/AbstractMethodError.js +10 -5
  9. package/lib/AutomaticPrefetchPlugin.js +1 -1
  10. package/lib/BannerPlugin.js +12 -6
  11. package/lib/Cache.js +8 -10
  12. package/lib/CacheFacade.js +3 -3
  13. package/lib/CaseSensitiveModulesWarning.js +5 -7
  14. package/lib/Chunk.js +14 -11
  15. package/lib/ChunkGraph.js +58 -36
  16. package/lib/ChunkGroup.js +2 -3
  17. package/lib/ChunkTemplate.js +43 -0
  18. package/lib/CleanPlugin.js +10 -11
  19. package/lib/CodeGenerationResults.js +6 -5
  20. package/lib/CommentCompilationWarning.js +0 -1
  21. package/lib/Compilation.js +223 -191
  22. package/lib/Compiler.js +81 -82
  23. package/lib/ConcatenationScope.js +3 -6
  24. package/lib/ConditionalInitFragment.js +6 -7
  25. package/lib/ConstPlugin.js +7 -15
  26. package/lib/ContextExclusionPlugin.js +3 -3
  27. package/lib/ContextModule.js +36 -21
  28. package/lib/ContextModuleFactory.js +89 -44
  29. package/lib/ContextReplacementPlugin.js +10 -9
  30. package/lib/DefinePlugin.js +76 -69
  31. package/lib/DelegatedModule.js +7 -3
  32. package/lib/DelegatedModuleFactoryPlugin.js +36 -22
  33. package/lib/DelegatedPlugin.js +4 -0
  34. package/lib/DependenciesBlock.js +0 -1
  35. package/lib/Dependency.js +10 -14
  36. package/lib/DllEntryPlugin.js +4 -2
  37. package/lib/DllModuleFactory.js +1 -0
  38. package/lib/DllPlugin.js +9 -7
  39. package/lib/DllReferencePlugin.js +30 -15
  40. package/lib/EntryPlugin.js +1 -3
  41. package/lib/EnvironmentPlugin.js +5 -2
  42. package/lib/ErrorHelpers.js +11 -12
  43. package/lib/EvalDevToolModulePlugin.js +10 -12
  44. package/lib/EvalSourceMapDevToolPlugin.js +15 -13
  45. package/lib/ExportsInfo.js +185 -120
  46. package/lib/ExternalModule.js +104 -64
  47. package/lib/ExternalModuleFactoryPlugin.js +23 -10
  48. package/lib/FileSystemInfo.js +791 -422
  49. package/lib/FlagAllModulesAsUsedPlugin.js +1 -1
  50. package/lib/FlagDependencyExportsPlugin.js +12 -11
  51. package/lib/FlagDependencyUsagePlugin.js +1 -1
  52. package/lib/Generator.js +2 -5
  53. package/lib/GraphHelpers.js +3 -2
  54. package/lib/HookWebpackError.js +8 -10
  55. package/lib/HotModuleReplacementPlugin.js +78 -64
  56. package/lib/IgnoreErrorModuleFactory.js +3 -3
  57. package/lib/IgnorePlugin.js +1 -3
  58. package/lib/IgnoreWarningsPlugin.js +6 -9
  59. package/lib/InitFragment.js +2 -3
  60. package/lib/LibManifestPlugin.js +4 -3
  61. package/lib/MainTemplate.js +72 -19
  62. package/lib/Module.js +25 -9
  63. package/lib/ModuleBuildError.js +4 -11
  64. package/lib/ModuleDependencyError.js +5 -5
  65. package/lib/ModuleDependencyWarning.js +5 -5
  66. package/lib/ModuleError.js +1 -5
  67. package/lib/ModuleFilenameHelpers.js +29 -46
  68. package/lib/ModuleGraph.js +7 -6
  69. package/lib/ModuleGraphConnection.js +6 -6
  70. package/lib/ModuleInfoHeaderPlugin.js +82 -30
  71. package/lib/ModuleParseError.js +8 -9
  72. package/lib/ModuleRestoreError.js +1 -1
  73. package/lib/ModuleStoreError.js +1 -1
  74. package/lib/ModuleTemplate.js +33 -1
  75. package/lib/ModuleTypeConstants.js +21 -22
  76. package/lib/ModuleWarning.js +1 -5
  77. package/lib/MultiCompiler.js +24 -26
  78. package/lib/MultiStats.js +73 -31
  79. package/lib/MultiWatching.js +1 -1
  80. package/lib/NormalModule.js +132 -70
  81. package/lib/NormalModuleFactory.js +53 -49
  82. package/lib/OptimizationStages.js +3 -3
  83. package/lib/ProgressPlugin.js +9 -9
  84. package/lib/ProvidePlugin.js +4 -4
  85. package/lib/RuntimeGlobals.js +71 -70
  86. package/lib/RuntimeModule.js +1 -1
  87. package/lib/RuntimePlugin.js +24 -12
  88. package/lib/RuntimeTemplate.js +40 -44
  89. package/lib/SizeFormatHelpers.js +2 -4
  90. package/lib/SourceMapDevToolPlugin.js +42 -34
  91. package/lib/Stats.js +5 -11
  92. package/lib/Template.js +18 -24
  93. package/lib/TemplatedPathPlugin.js +12 -10
  94. package/lib/UseStrictPlugin.js +8 -1
  95. package/lib/WarnDeprecatedOptionPlugin.js +0 -1
  96. package/lib/WatchIgnorePlugin.js +26 -9
  97. package/lib/Watching.js +10 -5
  98. package/lib/WebpackOptionsApply.js +89 -62
  99. package/lib/asset/AssetGenerator.js +107 -42
  100. package/lib/asset/AssetModulesPlugin.js +29 -23
  101. package/lib/asset/AssetSourceGenerator.js +2 -7
  102. package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
  103. package/lib/buildChunkGraph.js +14 -19
  104. package/lib/cache/IdleFileCachePlugin.js +4 -4
  105. package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
  106. package/lib/cache/PackFileCacheStrategy.js +51 -50
  107. package/lib/cache/ResolverCachePlugin.js +6 -6
  108. package/lib/cache/mergeEtags.js +16 -21
  109. package/lib/cli.js +148 -104
  110. package/lib/config/browserslistTargetHandler.js +16 -13
  111. package/lib/config/defaults.js +31 -28
  112. package/lib/config/normalization.js +335 -344
  113. package/lib/config/target.js +42 -52
  114. package/lib/container/ContainerEntryModule.js +2 -2
  115. package/lib/container/ContainerPlugin.js +1 -1
  116. package/lib/container/RemoteRuntimeModule.js +11 -8
  117. package/lib/container/options.js +18 -4
  118. package/lib/css/CssExportsGenerator.js +39 -40
  119. package/lib/css/CssGenerator.js +11 -14
  120. package/lib/css/CssLoadingRuntimeModule.js +10 -10
  121. package/lib/css/CssModulesPlugin.js +127 -47
  122. package/lib/css/CssParser.js +20 -18
  123. package/lib/css/walkCssTokens.js +80 -95
  124. package/lib/debug/ProfilingPlugin.js +19 -20
  125. package/lib/dependencies/AMDDefineDependency.js +1 -1
  126. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
  127. package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
  128. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
  129. package/lib/dependencies/AMDRuntimeModules.js +2 -2
  130. package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
  131. package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
  132. package/lib/dependencies/CommonJsExportsDependency.js +0 -1
  133. package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
  134. package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
  135. package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
  136. package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
  137. package/lib/dependencies/ConstDependency.js +1 -1
  138. package/lib/dependencies/ContextDependency.js +1 -1
  139. package/lib/dependencies/ContextDependencyHelpers.js +31 -34
  140. package/lib/dependencies/ContextElementDependency.js +2 -2
  141. package/lib/dependencies/CriticalDependencyWarning.js +1 -1
  142. package/lib/dependencies/CssExportDependency.js +72 -9
  143. package/lib/dependencies/CssImportDependency.js +0 -2
  144. package/lib/dependencies/CssLocalIdentifierDependency.js +68 -21
  145. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
  146. package/lib/dependencies/CssUrlDependency.js +4 -5
  147. package/lib/dependencies/DynamicExports.js +5 -5
  148. package/lib/dependencies/ExportsInfoDependency.js +1 -2
  149. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
  150. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
  151. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
  152. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  153. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
  154. package/lib/dependencies/HarmonyExports.js +2 -2
  155. package/lib/dependencies/HarmonyImportDependency.js +2 -4
  156. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
  157. package/lib/dependencies/HarmonyImportSpecifierDependency.js +41 -16
  158. package/lib/dependencies/ImportDependency.js +1 -1
  159. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
  160. package/lib/dependencies/ImportMetaPlugin.js +11 -13
  161. package/lib/dependencies/ImportParserPlugin.js +39 -44
  162. package/lib/dependencies/JsonExportsDependency.js +22 -18
  163. package/lib/dependencies/LoaderPlugin.js +47 -36
  164. package/lib/dependencies/LocalModule.js +1 -1
  165. package/lib/dependencies/LocalModulesHelpers.js +4 -4
  166. package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
  167. package/lib/dependencies/ProvidedDependency.js +1 -1
  168. package/lib/dependencies/PureExpressionDependency.js +6 -6
  169. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
  170. package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
  171. package/lib/dependencies/SystemPlugin.js +1 -1
  172. package/lib/dependencies/URLDependency.js +3 -3
  173. package/lib/dependencies/URLPlugin.js +66 -12
  174. package/lib/dependencies/WorkerPlugin.js +25 -24
  175. package/lib/dependencies/processExportInfo.js +3 -1
  176. package/lib/electron/ElectronTargetPlugin.js +1 -0
  177. package/lib/esm/ModuleChunkFormatPlugin.js +11 -12
  178. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
  179. package/lib/formatLocation.js +1 -2
  180. package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
  181. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  182. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
  183. package/lib/hmr/LazyCompilationPlugin.js +27 -12
  184. package/lib/hmr/lazyCompilationBackend.js +64 -40
  185. package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
  186. package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
  187. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  188. package/lib/ids/HashedModuleIdsPlugin.js +5 -1
  189. package/lib/ids/IdHelpers.js +29 -39
  190. package/lib/ids/SyncModuleIdsPlugin.js +7 -2
  191. package/lib/index.js +1 -5
  192. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +6 -4
  193. package/lib/javascript/BasicEvaluatedExpression.js +4 -19
  194. package/lib/javascript/ChunkHelpers.js +1 -1
  195. package/lib/javascript/CommonJsChunkFormatPlugin.js +10 -11
  196. package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
  197. package/lib/javascript/JavascriptGenerator.js +23 -7
  198. package/lib/javascript/JavascriptModulesPlugin.js +97 -70
  199. package/lib/javascript/JavascriptParser.js +179 -200
  200. package/lib/javascript/JavascriptParserHelpers.js +20 -21
  201. package/lib/javascript/StartupHelpers.js +41 -13
  202. package/lib/json/JsonGenerator.js +7 -13
  203. package/lib/json/JsonModulesPlugin.js +1 -4
  204. package/lib/json/JsonParser.js +5 -3
  205. package/lib/library/AmdLibraryPlugin.js +12 -16
  206. package/lib/library/AssignLibraryPlugin.js +9 -11
  207. package/lib/library/EnableLibraryPlugin.js +25 -15
  208. package/lib/library/ExportPropertyLibraryPlugin.js +8 -2
  209. package/lib/library/JsonpLibraryPlugin.js +2 -1
  210. package/lib/library/ModernModuleLibraryPlugin.js +144 -0
  211. package/lib/library/ModuleLibraryPlugin.js +2 -1
  212. package/lib/library/SystemLibraryPlugin.js +2 -1
  213. package/lib/library/UmdLibraryPlugin.js +66 -92
  214. package/lib/logging/Logger.js +32 -4
  215. package/lib/logging/createConsoleLogger.js +12 -13
  216. package/lib/logging/runtime.js +7 -8
  217. package/lib/logging/truncateArgs.js +5 -8
  218. package/lib/node/NodeWatchFileSystem.js +3 -18
  219. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
  220. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
  221. package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
  222. package/lib/node/nodeConsole.js +22 -22
  223. package/lib/optimize/AggressiveMergingPlugin.js +2 -4
  224. package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
  225. package/lib/optimize/ConcatenatedModule.js +144 -61
  226. package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
  227. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
  228. package/lib/optimize/InnerGraph.js +17 -17
  229. package/lib/optimize/InnerGraphPlugin.js +8 -7
  230. package/lib/optimize/LimitChunkCountPlugin.js +2 -3
  231. package/lib/optimize/MangleExportsPlugin.js +1 -0
  232. package/lib/optimize/MinMaxSizeWarning.js +1 -1
  233. package/lib/optimize/ModuleConcatenationPlugin.js +56 -78
  234. package/lib/optimize/RealContentHashPlugin.js +7 -10
  235. package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
  236. package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
  237. package/lib/optimize/SplitChunksPlugin.js +34 -30
  238. package/lib/performance/SizeLimitsPlugin.js +2 -2
  239. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -0
  240. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
  241. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
  242. package/lib/rules/BasicEffectRulePlugin.js +3 -1
  243. package/lib/rules/BasicMatcherRulePlugin.js +3 -1
  244. package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
  245. package/lib/rules/RuleSetCompiler.js +41 -22
  246. package/lib/rules/UseEffectRulePlugin.js +36 -32
  247. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  248. package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
  249. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  250. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
  251. package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
  252. package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
  253. package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
  254. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
  255. package/lib/schemes/DataUriPlugin.js +1 -1
  256. package/lib/schemes/HttpUriPlugin.js +241 -126
  257. package/lib/serialization/BinaryMiddleware.js +44 -28
  258. package/lib/serialization/DateObjectSerializer.js +1 -0
  259. package/lib/serialization/ErrorObjectSerializer.js +2 -0
  260. package/lib/serialization/FileMiddleware.js +154 -106
  261. package/lib/serialization/MapObjectSerializer.js +2 -1
  262. package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
  263. package/lib/serialization/ObjectMiddleware.js +52 -56
  264. package/lib/serialization/PlainObjectSerializer.js +32 -6
  265. package/lib/serialization/RegExpObjectSerializer.js +1 -0
  266. package/lib/serialization/Serializer.js +4 -5
  267. package/lib/serialization/SerializerMiddleware.js +6 -6
  268. package/lib/serialization/SetObjectSerializer.js +2 -1
  269. package/lib/sharing/ConsumeSharedModule.js +19 -14
  270. package/lib/sharing/ConsumeSharedPlugin.js +116 -97
  271. package/lib/sharing/ConsumeSharedRuntimeModule.js +108 -141
  272. package/lib/sharing/ProvideForSharedDependency.js +0 -1
  273. package/lib/sharing/ProvideSharedPlugin.js +2 -2
  274. package/lib/sharing/resolveMatchedConfigs.js +2 -1
  275. package/lib/sharing/utils.js +15 -27
  276. package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
  277. package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
  278. package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
  279. package/lib/stats/StatsFactory.js +127 -56
  280. package/lib/stats/StatsPrinter.js +75 -44
  281. package/lib/util/ArrayHelpers.js +8 -4
  282. package/lib/util/ArrayQueue.js +1 -1
  283. package/lib/util/AsyncQueue.js +31 -12
  284. package/lib/util/IterableHelpers.js +3 -4
  285. package/lib/util/LazyBucketSortedSet.js +60 -44
  286. package/lib/util/LazySet.js +1 -0
  287. package/lib/util/MapHelpers.js +1 -3
  288. package/lib/util/ParallelismFactorCalculator.js +1 -1
  289. package/lib/util/Queue.js +1 -1
  290. package/lib/util/Semaphore.js +4 -7
  291. package/lib/util/SetHelpers.js +5 -5
  292. package/lib/util/SortableSet.js +4 -3
  293. package/lib/util/StackedCacheMap.js +4 -6
  294. package/lib/util/StackedMap.js +1 -3
  295. package/lib/util/StringXor.js +0 -5
  296. package/lib/util/TupleQueue.js +1 -1
  297. package/lib/util/TupleSet.js +15 -5
  298. package/lib/util/URLAbsoluteSpecifier.js +7 -7
  299. package/lib/util/WeakTupleMap.js +19 -21
  300. package/lib/util/binarySearchBounds.js +5 -12
  301. package/lib/util/chainedImports.js +1 -1
  302. package/lib/util/cleverMerge.js +21 -19
  303. package/lib/util/comparators.js +57 -52
  304. package/lib/util/compileBooleanMatcher.js +3 -6
  305. package/lib/util/conventions.js +10 -13
  306. package/lib/util/createHash.js +9 -6
  307. package/lib/util/deprecation.js +22 -12
  308. package/lib/util/deterministicGrouping.js +19 -26
  309. package/lib/util/findGraphRoots.js +2 -2
  310. package/lib/util/fs.js +31 -31
  311. package/lib/util/hash/md4.js +2 -2
  312. package/lib/util/hash/wasm-hash.js +7 -7
  313. package/lib/util/hash/xxhash64.js +2 -2
  314. package/lib/util/identifier.js +81 -59
  315. package/lib/util/memoize.js +8 -10
  316. package/lib/util/mergeScope.js +6 -9
  317. package/lib/util/nonNumericOnlyHash.js +2 -2
  318. package/lib/util/numberHash.js +1 -6
  319. package/lib/util/objectToMap.js +0 -1
  320. package/lib/util/propertyAccess.js +2 -5
  321. package/lib/util/propertyName.js +1 -3
  322. package/lib/util/registerExternalSerializer.js +1 -1
  323. package/lib/util/runtime.js +103 -113
  324. package/lib/util/semver.js +29 -27
  325. package/lib/util/serialization.js +16 -1
  326. package/lib/util/smartGrouping.js +5 -5
  327. package/lib/util/source.js +1 -1
  328. package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
  329. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
  330. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
  331. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
  332. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
  333. package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
  334. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
  335. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  336. package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
  337. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
  338. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
  339. package/package.json +17 -16
  340. package/schemas/WebpackOptions.check.js +1 -1
  341. package/schemas/WebpackOptions.json +17 -0
  342. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
  343. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
  344. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
  345. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  346. package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
  347. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  348. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  349. package/schemas/plugins/container/ModuleFederationPlugin.json +1 -0
  350. package/types.d.ts +682 -347
@@ -49,9 +49,7 @@ class ImportMetaPlugin {
49
49
  * @param {NormalModule} module module
50
50
  * @returns {string} file url
51
51
  */
52
- const getUrl = module => {
53
- return pathToFileURL(module.resource).toString();
54
- };
52
+ const getUrl = module => pathToFileURL(module.resource).toString();
55
53
  /**
56
54
  * @param {Parser} parser parser parser
57
55
  * @param {JavascriptParserOptions} parserOptions parserOptions
@@ -76,8 +74,8 @@ class ImportMetaPlugin {
76
74
  return;
77
75
  }
78
76
 
79
- /// import.meta direct ///
80
- const webpackVersion = parseInt(
77
+ // import.meta direct
78
+ const webpackVersion = Number.parseInt(
81
79
  require("../../package.json").version,
82
80
  10
83
81
  );
@@ -90,7 +88,7 @@ class ImportMetaPlugin {
90
88
  */
91
89
  const importMetaUnknownProperty = members =>
92
90
  `${Template.toNormalComment(
93
- "unsupported import.meta." + members.join(".")
91
+ `unsupported import.meta.${members.join(".")}`
94
92
  )} undefined${propertyAccess(members, 1)}`;
95
93
  parser.hooks.typeof
96
94
  .for("import.meta")
@@ -162,7 +160,7 @@ class ImportMetaPlugin {
162
160
  evaluateToIdentifier("import.meta", "import.meta", () => [], true)
163
161
  );
164
162
 
165
- /// import.meta.url ///
163
+ // import.meta.url
166
164
  parser.hooks.typeof
167
165
  .for("import.meta.url")
168
166
  .tap(
@@ -185,13 +183,13 @@ class ImportMetaPlugin {
185
183
  .tap(PLUGIN_NAME, evaluateToString("string"));
186
184
  parser.hooks.evaluateIdentifier
187
185
  .for("import.meta.url")
188
- .tap(PLUGIN_NAME, expr => {
189
- return new BasicEvaluatedExpression()
186
+ .tap(PLUGIN_NAME, expr =>
187
+ new BasicEvaluatedExpression()
190
188
  .setString(getUrl(parser.state.module))
191
- .setRange(/** @type {Range} */ (expr.range));
192
- });
189
+ .setRange(/** @type {Range} */ (expr.range))
190
+ );
193
191
 
194
- /// import.meta.webpack ///
192
+ // import.meta.webpack
195
193
  parser.hooks.typeof
196
194
  .for("import.meta.webpack")
197
195
  .tap(
@@ -211,7 +209,7 @@ class ImportMetaPlugin {
211
209
  .for("import.meta.webpack")
212
210
  .tap(PLUGIN_NAME, evaluateToNumber(webpackVersion));
213
211
 
214
- /// Unknown properties ///
212
+ // Unknown properties
215
213
  parser.hooks.unhandledExpressionMemberChain
216
214
  .for("import.meta")
217
215
  .tap(PLUGIN_NAME, (expr, members) => {
@@ -100,11 +100,9 @@ class ImportParserPlugin {
100
100
  /** @type {DependencyLocation} */ (expr.loc)
101
101
  )
102
102
  );
103
- } else {
103
+ } else if (importOptions.webpackIgnore) {
104
104
  // Do not instrument `import()` if `webpackIgnore` is `true`
105
- if (importOptions.webpackIgnore) {
106
- return false;
107
- }
105
+ return false;
108
106
  }
109
107
  }
110
108
  if (importOptions.webpackChunkName !== undefined) {
@@ -220,12 +218,10 @@ class ImportParserPlugin {
220
218
  /** @type {DependencyLocation} */ (expr.loc)
221
219
  )
222
220
  );
221
+ } else if (typeof importOptions.webpackExports === "string") {
222
+ exports = [[importOptions.webpackExports]];
223
223
  } else {
224
- if (typeof importOptions.webpackExports === "string") {
225
- exports = [[importOptions.webpackExports]];
226
- } else {
227
- exports = exportsFromEnumerable(importOptions.webpackExports);
228
- }
224
+ exports = exportsFromEnumerable(importOptions.webpackExports);
229
225
  }
230
226
  }
231
227
  }
@@ -251,7 +247,7 @@ class ImportParserPlugin {
251
247
  if (exports) {
252
248
  parser.state.module.addWarning(
253
249
  new UnsupportedFeatureWarning(
254
- `\`webpackExports\` could not be used with destructuring assignment.`,
250
+ "`webpackExports` could not be used with destructuring assignment.",
255
251
  /** @type {DependencyLocation} */ (expr.loc)
256
252
  )
257
253
  );
@@ -296,45 +292,44 @@ class ImportParserPlugin {
296
292
  attributes
297
293
  );
298
294
  dep.loc = /** @type {DependencyLocation} */ (expr.loc);
299
- dep.optional = !!parser.scope.inTry;
295
+ dep.optional = Boolean(parser.scope.inTry);
300
296
  depBlock.addDependency(dep);
301
297
  parser.state.current.addBlock(depBlock);
302
298
  }
303
299
  return true;
304
- } else {
305
- if (mode === "weak") {
306
- mode = "async-weak";
307
- }
308
- const dep = ContextDependencyHelpers.create(
309
- ImportContextDependency,
310
- /** @type {Range} */ (expr.range),
311
- param,
312
- expr,
313
- this.options,
314
- {
315
- chunkName,
316
- groupOptions,
317
- include,
318
- exclude,
319
- mode,
320
- namespaceObject: /** @type {BuildMeta} */ (
321
- parser.state.module.buildMeta
322
- ).strictHarmonyModule
323
- ? "strict"
324
- : true,
325
- typePrefix: "import()",
326
- category: "esm",
327
- referencedExports: exports,
328
- attributes: getAttributes(expr)
329
- },
330
- parser
331
- );
332
- if (!dep) return;
333
- dep.loc = /** @type {DependencyLocation} */ (expr.loc);
334
- dep.optional = !!parser.scope.inTry;
335
- parser.state.current.addDependency(dep);
336
- return true;
337
300
  }
301
+ if (mode === "weak") {
302
+ mode = "async-weak";
303
+ }
304
+ const dep = ContextDependencyHelpers.create(
305
+ ImportContextDependency,
306
+ /** @type {Range} */ (expr.range),
307
+ param,
308
+ expr,
309
+ this.options,
310
+ {
311
+ chunkName,
312
+ groupOptions,
313
+ include,
314
+ exclude,
315
+ mode,
316
+ namespaceObject: /** @type {BuildMeta} */ (
317
+ parser.state.module.buildMeta
318
+ ).strictHarmonyModule
319
+ ? "strict"
320
+ : true,
321
+ typePrefix: "import()",
322
+ category: "esm",
323
+ referencedExports: exports,
324
+ attributes: getAttributes(expr)
325
+ },
326
+ parser
327
+ );
328
+ if (!dep) return;
329
+ dep.loc = /** @type {DependencyLocation} */ (expr.loc);
330
+ dep.optional = Boolean(parser.scope.inTry);
331
+ parser.state.current.addDependency(dep);
332
+ return true;
338
333
  });
339
334
  }
340
335
  }
@@ -14,33 +14,35 @@ const NullDependency = require("./NullDependency");
14
14
  /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
15
15
  /** @typedef {import("../ModuleGraph")} ModuleGraph */
16
16
  /** @typedef {import("../json/JsonData")} JsonData */
17
+ /** @typedef {import("../json/JsonData").RawJsonData} RawJsonData */
17
18
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
18
19
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
19
20
  /** @typedef {import("../util/Hash")} Hash */
20
21
 
22
+ /**
23
+ * @param {RawJsonData} data data
24
+ * @returns {TODO} value
25
+ */
21
26
  const getExportsFromData = data => {
22
27
  if (data && typeof data === "object") {
23
28
  if (Array.isArray(data)) {
24
29
  return data.length < 100
25
- ? data.map((item, idx) => {
26
- return {
27
- name: `${idx}`,
28
- canMangle: true,
29
- exports: getExportsFromData(item)
30
- };
31
- })
30
+ ? data.map((item, idx) => ({
31
+ name: `${idx}`,
32
+ canMangle: true,
33
+ exports: getExportsFromData(item)
34
+ }))
32
35
  : undefined;
33
- } else {
34
- const exports = [];
35
- for (const key of Object.keys(data)) {
36
- exports.push({
37
- name: key,
38
- canMangle: true,
39
- exports: getExportsFromData(data[key])
40
- });
41
- }
42
- return exports;
43
36
  }
37
+ const exports = [];
38
+ for (const key of Object.keys(data)) {
39
+ exports.push({
40
+ name: key,
41
+ canMangle: true,
42
+ exports: getExportsFromData(data[key])
43
+ });
44
+ }
45
+ return exports;
44
46
  }
45
47
  return undefined;
46
48
  };
@@ -65,7 +67,9 @@ class JsonExportsDependency extends NullDependency {
65
67
  */
66
68
  getExports(moduleGraph) {
67
69
  return {
68
- exports: getExportsFromData(this.data && this.data.get()),
70
+ exports: getExportsFromData(
71
+ this.data && /** @type {RawJsonData} */ (this.data.get())
72
+ ),
69
73
  dependencies: undefined
70
74
  };
71
75
  }
@@ -10,17 +10,12 @@ const LazySet = require("../util/LazySet");
10
10
  const LoaderDependency = require("./LoaderDependency");
11
11
  const LoaderImportDependency = require("./LoaderImportDependency");
12
12
 
13
+ /** @typedef {import("../../declarations/LoaderContext").LoaderPluginLoaderContext} LoaderPluginLoaderContext */
13
14
  /** @typedef {import("../Compilation").DepConstructor} DepConstructor */
15
+ /** @typedef {import("../Compilation").ExecuteModuleResult} ExecuteModuleResult */
14
16
  /** @typedef {import("../Compiler")} Compiler */
15
17
  /** @typedef {import("../Module")} Module */
16
-
17
- /**
18
- * @callback LoadModuleCallback
19
- * @param {(Error | null)=} err error object
20
- * @param {string | Buffer=} source source code
21
- * @param {object=} map source map
22
- * @param {Module=} module loaded module if successful
23
- */
18
+ /** @typedef {import("../Module").BuildInfo} BuildInfo */
24
19
 
25
20
  /**
26
21
  * @callback ImportModuleCallback
@@ -66,11 +61,6 @@ class LoaderPlugin {
66
61
  NormalModule.getCompilationHooks(compilation).loader.tap(
67
62
  "LoaderPlugin",
68
63
  loaderContext => {
69
- /**
70
- * @param {string} request the request string to load the module from
71
- * @param {LoadModuleCallback} callback callback returning the loaded module or error
72
- * @returns {void}
73
- */
74
64
  loaderContext.loadModule = (request, callback) => {
75
65
  const dep = new LoaderDependency(request);
76
66
  dep.loc = {
@@ -91,7 +81,9 @@ class LoaderPlugin {
91
81
  {
92
82
  factory,
93
83
  dependencies: [dep],
94
- originModule: loaderContext._module,
84
+ originModule:
85
+ /** @type {NormalModule} */
86
+ (loaderContext._module),
95
87
  context: loaderContext.context,
96
88
  recursive: false
97
89
  },
@@ -117,7 +109,8 @@ class LoaderPlugin {
117
109
  )
118
110
  );
119
111
  }
120
- let source, map;
112
+ let map;
113
+ let source;
121
114
  if (moduleSource.sourceAndMap) {
122
115
  const sourceAndMap = moduleSource.sourceAndMap();
123
116
  map = sourceAndMap.map;
@@ -149,15 +142,20 @@ class LoaderPlugin {
149
142
  for (const d of buildDependencies) {
150
143
  loaderContext.addBuildDependency(d);
151
144
  }
152
- return callback(null, source, map, referencedModule);
145
+ return callback(
146
+ null,
147
+ source,
148
+ /** @type {object | null} */ (map),
149
+ referencedModule
150
+ );
153
151
  }
154
152
  );
155
153
  };
156
154
 
157
155
  /**
158
156
  * @param {string} request the request string to load the module from
159
- * @param {ImportModuleOptions=} options options
160
- * @param {ImportModuleCallback=} callback callback returning the exports
157
+ * @param {ImportModuleOptions} options options
158
+ * @param {ImportModuleCallback} callback callback returning the exports
161
159
  * @returns {void}
162
160
  */
163
161
  const importModule = (request, options, callback) => {
@@ -180,7 +178,9 @@ class LoaderPlugin {
180
178
  {
181
179
  factory,
182
180
  dependencies: [dep],
183
- originModule: loaderContext._module,
181
+ originModule:
182
+ /** @type {NormalModule} */
183
+ (loaderContext._module),
184
184
  contextInfo: {
185
185
  issuerLayer: options.layer
186
186
  },
@@ -207,42 +207,53 @@ class LoaderPlugin {
207
207
  },
208
208
  (err, result) => {
209
209
  if (err) return callback(err);
210
- for (const d of result.fileDependencies) {
210
+ const {
211
+ fileDependencies,
212
+ contextDependencies,
213
+ missingDependencies,
214
+ buildDependencies,
215
+ cacheable,
216
+ assets,
217
+ exports
218
+ } = /** @type {ExecuteModuleResult} */ (result);
219
+ for (const d of fileDependencies) {
211
220
  loaderContext.addDependency(d);
212
221
  }
213
- for (const d of result.contextDependencies) {
222
+ for (const d of contextDependencies) {
214
223
  loaderContext.addContextDependency(d);
215
224
  }
216
- for (const d of result.missingDependencies) {
225
+ for (const d of missingDependencies) {
217
226
  loaderContext.addMissingDependency(d);
218
227
  }
219
- for (const d of result.buildDependencies) {
228
+ for (const d of buildDependencies) {
220
229
  loaderContext.addBuildDependency(d);
221
230
  }
222
- if (result.cacheable === false)
223
- loaderContext.cacheable(false);
224
- for (const [name, { source, info }] of result.assets) {
225
- const { buildInfo } = loaderContext._module;
231
+ if (cacheable === false) loaderContext.cacheable(false);
232
+ for (const [name, { source, info }] of assets) {
233
+ const buildInfo =
234
+ /** @type {BuildInfo} */
235
+ (
236
+ /** @type {NormalModule} */ (loaderContext._module)
237
+ .buildInfo
238
+ );
226
239
  if (!buildInfo.assets) {
227
240
  buildInfo.assets = Object.create(null);
228
241
  buildInfo.assetsInfo = new Map();
229
242
  }
230
- buildInfo.assets[name] = source;
231
- buildInfo.assetsInfo.set(name, info);
243
+ /** @type {NonNullable<BuildInfo["assets"]>} */
244
+ (buildInfo.assets)[name] = source;
245
+ /** @type {NonNullable<BuildInfo["assetsInfo"]>} */
246
+ (buildInfo.assetsInfo).set(name, info);
232
247
  }
233
- callback(null, result.exports);
248
+ callback(null, exports);
234
249
  }
235
250
  );
236
251
  }
237
252
  );
238
253
  };
239
254
 
240
- /**
241
- * @param {string} request the request string to load the module from
242
- * @param {ImportModuleOptions} options options
243
- * @param {ImportModuleCallback=} callback callback returning the exports
244
- * @returns {Promise<any> | void} exports
245
- */
255
+ // eslint-disable-next-line no-warning-comments
256
+ // @ts-ignore Overloading doesn't work
246
257
  loaderContext.importModule = (request, options, callback) => {
247
258
  if (!callback) {
248
259
  return new Promise((resolve, reject) => {
@@ -29,7 +29,7 @@ class LocalModule {
29
29
  * @returns {string} variable name
30
30
  */
31
31
  variableName() {
32
- return "__WEBPACK_LOCAL_MODULE_" + this.idx + "__";
32
+ return `__WEBPACK_LOCAL_MODULE_${this.idx}__`;
33
33
  }
34
34
 
35
35
  /**
@@ -17,8 +17,8 @@ const LocalModule = require("./LocalModule");
17
17
  const lookup = (parent, mod) => {
18
18
  if (mod.charAt(0) !== ".") return mod;
19
19
 
20
- var path = parent.split("/");
21
- var segments = mod.split("/");
20
+ const path = parent.split("/");
21
+ const segments = mod.split("/");
22
22
  path.pop();
23
23
 
24
24
  for (let i = 0; i < segments.length; i++) {
@@ -38,7 +38,7 @@ const lookup = (parent, mod) => {
38
38
  * @param {string} name name
39
39
  * @returns {LocalModule} local module
40
40
  */
41
- exports.addLocalModule = (state, name) => {
41
+ module.exports.addLocalModule = (state, name) => {
42
42
  if (!state.localModules) {
43
43
  state.localModules = [];
44
44
  }
@@ -53,7 +53,7 @@ exports.addLocalModule = (state, name) => {
53
53
  * @param {string} [namedModule] named module
54
54
  * @returns {LocalModule | null} local module or null
55
55
  */
56
- exports.getLocalModule = (state, name, namedModule) => {
56
+ module.exports.getLocalModule = (state, name, namedModule) => {
57
57
  if (!state.localModules) return null;
58
58
  if (namedModule) {
59
59
  // resolve dependency name relative to the defining named module
@@ -50,7 +50,7 @@ class ModuleDecoratorDependency extends NullDependency {
50
50
  * @returns {string | null} an identifier to merge equal requests
51
51
  */
52
52
  getResourceIdentifier() {
53
- return `self`;
53
+ return "self";
54
54
  }
55
55
 
56
56
  /**
@@ -64,7 +64,7 @@ class ProvidedDependency extends ModuleDependency {
64
64
  * @returns {(string[] | ReferencedExport)[]} referenced exports
65
65
  */
66
66
  getReferencedExports(moduleGraph, runtime) {
67
- let ids = this.ids;
67
+ const ids = this.ids;
68
68
  if (ids.length === 0) return Dependency.EXPORTS_OBJECT_REFERENCED;
69
69
  return [ids];
70
70
  }
@@ -77,12 +77,12 @@ class PureExpressionDependency extends NullDependency {
77
77
  hash.update("null");
78
78
  } else {
79
79
  hash.update(
80
- runtimeToString(runtimeCondition) +
81
- "|" +
82
- runtimeToString(context.runtime)
80
+ `${runtimeToString(runtimeCondition)}|${runtimeToString(
81
+ context.runtime
82
+ )}`
83
83
  );
84
84
  }
85
- hash.update(this.range + "");
85
+ hash.update(String(this.range));
86
86
  }
87
87
 
88
88
  /**
@@ -136,11 +136,11 @@ PureExpressionDependency.Template = class PureExpressionDependencyTemplate exten
136
136
  const dep = /** @type {PureExpressionDependency} */ (dependency);
137
137
  const runtimeCondition = dep._getRuntimeCondition(moduleGraph, runtime);
138
138
  if (runtimeCondition === true) {
139
- return;
139
+ // Do nothing
140
140
  } else if (runtimeCondition === false) {
141
141
  source.insert(
142
142
  dep.range[0],
143
- `(/* unused pure expression or super */ null && (`
143
+ "(/* unused pure expression or super */ null && ("
144
144
  );
145
145
  source.insert(dep.range[1], "))");
146
146
  } else {
@@ -56,7 +56,7 @@ module.exports = class RequireContextDependencyParserPlugin {
56
56
  /** @type {Range} */ (expr.range)
57
57
  );
58
58
  dep.loc = /** @type {DependencyLocation} */ (expr.loc);
59
- dep.optional = !!parser.scope.inTry;
59
+ dep.optional = Boolean(parser.scope.inTry);
60
60
  parser.state.current.addDependency(dep);
61
61
  return true;
62
62
  }
@@ -36,7 +36,7 @@ class RuntimeRequirementsDependency extends NullDependency {
36
36
  */
37
37
  updateHash(hash, context) {
38
38
  if (this._hashUpdate === undefined) {
39
- this._hashUpdate = Array.from(this.runtimeRequirements).join() + "";
39
+ this._hashUpdate = `${Array.from(this.runtimeRequirements).join()}`;
40
40
  }
41
41
  hash.update(this._hashUpdate);
42
42
  }
@@ -73,7 +73,7 @@ class SystemPlugin {
73
73
  PLUGIN_NAME,
74
74
  expressionIsUnsupported(
75
75
  parser,
76
- name + " is not supported by webpack."
76
+ `${name} is not supported by webpack.`
77
77
  )
78
78
  );
79
79
  };
@@ -30,9 +30,9 @@ const ModuleDependency = require("./ModuleDependency");
30
30
  /** @typedef {import("../util/Hash")} Hash */
31
31
  /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
32
32
 
33
- const getIgnoredRawDataUrlModule = memoize(() => {
34
- return new RawDataUrlModule("data:,", `ignored-asset`, `(ignored asset)`);
35
- });
33
+ const getIgnoredRawDataUrlModule = memoize(
34
+ () => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)")
35
+ );
36
36
 
37
37
  class URLDependency extends ModuleDependency {
38
38
  /**
@@ -6,13 +6,17 @@
6
6
  "use strict";
7
7
 
8
8
  const { pathToFileURL } = require("url");
9
+ const CommentCompilationWarning = require("../CommentCompilationWarning");
9
10
  const {
10
11
  JAVASCRIPT_MODULE_TYPE_AUTO,
11
12
  JAVASCRIPT_MODULE_TYPE_ESM
12
13
  } = require("../ModuleTypeConstants");
14
+ const RuntimeGlobals = require("../RuntimeGlobals");
15
+ const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning");
13
16
  const BasicEvaluatedExpression = require("../javascript/BasicEvaluatedExpression");
14
17
  const { approve } = require("../javascript/JavascriptParserHelpers");
15
18
  const InnerGraph = require("../optimize/InnerGraph");
19
+ const ConstDependency = require("./ConstDependency");
16
20
  const URLDependency = require("./URLDependency");
17
21
 
18
22
  /** @typedef {import("estree").NewExpression} NewExpressionNode */
@@ -44,8 +48,21 @@ class URLPlugin {
44
48
  * @param {NormalModule} module module
45
49
  * @returns {URL} file url
46
50
  */
47
- const getUrl = module => {
48
- return pathToFileURL(module.resource);
51
+ const getUrl = module => pathToFileURL(module.resource);
52
+
53
+ const isMetaUrl = (parser, arg) => {
54
+ const chain = parser.extractMemberExpressionChain(arg);
55
+
56
+ if (
57
+ chain.members.length !== 1 ||
58
+ chain.object.type !== "MetaProperty" ||
59
+ chain.object.meta.name !== "import" ||
60
+ chain.object.property.name !== "meta" ||
61
+ chain.members[0] !== "url"
62
+ )
63
+ return false;
64
+
65
+ return true;
49
66
  };
50
67
 
51
68
  /**
@@ -72,16 +89,7 @@ class URLPlugin {
72
89
  )
73
90
  return;
74
91
 
75
- const chain = parser.extractMemberExpressionChain(arg2);
76
-
77
- if (
78
- chain.members.length !== 1 ||
79
- chain.object.type !== "MetaProperty" ||
80
- chain.object.meta.name !== "import" ||
81
- chain.object.property.name !== "meta" ||
82
- chain.members[0] !== "url"
83
- )
84
- return;
92
+ if (!isMetaUrl(parser, arg2)) return;
85
93
 
86
94
  return parser.evaluateExpression(arg1).asString();
87
95
  };
@@ -100,6 +108,52 @@ class URLPlugin {
100
108
  });
101
109
  parser.hooks.new.for("URL").tap(PLUGIN_NAME, _expr => {
102
110
  const expr = /** @type {NewExpressionNode} */ (_expr);
111
+ const { options: importOptions, errors: commentErrors } =
112
+ parser.parseCommentOptions(/** @type {Range} */ (expr.range));
113
+
114
+ if (commentErrors) {
115
+ for (const e of commentErrors) {
116
+ const { comment } = e;
117
+ parser.state.module.addWarning(
118
+ new CommentCompilationWarning(
119
+ `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`,
120
+ comment.loc
121
+ )
122
+ );
123
+ }
124
+ }
125
+
126
+ if (importOptions && importOptions.webpackIgnore !== undefined) {
127
+ if (typeof importOptions.webpackIgnore !== "boolean") {
128
+ parser.state.module.addWarning(
129
+ new UnsupportedFeatureWarning(
130
+ `\`webpackIgnore\` expected a boolean, but received: ${importOptions.webpackIgnore}.`,
131
+ /** @type {DependencyLocation} */ (expr.loc)
132
+ )
133
+ );
134
+ return;
135
+ } else if (importOptions.webpackIgnore) {
136
+ if (expr.arguments.length !== 2) return;
137
+
138
+ const [, arg2] = expr.arguments;
139
+
140
+ if (
141
+ arg2.type !== "MemberExpression" ||
142
+ !isMetaUrl(parser, arg2)
143
+ )
144
+ return;
145
+
146
+ const dep = new ConstDependency(
147
+ RuntimeGlobals.baseURI,
148
+ /** @type {Range} */ (arg2.range),
149
+ [RuntimeGlobals.baseURI]
150
+ );
151
+ dep.loc = /** @type {DependencyLocation} */ (expr.loc);
152
+ parser.state.module.addPresentationalDependency(dep);
153
+
154
+ return true;
155
+ }
156
+ }
103
157
 
104
158
  const request = getUrlRequest(expr);
105
159