webpack 5.103.0 → 5.104.1

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 (177) hide show
  1. package/hot/dev-server.js +18 -3
  2. package/hot/emitter-event-target.js +7 -0
  3. package/hot/lazy-compilation-node.js +45 -29
  4. package/hot/lazy-compilation-universal.js +18 -0
  5. package/hot/lazy-compilation-web.js +15 -5
  6. package/hot/load-http.js +7 -0
  7. package/hot/only-dev-server.js +19 -4
  8. package/lib/APIPlugin.js +6 -0
  9. package/lib/Chunk.js +1 -1
  10. package/lib/ChunkGraph.js +9 -7
  11. package/lib/ChunkGroup.js +8 -5
  12. package/lib/CleanPlugin.js +6 -3
  13. package/lib/CodeGenerationResults.js +2 -1
  14. package/lib/CompatibilityPlugin.js +3 -0
  15. package/lib/Compilation.js +33 -19
  16. package/lib/Compiler.js +3 -3
  17. package/lib/ContextModule.js +6 -3
  18. package/lib/ContextModuleFactory.js +6 -4
  19. package/lib/DefinePlugin.js +34 -3
  20. package/lib/DelegatedModule.js +7 -4
  21. package/lib/DllModule.js +6 -3
  22. package/lib/DotenvPlugin.js +11 -6
  23. package/lib/ExportsInfo.js +5 -5
  24. package/lib/ExternalModule.js +8 -7
  25. package/lib/ExternalModuleFactoryPlugin.js +1 -1
  26. package/lib/FileSystemInfo.js +1 -1
  27. package/lib/Generator.js +10 -7
  28. package/lib/HookWebpackError.js +33 -4
  29. package/lib/HotModuleReplacementPlugin.js +22 -0
  30. package/lib/ManifestPlugin.js +1 -1
  31. package/lib/Module.js +24 -15
  32. package/lib/ModuleBuildError.js +1 -1
  33. package/lib/ModuleError.js +1 -1
  34. package/lib/ModuleFilenameHelpers.js +1 -1
  35. package/lib/ModuleGraph.js +27 -12
  36. package/lib/ModuleGraphConnection.js +2 -2
  37. package/lib/ModuleSourceTypeConstants.js +189 -0
  38. package/lib/ModuleTypeConstants.js +1 -4
  39. package/lib/ModuleWarning.js +1 -1
  40. package/lib/NodeStuffPlugin.js +52 -42
  41. package/lib/NormalModule.js +6 -4
  42. package/lib/NormalModuleFactory.js +7 -10
  43. package/lib/Parser.js +1 -1
  44. package/lib/RawModule.js +7 -4
  45. package/lib/RuntimeModule.js +1 -1
  46. package/lib/RuntimeTemplate.js +5 -1
  47. package/lib/SizeFormatHelpers.js +1 -1
  48. package/lib/SourceMapDevToolPlugin.js +6 -1
  49. package/lib/Template.js +17 -6
  50. package/lib/TemplatedPathPlugin.js +5 -6
  51. package/lib/WebpackError.js +0 -1
  52. package/lib/WebpackOptionsApply.js +37 -9
  53. package/lib/asset/AssetBytesGenerator.js +15 -11
  54. package/lib/asset/AssetGenerator.js +30 -24
  55. package/lib/asset/AssetSourceGenerator.js +15 -11
  56. package/lib/asset/RawDataUrlModule.js +6 -3
  57. package/lib/buildChunkGraph.js +4 -2
  58. package/lib/cache/PackFileCacheStrategy.js +6 -5
  59. package/lib/cli.js +2 -43
  60. package/lib/config/browserslistTargetHandler.js +19 -0
  61. package/lib/config/defaults.js +128 -43
  62. package/lib/config/normalization.js +2 -2
  63. package/lib/config/target.js +5 -0
  64. package/lib/container/ContainerEntryModule.js +6 -3
  65. package/lib/container/FallbackModule.js +6 -3
  66. package/lib/container/RemoteModule.js +1 -3
  67. package/lib/css/CssGenerator.js +26 -24
  68. package/lib/css/CssLoadingRuntimeModule.js +12 -4
  69. package/lib/css/CssModulesPlugin.js +29 -74
  70. package/lib/css/CssParser.js +828 -341
  71. package/lib/css/walkCssTokens.js +33 -13
  72. package/lib/dependencies/CachedConstDependency.js +24 -10
  73. package/lib/dependencies/CommonJsRequireContextDependency.js +1 -1
  74. package/lib/dependencies/ContextDependencyHelpers.js +2 -2
  75. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +3 -1
  76. package/lib/dependencies/CssIcssExportDependency.js +242 -104
  77. package/lib/dependencies/CssIcssImportDependency.js +61 -4
  78. package/lib/dependencies/CssIcssSymbolDependency.js +2 -6
  79. package/lib/dependencies/CssImportDependency.js +2 -1
  80. package/lib/dependencies/CssUrlDependency.js +3 -2
  81. package/lib/dependencies/DynamicExports.js +7 -7
  82. package/lib/dependencies/ExternalModuleDependency.js +7 -4
  83. package/lib/dependencies/ExternalModuleInitFragment.js +2 -1
  84. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +2 -1
  85. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +3 -2
  86. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +6 -4
  87. package/lib/dependencies/HarmonyExports.js +4 -4
  88. package/lib/dependencies/HarmonyImportDependency.js +8 -3
  89. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -1
  90. package/lib/dependencies/ImportMetaPlugin.js +57 -0
  91. package/lib/dependencies/ImportParserPlugin.js +2 -2
  92. package/lib/dependencies/LocalModulesHelpers.js +3 -3
  93. package/lib/dependencies/WorkerPlugin.js +2 -2
  94. package/lib/dependencies/getFunctionExpression.js +1 -1
  95. package/lib/esm/ModuleChunkFormatPlugin.js +5 -4
  96. package/lib/hmr/HotModuleReplacement.runtime.js +2 -1
  97. package/lib/hmr/LazyCompilationPlugin.js +4 -3
  98. package/lib/ids/IdHelpers.js +16 -7
  99. package/lib/javascript/ChunkHelpers.js +1 -1
  100. package/lib/javascript/JavascriptGenerator.js +4 -3
  101. package/lib/javascript/JavascriptModulesPlugin.js +57 -24
  102. package/lib/javascript/JavascriptParser.js +19 -6
  103. package/lib/json/JsonGenerator.js +5 -4
  104. package/lib/json/JsonParser.js +2 -1
  105. package/lib/library/AbstractLibraryPlugin.js +1 -1
  106. package/lib/library/AmdLibraryPlugin.js +4 -1
  107. package/lib/library/ExportPropertyLibraryPlugin.js +4 -1
  108. package/lib/library/ModuleLibraryPlugin.js +41 -13
  109. package/lib/library/SystemLibraryPlugin.js +4 -1
  110. package/lib/library/UmdLibraryPlugin.js +1 -1
  111. package/lib/logging/Logger.js +5 -4
  112. package/lib/logging/createConsoleLogger.js +2 -2
  113. package/lib/optimize/ConcatenatedModule.js +47 -32
  114. package/lib/optimize/ModuleConcatenationPlugin.js +5 -4
  115. package/lib/optimize/SideEffectsFlagPlugin.js +3 -2
  116. package/lib/optimize/SplitChunksPlugin.js +60 -46
  117. package/lib/rules/RuleSetCompiler.js +1 -1
  118. package/lib/runtime/GetChunkFilenameRuntimeModule.js +3 -2
  119. package/lib/schemes/HttpUriPlugin.js +97 -10
  120. package/lib/serialization/AggregateErrorSerializer.js +1 -2
  121. package/lib/serialization/ObjectMiddleware.js +0 -2
  122. package/lib/serialization/SingleItemMiddleware.js +1 -1
  123. package/lib/sharing/ConsumeSharedModule.js +1 -1
  124. package/lib/sharing/ConsumeSharedPlugin.js +5 -3
  125. package/lib/sharing/ProvideSharedModule.js +1 -1
  126. package/lib/sharing/resolveMatchedConfigs.js +15 -9
  127. package/lib/sharing/utils.js +1 -1
  128. package/lib/stats/DefaultStatsFactoryPlugin.js +8 -5
  129. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  130. package/lib/stats/DefaultStatsPrinterPlugin.js +1 -1
  131. package/lib/util/StringXor.js +1 -1
  132. package/lib/util/URLAbsoluteSpecifier.js +2 -2
  133. package/lib/util/binarySearchBounds.js +2 -2
  134. package/lib/util/comparators.js +53 -76
  135. package/lib/util/compileBooleanMatcher.js +78 -6
  136. package/lib/util/createHash.js +20 -199
  137. package/lib/util/deprecation.js +1 -1
  138. package/lib/util/deterministicGrouping.js +6 -3
  139. package/lib/util/fs.js +75 -75
  140. package/lib/util/hash/BatchedHash.js +10 -9
  141. package/lib/util/hash/BulkUpdateHash.js +138 -0
  142. package/lib/util/hash/DebugHash.js +75 -0
  143. package/lib/util/hash/hash-digest.js +216 -0
  144. package/lib/util/identifier.js +82 -17
  145. package/lib/util/internalSerializables.js +2 -6
  146. package/lib/util/runtime.js +3 -3
  147. package/lib/util/source.js +2 -2
  148. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +3 -2
  149. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +3 -2
  150. package/lib/wasm-sync/WebAssemblyGenerator.js +9 -6
  151. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +3 -2
  152. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +6 -2
  153. package/lib/webpack.js +1 -1
  154. package/package.json +30 -25
  155. package/schemas/WebpackOptions.check.js +1 -1
  156. package/schemas/WebpackOptions.json +59 -82
  157. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -1
  158. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  159. package/types.d.ts +225 -158
  160. package/lib/ModuleSourceTypesConstants.js +0 -117
  161. package/lib/dependencies/CssIcssFromIdentifierDependency.js +0 -124
  162. package/lib/dependencies/CssIcssGlobalIdentifierDependency.js +0 -48
  163. package/lib/dependencies/CssIcssLocalIdentifierDependency.js +0 -61
  164. package/lib/dependencies/CssIcssSelfLocalIdentifierDependency.js +0 -190
  165. package/lib/util/jsonParseEvenBetterErrors.js +0 -10
  166. package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
  167. package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
  168. package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
  169. package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +0 -7
  170. package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
  171. package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
  172. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +0 -7
  173. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
  174. package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
  175. package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +0 -7
  176. package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
  177. package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpack",
3
- "version": "5.103.0",
3
+ "version": "5.104.1",
4
4
  "description": "Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.",
5
5
  "homepage": "https://github.com/webpack/webpack",
6
6
  "bugs": "https://github.com/webpack/webpack/issues",
@@ -32,11 +32,13 @@
32
32
  "prepare": "husky",
33
33
  "setup": "node ./setup/setup.js",
34
34
  "prelint": "yarn setup",
35
- "lint": "yarn lint:code && yarn lint:special && yarn lint:types && yarn lint:types-test && yarn lint:types-module-test && yarn lint:yarn && yarn fmt:check && yarn lint:spellcheck",
35
+ "lint": "yarn lint:code && yarn lint:special && yarn lint:types && yarn lint:types-test && yarn lint:types-benchmark && yarn lint:types-module-test && yarn lint:types-hot && yarn lint:yarn && yarn fmt:check && yarn lint:spellcheck",
36
36
  "lint:code": "node node_modules/eslint/bin/eslint.js --cache .",
37
37
  "lint:special": "node node_modules/tooling/lockfile-lint && node node_modules/tooling/schemas-lint && node node_modules/tooling/inherit-types && node node_modules/tooling/format-schemas && node tooling/generate-runtime-code.js && node tooling/generate-wasm-code.js && node node_modules/tooling/compile-to-definitions && node node_modules/tooling/precompile-schemas && node node_modules/tooling/generate-types --no-template-literals",
38
38
  "lint:types": "tsc",
39
39
  "lint:types-test": "tsc -p tsconfig.types.test.json",
40
+ "lint:types-benchmark": "tsc -p tsconfig.types.benchmark.json",
41
+ "lint:types-hot": "tsc -p tsconfig.hot.json",
40
42
  "lint:types-module-test": "tsc -p tsconfig.module.test.json",
41
43
  "lint:yarn": "yarn-deduplicate --fail --list -s highest yarn.lock",
42
44
  "lint:spellcheck": "cspell --cache --no-must-find-files --quiet \"**/*.*\"",
@@ -55,8 +57,10 @@
55
57
  "test": "yarn test:base",
56
58
  "test:update-snapshots": "yarn test:base -u",
57
59
  "test:basic": "yarn test:base --testMatch \"<rootDir>/test/*.basictest.js\"",
60
+ "test:basic:deno": "yarn test:base:deno --testMatch \"<rootDir>/test/*.basictest.js\"",
58
61
  "test:unit": "yarn test:base --testMatch \"<rootDir>/test/*.unittest.js\"",
59
62
  "test:integration": "yarn test:base --testMatch \"<rootDir>/test/*.{basictest,longtest,test}.js\"",
63
+ "test:base:deno": "deno --allow-read --allow-env --allow-sys --allow-ffi --allow-write --allow-run --v8-flags='--max-old-space-size=4096' ./node_modules/jest-cli/bin/jest.js --logHeapUsage",
60
64
  "test:base": "node --expose-gc --max-old-space-size=4096 --experimental-vm-modules --trace-deprecation node_modules/jest-cli/bin/jest --logHeapUsage",
61
65
  "cover": "yarn cover:all && yarn cover:report",
62
66
  "cover:clean": "rimraf .nyc_output coverage",
@@ -89,10 +93,10 @@
89
93
  "@webassemblyjs/wasm-parser": "^1.14.1",
90
94
  "acorn": "^8.15.0",
91
95
  "acorn-import-phases": "^1.0.3",
92
- "browserslist": "^4.26.3",
96
+ "browserslist": "^4.28.1",
93
97
  "chrome-trace-event": "^1.0.2",
94
- "enhanced-resolve": "^5.17.3",
95
- "es-module-lexer": "^1.2.1",
98
+ "enhanced-resolve": "^5.17.4",
99
+ "es-module-lexer": "^2.0.0",
96
100
  "eslint-scope": "5.1.1",
97
101
  "events": "^3.2.0",
98
102
  "glob-to-regexp": "^0.4.1",
@@ -103,40 +107,41 @@
103
107
  "neo-async": "^2.6.2",
104
108
  "schema-utils": "^4.3.3",
105
109
  "tapable": "^2.3.0",
106
- "terser-webpack-plugin": "^5.3.11",
110
+ "terser-webpack-plugin": "^5.3.16",
107
111
  "watchpack": "^2.4.4",
108
112
  "webpack-sources": "^3.3.3"
109
113
  },
110
114
  "devDependencies": {
111
115
  "@babel/core": "^7.27.1",
112
116
  "@babel/preset-react": "^7.27.1",
117
+ "@changesets/cli": "^2.29.8",
113
118
  "@codspeed/core": "^5.0.1",
114
- "@eslint/js": "^9.37.0",
119
+ "@eslint/js": "^9.39.0",
115
120
  "@eslint/markdown": "^7.4.0",
116
- "@stylistic/eslint-plugin": "^5.4.0",
121
+ "@stylistic/eslint-plugin": "^5.6.0",
117
122
  "@types/glob-to-regexp": "^0.4.4",
118
123
  "@types/graceful-fs": "^4.1.9",
119
124
  "@types/jest": "^30.0.0",
120
125
  "@types/mime-types": "^2.1.4",
121
- "@types/node": "^24.9.1",
126
+ "@types/node": "^24.10.1",
122
127
  "@types/xxhashjs": "^0.2.4",
123
128
  "assemblyscript": "^0.28.9",
124
129
  "babel-loader": "^10.0.0",
125
130
  "bundle-loader": "^0.5.6",
126
131
  "coffee-loader": "^5.0.0",
127
132
  "coffeescript": "^2.5.1",
128
- "core-js": "^3.43.0",
129
- "cspell": "^9.1.1",
133
+ "core-js": "^3.47.0",
134
+ "cspell": "^9.4.0",
130
135
  "css-loader": "^7.1.2",
131
136
  "date-fns": "^4.0.0",
132
137
  "es5-ext": "^0.10.53",
133
138
  "es6-promise-polyfill": "^1.2.0",
134
- "eslint": "^9.37.0",
139
+ "eslint": "^9.39.2",
135
140
  "eslint-config-prettier": "^10.1.1",
136
- "eslint-config-webpack": "^4.5.1",
141
+ "eslint-config-webpack": "^4.7.3",
137
142
  "eslint-plugin-import": "^2.32.0",
138
- "eslint-plugin-jest": "^29.0.1",
139
- "eslint-plugin-jsdoc": "^51.2.3",
143
+ "eslint-plugin-jest": "^29.5.0",
144
+ "eslint-plugin-jsdoc": "^61.5.0",
140
145
  "eslint-plugin-n": "^17.23.1",
141
146
  "eslint-plugin-prettier": "^5.5.0",
142
147
  "eslint-plugin-unicorn": "^62.0.0",
@@ -154,38 +159,38 @@
154
159
  "jest-junit": "^16.0.0",
155
160
  "json-loader": "^0.5.7",
156
161
  "json5": "^2.1.3",
157
- "less": "^4.4.2",
162
+ "less": "^4.5.1",
158
163
  "less-loader": "^12.2.0",
159
164
  "lint-staged": "^16.2.3",
160
165
  "lodash": "^4.17.19",
161
166
  "lodash-es": "^4.17.15",
162
- "memfs": "^4.49.0",
163
- "meriyah": "^6.1.4",
167
+ "memfs": "^4.51.1",
168
+ "meriyah": "^7.0.0",
164
169
  "mini-css-extract-plugin": "^2.9.0",
165
170
  "mini-svg-data-uri": "^1.2.3",
166
- "node-gyp": "^11.2.0",
171
+ "node-gyp": "^12.1.0",
167
172
  "nyc": "^17.1.0",
168
173
  "open-cli": "^8.0.0",
169
- "pkg-pr-new": "^0.0.60",
170
- "prettier": "^3.6.0",
174
+ "pkg-pr-new": "^0.0.62",
175
+ "prettier": "^3.7.4",
171
176
  "prettier-2": "npm:prettier@^2",
172
177
  "pretty-format": "^30.0.5",
173
178
  "pug": "^3.0.3",
174
179
  "pug-loader": "^2.4.0",
175
180
  "raw-loader": "^4.0.1",
176
- "react": "^19.2.0",
177
- "react-dom": "^19.2.0",
181
+ "react": "^19.2.3",
182
+ "react-dom": "^19.2.3",
178
183
  "rimraf": "^3.0.2",
179
184
  "script-loader": "^0.7.2",
180
185
  "simple-git": "^3.28.0",
181
186
  "strip-ansi": "^6.0.0",
182
187
  "style-loader": "^4.0.0",
183
188
  "terser": "^5.43.1",
184
- "three": "^0.181.0",
189
+ "three": "^0.182.0",
185
190
  "tinybench": "^5.0.0",
186
191
  "toml": "^3.0.0",
187
192
  "tooling": "webpack/tooling#v1.24.3",
188
- "ts-loader": "^9.5.1",
193
+ "ts-loader": "^9.5.4",
189
194
  "typescript": "^5.9.3",
190
195
  "url-loader": "^4.1.0",
191
196
  "wast-loader": "^1.12.1",