webpack 5.102.1 → 5.104.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 (220) hide show
  1. package/README.md +121 -134
  2. package/hot/dev-server.js +18 -3
  3. package/hot/emitter-event-target.js +7 -0
  4. package/hot/lazy-compilation-node.js +45 -29
  5. package/hot/lazy-compilation-universal.js +18 -0
  6. package/hot/lazy-compilation-web.js +15 -5
  7. package/hot/load-http.js +7 -0
  8. package/hot/only-dev-server.js +19 -4
  9. package/lib/APIPlugin.js +6 -0
  10. package/lib/Chunk.js +1 -1
  11. package/lib/ChunkGraph.js +9 -7
  12. package/lib/ChunkGroup.js +8 -5
  13. package/lib/CleanPlugin.js +6 -3
  14. package/lib/CodeGenerationResults.js +2 -1
  15. package/lib/CompatibilityPlugin.js +28 -2
  16. package/lib/Compilation.js +58 -21
  17. package/lib/Compiler.js +3 -3
  18. package/lib/ConcatenationScope.js +0 -15
  19. package/lib/ContextModule.js +6 -3
  20. package/lib/ContextModuleFactory.js +6 -4
  21. package/lib/CssModule.js +6 -1
  22. package/lib/DefinePlugin.js +45 -14
  23. package/lib/DelegatedModule.js +7 -4
  24. package/lib/Dependency.js +8 -1
  25. package/lib/DependencyTemplate.js +1 -0
  26. package/lib/DllModule.js +6 -3
  27. package/lib/DotenvPlugin.js +462 -0
  28. package/lib/EnvironmentPlugin.js +19 -16
  29. package/lib/EvalSourceMapDevToolPlugin.js +16 -0
  30. package/lib/ExportsInfo.js +6 -2
  31. package/lib/ExternalModule.js +28 -35
  32. package/lib/ExternalModuleFactoryPlugin.js +11 -9
  33. package/lib/ExternalsPlugin.js +2 -1
  34. package/lib/FileSystemInfo.js +1 -1
  35. package/lib/Generator.js +10 -7
  36. package/lib/HookWebpackError.js +33 -4
  37. package/lib/HotModuleReplacementPlugin.js +22 -0
  38. package/lib/ManifestPlugin.js +235 -0
  39. package/lib/Module.js +27 -15
  40. package/lib/ModuleBuildError.js +1 -1
  41. package/lib/ModuleError.js +1 -1
  42. package/lib/ModuleFilenameHelpers.js +1 -1
  43. package/lib/ModuleGraph.js +29 -13
  44. package/lib/ModuleGraphConnection.js +2 -2
  45. package/lib/ModuleSourceTypeConstants.js +189 -0
  46. package/lib/ModuleTypeConstants.js +1 -4
  47. package/lib/ModuleWarning.js +1 -1
  48. package/lib/MultiCompiler.js +1 -1
  49. package/lib/NodeStuffPlugin.js +424 -116
  50. package/lib/NormalModule.js +23 -20
  51. package/lib/NormalModuleFactory.js +7 -10
  52. package/lib/Parser.js +1 -1
  53. package/lib/RawModule.js +7 -4
  54. package/lib/RuntimeGlobals.js +22 -4
  55. package/lib/RuntimeModule.js +1 -1
  56. package/lib/RuntimePlugin.js +27 -6
  57. package/lib/RuntimeTemplate.js +120 -57
  58. package/lib/SourceMapDevToolPlugin.js +26 -1
  59. package/lib/Template.js +17 -6
  60. package/lib/TemplatedPathPlugin.js +5 -6
  61. package/lib/WebpackError.js +0 -1
  62. package/lib/WebpackOptionsApply.js +67 -15
  63. package/lib/asset/AssetBytesGenerator.js +16 -12
  64. package/lib/asset/AssetGenerator.js +31 -26
  65. package/lib/asset/AssetSourceGenerator.js +16 -12
  66. package/lib/asset/RawDataUrlModule.js +6 -3
  67. package/lib/buildChunkGraph.js +4 -2
  68. package/lib/cache/PackFileCacheStrategy.js +6 -5
  69. package/lib/cli.js +2 -43
  70. package/lib/config/browserslistTargetHandler.js +24 -0
  71. package/lib/config/defaults.js +226 -61
  72. package/lib/config/normalization.js +4 -3
  73. package/lib/config/target.js +11 -0
  74. package/lib/container/ContainerEntryModule.js +6 -3
  75. package/lib/container/FallbackModule.js +6 -3
  76. package/lib/container/RemoteModule.js +1 -3
  77. package/lib/css/CssGenerator.js +304 -76
  78. package/lib/css/CssLoadingRuntimeModule.js +14 -4
  79. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
  80. package/lib/css/CssModulesPlugin.js +72 -67
  81. package/lib/css/CssParser.js +1726 -732
  82. package/lib/css/walkCssTokens.js +128 -11
  83. package/lib/dependencies/CachedConstDependency.js +24 -10
  84. package/lib/dependencies/CommonJsImportsParserPlugin.js +0 -9
  85. package/lib/dependencies/CommonJsPlugin.js +12 -0
  86. package/lib/dependencies/CommonJsRequireContextDependency.js +1 -1
  87. package/lib/dependencies/ContextDependencyHelpers.js +2 -2
  88. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +3 -1
  89. package/lib/dependencies/CssIcssExportDependency.js +389 -12
  90. package/lib/dependencies/CssIcssImportDependency.js +114 -51
  91. package/lib/dependencies/CssIcssSymbolDependency.js +31 -33
  92. package/lib/dependencies/CssImportDependency.js +17 -6
  93. package/lib/dependencies/CssUrlDependency.js +3 -2
  94. package/lib/dependencies/DynamicExports.js +7 -7
  95. package/lib/dependencies/ExternalModuleDependency.js +7 -4
  96. package/lib/dependencies/ExternalModuleInitFragment.js +3 -2
  97. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +96 -0
  98. package/lib/dependencies/HarmonyAcceptDependency.js +6 -1
  99. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -1
  100. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +12 -1
  101. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +35 -23
  102. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +13 -9
  103. package/lib/dependencies/HarmonyExports.js +4 -4
  104. package/lib/dependencies/HarmonyImportDependency.js +28 -27
  105. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +28 -69
  106. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -3
  107. package/lib/dependencies/HarmonyImportSpecifierDependency.js +10 -8
  108. package/lib/dependencies/ImportDependency.js +8 -2
  109. package/lib/dependencies/ImportEagerDependency.js +6 -3
  110. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -1
  111. package/lib/dependencies/ImportMetaPlugin.js +154 -9
  112. package/lib/dependencies/ImportParserPlugin.js +21 -23
  113. package/lib/dependencies/ImportPhase.js +121 -0
  114. package/lib/dependencies/ImportWeakDependency.js +6 -3
  115. package/lib/dependencies/LocalModulesHelpers.js +3 -3
  116. package/lib/dependencies/ModuleDependency.js +5 -1
  117. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  118. package/lib/dependencies/WorkerPlugin.js +2 -2
  119. package/lib/dependencies/getFunctionExpression.js +1 -1
  120. package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -8
  121. package/lib/esm/ModuleChunkFormatPlugin.js +5 -4
  122. package/lib/hmr/HotModuleReplacement.runtime.js +2 -1
  123. package/lib/hmr/LazyCompilationPlugin.js +5 -3
  124. package/lib/ids/IdHelpers.js +20 -8
  125. package/lib/index.js +6 -0
  126. package/lib/javascript/ChunkHelpers.js +16 -5
  127. package/lib/javascript/JavascriptGenerator.js +105 -104
  128. package/lib/javascript/JavascriptModulesPlugin.js +80 -37
  129. package/lib/javascript/JavascriptParser.js +161 -44
  130. package/lib/json/JsonGenerator.js +5 -4
  131. package/lib/json/JsonParser.js +9 -2
  132. package/lib/library/AbstractLibraryPlugin.js +1 -1
  133. package/lib/library/AmdLibraryPlugin.js +4 -1
  134. package/lib/library/ExportPropertyLibraryPlugin.js +4 -1
  135. package/lib/library/ModuleLibraryPlugin.js +41 -23
  136. package/lib/library/SystemLibraryPlugin.js +8 -1
  137. package/lib/library/UmdLibraryPlugin.js +2 -2
  138. package/lib/logging/Logger.js +5 -4
  139. package/lib/logging/createConsoleLogger.js +2 -2
  140. package/lib/node/NodeTargetPlugin.js +9 -1
  141. package/lib/node/ReadFileCompileWasmPlugin.js +0 -2
  142. package/lib/optimize/ConcatenatedModule.js +208 -167
  143. package/lib/optimize/ModuleConcatenationPlugin.js +5 -4
  144. package/lib/optimize/SideEffectsFlagPlugin.js +3 -2
  145. package/lib/optimize/SplitChunksPlugin.js +60 -46
  146. package/lib/rules/RuleSetCompiler.js +1 -1
  147. package/lib/runtime/AsyncModuleRuntimeModule.js +28 -18
  148. package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
  149. package/lib/runtime/GetChunkFilenameRuntimeModule.js +3 -2
  150. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +89 -55
  151. package/lib/schemes/HttpUriPlugin.js +78 -7
  152. package/lib/serialization/AggregateErrorSerializer.js +1 -2
  153. package/lib/serialization/ObjectMiddleware.js +0 -2
  154. package/lib/serialization/SingleItemMiddleware.js +1 -1
  155. package/lib/sharing/ConsumeSharedModule.js +1 -1
  156. package/lib/sharing/ConsumeSharedPlugin.js +5 -3
  157. package/lib/sharing/ProvideSharedModule.js +1 -1
  158. package/lib/sharing/resolveMatchedConfigs.js +15 -9
  159. package/lib/sharing/utils.js +1 -1
  160. package/lib/stats/DefaultStatsFactoryPlugin.js +8 -5
  161. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  162. package/lib/stats/DefaultStatsPrinterPlugin.js +1 -1
  163. package/lib/util/StringXor.js +1 -1
  164. package/lib/util/URLAbsoluteSpecifier.js +2 -2
  165. package/lib/util/binarySearchBounds.js +2 -2
  166. package/lib/util/comparators.js +54 -76
  167. package/lib/util/compileBooleanMatcher.js +78 -6
  168. package/lib/util/createHash.js +20 -199
  169. package/lib/util/deprecation.js +1 -1
  170. package/lib/util/deterministicGrouping.js +6 -3
  171. package/lib/util/fs.js +75 -75
  172. package/lib/util/hash/BatchedHash.js +10 -9
  173. package/lib/util/hash/BulkUpdateHash.js +138 -0
  174. package/lib/util/hash/DebugHash.js +75 -0
  175. package/lib/util/hash/hash-digest.js +216 -0
  176. package/lib/util/identifier.js +82 -17
  177. package/lib/util/internalSerializables.js +2 -6
  178. package/lib/util/runtime.js +3 -3
  179. package/lib/util/source.js +2 -2
  180. package/lib/wasm/EnableWasmLoadingPlugin.js +10 -4
  181. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +3 -2
  182. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +11 -7
  183. package/lib/wasm-sync/WebAssemblyGenerator.js +9 -6
  184. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +11 -6
  185. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +6 -2
  186. package/lib/web/FetchCompileWasmPlugin.js +0 -2
  187. package/lib/webpack.js +85 -82
  188. package/module.d.ts +5 -0
  189. package/package.json +34 -28
  190. package/schemas/WebpackOptions.check.js +1 -1
  191. package/schemas/WebpackOptions.json +160 -101
  192. package/schemas/plugins/{css/CssAutoParserOptions.check.d.ts → ManifestPlugin.check.d.ts} +1 -1
  193. package/schemas/plugins/ManifestPlugin.check.js +6 -0
  194. package/schemas/plugins/ManifestPlugin.json +98 -0
  195. package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
  196. package/schemas/plugins/SourceMapDevToolPlugin.json +16 -3
  197. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  198. package/schemas/plugins/container/ContainerReferencePlugin.json +4 -1
  199. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  200. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  201. package/schemas/plugins/container/ModuleFederationPlugin.json +4 -1
  202. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -1
  203. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  204. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  205. package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -1
  206. package/types.d.ts +771 -436
  207. package/lib/ModuleSourceTypesConstants.js +0 -123
  208. package/lib/dependencies/CssLocalIdentifierDependency.js +0 -250
  209. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +0 -112
  210. package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
  211. package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
  212. package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
  213. package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
  214. package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
  215. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +0 -7
  216. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
  217. package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
  218. package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +0 -7
  219. package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
  220. package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
package/lib/webpack.js CHANGED
@@ -106,107 +106,110 @@ const createCompiler = (rawOptions, compilerIndex) => {
106
106
  };
107
107
 
108
108
  /**
109
- * @callback WebpackFunctionSingle
109
+ * @template T
110
+ * @param {T[] | T} options options
111
+ * @returns {T[]} array of options
112
+ */
113
+ const asArray = (options) =>
114
+ Array.isArray(options) ? [...options] : [options];
115
+
116
+ /**
117
+ * @overload
110
118
  * @param {WebpackOptions} options options object
111
- * @param {Callback<Stats>=} callback callback
119
+ * @param {Callback<Stats>} callback callback
112
120
  * @returns {Compiler | null} the compiler object
113
121
  */
114
-
115
122
  /**
116
- * @callback WebpackFunctionMulti
123
+ * @overload
124
+ * @param {WebpackOptions} options options object
125
+ * @returns {Compiler} the compiler object
126
+ */
127
+ /**
128
+ * @overload
117
129
  * @param {MultiWebpackOptions} options options objects
118
- * @param {Callback<MultiStats>=} callback callback
130
+ * @param {Callback<MultiStats>} callback callback
119
131
  * @returns {MultiCompiler | null} the multi compiler object
120
132
  */
121
-
122
133
  /**
123
- * @template T
124
- * @param {T[] | T} options options
125
- * @returns {T[]} array of options
134
+ * @overload
135
+ * @param {MultiWebpackOptions} options options objects
136
+ * @returns {MultiCompiler} the multi compiler object
126
137
  */
127
- const asArray = (options) =>
128
- Array.isArray(options) ? [...options] : [options];
129
-
130
138
  /**
131
- * @callback WebpackCallback
132
139
  * @param {WebpackOptions | MultiWebpackOptions} options options
133
140
  * @param {Callback<Stats> & Callback<MultiStats>=} callback callback
134
141
  * @returns {Compiler | MultiCompiler | null} Compiler or MultiCompiler
135
142
  */
136
-
137
- const webpack = /** @type {WebpackFunctionSingle & WebpackFunctionMulti} */ (
138
- /** @type {WebpackCallback} */
139
- (options, callback) => {
140
- const create = () => {
141
- if (
142
- !asArray(/** @type {WebpackOptions} */ (options)).every(
143
- webpackOptionsSchemaCheck
144
- )
145
- ) {
146
- getValidateSchema()(webpackOptionsSchema, options);
147
- util.deprecate(
148
- () => {},
149
- "webpack bug: Pre-compiled schema reports error while real schema is happy. This has performance drawbacks.",
150
- "DEP_WEBPACK_PRE_COMPILED_SCHEMA_INVALID"
151
- )();
152
- }
153
- /** @type {MultiCompiler|Compiler} */
154
- let compiler;
155
- /** @type {boolean | undefined} */
156
- let watch = false;
157
- /** @type {WatchOptions | WatchOptions[]} */
158
- let watchOptions;
159
- if (Array.isArray(options)) {
160
- /** @type {MultiCompiler} */
161
- compiler = createMultiCompiler(
162
- options,
163
- /** @type {MultiCompilerOptions} */
164
- (options)
165
- );
166
- watch = options.some((options) => options.watch);
167
- watchOptions = options.map((options) => options.watchOptions || {});
168
- } else {
169
- const webpackOptions = /** @type {WebpackOptions} */ (options);
170
- /** @type {Compiler} */
171
- compiler = createCompiler(webpackOptions);
172
- watch = webpackOptions.watch;
173
- watchOptions = webpackOptions.watchOptions || {};
174
- }
175
- return { compiler, watch, watchOptions };
176
- };
177
- if (callback) {
178
- try {
179
- const { compiler, watch, watchOptions } = create();
180
- if (watch) {
181
- compiler.watch(watchOptions, callback);
182
- } else {
183
- compiler.run((err, stats) => {
184
- compiler.close((err2) => {
185
- callback(
186
- err || err2,
187
- /** @type {options extends WebpackOptions ? Stats : MultiStats} */
188
- (stats)
189
- );
190
- });
191
- });
192
- }
193
- return compiler;
194
- } catch (err) {
195
- process.nextTick(() => callback(/** @type {Error} */ (err)));
196
- return null;
197
- }
143
+ const webpack = (options, callback) => {
144
+ const create = () => {
145
+ if (
146
+ !asArray(/** @type {WebpackOptions} */ (options)).every(
147
+ webpackOptionsSchemaCheck
148
+ )
149
+ ) {
150
+ getValidateSchema()(webpackOptionsSchema, options);
151
+ util.deprecate(
152
+ () => {},
153
+ "webpack bug: Pre-compiled schema reports error while real schema is happy. This has performance drawbacks.",
154
+ "DEP_WEBPACK_PRE_COMPILED_SCHEMA_INVALID"
155
+ )();
156
+ }
157
+ /** @type {MultiCompiler | Compiler} */
158
+ let compiler;
159
+ /** @type {boolean | undefined} */
160
+ let watch = false;
161
+ /** @type {WatchOptions | WatchOptions[]} */
162
+ let watchOptions;
163
+ if (Array.isArray(options)) {
164
+ /** @type {MultiCompiler} */
165
+ compiler = createMultiCompiler(
166
+ options,
167
+ /** @type {MultiCompilerOptions} */
168
+ (options)
169
+ );
170
+ watch = options.some((options) => options.watch);
171
+ watchOptions = options.map((options) => options.watchOptions || {});
198
172
  } else {
199
- const { compiler, watch } = create();
173
+ const webpackOptions = /** @type {WebpackOptions} */ (options);
174
+ /** @type {Compiler} */
175
+ compiler = createCompiler(webpackOptions);
176
+ watch = webpackOptions.watch;
177
+ watchOptions = webpackOptions.watchOptions || {};
178
+ }
179
+ return { compiler, watch, watchOptions };
180
+ };
181
+ if (callback) {
182
+ try {
183
+ const { compiler, watch, watchOptions } = create();
200
184
  if (watch) {
201
- util.deprecate(
202
- () => {},
203
- "A 'callback' argument needs to be provided to the 'webpack(options, callback)' function when the 'watch' option is set. There is no way to handle the 'watch' option without a callback.",
204
- "DEP_WEBPACK_WATCH_WITHOUT_CALLBACK"
205
- )();
185
+ compiler.watch(watchOptions, callback);
186
+ } else {
187
+ compiler.run((err, stats) => {
188
+ compiler.close((err2) => {
189
+ callback(
190
+ err || err2,
191
+ /** @type {options extends WebpackOptions ? Stats : MultiStats} */
192
+ (stats)
193
+ );
194
+ });
195
+ });
206
196
  }
207
197
  return compiler;
198
+ } catch (err) {
199
+ process.nextTick(() => callback(/** @type {Error} */ (err)));
200
+ return null;
208
201
  }
202
+ } else {
203
+ const { compiler, watch } = create();
204
+ if (watch) {
205
+ util.deprecate(
206
+ () => {},
207
+ "A 'callback' argument needs to be provided to the 'webpack(options, callback)' function when the 'watch' option is set. There is no way to handle the 'watch' option without a callback.",
208
+ "DEP_WEBPACK_WATCH_WITHOUT_CALLBACK"
209
+ )();
210
+ }
211
+ return compiler;
209
212
  }
210
- );
213
+ };
211
214
 
212
215
  module.exports = webpack;
package/module.d.ts CHANGED
@@ -161,10 +161,15 @@ declare namespace webpack {
161
161
  }
162
162
  }
163
163
 
164
+ interface ImportMetaEnv {
165
+ [key: string]: string | boolean | undefined;
166
+ }
167
+
164
168
  interface ImportMeta {
165
169
  url: string;
166
170
  webpack: number;
167
171
  webpackHot: webpack.Hot;
172
+ env: ImportMetaEnv;
168
173
  webpackContext: (
169
174
  request: string,
170
175
  options?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpack",
3
- "version": "5.102.1",
3
+ "version": "5.104.0",
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,12 @@
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-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-hot": "tsc -p tsconfig.hot.json",
40
41
  "lint:types-module-test": "tsc -p tsconfig.module.test.json",
41
42
  "lint:yarn": "yarn-deduplicate --fail --list -s highest yarn.lock",
42
43
  "lint:spellcheck": "cspell --cache --no-must-find-files --quiet \"**/*.*\"",
@@ -55,8 +56,10 @@
55
56
  "test": "yarn test:base",
56
57
  "test:update-snapshots": "yarn test:base -u",
57
58
  "test:basic": "yarn test:base --testMatch \"<rootDir>/test/*.basictest.js\"",
59
+ "test:basic:deno": "yarn test:base:deno --testMatch \"<rootDir>/test/*.basictest.js\"",
58
60
  "test:unit": "yarn test:base --testMatch \"<rootDir>/test/*.unittest.js\"",
59
61
  "test:integration": "yarn test:base --testMatch \"<rootDir>/test/*.{basictest,longtest,test}.js\"",
62
+ "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
63
  "test:base": "node --expose-gc --max-old-space-size=4096 --experimental-vm-modules --trace-deprecation node_modules/jest-cli/bin/jest --logHeapUsage",
61
64
  "cover": "yarn cover:all && yarn cover:report",
62
65
  "cover:clean": "rimraf .nyc_output coverage",
@@ -89,57 +92,58 @@
89
92
  "@webassemblyjs/wasm-parser": "^1.14.1",
90
93
  "acorn": "^8.15.0",
91
94
  "acorn-import-phases": "^1.0.3",
92
- "browserslist": "^4.26.3",
95
+ "browserslist": "^4.28.1",
93
96
  "chrome-trace-event": "^1.0.2",
94
- "enhanced-resolve": "^5.17.3",
95
- "es-module-lexer": "^1.2.1",
97
+ "enhanced-resolve": "^5.17.4",
98
+ "es-module-lexer": "^2.0.0",
96
99
  "eslint-scope": "5.1.1",
97
100
  "events": "^3.2.0",
98
101
  "glob-to-regexp": "^0.4.1",
99
102
  "graceful-fs": "^4.2.11",
100
103
  "json-parse-even-better-errors": "^2.3.1",
101
- "loader-runner": "^4.2.0",
104
+ "loader-runner": "^4.3.1",
102
105
  "mime-types": "^2.1.27",
103
106
  "neo-async": "^2.6.2",
104
107
  "schema-utils": "^4.3.3",
105
108
  "tapable": "^2.3.0",
106
- "terser-webpack-plugin": "^5.3.11",
109
+ "terser-webpack-plugin": "^5.3.16",
107
110
  "watchpack": "^2.4.4",
108
111
  "webpack-sources": "^3.3.3"
109
112
  },
110
113
  "devDependencies": {
111
114
  "@babel/core": "^7.27.1",
112
115
  "@babel/preset-react": "^7.27.1",
116
+ "@changesets/cli": "^2.29.8",
113
117
  "@codspeed/core": "^5.0.1",
114
- "@eslint/js": "^9.36.0",
115
- "@eslint/markdown": "^7.3.0",
116
- "@stylistic/eslint-plugin": "^5.4.0",
118
+ "@eslint/js": "^9.39.0",
119
+ "@eslint/markdown": "^7.4.0",
120
+ "@stylistic/eslint-plugin": "^5.6.0",
117
121
  "@types/glob-to-regexp": "^0.4.4",
118
122
  "@types/graceful-fs": "^4.1.9",
119
123
  "@types/jest": "^30.0.0",
120
124
  "@types/mime-types": "^2.1.4",
121
- "@types/node": "^24.5.2",
125
+ "@types/node": "^24.10.1",
122
126
  "@types/xxhashjs": "^0.2.4",
123
- "assemblyscript": "^0.28.8",
127
+ "assemblyscript": "^0.28.9",
124
128
  "babel-loader": "^10.0.0",
125
129
  "bundle-loader": "^0.5.6",
126
130
  "coffee-loader": "^5.0.0",
127
131
  "coffeescript": "^2.5.1",
128
- "core-js": "^3.43.0",
129
- "cspell": "^9.1.1",
132
+ "core-js": "^3.47.0",
133
+ "cspell": "^9.4.0",
130
134
  "css-loader": "^7.1.2",
131
135
  "date-fns": "^4.0.0",
132
136
  "es5-ext": "^0.10.53",
133
137
  "es6-promise-polyfill": "^1.2.0",
134
- "eslint": "^9.36.0",
138
+ "eslint": "^9.39.2",
135
139
  "eslint-config-prettier": "^10.1.1",
136
- "eslint-config-webpack": "^4.5.1",
140
+ "eslint-config-webpack": "^4.7.3",
137
141
  "eslint-plugin-import": "^2.32.0",
138
- "eslint-plugin-jest": "^29.0.1",
139
- "eslint-plugin-jsdoc": "^51.2.3",
142
+ "eslint-plugin-jest": "^29.5.0",
143
+ "eslint-plugin-jsdoc": "^61.5.0",
140
144
  "eslint-plugin-n": "^17.23.1",
141
145
  "eslint-plugin-prettier": "^5.5.0",
142
- "eslint-plugin-unicorn": "^61.0.1",
146
+ "eslint-plugin-unicorn": "^62.0.0",
143
147
  "file-loader": "^6.0.0",
144
148
  "fork-ts-checker-webpack-plugin": "^9.0.2",
145
149
  "globals": "^16.0.0",
@@ -154,36 +158,38 @@
154
158
  "jest-junit": "^16.0.0",
155
159
  "json-loader": "^0.5.7",
156
160
  "json5": "^2.1.3",
157
- "less": "^4.0.0",
161
+ "less": "^4.5.1",
158
162
  "less-loader": "^12.2.0",
159
- "lint-staged": "^16.1.2",
163
+ "lint-staged": "^16.2.3",
160
164
  "lodash": "^4.17.19",
161
165
  "lodash-es": "^4.17.15",
162
- "memfs": "^4.14.0",
166
+ "memfs": "^4.51.1",
167
+ "meriyah": "^7.0.0",
163
168
  "mini-css-extract-plugin": "^2.9.0",
164
169
  "mini-svg-data-uri": "^1.2.3",
165
- "node-gyp": "^11.2.0",
170
+ "node-gyp": "^12.1.0",
166
171
  "nyc": "^17.1.0",
167
172
  "open-cli": "^8.0.0",
168
- "prettier": "^3.6.0",
173
+ "pkg-pr-new": "^0.0.62",
174
+ "prettier": "^3.7.4",
169
175
  "prettier-2": "npm:prettier@^2",
170
176
  "pretty-format": "^30.0.5",
171
177
  "pug": "^3.0.3",
172
178
  "pug-loader": "^2.4.0",
173
179
  "raw-loader": "^4.0.1",
174
- "react": "^19.0.0",
175
- "react-dom": "^19.0.0",
180
+ "react": "^19.2.3",
181
+ "react-dom": "^19.2.3",
176
182
  "rimraf": "^3.0.2",
177
183
  "script-loader": "^0.7.2",
178
184
  "simple-git": "^3.28.0",
179
185
  "strip-ansi": "^6.0.0",
180
186
  "style-loader": "^4.0.0",
181
187
  "terser": "^5.43.1",
182
- "three": "^0.180.0",
188
+ "three": "^0.182.0",
183
189
  "tinybench": "^5.0.0",
184
190
  "toml": "^3.0.0",
185
191
  "tooling": "webpack/tooling#v1.24.3",
186
- "ts-loader": "^9.5.1",
192
+ "ts-loader": "^9.5.4",
187
193
  "typescript": "^5.9.3",
188
194
  "url-loader": "^4.1.0",
189
195
  "wast-loader": "^1.12.1",