webpack 5.93.0 → 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 (343) 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 +33 -20
  28. package/lib/ContextModuleFactory.js +89 -44
  29. package/lib/ContextReplacementPlugin.js +10 -9
  30. package/lib/DefinePlugin.js +75 -68
  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 +126 -69
  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/WarnDeprecatedOptionPlugin.js +0 -1
  95. package/lib/WatchIgnorePlugin.js +26 -9
  96. package/lib/Watching.js +10 -5
  97. package/lib/WebpackOptionsApply.js +84 -62
  98. package/lib/asset/AssetGenerator.js +107 -42
  99. package/lib/asset/AssetModulesPlugin.js +29 -23
  100. package/lib/asset/AssetSourceGenerator.js +2 -7
  101. package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
  102. package/lib/buildChunkGraph.js +14 -19
  103. package/lib/cache/IdleFileCachePlugin.js +4 -4
  104. package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
  105. package/lib/cache/PackFileCacheStrategy.js +51 -50
  106. package/lib/cache/ResolverCachePlugin.js +6 -6
  107. package/lib/cache/mergeEtags.js +16 -21
  108. package/lib/cli.js +148 -104
  109. package/lib/config/browserslistTargetHandler.js +16 -13
  110. package/lib/config/defaults.js +31 -28
  111. package/lib/config/normalization.js +335 -344
  112. package/lib/config/target.js +42 -52
  113. package/lib/container/ContainerEntryModule.js +2 -2
  114. package/lib/container/ContainerPlugin.js +1 -1
  115. package/lib/container/RemoteRuntimeModule.js +11 -8
  116. package/lib/container/options.js +18 -4
  117. package/lib/css/CssExportsGenerator.js +26 -24
  118. package/lib/css/CssGenerator.js +9 -4
  119. package/lib/css/CssLoadingRuntimeModule.js +10 -10
  120. package/lib/css/CssModulesPlugin.js +127 -47
  121. package/lib/css/CssParser.js +20 -18
  122. package/lib/css/walkCssTokens.js +80 -95
  123. package/lib/debug/ProfilingPlugin.js +19 -20
  124. package/lib/dependencies/AMDDefineDependency.js +1 -1
  125. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
  126. package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
  127. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
  128. package/lib/dependencies/AMDRuntimeModules.js +2 -2
  129. package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
  130. package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
  131. package/lib/dependencies/CommonJsExportsDependency.js +0 -1
  132. package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
  133. package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
  134. package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
  135. package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
  136. package/lib/dependencies/ConstDependency.js +1 -1
  137. package/lib/dependencies/ContextDependency.js +1 -1
  138. package/lib/dependencies/ContextDependencyHelpers.js +31 -34
  139. package/lib/dependencies/ContextElementDependency.js +2 -2
  140. package/lib/dependencies/CriticalDependencyWarning.js +1 -1
  141. package/lib/dependencies/CssExportDependency.js +7 -7
  142. package/lib/dependencies/CssImportDependency.js +0 -2
  143. package/lib/dependencies/CssLocalIdentifierDependency.js +3 -3
  144. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
  145. package/lib/dependencies/CssUrlDependency.js +4 -5
  146. package/lib/dependencies/DynamicExports.js +5 -5
  147. package/lib/dependencies/ExportsInfoDependency.js +1 -2
  148. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
  149. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
  150. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
  151. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  152. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
  153. package/lib/dependencies/HarmonyExports.js +2 -2
  154. package/lib/dependencies/HarmonyImportDependency.js +2 -4
  155. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
  156. package/lib/dependencies/HarmonyImportSpecifierDependency.js +40 -15
  157. package/lib/dependencies/ImportDependency.js +1 -1
  158. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
  159. package/lib/dependencies/ImportMetaPlugin.js +11 -13
  160. package/lib/dependencies/ImportParserPlugin.js +39 -44
  161. package/lib/dependencies/JsonExportsDependency.js +22 -18
  162. package/lib/dependencies/LoaderPlugin.js +47 -36
  163. package/lib/dependencies/LocalModule.js +1 -1
  164. package/lib/dependencies/LocalModulesHelpers.js +4 -4
  165. package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
  166. package/lib/dependencies/ProvidedDependency.js +1 -1
  167. package/lib/dependencies/PureExpressionDependency.js +6 -6
  168. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
  169. package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
  170. package/lib/dependencies/SystemPlugin.js +1 -1
  171. package/lib/dependencies/URLDependency.js +3 -3
  172. package/lib/dependencies/URLPlugin.js +66 -12
  173. package/lib/dependencies/WorkerPlugin.js +25 -24
  174. package/lib/dependencies/processExportInfo.js +3 -1
  175. package/lib/electron/ElectronTargetPlugin.js +1 -0
  176. package/lib/esm/ModuleChunkFormatPlugin.js +3 -3
  177. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
  178. package/lib/formatLocation.js +1 -2
  179. package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
  180. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  181. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
  182. package/lib/hmr/LazyCompilationPlugin.js +27 -12
  183. package/lib/hmr/lazyCompilationBackend.js +64 -40
  184. package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
  185. package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
  186. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  187. package/lib/ids/HashedModuleIdsPlugin.js +5 -1
  188. package/lib/ids/IdHelpers.js +29 -39
  189. package/lib/ids/SyncModuleIdsPlugin.js +7 -2
  190. package/lib/index.js +1 -5
  191. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -4
  192. package/lib/javascript/BasicEvaluatedExpression.js +4 -19
  193. package/lib/javascript/ChunkHelpers.js +1 -1
  194. package/lib/javascript/CommonJsChunkFormatPlugin.js +3 -2
  195. package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
  196. package/lib/javascript/JavascriptGenerator.js +23 -7
  197. package/lib/javascript/JavascriptModulesPlugin.js +91 -69
  198. package/lib/javascript/JavascriptParser.js +179 -200
  199. package/lib/javascript/JavascriptParserHelpers.js +20 -21
  200. package/lib/javascript/StartupHelpers.js +41 -13
  201. package/lib/json/JsonGenerator.js +7 -13
  202. package/lib/json/JsonModulesPlugin.js +1 -4
  203. package/lib/json/JsonParser.js +5 -3
  204. package/lib/library/AmdLibraryPlugin.js +12 -16
  205. package/lib/library/AssignLibraryPlugin.js +8 -10
  206. package/lib/library/EnableLibraryPlugin.js +15 -14
  207. package/lib/library/JsonpLibraryPlugin.js +2 -1
  208. package/lib/library/ModernModuleLibraryPlugin.js +8 -6
  209. package/lib/library/ModuleLibraryPlugin.js +2 -1
  210. package/lib/library/SystemLibraryPlugin.js +2 -1
  211. package/lib/library/UmdLibraryPlugin.js +66 -92
  212. package/lib/logging/Logger.js +32 -4
  213. package/lib/logging/createConsoleLogger.js +12 -13
  214. package/lib/logging/runtime.js +7 -8
  215. package/lib/logging/truncateArgs.js +5 -8
  216. package/lib/node/NodeWatchFileSystem.js +3 -18
  217. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
  218. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
  219. package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
  220. package/lib/node/nodeConsole.js +22 -22
  221. package/lib/optimize/AggressiveMergingPlugin.js +2 -4
  222. package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
  223. package/lib/optimize/ConcatenatedModule.js +80 -48
  224. package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
  225. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
  226. package/lib/optimize/InnerGraph.js +17 -17
  227. package/lib/optimize/InnerGraphPlugin.js +8 -7
  228. package/lib/optimize/LimitChunkCountPlugin.js +2 -3
  229. package/lib/optimize/MangleExportsPlugin.js +1 -0
  230. package/lib/optimize/MinMaxSizeWarning.js +1 -1
  231. package/lib/optimize/ModuleConcatenationPlugin.js +54 -78
  232. package/lib/optimize/RealContentHashPlugin.js +7 -10
  233. package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
  234. package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
  235. package/lib/optimize/SplitChunksPlugin.js +34 -30
  236. package/lib/performance/SizeLimitsPlugin.js +2 -2
  237. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
  238. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
  239. package/lib/rules/BasicEffectRulePlugin.js +3 -1
  240. package/lib/rules/BasicMatcherRulePlugin.js +3 -1
  241. package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
  242. package/lib/rules/RuleSetCompiler.js +41 -22
  243. package/lib/rules/UseEffectRulePlugin.js +36 -32
  244. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  245. package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
  246. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  247. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
  248. package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
  249. package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
  250. package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
  251. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
  252. package/lib/schemes/DataUriPlugin.js +1 -1
  253. package/lib/schemes/HttpUriPlugin.js +241 -126
  254. package/lib/serialization/BinaryMiddleware.js +44 -28
  255. package/lib/serialization/DateObjectSerializer.js +1 -0
  256. package/lib/serialization/ErrorObjectSerializer.js +2 -0
  257. package/lib/serialization/FileMiddleware.js +154 -106
  258. package/lib/serialization/MapObjectSerializer.js +2 -1
  259. package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
  260. package/lib/serialization/ObjectMiddleware.js +52 -56
  261. package/lib/serialization/PlainObjectSerializer.js +32 -6
  262. package/lib/serialization/RegExpObjectSerializer.js +1 -0
  263. package/lib/serialization/Serializer.js +4 -5
  264. package/lib/serialization/SerializerMiddleware.js +6 -6
  265. package/lib/serialization/SetObjectSerializer.js +2 -1
  266. package/lib/sharing/ConsumeSharedPlugin.js +116 -97
  267. package/lib/sharing/ConsumeSharedRuntimeModule.js +4 -4
  268. package/lib/sharing/ProvideForSharedDependency.js +0 -1
  269. package/lib/sharing/ProvideSharedPlugin.js +2 -2
  270. package/lib/sharing/resolveMatchedConfigs.js +2 -1
  271. package/lib/sharing/utils.js +15 -27
  272. package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
  273. package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
  274. package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
  275. package/lib/stats/StatsFactory.js +127 -56
  276. package/lib/stats/StatsPrinter.js +75 -44
  277. package/lib/util/ArrayHelpers.js +8 -4
  278. package/lib/util/ArrayQueue.js +1 -1
  279. package/lib/util/AsyncQueue.js +31 -12
  280. package/lib/util/IterableHelpers.js +3 -4
  281. package/lib/util/LazyBucketSortedSet.js +60 -44
  282. package/lib/util/LazySet.js +1 -0
  283. package/lib/util/MapHelpers.js +1 -3
  284. package/lib/util/ParallelismFactorCalculator.js +1 -1
  285. package/lib/util/Queue.js +1 -1
  286. package/lib/util/Semaphore.js +4 -7
  287. package/lib/util/SetHelpers.js +5 -5
  288. package/lib/util/SortableSet.js +4 -3
  289. package/lib/util/StackedCacheMap.js +4 -6
  290. package/lib/util/StackedMap.js +1 -3
  291. package/lib/util/StringXor.js +0 -5
  292. package/lib/util/TupleQueue.js +1 -1
  293. package/lib/util/TupleSet.js +15 -5
  294. package/lib/util/URLAbsoluteSpecifier.js +7 -7
  295. package/lib/util/WeakTupleMap.js +19 -21
  296. package/lib/util/binarySearchBounds.js +5 -12
  297. package/lib/util/chainedImports.js +1 -1
  298. package/lib/util/cleverMerge.js +21 -19
  299. package/lib/util/comparators.js +57 -52
  300. package/lib/util/compileBooleanMatcher.js +3 -6
  301. package/lib/util/conventions.js +8 -11
  302. package/lib/util/createHash.js +9 -6
  303. package/lib/util/deprecation.js +22 -12
  304. package/lib/util/deterministicGrouping.js +19 -26
  305. package/lib/util/findGraphRoots.js +2 -2
  306. package/lib/util/fs.js +31 -31
  307. package/lib/util/hash/md4.js +2 -2
  308. package/lib/util/hash/wasm-hash.js +7 -7
  309. package/lib/util/hash/xxhash64.js +2 -2
  310. package/lib/util/identifier.js +81 -59
  311. package/lib/util/memoize.js +8 -10
  312. package/lib/util/mergeScope.js +6 -9
  313. package/lib/util/nonNumericOnlyHash.js +2 -2
  314. package/lib/util/numberHash.js +1 -6
  315. package/lib/util/objectToMap.js +0 -1
  316. package/lib/util/propertyAccess.js +2 -5
  317. package/lib/util/propertyName.js +1 -3
  318. package/lib/util/registerExternalSerializer.js +1 -1
  319. package/lib/util/runtime.js +103 -113
  320. package/lib/util/semver.js +29 -27
  321. package/lib/util/serialization.js +16 -1
  322. package/lib/util/smartGrouping.js +5 -5
  323. package/lib/util/source.js +1 -1
  324. package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
  325. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
  326. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
  327. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
  328. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
  329. package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
  330. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
  331. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  332. package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
  333. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
  334. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
  335. package/package.json +15 -14
  336. package/schemas/WebpackOptions.check.js +1 -1
  337. package/schemas/WebpackOptions.json +1 -0
  338. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  339. package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
  340. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  341. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  342. package/schemas/plugins/container/ModuleFederationPlugin.json +1 -0
  343. package/types.d.ts +667 -347
@@ -65,8 +65,6 @@ const getDefaultTarget = context => {
65
65
  * @property {boolean | null} asyncFunction async functions and await are available
66
66
  */
67
67
 
68
- ///** @typedef {PlatformTargetProperties | ApiTargetProperties | EcmaTargetProperties | PlatformTargetProperties & ApiTargetProperties | PlatformTargetProperties & EcmaTargetProperties | ApiTargetProperties & EcmaTargetProperties} TargetProperties */
69
-
70
68
  /**
71
69
  * @template T
72
70
  * @typedef {{ [P in keyof T]?: never }} Never<T>
@@ -90,12 +88,11 @@ const versionDependent = (major, minor) => {
90
88
  return () => /** @type {undefined} */ (undefined);
91
89
  }
92
90
  /** @type {number} */
93
- const nMajor = +major;
91
+ const nMajor = Number(major);
94
92
  /** @type {number} */
95
- const nMinor = minor ? +minor : 0;
96
- return (vMajor, vMinor = 0) => {
97
- return nMajor > vMajor || (nMajor === vMajor && nMinor >= vMinor);
98
- };
93
+ const nMinor = minor ? Number(minor) : 0;
94
+ return (vMajor, vMinor = 0) =>
95
+ nMajor > vMajor || (nMajor === vMajor && nMinor >= vMinor);
99
96
  };
100
97
 
101
98
  /** @type {[string, string, RegExp, (...args: string[]) => Partial<TargetProperties>][]} */
@@ -124,47 +121,43 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
124
121
  "web",
125
122
  "Web browser.",
126
123
  /^web$/,
127
- () => {
128
- return {
129
- web: true,
130
- browser: true,
131
- webworker: null,
132
- node: false,
133
- electron: false,
134
- nwjs: false,
124
+ () => ({
125
+ web: true,
126
+ browser: true,
127
+ webworker: null,
128
+ node: false,
129
+ electron: false,
130
+ nwjs: false,
135
131
 
136
- document: true,
137
- importScriptsInWorker: true,
138
- fetchWasm: true,
139
- nodeBuiltins: false,
140
- importScripts: false,
141
- require: false,
142
- global: false
143
- };
144
- }
132
+ document: true,
133
+ importScriptsInWorker: true,
134
+ fetchWasm: true,
135
+ nodeBuiltins: false,
136
+ importScripts: false,
137
+ require: false,
138
+ global: false
139
+ })
145
140
  ],
146
141
  [
147
142
  "webworker",
148
143
  "Web Worker, SharedWorker or Service Worker.",
149
144
  /^webworker$/,
150
- () => {
151
- return {
152
- web: true,
153
- browser: true,
154
- webworker: true,
155
- node: false,
156
- electron: false,
157
- nwjs: false,
145
+ () => ({
146
+ web: true,
147
+ browser: true,
148
+ webworker: true,
149
+ node: false,
150
+ electron: false,
151
+ nwjs: false,
158
152
 
159
- importScripts: true,
160
- importScriptsInWorker: true,
161
- fetchWasm: true,
162
- nodeBuiltins: false,
163
- require: false,
164
- document: false,
165
- global: false
166
- };
167
- }
153
+ importScripts: true,
154
+ importScriptsInWorker: true,
155
+ fetchWasm: true,
156
+ nodeBuiltins: false,
157
+ require: false,
158
+ document: false,
159
+ global: false
160
+ })
168
161
  ],
169
162
  [
170
163
  "[async-]node[X[.Y]]",
@@ -184,7 +177,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
184
177
  require: !asyncFlag,
185
178
  nodeBuiltins: true,
186
179
  // v16.0.0, v14.18.0
187
- nodePrefixForCoreModules: +major < 15 ? v(14, 18) : v(16),
180
+ nodePrefixForCoreModules: Number(major) < 15 ? v(14, 18) : v(16),
188
181
  global: true,
189
182
  document: false,
190
183
  fetchWasm: false,
@@ -295,7 +288,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
295
288
  "EcmaScript in this version. Examples: es2020, es5.",
296
289
  /^es(\d+)$/,
297
290
  version => {
298
- let v = +version;
291
+ let v = Number(version);
299
292
  if (v < 1000) v = v + 2009;
300
293
  return {
301
294
  const: v >= 2015,
@@ -366,7 +359,7 @@ const mergeTargetProperties = targetProperties => {
366
359
  }
367
360
  if (hasTrue || hasFalse)
368
361
  /** @type {TargetProperties} */
369
- (result)[key] = hasFalse && hasTrue ? null : hasTrue ? true : false;
362
+ (result)[key] = hasFalse && hasTrue ? null : Boolean(hasTrue);
370
363
  }
371
364
  return /** @type {TargetProperties} */ (result);
372
365
  };
@@ -376,12 +369,9 @@ const mergeTargetProperties = targetProperties => {
376
369
  * @param {string} context the context directory
377
370
  * @returns {TargetProperties} target properties
378
371
  */
379
- const getTargetsProperties = (targets, context) => {
380
- return mergeTargetProperties(
381
- targets.map(t => getTargetProperties(t, context))
382
- );
383
- };
372
+ const getTargetsProperties = (targets, context) =>
373
+ mergeTargetProperties(targets.map(t => getTargetProperties(t, context)));
384
374
 
385
- exports.getDefaultTarget = getDefaultTarget;
386
- exports.getTargetProperties = getTargetProperties;
387
- exports.getTargetsProperties = getTargetsProperties;
375
+ module.exports.getDefaultTarget = getDefaultTarget;
376
+ module.exports.getTargetProperties = getTargetProperties;
377
+ module.exports.getTargetsProperties = getTargetsProperties;
@@ -77,7 +77,7 @@ class ContainerEntryModule extends Module {
77
77
  * @returns {string} a user readable identifier of the module
78
78
  */
79
79
  readableIdentifier(requestShortener) {
80
- return `container entry`;
80
+ return "container entry";
81
81
  }
82
82
 
83
83
  /**
@@ -205,7 +205,7 @@ class ContainerEntryModule extends Module {
205
205
  }
206
206
 
207
207
  const source = Template.asString([
208
- `var moduleMap = {`,
208
+ "var moduleMap = {",
209
209
  Template.indent(getters.join(",\n")),
210
210
  "};",
211
211
  `var get = ${runtimeTemplate.basicFunction("module, getScope", [
@@ -76,7 +76,7 @@ class ContainerPlugin {
76
76
  const dep = new ContainerEntryDependency(name, exposes, shareScope);
77
77
  dep.loc = { name };
78
78
  compilation.addEntry(
79
- compilation.options.context,
79
+ /** @type {string} */ (compilation.options.context),
80
80
  dep,
81
81
  {
82
82
  name,
@@ -12,6 +12,7 @@ const Template = require("../Template");
12
12
  /** @typedef {import("../Chunk")} Chunk */
13
13
  /** @typedef {import("../Chunk").ChunkId} ChunkId */
14
14
  /** @typedef {import("../ChunkGraph")} ChunkGraph */
15
+ /** @typedef {import("../ChunkGraph").ModuleId} ModuleId */
15
16
  /** @typedef {import("../Compilation")} Compilation */
16
17
  /** @typedef {import("./RemoteModule")} RemoteModule */
17
18
 
@@ -29,7 +30,7 @@ class RemoteRuntimeModule extends RuntimeModule {
29
30
  const { runtimeTemplate, moduleGraph } = compilation;
30
31
  /** @type {Record<ChunkId, (string | number)[]>} */
31
32
  const chunkToRemotesMapping = {};
32
- /** @type {Record<string | number, [string, string, string | number | null]>} */
33
+ /** @type {Record<ModuleId, [string, string, string | number | null]>} */
33
34
  const idToExternalAndNameMapping = {};
34
35
  for (const chunk of /** @type {Chunk} */ (this.chunk).getAllAsyncChunks()) {
35
36
  const modules = chunkGraph.getChunkModulesIterableBySourceType(
@@ -37,19 +38,21 @@ class RemoteRuntimeModule extends RuntimeModule {
37
38
  "remote"
38
39
  );
39
40
  if (!modules) continue;
40
- /** @type {(string | number)[]} */
41
+ /** @type {ModuleId[]} */
41
42
  const remotes = (chunkToRemotesMapping[
42
- /** @type {ChunkId} */ (chunk.id)
43
+ /** @type {ChunkId} */
44
+ (chunk.id)
43
45
  ] = []);
44
46
  for (const m of modules) {
45
47
  const module = /** @type {RemoteModule} */ (m);
46
48
  const name = module.internalRequest;
47
- const id = chunkGraph.getModuleId(module);
49
+ const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module));
48
50
  const shareScope = module.shareScope;
49
51
  const dep = module.dependencies[0];
50
52
  const externalModule = moduleGraph.getModule(dep);
51
53
  const externalModuleId =
52
- externalModule && chunkGraph.getModuleId(externalModule);
54
+ /** @type {ModuleId} */
55
+ (externalModule && chunkGraph.getModuleId(externalModule));
53
56
  remotes.push(id);
54
57
  idToExternalAndNameMapping[id] = [shareScope, name, externalModuleId];
55
58
  }
@@ -76,7 +79,7 @@ class RemoteRuntimeModule extends RuntimeModule {
76
79
  "var data = idToExternalAndNameMapping[id];",
77
80
  "if(getScope.indexOf(data) >= 0) return;",
78
81
  "getScope.push(data);",
79
- `if(data.p) return promises.push(data.p);`,
82
+ "if(data.p) return promises.push(data.p);",
80
83
  `var onError = ${runtimeTemplate.basicFunction("error", [
81
84
  'if(!error) error = new Error("Container missing");',
82
85
  'if(typeof error.message === "string")',
@@ -100,7 +103,7 @@ class RemoteRuntimeModule extends RuntimeModule {
100
103
  "next(result, d)",
101
104
  "result"
102
105
  )}, onError);`,
103
- `if(first) promises.push(data.p = p); else return p;`
106
+ "if(first) promises.push(data.p = p); else return p;"
104
107
  ]),
105
108
  "} else {",
106
109
  Template.indent(["return next(promise, d, first);"]),
@@ -116,7 +119,7 @@ class RemoteRuntimeModule extends RuntimeModule {
116
119
  "external, _, first"
117
120
  )};`,
118
121
  `var onInitialized = ${runtimeTemplate.returningFunction(
119
- `handleFunction(external.get, data[1], getScope, 0, onFactory, first)`,
122
+ "handleFunction(external.get, data[1], getScope, 0, onFactory, first)",
120
123
  "_, external, first"
121
124
  )};`,
122
125
  `var onFactory = ${runtimeTemplate.basicFunction("factory", [
@@ -5,7 +5,15 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @template T @typedef {(string | Record<string, string | string[] | T>)[] | Record<string, string | string[] | T>} ContainerOptionsFormat */
8
+ /**
9
+ * @template T
10
+ * @typedef {Record<string, string | string[] | T>} Item
11
+ */
12
+
13
+ /**
14
+ * @template T
15
+ * @typedef {(string | Item<T>)[] | Item<T>} ContainerOptionsFormat
16
+ */
9
17
 
10
18
  /**
11
19
  * @template T
@@ -17,6 +25,9 @@
17
25
  * @returns {void}
18
26
  */
19
27
  const process = (options, normalizeSimple, normalizeOptions, fn) => {
28
+ /**
29
+ * @param {(string | Item<T>)[]} items items
30
+ */
20
31
  const array = items => {
21
32
  for (const item of items) {
22
33
  if (typeof item === "string") {
@@ -28,6 +39,9 @@ const process = (options, normalizeSimple, normalizeOptions, fn) => {
28
39
  }
29
40
  }
30
41
  };
42
+ /**
43
+ * @param {Item<T>} obj an object
44
+ */
31
45
  const object = obj => {
32
46
  for (const [key, value] of Object.entries(obj)) {
33
47
  if (typeof value === "string" || Array.isArray(value)) {
@@ -38,7 +52,7 @@ const process = (options, normalizeSimple, normalizeOptions, fn) => {
38
52
  }
39
53
  };
40
54
  if (!options) {
41
- return;
55
+ // Do nothing
42
56
  } else if (Array.isArray(options)) {
43
57
  array(options);
44
58
  } else if (typeof options === "object") {
@@ -87,5 +101,5 @@ const scope = (scope, options) => {
87
101
  return obj;
88
102
  };
89
103
 
90
- exports.parseOptions = parseOptions;
91
- exports.scope = scope;
104
+ module.exports.parseOptions = parseOptions;
105
+ module.exports.scope = scope;
@@ -93,7 +93,7 @@ class CssExportsGenerator extends Generator {
93
93
  chunkGraph: generateContext.chunkGraph,
94
94
  module,
95
95
  runtime: generateContext.runtime,
96
- runtimeRequirements: runtimeRequirements,
96
+ runtimeRequirements,
97
97
  concatenationScope: generateContext.concatenationScope,
98
98
  codeGenerationResults: generateContext.codeGenerationResults,
99
99
  initFragments,
@@ -122,20 +122,23 @@ class CssExportsGenerator extends Generator {
122
122
  const template = generateContext.dependencyTemplates.get(constructor);
123
123
  if (!template) {
124
124
  throw new Error(
125
- "No template for dependency: " + dependency.constructor.name
125
+ `No template for dependency: ${dependency.constructor.name}`
126
126
  );
127
127
  }
128
128
 
129
129
  template.apply(dependency, source, templateContext);
130
130
  };
131
- module.dependencies.forEach(handleDependency);
131
+
132
+ for (const dependency of module.dependencies) {
133
+ handleDependency(dependency);
134
+ }
132
135
 
133
136
  if (generateContext.concatenationScope) {
134
137
  const source = new ConcatSource();
135
138
  const usedIdentifiers = new Set();
136
139
  for (const [name, v] of cssExportsData.exports) {
137
140
  let identifier = Template.toIdentifier(name);
138
- let i = 0;
141
+ const i = 0;
139
142
  while (usedIdentifiers.has(identifier)) {
140
143
  identifier = Template.toIdentifier(name + i);
141
144
  }
@@ -148,28 +151,27 @@ class CssExportsGenerator extends Generator {
148
151
  );
149
152
  }
150
153
  return source;
151
- } else {
152
- const needNsObj =
153
- this.esModule &&
154
- generateContext.moduleGraph
155
- .getExportsInfo(module)
156
- .otherExportsInfo.getUsed(generateContext.runtime) !==
157
- UsageState.Unused;
158
- if (needNsObj) {
159
- generateContext.runtimeRequirements.add(
160
- RuntimeGlobals.makeNamespaceObject
161
- );
162
- }
163
- const exports = [];
164
- for (let [name, v] of cssExportsData.exports) {
165
- exports.push(`\t${JSON.stringify(name)}: ${JSON.stringify(v)}`);
166
- }
167
- return new RawSource(
168
- `${needNsObj ? `${RuntimeGlobals.makeNamespaceObject}(` : ""}${
169
- module.moduleArgument
170
- }.exports = {\n${exports.join(",\n")}\n}${needNsObj ? ")" : ""};`
154
+ }
155
+ const needNsObj =
156
+ this.esModule &&
157
+ generateContext.moduleGraph
158
+ .getExportsInfo(module)
159
+ .otherExportsInfo.getUsed(generateContext.runtime) !==
160
+ UsageState.Unused;
161
+ if (needNsObj) {
162
+ generateContext.runtimeRequirements.add(
163
+ RuntimeGlobals.makeNamespaceObject
171
164
  );
172
165
  }
166
+ const exports = [];
167
+ for (const [name, v] of cssExportsData.exports) {
168
+ exports.push(`\t${JSON.stringify(name)}: ${JSON.stringify(v)}`);
169
+ }
170
+ return new RawSource(
171
+ `${needNsObj ? `${RuntimeGlobals.makeNamespaceObject}(` : ""}${
172
+ module.moduleArgument
173
+ }.exports = {\n${exports.join(",\n")}\n}${needNsObj ? ")" : ""};`
174
+ );
173
175
  }
174
176
 
175
177
  /**
@@ -95,15 +95,20 @@ class CssGenerator extends Generator {
95
95
  const template = generateContext.dependencyTemplates.get(constructor);
96
96
  if (!template) {
97
97
  throw new Error(
98
- "No template for dependency: " + dependency.constructor.name
98
+ `No template for dependency: ${dependency.constructor.name}`
99
99
  );
100
100
  }
101
101
 
102
102
  template.apply(dependency, source, templateContext);
103
103
  };
104
- module.dependencies.forEach(handleDependency);
105
- if (module.presentationalDependencies !== undefined)
106
- module.presentationalDependencies.forEach(handleDependency);
104
+ for (const dependency of module.dependencies) {
105
+ handleDependency(dependency);
106
+ }
107
+ if (module.presentationalDependencies !== undefined) {
108
+ for (const dependency of module.presentationalDependencies) {
109
+ handleDependency(dependency);
110
+ }
111
+ }
107
112
 
108
113
  const data = generateContext.getData();
109
114
  data.set("css-exports", cssExportsData);
@@ -86,7 +86,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
86
86
  * @returns {boolean} true, if the chunk has css
87
87
  */
88
88
  (chunk, chunkGraph) =>
89
- !!chunkGraph.getChunkModulesIterableBySourceType(chunk, "css")
89
+ Boolean(chunkGraph.getChunkModulesIterableBySourceType(chunk, "css"))
90
90
  );
91
91
  const hasCssMatcher = compileBooleanMatcher(conditionMap);
92
92
 
@@ -210,7 +210,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
210
210
  Template.indent([
211
211
  "var style = cssRules[j--].style;",
212
212
  "if(!style) continue;",
213
- `data = style.getPropertyValue(name);`
213
+ "data = style.getPropertyValue(name);"
214
214
  ]),
215
215
  "}"
216
216
  ]),
@@ -224,7 +224,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
224
224
  withCompression
225
225
  ? Template.asString([
226
226
  // LZW decode
227
- `var map = {}, char = data[0], oldPhrase = char, decoded = char, code = 256, maxCode = ${"\uffff".charCodeAt(
227
+ `var map = {}, char = data[0], oldPhrase = char, decoded = char, code = 256, maxCode = ${"\uFFFF".charCodeAt(
228
228
  0
229
229
  )}, phrase;`,
230
230
  "for (i = 1; i < data.length; i++) {",
@@ -255,12 +255,12 @@ class CssLoadingRuntimeModule extends RuntimeModule {
255
255
  ","
256
256
  )}) { token = token.replace(/^_/, ""); target[token] = (${runtimeTemplate.basicFunction(
257
257
  "exports, module",
258
- `module.exports = exports;`
258
+ "module.exports = exports;"
259
259
  )}).bind(null, exports); ${
260
260
  withHmr ? "moduleIds.push(token); " : ""
261
261
  }token = ""; token2 = ""; exports = {}; }`,
262
262
  `else if(cc == ${cc("\\")}) { token += data[++i] }`,
263
- `else { token += data[i]; }`
263
+ "else { token += data[i]; }"
264
264
  ]),
265
265
  "}",
266
266
  `${
@@ -271,9 +271,9 @@ class CssLoadingRuntimeModule extends RuntimeModule {
271
271
  )}`,
272
272
  'var loadingAttribute = "data-webpack-loading";',
273
273
  `var loadStylesheet = ${runtimeTemplate.basicFunction(
274
- "chunkId, url, done" +
275
- (withHmr ? ", hmr" : "") +
276
- (withFetchPriority ? ", fetchPriority" : ""),
274
+ `chunkId, url, done${withHmr ? ", hmr" : ""}${
275
+ withFetchPriority ? ", fetchPriority" : ""
276
+ }`,
277
277
  [
278
278
  'var link, needAttach, key = "chunk-" + chunkId;',
279
279
  withHmr ? "if(!hmr) {" : "",
@@ -360,7 +360,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
360
360
  Template.indent([
361
361
  "// setup Promise in chunk cache",
362
362
  `var promise = new Promise(${runtimeTemplate.expressionFunction(
363
- `installedChunkData = installedChunks[chunkId] = [resolve, reject]`,
363
+ "installedChunkData = installedChunks[chunkId] = [resolve, reject]",
364
364
  "resolve, reject"
365
365
  )});`,
366
366
  "promises.push(installedChunkData[2] = promise);",
@@ -516,7 +516,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
516
516
  "}",
517
517
  "while(newTags.length) {",
518
518
  Template.indent([
519
- `var info = newTags.pop();`,
519
+ "var info = newTags.pop();",
520
520
  `var chunkModuleIds = loadCssChunkData(${RuntimeGlobals.moduleFactories}, info[1], info[0]);`,
521
521
  `chunkModuleIds.forEach(${runtimeTemplate.expressionFunction(
522
522
  "moduleIds.push(id)",