@rsbuild/core 2.2.7 → 2.2.9

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 (43) hide show
  1. package/compiled/css-loader/index.js +2 -2
  2. package/compiled/html-rspack-plugin/htmlLoader.js +8 -17
  3. package/compiled/html-rspack-plugin/index.d.ts +8 -4
  4. package/compiled/html-rspack-plugin/index.js +61 -69
  5. package/compiled/html-rspack-plugin/package.json +1 -1
  6. package/compiled/postcss-loader/index.js +6 -6
  7. package/compiled/ws/index.d.ts +445 -0
  8. package/compiled/ws/license +21 -0
  9. package/compiled/ws/package.json +1 -0
  10. package/dist/chokidar.js +1 -1
  11. package/dist/client/hmr.js +1 -1
  12. package/dist/client/overlay.js +1 -1
  13. package/dist/cssUrlLoader.mjs +1 -1
  14. package/dist/helpers/cachedImport.d.ts +2 -0
  15. package/dist/http-proxy-middleware.js +4 -4
  16. package/dist/ignoreCssLoader.mjs +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/launch-editor-middleware.js +1 -1
  20. package/dist/{626.js → m.js} +121 -160
  21. package/dist/manifest-plugin.js +1 -1
  22. package/dist/memfs.js +1 -1
  23. package/dist/open.js +2 -2
  24. package/dist/r.js +7 -0
  25. package/dist/remapping.js +8 -3
  26. package/dist/rslib-runtime.js +1 -1
  27. package/dist/server/assets-middleware/memoryFileSystem.d.ts +2 -0
  28. package/dist/server/buildManager.d.ts +3 -2
  29. package/dist/server/devServer.d.ts +5 -0
  30. package/dist/server/runner/asModule.d.ts +1 -1
  31. package/dist/server/runner/basic.d.ts +5 -4
  32. package/dist/server/runner/type.d.ts +1 -1
  33. package/dist/server/socketServer.d.ts +7 -4
  34. package/dist/sirv.js +1 -1
  35. package/dist/tinyglobby.js +1 -1
  36. package/dist/trace-mapping.js +220 -8
  37. package/dist/transformLoader.mjs +3 -2
  38. package/dist/types/config.d.ts +6 -2
  39. package/dist/ws.js +2 -2
  40. package/package.json +7 -6
  41. /package/dist/{252.js → c.js} +0 -0
  42. /package/dist/client/{307~0.js → f~0.js} +0 -0
  43. /package/dist/{626.js.LICENSE.txt → m.js.LICENSE.txt} +0 -0
@@ -1,18 +1,19 @@
1
- /*! LICENSE: 626.js.LICENSE.txt */
1
+ /*! LICENSE: m.js.LICENSE.txt */
2
2
  let runtimeProcessArgs, runtimeInfo, swcHelpersPath, pluginHelper_htmlPlugin;
3
3
  import { rspackRequire, moduleFactories, compatGetDefaultExport, createFakeNamespaceObject } from "./rslib-runtime.js";
4
4
  import { rspack as core_rspack } from "@rspack/core";
5
- import node_util, { stripVTControlCharacters } from "node:util";
5
+ import node_util, { promisify, stripVTControlCharacters } from "node:util";
6
6
  import node_path, { dirname as external_node_path_dirname, isAbsolute as external_node_path_isAbsolute, join, posix, relative, resolve as external_node_path_resolve, sep, win32 } from "node:path";
7
7
  import { builtinModules, createRequire, createRequire as __rspack_createRequire } from "node:module";
8
8
  import node_fs, { existsSync } from "node:fs";
9
- import node_os, { constants as external_node_os_constants } from "node:os";
9
+ import node_os, { constants } from "node:os";
10
10
  import node_process from "node:process";
11
11
  import { URL as external_node_url_URL, pathToFileURL, fileURLToPath as __rspack_fileURLToPath } from "node:url";
12
12
  import { isPromise, isRegExp } from "node:util/types";
13
13
  import { readFile } from "node:fs/promises";
14
- import node_zlib from "node:zlib";
14
+ import node_zlib, { constants as external_node_zlib_constants } from "node:zlib";
15
15
  import { once } from "node:events";
16
+ import { cachedImport, getTinyglobby } from "./r.js";
16
17
  var superClass, superClass1, __rspack_import_meta_filename__ = __rspack_fileURLToPath(import.meta.url);
17
18
  let __rspack_createRequire_require = __rspack_createRequire(import.meta.url);
18
19
  moduleFactories.add({
@@ -152,7 +153,7 @@ moduleFactories.add({
152
153
  };
153
154
  },
154
155
  "../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/lilconfig/3.1.3/8e9a79516bf61f8427342cef50cdad2cdc2572f42288ba8053b88eadfdc0ebef/node_modules/lilconfig/src/index.js" (module) {
155
- let path = rspackRequire("path?37f5"), fs = rspackRequire("fs?cdbd"), os = rspackRequire("os"), url = rspackRequire("url?5f07"), fsReadFileAsync = fs.promises.readFile;
156
+ let path = __rspack_createRequire_require("path"), fs = __rspack_createRequire_require("fs"), os = __rspack_createRequire_require("os"), url = __rspack_createRequire_require("url"), fsReadFileAsync = fs.promises.readFile;
156
157
  function getDefaultSearchPlaces(name, sync) {
157
158
  return [
158
159
  'package.json',
@@ -388,7 +389,7 @@ moduleFactories.add({
388
389
  }
389
390
  },
390
391
  "../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/postcss-load-config/6.0.1/d0e1ffed59e3d657674e04f8f91182ccde1db31e7c7c0f00dd625e998ab50180/node_modules/postcss-load-config/src/index.js" (module) {
391
- let yaml, { resolve } = rspackRequire("node:path?815c"), config = rspackRequire("../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/lilconfig/3.1.3/8e9a79516bf61f8427342cef50cdad2cdc2572f42288ba8053b88eadfdc0ebef/node_modules/lilconfig/src/index.js"), loadOptions = rspackRequire("../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/postcss-load-config/6.0.1/d0e1ffed59e3d657674e04f8f91182ccde1db31e7c7c0f00dd625e998ab50180/node_modules/postcss-load-config/src/options.js"), loadPlugins = rspackRequire("../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/postcss-load-config/6.0.1/d0e1ffed59e3d657674e04f8f91182ccde1db31e7c7c0f00dd625e998ab50180/node_modules/postcss-load-config/src/plugins.js"), req = rspackRequire("../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/postcss-load-config/6.0.1/d0e1ffed59e3d657674e04f8f91182ccde1db31e7c7c0f00dd625e998ab50180/node_modules/postcss-load-config/src/req.js");
392
+ let yaml, { resolve } = __rspack_createRequire_require("node:path"), config = rspackRequire("../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/lilconfig/3.1.3/8e9a79516bf61f8427342cef50cdad2cdc2572f42288ba8053b88eadfdc0ebef/node_modules/lilconfig/src/index.js"), loadOptions = rspackRequire("../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/postcss-load-config/6.0.1/d0e1ffed59e3d657674e04f8f91182ccde1db31e7c7c0f00dd625e998ab50180/node_modules/postcss-load-config/src/options.js"), loadPlugins = rspackRequire("../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/postcss-load-config/6.0.1/d0e1ffed59e3d657674e04f8f91182ccde1db31e7c7c0f00dd625e998ab50180/node_modules/postcss-load-config/src/plugins.js"), req = rspackRequire("../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/postcss-load-config/6.0.1/d0e1ffed59e3d657674e04f8f91182ccde1db31e7c7c0f00dd625e998ab50180/node_modules/postcss-load-config/src/req.js");
392
393
  async function processResult(ctx, result) {
393
394
  let obj, file = result.filepath || '', projectConfig = ((obj = result.config) && obj.__esModule ? obj : {
394
395
  default: obj
@@ -500,7 +501,7 @@ moduleFactories.add({
500
501
  };
501
502
  },
502
503
  "../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/postcss-load-config/6.0.1/d0e1ffed59e3d657674e04f8f91182ccde1db31e7c7c0f00dd625e998ab50180/node_modules/postcss-load-config/src/req.js" (module) {
503
- let tsx, jiti, { createRequire } = rspackRequire("node:module?f56b"), { pathToFileURL } = rspackRequire("node:url?5295"), TS_EXT_RE = /\.[mc]?ts$/, importError = [];
504
+ let tsx, jiti, { createRequire } = __rspack_createRequire_require("node:module"), { pathToFileURL } = __rspack_createRequire_require("node:url"), TS_EXT_RE = /\.[mc]?ts$/, importError = [];
504
505
  module.exports = async function req(name, rootFile = __rspack_import_meta_filename__) {
505
506
  let url = createRequire(rootFile).resolve(name);
506
507
  try {
@@ -531,77 +532,11 @@ moduleFactories.add({
531
532
  async_hooks (module) {
532
533
  module.exports = __rspack_createRequire_require("async_hooks");
533
534
  },
534
- buffer (module) {
535
- module.exports = __rspack_createRequire_require("buffer");
536
- },
537
- child_process (module) {
538
- module.exports = __rspack_createRequire_require("child_process");
539
- },
540
- crypto (module) {
541
- module.exports = __rspack_createRequire_require("crypto");
542
- },
543
- "fs?cdbd" (module) {
544
- module.exports = __rspack_createRequire_require("fs");
545
- },
546
- http (module) {
547
- module.exports = __rspack_createRequire_require("http");
548
- },
549
- https (module) {
550
- module.exports = __rspack_createRequire_require("https");
551
- },
552
- net (module) {
553
- module.exports = __rspack_createRequire_require("net");
554
- },
555
- "node:buffer?4a79" (module) {
556
- module.exports = __rspack_createRequire_require("node:buffer");
557
- },
558
- events (module) {
559
- module.exports = __rspack_createRequire_require("node:events");
560
- },
561
- "node:fs?31c0" (module) {
562
- module.exports = __rspack_createRequire_require("node:fs");
563
- },
564
- "node:module?f56b" (module) {
565
- module.exports = __rspack_createRequire_require("node:module");
566
- },
567
- "node:path?815c" (module) {
568
- module.exports = __rspack_createRequire_require("node:path");
569
- },
570
- "node:stream?be04" (module) {
571
- module.exports = __rspack_createRequire_require("node:stream");
572
- },
573
- "node:url?5295" (module) {
574
- module.exports = __rspack_createRequire_require("node:url");
575
- },
576
- os (module) {
577
- module.exports = __rspack_createRequire_require("os");
578
- },
579
- "path?37f5" (module) {
580
- module.exports = __rspack_createRequire_require("path");
581
- },
582
535
  process (module) {
583
536
  module.exports = __rspack_createRequire_require("process");
584
537
  },
585
- stream (module) {
586
- module.exports = __rspack_createRequire_require("stream");
587
- },
588
538
  "supports-color" (module) {
589
539
  module.exports = __rspack_createRequire_require("supports-color");
590
- },
591
- tls (module) {
592
- module.exports = __rspack_createRequire_require("tls");
593
- },
594
- tty (module) {
595
- module.exports = __rspack_createRequire_require("tty");
596
- },
597
- "url?5f07" (module) {
598
- module.exports = __rspack_createRequire_require("url");
599
- },
600
- util (module) {
601
- module.exports = __rspack_createRequire_require("util");
602
- },
603
- zlib (module) {
604
- module.exports = __rspack_createRequire_require("zlib");
605
540
  }
606
541
  }), function checkNodeVersion() {
607
542
  let { versions } = process;
@@ -1234,8 +1169,8 @@ dist_webpack_require_.m = __webpack_modules__, dist_webpack_require_.add = funct
1234
1169
  }, {});
1235
1170
  }, module.exports = deepmerge;
1236
1171
  },
1237
- "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/array.js" (__unused_rspack_module, __nested_rspack_exports__) {
1238
- __nested_rspack_exports__.arrayToString = void 0, __nested_rspack_exports__.arrayToString = (array, space, next)=>{
1172
+ "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/array.js" (__unused_rspack_module, exports) {
1173
+ exports.arrayToString = void 0, exports.arrayToString = (array, space, next)=>{
1239
1174
  let values = array.map(function(value, index) {
1240
1175
  let result = next(value, index);
1241
1176
  return void 0 === result ? String(result) : space + result.split("\n").join(`\n${space}`);
@@ -1243,8 +1178,8 @@ dist_webpack_require_.m = __webpack_modules__, dist_webpack_require_.add = funct
1243
1178
  return `[${eol}${values}${eol}]`;
1244
1179
  };
1245
1180
  },
1246
- "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/function.js" (__unused_rspack_module, __nested_rspack_exports__, __webpack_require__) {
1247
- __nested_rspack_exports__.functionToString = __nested_rspack_exports__.USED_METHOD_KEY = void 0;
1181
+ "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/function.js" (__unused_rspack_module, exports, __webpack_require__) {
1182
+ exports.functionToString = exports.USED_METHOD_KEY = void 0;
1248
1183
  let quote_1 = __webpack_require__("./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/quote.js"), METHOD_NAMES_ARE_QUOTED = '"' === ({
1249
1184
  " " () {}
1250
1185
  })[" "].toString().charAt(0), FUNCTION_PREFIXES = {
@@ -1268,9 +1203,9 @@ dist_webpack_require_.m = __webpack_modules__, dist_webpack_require_.add = funct
1268
1203
  }
1269
1204
  return found ? fnString.split(`\n${found}`).join("\n") : fnString;
1270
1205
  }
1271
- __nested_rspack_exports__.USED_METHOD_KEY = new WeakSet(), __nested_rspack_exports__.functionToString = (fn, space, next, key)=>{
1206
+ exports.USED_METHOD_KEY = new WeakSet(), exports.functionToString = (fn, space, next, key)=>{
1272
1207
  let name = "string" == typeof key ? key : void 0;
1273
- return void 0 !== name && __nested_rspack_exports__.USED_METHOD_KEY.add(fn), new FunctionParser(fn, space, next, name).stringify();
1208
+ return void 0 !== name && exports.USED_METHOD_KEY.add(fn), new FunctionParser(fn, space, next, name).stringify();
1274
1209
  };
1275
1210
  class FunctionParser {
1276
1211
  constructor(fn, indent, next, key){
@@ -1378,13 +1313,13 @@ dist_webpack_require_.m = __webpack_modules__, dist_webpack_require_.add = funct
1378
1313
  }
1379
1314
  }
1380
1315
  },
1381
- "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/index.js" (__unused_rspack_module, __nested_rspack_exports__, __webpack_require__) {
1382
- __nested_rspack_exports__.A = void 0;
1316
+ "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/index.js" (__unused_rspack_module, exports, __webpack_require__) {
1317
+ exports.A = void 0;
1383
1318
  let stringify_1 = __webpack_require__("./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/stringify.js"), quote_1 = __webpack_require__("./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/quote.js"), ROOT_SENTINEL = Symbol("root");
1384
1319
  function replacerToString(replacer) {
1385
1320
  return replacer ? (value, space, next, key)=>replacer(value, space, (value)=>stringify_1.toString(value, space, next, key), key) : stringify_1.toString;
1386
1321
  }
1387
- __nested_rspack_exports__.A = function stringify(value, replacer, indent, options = {}) {
1322
+ exports.A = function stringify(value, replacer, indent, options = {}) {
1388
1323
  let space = "string" == typeof indent ? indent : " ".repeat(indent || 0), path = [], stack = new Set(), tracking = new Map(), unpack = new Map(), valueCount = 0, { maxDepth = 100, references = !1, skipUndefinedProperties = !1, maxValues = 100000 } = options, valueToString = replacerToString(replacer), onNext = (value, key)=>{
1389
1324
  if (++valueCount > maxValues || skipUndefinedProperties && void 0 === value || path.length > maxDepth) return;
1390
1325
  if (void 0 === key) return valueToString(value, space, onNext, key);
@@ -1414,10 +1349,10 @@ dist_webpack_require_.m = __webpack_modules__, dist_webpack_require_.add = funct
1414
1349
  return result;
1415
1350
  };
1416
1351
  },
1417
- "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/object.js" (__unused_rspack_module, __nested_rspack_exports__, __webpack_require__) {
1418
- __nested_rspack_exports__.objectToString = void 0;
1352
+ "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/object.js" (__unused_rspack_module, exports, __webpack_require__) {
1353
+ exports.objectToString = void 0;
1419
1354
  let quote_1 = __webpack_require__("./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/quote.js"), function_1 = __webpack_require__("./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/function.js"), array_1 = __webpack_require__("./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/array.js");
1420
- __nested_rspack_exports__.objectToString = (value, space, next, key)=>{
1355
+ exports.objectToString = (value, space, next, key)=>{
1421
1356
  if ("function" == typeof Buffer && Buffer.isBuffer(value)) return `Buffer.from(${next(value.toString("base64"))}, 'base64')`;
1422
1357
  if ("object" == typeof global && value === global) return globalToString(value, space, next);
1423
1358
  let toString = OBJECT_TYPES[Object.prototype.toString.call(value)];
@@ -1446,8 +1381,8 @@ dist_webpack_require_.m = __webpack_modules__, dist_webpack_require_.add = funct
1446
1381
  "[object Window]": globalToString
1447
1382
  };
1448
1383
  },
1449
- "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/quote.js" (__unused_rspack_module, __nested_rspack_exports__) {
1450
- __nested_rspack_exports__.stringifyPath = __nested_rspack_exports__.quoteKey = __nested_rspack_exports__.isValidVariableName = __nested_rspack_exports__.W = __nested_rspack_exports__.quoteString = void 0;
1384
+ "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/quote.js" (__unused_rspack_module, exports) {
1385
+ exports.stringifyPath = exports.quoteKey = exports.isValidVariableName = exports.W = exports.quoteString = void 0;
1451
1386
  let ESCAPABLE = /[\\\'\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, META_CHARS = new Map([
1452
1387
  [
1453
1388
  "\b",
@@ -1485,23 +1420,23 @@ dist_webpack_require_.m = __webpack_modules__, dist_webpack_require_.add = funct
1485
1420
  function escapeChar(char) {
1486
1421
  return META_CHARS.get(char) || `\\u${`0000${char.charCodeAt(0).toString(16)}`.slice(-4)}`;
1487
1422
  }
1488
- __nested_rspack_exports__.quoteString = function quoteString(str) {
1423
+ exports.quoteString = function quoteString(str) {
1489
1424
  return `'${str.replace(ESCAPABLE, escapeChar)}'`;
1490
1425
  };
1491
1426
  let RESERVED_WORDS = new Set("break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "));
1492
1427
  function isValidVariableName(name) {
1493
- return "string" == typeof name && !RESERVED_WORDS.has(name) && __nested_rspack_exports__.W.test(name);
1428
+ return "string" == typeof name && !RESERVED_WORDS.has(name) && exports.W.test(name);
1494
1429
  }
1495
- __nested_rspack_exports__.W = /^[A-Za-z_$][A-Za-z0-9_$]*$/, __nested_rspack_exports__.isValidVariableName = isValidVariableName, __nested_rspack_exports__.quoteKey = function quoteKey(key, next) {
1430
+ exports.W = /^[A-Za-z_$][A-Za-z0-9_$]*$/, exports.isValidVariableName = isValidVariableName, exports.quoteKey = function quoteKey(key, next) {
1496
1431
  return isValidVariableName(key) ? key : next(key);
1497
- }, __nested_rspack_exports__.stringifyPath = function stringifyPath(path, next) {
1432
+ }, exports.stringifyPath = function stringifyPath(path, next) {
1498
1433
  let result = "";
1499
1434
  for (let key of path)isValidVariableName(key) ? result += `.${key}` : result += `[${next(key)}]`;
1500
1435
  return result;
1501
1436
  };
1502
1437
  },
1503
- "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/stringify.js" (__unused_rspack_module, __nested_rspack_exports__, __webpack_require__) {
1504
- __nested_rspack_exports__.toString = void 0;
1438
+ "./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/stringify.js" (__unused_rspack_module, exports, __webpack_require__) {
1439
+ exports.toString = void 0;
1505
1440
  let quote_1 = __webpack_require__("./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/quote.js"), object_1 = __webpack_require__("./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/object.js"), function_1 = __webpack_require__("./node_modules/.pnpm/javascript-stringify@2.1.0/node_modules/javascript-stringify/dist/function.js"), PRIMITIVE_TYPES = {
1506
1441
  string: quote_1.quoteString,
1507
1442
  number: (value)=>Object.is(value, -0) ? "-0" : String(value),
@@ -1515,7 +1450,7 @@ dist_webpack_require_.m = __webpack_modules__, dist_webpack_require_.add = funct
1515
1450
  object: object_1.objectToString,
1516
1451
  function: function_1.functionToString
1517
1452
  };
1518
- __nested_rspack_exports__.toString = (value, space, next, key)=>null === value ? "null" : PRIMITIVE_TYPES[typeof value](value, space, next, key);
1453
+ exports.toString = (value, space, next, key)=>null === value ? "null" : PRIMITIVE_TYPES[typeof value](value, space, next, key);
1519
1454
  }
1520
1455
  });
1521
1456
  let cjs = dist_webpack_require_("./node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js");
@@ -2267,9 +2202,9 @@ function pick(obj, keys) {
2267
2202
  for (let key of keys)void 0 !== obj[key] && (result[key] = obj[key]);
2268
2203
  return result;
2269
2204
  }
2270
- let isTTY = (type = 'stdout')=>('stdin' === type ? process.stdin.isTTY : process.stdout.isTTY) && !process.env.CI;
2205
+ let isTTY = (type = 'stdout')=>('stdin' === type ? process.stdin.isTTY : process.stdout.isTTY) && !process.env.CI, getCrypto = cachedImport(()=>import("node:crypto"));
2271
2206
  async function helpers_hash(data) {
2272
- let crypto = await import("node:crypto");
2207
+ let crypto = await getCrypto();
2273
2208
  return crypto.hash ? crypto.hash('sha256', data, 'hex').slice(0, 16) : crypto.createHash('sha256').update(data).digest('hex').slice(0, 16);
2274
2209
  }
2275
2210
  let compiler_isMultiCompiler = (compiler)=>'compilers' in compiler && Array.isArray(compiler.compilers), getPublicPathFromCompiler = (compiler)=>{
@@ -3011,9 +2946,9 @@ function exit(exitCode, type) {
3011
2946
  }
3012
2947
  function exitHook(onExit) {
3013
2948
  return exitHook_callbacks.add(onExit), isRegistered || (isRegistered = !0, node_process.on('SIGINT', ()=>{
3014
- exit(external_node_os_constants.signals.SIGINT + 128, 'SIGINT');
2949
+ exit(constants.signals.SIGINT + 128, 'SIGINT');
3015
2950
  }), node_process.once('SIGTERM', ()=>{
3016
- exit(external_node_os_constants.signals.SIGTERM + 128, 'SIGTERM');
2951
+ exit(constants.signals.SIGTERM + 128, 'SIGTERM');
3017
2952
  }), node_process.once('exit', (exitCode)=>{
3018
2953
  exit(exitCode, 'exit');
3019
2954
  })), ()=>{
@@ -3428,7 +3363,7 @@ function createPublicContext(context) {
3428
3363
  async function createContext(options, userConfig, logger, loadConfigResult) {
3429
3364
  let { cwd } = options, rootPath = userConfig.root ? ensureAbsolutePath(cwd, userConfig.root) : cwd, rsbuildConfig = await withDefaultConfig(rootPath, userConfig), cachePath = join(rootPath, 'node_modules', '.cache'), specifiedEnvironments = options.environment && options.environment.length > 0 ? options.environment : void 0, hooks = initHooks();
3430
3365
  return {
3431
- version: "2.2.7",
3366
+ version: "2.2.9",
3432
3367
  rootPath,
3433
3368
  configFile: loadConfigResult?.filePath ?? userConfig._privateMeta?.configFilePath,
3434
3369
  configFileDependencies: loadConfigResult?.dependencies ?? userConfig._privateMeta?.configFileDependencies ?? [],
@@ -4232,7 +4167,7 @@ async function createCompiler_createCompiler(options) {
4232
4167
  rspackConfigs
4233
4168
  };
4234
4169
  }
4235
- let DEFAULT_WATCH_FILE_EVENTS = [
4170
+ let getChokidar = cachedImport(()=>import("./chokidar.js").then((m)=>m.chokidar_namespaceObject)), DEFAULT_WATCH_FILE_EVENTS = [
4236
4171
  'add',
4237
4172
  'change',
4238
4173
  'unlink'
@@ -4279,9 +4214,9 @@ function prepareWatchOptions(paths, options = {}, type, events) {
4279
4214
  }
4280
4215
  let GLOB_REGEX = /[*?{}[\]()!+|]/;
4281
4216
  async function createChokidar(pathOrGlobs, root, options) {
4282
- let { default: chokidar } = await import("./chokidar.js"), watchFiles = new Set(), globPatterns = pathOrGlobs.filter((pathOrGlob)=>!!GLOB_REGEX.test(pathOrGlob) || (watchFiles.add(pathOrGlob), !1));
4217
+ let { default: chokidar } = await getChokidar(), watchFiles = new Set(), globPatterns = pathOrGlobs.filter((pathOrGlob)=>!!GLOB_REGEX.test(pathOrGlob) || (watchFiles.add(pathOrGlob), !1));
4283
4218
  if (globPatterns.length) {
4284
- let { glob } = await import("./tinyglobby.js");
4219
+ let { glob } = await getTinyglobby();
4285
4220
  for (let file of (await glob(globPatterns, {
4286
4221
  cwd: root,
4287
4222
  absolute: !0
@@ -6043,7 +5978,7 @@ let supportedChromiumBrowsers = [
6043
5978
  async function openBrowser(url, logger) {
6044
5979
  let browser = process.env.BROWSER, browserArgs = process.env.BROWSER_ARGS;
6045
5980
  if ('darwin' === process.platform && (!browser || !browserArgs) && (!browser || supportedChromiumBrowsers.includes(mapChromiumBrowserName(browser)))) {
6046
- let { execFile } = await import("node:child_process"), { promisify } = await import("node:util"), execFileAsync = promisify(execFile), getDefaultBrowserForAppleScript = async ()=>{
5981
+ let { execFile } = await import("node:child_process"), execFileAsync = promisify(execFile), getDefaultBrowserForAppleScript = async ()=>{
6047
5982
  let { stdout: ps } = await execFileAsync('ps', [
6048
5983
  'cax'
6049
5984
  ]);
@@ -6139,7 +6074,7 @@ function doesChunkBelongToHtml({ chunk, htmlPluginData }) {
6139
6074
  let { options } = htmlPluginData.plugin;
6140
6075
  return recursiveChunkEntryNames(chunk).some((chunkName)=>isChunksFiltered(chunkName, options?.chunks, options?.excludeChunks));
6141
6076
  }
6142
- let isCSSPath = (filePath)=>filePath.endsWith('.css');
6077
+ let getManifestPlugin = cachedImport(()=>import("./manifest-plugin.js").then(rspackRequire.bind(rspackRequire, "../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/rspack-manifest-plugin/5.2.2/5acfc0b855cb5cd205a81b2c264b6bdf3a41cbc273715b263f9fdb82cc7ae49c/node_modules/rspack-manifest-plugin/dist/index.js"))), isCSSPath = (filePath)=>filePath.endsWith('.css');
6143
6078
  function normalizeManifestObjectConfig(manifest) {
6144
6079
  let defaultOptions = {
6145
6080
  prefix: !0,
@@ -6825,8 +6760,8 @@ function destroyStream(stream, suppress) {
6825
6760
  'number' == typeof fd && this.close();
6826
6761
  }), 'function' == typeof stream.addListener && suppress && (stream.removeAllListeners('error'), stream.addListener('error', ()=>{}));
6827
6762
  }
6828
- let parseRangeHeaders = async (value)=>{
6829
- let { default: rangeParser } = await import("./range-parser.js").then(createFakeNamespaceObject.bind(rspackRequire, "../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/range-parser/1.3.0/d49e5dcb9d0e39475844e240fad8cd1db6a58f4144f7ede43d9755e2fce5babc/node_modules/range-parser/index.js", 23)), [len, rangeHeader] = value.split('|');
6763
+ let getRangeParser = cachedImport(()=>import("./range-parser.js").then(createFakeNamespaceObject.bind(rspackRequire, "../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/range-parser/1.3.0/d49e5dcb9d0e39475844e240fad8cd1db6a58f4144f7ede43d9755e2fce5babc/node_modules/range-parser/index.js", 23))), parseRangeHeaders = async (value)=>{
6764
+ let { default: rangeParser } = await getRangeParser(), [len, rangeHeader] = value.split('|');
6830
6765
  return rangeParser(Number(len), rangeHeader, {
6831
6766
  combine: !0
6832
6767
  });
@@ -6938,7 +6873,7 @@ function createAssetsMiddleware(context, ready, outputFileSystem) {
6938
6873
  }
6939
6874
  async function setupOutputFileSystem(writeToDisk, compilers) {
6940
6875
  if (!0 !== writeToDisk) {
6941
- let { createFsFromVolume, Volume } = await import("./memfs.js").then(createFakeNamespaceObject.bind(rspackRequire, "../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/memfs/4.76.0/faf1dbc5150aad7a40813fed85f89f32005245b4653e078bb6e3431e6d0c023c/node_modules/memfs/lib/index.js", 23)), outputFileSystem = createFsFromVolume(new Volume());
6876
+ let { createMemoryFileSystem } = await import("./memfs.js"), outputFileSystem = createMemoryFileSystem();
6942
6877
  for (let compiler of compilers)compiler.outputFileSystem = outputFileSystem;
6943
6878
  }
6944
6879
  let compiler = compilers.find((compiler)=>!!compiler.outputFileSystem);
@@ -7158,10 +7093,10 @@ function parseNode(line) {
7158
7093
  column: parts[4] ? +parts[4] : null
7159
7094
  } : null;
7160
7095
  }
7161
- let isValidMethodName = (methodName)=>'<unknown>' !== methodName && !/[\\/]/.test(methodName), isRspackRuntimeStack = (value)=>!!value && (value.includes('__webpack_require__') || value.startsWith('webpack/runtime/')), parseFrame = async (frame, fs, context, cachedTraceMap)=>{
7096
+ let getTraceMapping = cachedImport(()=>import("./trace-mapping.js").then((m)=>m.trace_mapping_namespaceObject)), isValidMethodName = (methodName)=>'<unknown>' !== methodName && !/[\\/]/.test(methodName), isRspackRuntimeStack = (value)=>!!value && (value.includes('__webpack_require__') || value.startsWith('webpack/runtime/')), parseFrame = async (frame, fs, context, cachedTraceMap)=>{
7162
7097
  let { file, column, lineNumber } = frame, sourceMapInfo = await getFileFromUrl(`${file}.map`, fs, context);
7163
7098
  if (!sourceMapInfo || 'errorCode' in sourceMapInfo) return;
7164
- let { TraceMap, originalPositionFor } = await import("./trace-mapping.js"), sourceMapPath = sourceMapInfo.filename;
7099
+ let { TraceMap, originalPositionFor } = await getTraceMapping(), sourceMapPath = sourceMapInfo.filename;
7165
7100
  try {
7166
7101
  let tracer = cachedTraceMap.get(sourceMapPath);
7167
7102
  if (!tracer) {
@@ -7328,8 +7263,9 @@ class SocketServer {
7328
7263
  getOutputFileSystem;
7329
7264
  reportedBrowserLogs = new Set();
7330
7265
  currentHash = new Map();
7331
- constructor(context, options, getOutputFileSystem){
7332
- this.context = context, this.options = options, this.getOutputFileSystem = getOutputFileSystem;
7266
+ onSocketConnect;
7267
+ constructor(context, options, getOutputFileSystem, onSocketConnect){
7268
+ this.context = context, this.options = options, this.getOutputFileSystem = getOutputFileSystem, this.onSocketConnect = onSocketConnect;
7333
7269
  }
7334
7270
  upgrade = (req, socket, head)=>{
7335
7271
  if (!this.wsServer.shouldHandle(req)) return;
@@ -7387,17 +7323,19 @@ class SocketServer {
7387
7323
  }
7388
7324
  }, token);
7389
7325
  }
7390
- sendMessage(message, token) {
7391
- let messageStr = JSON.stringify(message), sendToSockets = (sockets)=>{
7326
+ sendMessage(message, target) {
7327
+ let messageStr = JSON.stringify(message);
7328
+ if ('object' == typeof target) return void this.sendRawMessage(target, messageStr);
7329
+ let sendToSockets = (sockets)=>{
7392
7330
  for (let socket of sockets)this.sendRawMessage(socket, messageStr);
7393
7331
  };
7394
- if (token) {
7395
- let sockets = this.socketsMap.get(token);
7332
+ if (target) {
7333
+ let sockets = this.socketsMap.get(target);
7396
7334
  sockets && sendToSockets(sockets);
7397
7335
  } else for (let sockets of this.socketsMap.values())sendToSockets(sockets);
7398
7336
  }
7399
7337
  async close() {
7400
- for (let socket of (this.clearHeartbeatTimer(), this.wsServer.removeAllListeners(), this.wsServer.clients))socket.terminate();
7338
+ for (let socket of (this.clearHeartbeatTimer(), this.onSocketConnect = void 0, this.wsServer.removeAllListeners(), this.wsServer.clients))socket.terminate();
7401
7339
  for (let sockets of this.socketsMap.values())sockets.forEach((socket)=>{
7402
7340
  socket.close();
7403
7341
  });
@@ -7446,7 +7384,7 @@ class SocketServer {
7446
7384
  }), this.sendStats({
7447
7385
  force: !0,
7448
7386
  token
7449
- });
7387
+ }), this.onSocketConnect?.(socket, token);
7450
7388
  }
7451
7389
  getEnvironmentByToken(token) {
7452
7390
  return this.context.environmentList.find(({ webSocketToken })=>webSocketToken === token);
@@ -7518,8 +7456,8 @@ class BuildManager {
7518
7456
  config;
7519
7457
  resolvedPort;
7520
7458
  context;
7521
- constructor({ config, context, compiler, resolvedPort }){
7522
- this.config = config, this.context = context, this.compiler = compiler, this.resolvedPort = resolvedPort, this.outputFileSystem = node_fs, this.socketServer = new SocketServer(context, config.dev, ()=>this.outputFileSystem), this.context.socketServer = this.socketServer;
7459
+ constructor({ config, context, compiler, resolvedPort, onSocketConnect }){
7460
+ this.config = config, this.context = context, this.compiler = compiler, this.resolvedPort = resolvedPort, this.outputFileSystem = node_fs, this.socketServer = new SocketServer(context, config.dev, ()=>this.outputFileSystem, onSocketConnect), this.context.socketServer = this.socketServer;
7523
7461
  }
7524
7462
  async init() {
7525
7463
  await this.setupCompilationMiddleware(), await this.socketServer.prepare();
@@ -7992,18 +7930,18 @@ let applyDefaultMiddlewares = async ({ config, buildManager, context, devServer,
7992
7930
  },
7993
7931
  onUpgrade
7994
7932
  };
7995
- }, isModuleNamespaceObject = (moduleExports)=>'[object Module]' === Object.prototype.toString.call(moduleExports), asModule = async (moduleExports, context, unlinked)=>{
7996
- let { Module, SyntheticModule } = await import("node:vm");
7933
+ }, isModuleNamespaceObject = (moduleExports)=>'[object Module]' === Object.prototype.toString.call(moduleExports), asModule = async (vm, moduleExports, context, unlinked)=>{
7934
+ let { Module, SyntheticModule } = vm;
7997
7935
  if (moduleExports instanceof Module) return moduleExports;
7998
7936
  let normalizedModuleExports = null !== moduleExports && ('object' == typeof moduleExports || 'function' == typeof moduleExports) ? moduleExports : {
7999
7937
  default: moduleExports
8000
- }, __nested_rspack_exports__ = [
7938
+ }, exports = [
8001
7939
  ...new Set([
8002
7940
  'default',
8003
7941
  ...Object.keys(normalizedModuleExports)
8004
7942
  ])
8005
- ], syntheticModule = new SyntheticModule(__nested_rspack_exports__, ()=>{
8006
- for (let name of __nested_rspack_exports__)if ('default' === name) {
7943
+ ], syntheticModule = new SyntheticModule(exports, ()=>{
7944
+ for (let name of exports)if ('default' === name) {
8007
7945
  let defaultExport = isModuleNamespaceObject(normalizedModuleExports) && 'default' in normalizedModuleExports ? normalizedModuleExports.default : moduleExports;
8008
7946
  syntheticModule.setExport(name, defaultExport);
8009
7947
  } else syntheticModule.setExport(name, normalizedModuleExports[name]);
@@ -8013,16 +7951,16 @@ let applyDefaultMiddlewares = async ({ config, buildManager, context, devServer,
8013
7951
  return unlinked || (await syntheticModule.link(()=>{}), await syntheticModule.evaluate()), syntheticModule;
8014
7952
  };
8015
7953
  class BasicRunner {
8016
- _options;
7954
+ options;
8017
7955
  globalContext = null;
8018
7956
  baseModuleScope = null;
8019
7957
  requirers = new Map();
8020
- constructor(_options){
8021
- this._options = _options;
7958
+ constructor(options){
7959
+ this.options = options;
8022
7960
  }
8023
7961
  run(file) {
8024
7962
  this.globalContext || (this.globalContext = this.createGlobalContext()), this.baseModuleScope = this.createBaseModuleScope(), this.createRunner();
8025
- let res = this.getRequire()(this._options.dist, file.startsWith('./') ? file : `./${file}`);
7963
+ let res = this.getRequire()(this.options.dist, file.startsWith('./') ? file : `./${file}`);
8026
7964
  return res && 'object' == typeof res && 'then' in res ? res : Promise.resolve(res);
8027
7965
  }
8028
7966
  getRequire() {
@@ -8036,9 +7974,8 @@ class BasicRunner {
8036
7974
  subPath: ''
8037
7975
  };
8038
7976
  let joinedPath = /^\.\.?\//.test(modulePath) ? node_path.join(currentDirectory, modulePath) : modulePath;
8039
- return this._options.isOutputFile(joinedPath) ? {
7977
+ return this.options.isOutputFile(joinedPath) ? {
8040
7978
  path: joinedPath,
8041
- content: this._options.readFileSync(joinedPath),
8042
7979
  subPath: ((p)=>{
8043
7980
  let lastSlash = p.lastIndexOf('/'), firstSlash = p.indexOf('/');
8044
7981
  if (-1 !== lastSlash && firstSlash !== lastSlash) {
@@ -8052,6 +7989,9 @@ class BasicRunner {
8052
7989
  })(modulePath)
8053
7990
  } : null;
8054
7991
  }
7992
+ getFileContent(file) {
7993
+ return file.content ??= this.options.readFileSync(file.path);
7994
+ }
8055
7995
  preExecute(_code, _file) {}
8056
7996
  postExecute(_m, _file) {}
8057
7997
  createRunner() {
@@ -8111,19 +8051,19 @@ class CommonJsRunner extends BasicRunner {
8111
8051
  };
8112
8052
  }
8113
8053
  createCjsRequirer() {
8114
- let requireCache = Object.create(null), vm = vendors_require('node:vm');
8054
+ let cachedDynamicImport, requireCache = Object.create(null), vm = vendors_require('node:vm');
8115
8055
  return (currentDirectory, modulePath, context = {})=>{
8116
8056
  let file = context.file || this.getFile(modulePath, currentDirectory);
8117
8057
  if (!file) return this.requirers.get('miss')(currentDirectory, modulePath);
8118
8058
  if (file.path in requireCache) return requireCache[file.path].exports;
8119
- let m = {
8059
+ let content = this.getFileContent(file), m = {
8120
8060
  exports: {}
8121
8061
  };
8122
8062
  requireCache[file.path] = m;
8123
8063
  let currentModuleScope = this.createModuleScope(this.getRequire(), m, file), args = Object.keys(currentModuleScope), argValues = args.map((arg)=>currentModuleScope[arg]);
8124
- this.preExecute(file.content, file);
8125
- let dynamicImport = Function('specifier', 'return import(specifier)');
8126
- return vm.compileFunction(file.content, args, {
8064
+ this.preExecute(content, file);
8065
+ let dynamicImport = cachedDynamicImport ??= Function('specifier', 'return import(specifier)');
8066
+ return vm.compileFunction(content, args, {
8127
8067
  filename: file.path,
8128
8068
  importModuleDynamically: async (specifier)=>await dynamicImport(specifier)
8129
8069
  }).call(m.exports, ...argValues), this.postExecute(m, file), m.exports;
@@ -8133,7 +8073,7 @@ class CommonJsRunner extends BasicRunner {
8133
8073
  class EsmRunner extends CommonJsRunner {
8134
8074
  createRunner() {
8135
8075
  super.createRunner(), this.requirers.set('cjs', this.getRequire()), this.requirers.set('esm', this.createEsmRequirer());
8136
- let outputModule = this._options.compilerOptions.output.module;
8076
+ let outputModule = this.options.compilerOptions.output.module;
8137
8077
  this.requirers.set('entry', (currentDirectory, modulePath, context)=>{
8138
8078
  let file = this.getFile(modulePath, currentDirectory);
8139
8079
  return file ? outputModule && !file.path.endsWith('.cjs') ? this.requirers.get('esm')(currentDirectory, modulePath, {
@@ -8146,7 +8086,7 @@ class EsmRunner extends CommonJsRunner {
8146
8086
  });
8147
8087
  }
8148
8088
  createEsmRequirer() {
8149
- let esmCache = new Map(), esmIdentifier = this._options.name, vm = vendors_require('node:vm');
8089
+ let esmCache = new Map(), esmIdentifier = this.options.name, vm = vendors_require('node:vm');
8150
8090
  return (currentDirectory, modulePath, context = {})=>{
8151
8091
  if (!vm.SourceTextModule) throw Error(`${color.dim('[rsbuild:runner]')} Running ESM bundle needs add Node.js option ${color.yellow('--experimental-vm-modules')}.`);
8152
8092
  let _require = this.getRequire(), file = context.file || this.getFile(modulePath, currentDirectory);
@@ -8159,14 +8099,14 @@ class EsmRunner extends CommonJsRunner {
8159
8099
  initializeImportMeta: (meta)=>{
8160
8100
  meta.url = pathToFileURL(file.path).href;
8161
8101
  },
8162
- importModuleDynamically: async (specifier, module)=>asModule(await _require(node_path.dirname(file.path), specifier, {
8102
+ importModuleDynamically: async (specifier, module)=>asModule(vm, await _require(node_path.dirname(file.path), specifier, {
8163
8103
  esmMode: 1
8164
8104
  }), module.context)
8165
8105
  };
8166
- esm = new vm.SourceTextModule(file.content, sourceTextModuleOptions), esmCache.set(file.path, esm);
8106
+ esm = new vm.SourceTextModule(this.getFileContent(file), sourceTextModuleOptions), esmCache.set(file.path, esm);
8167
8107
  }
8168
8108
  return 2 === context.esmMode ? esm : (async ()=>{
8169
- if (await esm.link(async (specifier, referencingModule)=>asModule(await _require(node_path.dirname(referencingModule.identifier), specifier, {
8109
+ if (await esm.link(async (specifier, referencingModule)=>asModule(vm, await _require(node_path.dirname(referencingModule.identifier), specifier, {
8170
8110
  esmMode: 2
8171
8111
  }), referencingModule.context, !0)), await esm.evaluate(), 1 === context.esmMode) return esm;
8172
8112
  let ns = esm.namespace;
@@ -8253,7 +8193,7 @@ let runner_run = async ({ bundlePath, ...runnerFactoryOptions })=>{
8253
8193
  }, shutdownRefCount = 0, setupGracefulShutdown = ()=>{
8254
8194
  shutdownRefCount++;
8255
8195
  let onSigterm = ()=>{
8256
- handleTermination(external_node_os_constants.signals.SIGTERM + 128);
8196
+ handleTermination(constants.signals.SIGTERM + 128);
8257
8197
  };
8258
8198
  process.once('SIGTERM', onSigterm);
8259
8199
  let isCI = 'true' === process.env.CI, onStdinEnd = ()=>{
@@ -8312,7 +8252,7 @@ async function devServer_createDevServer(options, createCompiler, config, devSer
8312
8252
  let currentStats = stats[index];
8313
8253
  return currentStats || waiters[index].promise;
8314
8254
  }
8315
- }), startCompile = async ()=>{
8255
+ }), hotConnectCallbacks = new Map(), startCompile = async ()=>{
8316
8256
  let compiler = await createCompiler();
8317
8257
  if (!compiler) throw Error(`${color.dim('[rsbuild:server]')} Failed to get compiler instance.`);
8318
8258
  context.publicPathnames = getPublicPathnames(compiler_isMultiCompiler(compiler) ? compiler.compilers.map(getPublicPathFromCompiler) : [
@@ -8337,7 +8277,23 @@ async function devServer_createDevServer(options, createCompiler, config, devSer
8337
8277
  context,
8338
8278
  config,
8339
8279
  compiler,
8340
- resolvedPort: port
8280
+ resolvedPort: port,
8281
+ onSocketConnect: (socket, token)=>{
8282
+ let callbacks = hotConnectCallbacks?.get(token);
8283
+ if (!callbacks?.size) return;
8284
+ let client = {
8285
+ send: createHotSend(socket)
8286
+ };
8287
+ for (let callback of [
8288
+ ...callbacks
8289
+ ])try {
8290
+ Promise.resolve(callback(client)).catch((error)=>{
8291
+ logger.error(error);
8292
+ });
8293
+ } catch (error) {
8294
+ logger.error(error);
8295
+ }
8296
+ }
8341
8297
  });
8342
8298
  return await buildManager.init(), buildManager;
8343
8299
  }, protocol = isHttps ? 'https' : 'http', urls = await getAddressUrls({
@@ -8362,7 +8318,7 @@ async function devServer_createDevServer(options, createCompiler, config, devSer
8362
8318
  protocol,
8363
8319
  clearCache: !0,
8364
8320
  logger
8365
- }), state = {}, cleanupGracefulShutdown = middlewareMode ? null : setupGracefulShutdown(), closeServerResources = ()=>(closingPromise || (unregisterRestart?.(), unregisterRestart = void 0, closingPromise = (async ()=>{
8321
+ }), state = {}, cleanupGracefulShutdown = middlewareMode ? null : setupGracefulShutdown(), closeServerResources = ()=>(closingPromise || (hotConnectCallbacks = void 0, unregisterRestart?.(), unregisterRestart = void 0, closingPromise = (async ()=>{
8366
8322
  removeCleanup(closeServer), cleanupGracefulShutdown?.(), await context.hooks.onCloseDevServer.callBatch(), await Promise.all([
8367
8323
  state.devMiddlewares?.close(),
8368
8324
  state.fileWatcher?.close()
@@ -8398,15 +8354,24 @@ async function devServer_createDevServer(options, createCompiler, config, devSer
8398
8354
  if (!htmlPath) throw Error(`${color.dim('[rsbuild:getTransformedHtml]')} Failed to get HTML file by entryName: ${color.yellow(entryName)}`);
8399
8355
  let fileName = join(distPath, htmlPath);
8400
8356
  return utils.readFileSync(fileName);
8401
- })(entryName, utils)), environmentAPI = {}, createHotSend = (token)=>(type, data)=>state.buildManager?.socketServer.sendMessage({
8357
+ })(entryName, utils)), environmentAPI = {}, createHotSend = (target)=>(type, data)=>state.buildManager?.socketServer.sendMessage({
8402
8358
  type,
8403
8359
  data
8404
- }, token), getErrorMsg = (method)=>`${color.dim('[rsbuild:server]')} Can not call ${color.yellow(method)} when ${color.yellow('runCompile')} is false`;
8360
+ }, target), getErrorMsg = (method)=>`${color.dim('[rsbuild:server]')} Can not call ${color.yellow(method)} when ${color.yellow('runCompile')} is false`;
8405
8361
  context.environmentList.forEach((environment, index)=>{
8362
+ let { webSocketToken } = environment;
8406
8363
  environmentAPI[environment.name] = {
8407
8364
  context: environment,
8408
8365
  hot: {
8409
- send: createHotSend(environment.webSocketToken)
8366
+ send: createHotSend(webSocketToken),
8367
+ onConnect: (callback)=>{
8368
+ if (!runCompile) throw Error(getErrorMsg('hot.onConnect'));
8369
+ if (!hotConnectCallbacks) return ()=>{};
8370
+ let callbacks = hotConnectCallbacks.get(webSocketToken);
8371
+ return callbacks || (callbacks = new Set(), hotConnectCallbacks.set(webSocketToken, callbacks)), callbacks.add(callback), ()=>{
8372
+ hotConnectCallbacks?.get(webSocketToken)?.delete(callback);
8373
+ };
8374
+ }
8410
8375
  },
8411
8376
  getStats: async ()=>{
8412
8377
  if (!state.buildManager) throw Error(getErrorMsg('getStats'));
@@ -8561,14 +8526,10 @@ async function startPreviewServer(context, config, { getPortSilently } = {}) {
8561
8526
  for (let middleware of proxyMiddlewares)middlewares.use(middleware);
8562
8527
  httpServer.on('upgrade', upgrade);
8563
8528
  }
8564
- if (compress) {
8565
- let { constants } = await import("node:zlib");
8566
- middlewares.use(gzipMiddleware_gzipMiddleware({
8567
- level: constants.Z_DEFAULT_COMPRESSION,
8568
- ...'object' == typeof compress ? compress : void 0
8569
- }));
8570
- }
8571
- for (let callback of (base && '/' !== base && middlewares.use(getBaseUrlMiddleware({
8529
+ for (let callback of (compress && middlewares.use(gzipMiddleware_gzipMiddleware({
8530
+ level: external_node_zlib_constants.Z_DEFAULT_COMPRESSION,
8531
+ ...'object' == typeof compress ? compress : void 0
8532
+ })), base && '/' !== base && middlewares.use(getBaseUrlMiddleware({
8572
8533
  base
8573
8534
  })), middlewares.use(assetsMiddleware), middlewares.use(getHtmlCompletionMiddleware(htmlMiddlewareOptions)), historyApiFallback && (middlewares.use(historyApiFallback_historyApiFallbackMiddleware(logger, !0 === historyApiFallback ? {} : historyApiFallback)), middlewares.use(assetsMiddleware)), postSetupCallbacks))await callback();
8574
8535
  serverConfig.htmlFallback && middlewares.use(getHtmlFallbackMiddleware({
@@ -9707,7 +9668,7 @@ try {
9707
9668
  if (!1 === copyOnBuild || !node_fs.existsSync(publicDir)) continue;
9708
9669
  let distPaths = dedupeNestedPaths(Object.values(environments).filter(({ config })=>!0 === copyOnBuild || 'auto' === copyOnBuild && 'node' !== config.output.target).map(({ distPath })=>distPath));
9709
9670
  if (ignore?.length) {
9710
- let { globSync } = await import("./tinyglobby.js"), ignoredSet = new Set(globSync(ignore, {
9671
+ let { globSync } = await getTinyglobby(), ignoredSet = new Set(globSync(ignore, {
9711
9672
  cwd: publicDir,
9712
9673
  absolute: !1,
9713
9674
  dot: !0,
@@ -9746,7 +9707,7 @@ try {
9746
9707
  api.modifyBundlerChain(async (chain, { CHAIN_ID, environment, isDev })=>{
9747
9708
  let { output: { manifest }, dev: { writeToDisk } } = environment.config;
9748
9709
  if (!1 === manifest) return;
9749
- let manifestOptions = normalizeManifestObjectConfig(manifest), { RspackManifestPlugin } = await import("./manifest-plugin.js").then(rspackRequire.bind(rspackRequire, "../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/rspack-manifest-plugin/5.2.2/5d88c647f2fff04285ff0d04f7bc66905e161f11159f822bc12012498ef0e6d8/node_modules/rspack-manifest-plugin/dist/index.js")), { htmlPaths } = environment, filter = manifestOptions.filter ?? ((file)=>!file.name.endsWith('.LICENSE.txt'));
9710
+ let manifestOptions = normalizeManifestObjectConfig(manifest), { RspackManifestPlugin } = await getManifestPlugin(), { htmlPaths } = environment, filter = manifestOptions.filter ?? ((file)=>!file.name.endsWith('.LICENSE.txt'));
9750
9711
  manifestFilenames.set(environment.name, manifestOptions.filename);
9751
9712
  let pluginOptions = {
9752
9713
  fileName: manifestOptions.filename,
@@ -10296,7 +10257,7 @@ let applyServerOptions = (command)=>{
10296
10257
  };
10297
10258
  function setupCommands(argv) {
10298
10259
  let cli = ((name = "")=>new CAC(name))('rsbuild');
10299
- cli.version("2.2.7"), cli.option('--base <base>', 'Set the base path of the server').option('-c, --config <config>', 'Set the configuration file (relative or absolute path)').option('--config-loader <loader>', 'Set the config file loader (auto | jiti | native)', {
10260
+ cli.version("2.2.9"), cli.option('--base <base>', 'Set the base path of the server').option('-c, --config <config>', 'Set the configuration file (relative or absolute path)').option('--config-loader <loader>', 'Set the config file loader (auto | jiti | native)', {
10300
10261
  default: 'auto'
10301
10262
  }).option('--dist-path <dir>', 'Set the root directory of output files').option('--source-map', 'Enable source map').option('--env-dir <dir>', 'Set the directory for loading `.env` files').option('--env-mode <mode>', 'Set the env mode to load the `.env.[mode]` file').option('--environment <name>', 'Set the environment name(s) to build', {
10302
10263
  type: [
@@ -10361,7 +10322,7 @@ function setupCommands(argv) {
10361
10322
  }
10362
10323
  function showGreeting() {
10363
10324
  let { npm_execpath, npm_lifecycle_event, NODE_RUN_SCRIPT_NAME } = process.env, isBun = npm_execpath?.includes('.bun');
10364
- src_logger.greet(`${'npx' === npm_lifecycle_event || isBun || NODE_RUN_SCRIPT_NAME ? '\n' : ''}Rsbuild v2.2.7\n`);
10325
+ src_logger.greet(`${'npx' === npm_lifecycle_event || isBun || NODE_RUN_SCRIPT_NAME ? '\n' : ''}Rsbuild v2.2.9\n`);
10365
10326
  }
10366
10327
  function setupLogLevel(argv) {
10367
10328
  if (argv.length <= 3) return;
@@ -10383,5 +10344,5 @@ function runCLI({ argv = process.argv } = {}) {
10383
10344
  src_logger.error('Failed to start Rsbuild CLI.'), src_logger.error(err), process.exit(1);
10384
10345
  }
10385
10346
  }
10386
- let src_version = "2.2.7";
10347
+ let src_version = "2.2.9";
10387
10348
  export { PLUGIN_CSS_NAME, PLUGIN_SWC_NAME, core_rspack as rspack, createRsbuild, defaultAllowedOrigins, defineConfig, ensureAssetPrefix, loadConfig_loadConfig as loadConfig, loadEnv, logger_createLogger as createLogger, mergeRsbuildConfig, mrmime_lookup, runCLI, src_logger as logger, src_version as version };