@rsbuild/core 1.1.11 → 1.1.13

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.
package/dist/index.js CHANGED
@@ -10,8 +10,8 @@ import * as __WEBPACK_EXTERNAL_MODULE_os__ from "os";
10
10
  import * as __WEBPACK_EXTERNAL_MODULE_path__ from "path";
11
11
  import * as __WEBPACK_EXTERNAL_MODULE__rspack_core__ from "@rspack/core";
12
12
  import * as __WEBPACK_EXTERNAL_MODULE_node_module__ from "node:module";
13
- import * as __WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__ from "../compiled/picocolors/index.js";
14
13
  import * as __WEBPACK_EXTERNAL_MODULE_node_url__ from "node:url";
14
+ import * as __WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__ from "../compiled/picocolors/index.js";
15
15
  import * as __WEBPACK_EXTERNAL_MODULE__compiled_rslog_index_js__ from "../compiled/rslog/index.js";
16
16
  import * as __WEBPACK_EXTERNAL_MODULE_node_util_types__ from "node:util/types";
17
17
  import * as __WEBPACK_EXTERNAL_MODULE__compiled_rspack_chain_index_js__ from "../compiled/rspack-chain/index.js";
@@ -1512,47 +1512,11 @@ let getCompiledPath = (packageName)=>(0, external_node_path_.join)(COMPILED_PATH
1512
1512
  } catch (err) {
1513
1513
  return publicPath;
1514
1514
  }
1515
- };
1516
- function formatMessage(stats, verbose) {
1517
- let message, lines = [];
1518
- if ('object' == typeof stats) {
1519
- let fileName = function(stats) {
1520
- if (stats.moduleIdentifier) {
1521
- let matched = stats.moduleIdentifier.match(/(?:\!|^)([^!]+)$/);
1522
- if (matched) {
1523
- let fileName = matched.pop();
1524
- if (fileName) return `File: ${fileName}:1:1\n`;
1525
- }
1526
- }
1527
- let file = stats.file || stats.moduleName;
1528
- return file ? `File: ${file}\n` : '';
1529
- }(stats), mainMessage = stats.message, details = verbose && stats.details ? `\nDetails: ${stats.details}\n` : '', stack = verbose && stats.stack ? `\n${stats.stack}` : '', moduleTrace = function(stats) {
1530
- let traceStr = '';
1531
- if (stats.moduleTrace) for (let trace of stats.moduleTrace)trace.originName && (traceStr += `\n @ ${trace.originName}`);
1532
- return traceStr;
1533
- }(stats);
1534
- message = `${fileName}${mainMessage}${details}${stack}${moduleTrace}`;
1535
- } else message = stats;
1536
- message = (lines = (lines = (message = function(message) {
1537
- let hint = 'You may need an appropriate loader to handle this file type.';
1538
- return -1 === message.indexOf(hint) ? message : /File: .+\.s(c|a)ss/.test(message) ? message.replace(hint, 'To enable support for Sass, use "@rsbuild/plugin-sass".') : /File: .+\.less/.test(message) ? message.replace(hint, 'To enable support for Less, use "@rsbuild/plugin-less".') : /File: .+\.styl(us)?/.test(message) ? message.replace(hint, 'To enable support for Stylus, use "@rsbuild/plugin-stylus".') : message;
1539
- }(message)).split('\n')).filter((line, index, arr)=>0 === index || '' !== line.trim() || line.trim() !== arr[index - 1].trim())).join('\n');
1540
- let innerError = '-- inner error --';
1541
- return !verbose && message.includes(innerError) && (message = message.split(innerError)[0]), message.trim();
1542
- }
1543
- function formatStatsMessages(stats, verbose) {
1544
- var _stats_errors, _stats_warnings;
1545
- let formattedErrors = (null === (_stats_errors = stats.errors) || void 0 === _stats_errors ? void 0 : _stats_errors.map((error)=>formatMessage(error, verbose))) || [];
1546
- return {
1547
- errors: formattedErrors,
1548
- warnings: (null === (_stats_warnings = stats.warnings) || void 0 === _stats_warnings ? void 0 : _stats_warnings.map((warning)=>formatMessage(warning, verbose))) || []
1549
- };
1550
- }
1551
- let hintNodePolyfill = (message)=>{
1515
+ }, hintNodePolyfill = (message)=>{
1552
1516
  let getTips = (moduleName)=>{
1553
1517
  let tips = [
1554
1518
  `Tip: "${moduleName}" is a built-in Node.js module. It cannot be imported in client-side code.`,
1555
- `Check if you need to import Node.js module. If needed, you can use ${__WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.cyan('@rsbuild/plugin-node-polyfill')}.`
1519
+ `Check if you need to import Node.js module. If needed, you can use "${__WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.cyan('@rsbuild/plugin-node-polyfill')}" to polyfill it.`
1556
1520
  ];
1557
1521
  return `${message}\n\n${__WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.yellow(tips.join('\n'))}`;
1558
1522
  };
@@ -1601,7 +1565,42 @@ let hintNodePolyfill = (message)=>{
1601
1565
  'vm',
1602
1566
  'zlib'
1603
1567
  ].includes(moduleName) ? getTips(moduleName) : message;
1604
- }, getAllStatsErrors = (statsData)=>{
1568
+ };
1569
+ function formatMessage(stats, verbose) {
1570
+ let message, lines = [];
1571
+ if ('object' == typeof stats) {
1572
+ let fileName = function(stats) {
1573
+ if (stats.moduleIdentifier) {
1574
+ let matched = stats.moduleIdentifier.match(/(?:\!|^)([^!]+)$/);
1575
+ if (matched) {
1576
+ let fileName = matched.pop();
1577
+ if (fileName) return `File: ${fileName}:1:1\n`;
1578
+ }
1579
+ }
1580
+ let file = stats.file || stats.moduleName;
1581
+ return file ? `File: ${file}\n` : '';
1582
+ }(stats), mainMessage = stats.message, details = verbose && stats.details ? `\nDetails: ${stats.details}\n` : '', stack = verbose && stats.stack ? `\n${stats.stack}` : '', moduleTrace = function(stats) {
1583
+ let traceStr = '';
1584
+ if (stats.moduleTrace) for (let trace of stats.moduleTrace)trace.originName && (traceStr += `\n @ ${trace.originName}`);
1585
+ return traceStr;
1586
+ }(stats);
1587
+ message = `${fileName}${mainMessage}${details}${stack}${moduleTrace}`;
1588
+ } else message = stats;
1589
+ let innerError = '-- inner error --';
1590
+ return !verbose && message.includes(innerError) && (message = message.split(innerError)[0]), (message = (lines = (lines = (message = hintNodePolyfill(message = function(message) {
1591
+ let hint = 'You may need an appropriate loader to handle this file type.';
1592
+ return -1 === message.indexOf(hint) ? message : /File: .+\.s(c|a)ss/.test(message) ? message.replace(hint, `To enable support for Sass, use "${__WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.yellow('@rsbuild/plugin-sass')}".`) : /File: .+\.less/.test(message) ? message.replace(hint, `To enable support for Less, use "${__WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.yellow('@rsbuild/plugin-less')}".`) : /File: .+\.styl(us)?/.test(message) ? message.replace(hint, `To enable support for Stylus, use "${__WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.yellow('@rsbuild/plugin-stylus')}".`) : message;
1593
+ }(message))).split('\n')).filter((line, index, arr)=>0 === index || '' !== line.trim() || line.trim() !== arr[index - 1].trim())).join('\n')).trim();
1594
+ }
1595
+ function formatStatsMessages(stats, verbose) {
1596
+ var _stats_errors, _stats_warnings;
1597
+ let formattedErrors = (null === (_stats_errors = stats.errors) || void 0 === _stats_errors ? void 0 : _stats_errors.map((error)=>formatMessage(error, verbose))) || [];
1598
+ return {
1599
+ errors: formattedErrors,
1600
+ warnings: (null === (_stats_warnings = stats.warnings) || void 0 === _stats_warnings ? void 0 : _stats_warnings.map((warning)=>formatMessage(warning, verbose))) || []
1601
+ };
1602
+ }
1603
+ let getAllStatsErrors = (statsData)=>{
1605
1604
  var _statsData_errors, _statsData_children;
1606
1605
  return statsData.errorsCount && (null === (_statsData_errors = statsData.errors) || void 0 === _statsData_errors ? void 0 : _statsData_errors.length) === 0 ? null === (_statsData_children = statsData.children) || void 0 === _statsData_children ? void 0 : _statsData_children.reduce((errors, curr)=>errors.concat(curr.errors || []), []) : statsData.errors;
1607
1606
  }, getAllStatsWarnings = (statsData)=>{
@@ -1626,9 +1625,9 @@ function formatStats(statsData, hasErrors) {
1626
1625
  }, verbose);
1627
1626
  return {
1628
1627
  message: function(errors) {
1629
- let messages = errors.map((error)=>hintNodePolyfill(error)), text = `${messages.join('\n\n')}\n`, title = __WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.bold(__WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.red('Compile error: '));
1628
+ let title = __WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.bold(__WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.red('Compile error: '));
1630
1629
  if (!errors.length) return `${title}\n${__WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.yellow("For more details, please setting 'stats.errors: true' ")}`;
1631
- let tip = __WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.yellow('Failed to compile, check the errors for troubleshooting.');
1630
+ let tip = __WEBPACK_EXTERNAL_MODULE__compiled_picocolors_index_js__.default.yellow('Failed to compile, check the errors for troubleshooting.'), text = `${errors.join('\n\n')}\n`;
1632
1631
  return `${title}\n${tip}\n${text}`;
1633
1632
  }(errors),
1634
1633
  level: 'error'
@@ -1676,10 +1675,16 @@ let rspackMinVersion = '1.0.0', getNodeEnv = ()=>process.env.NODE_ENV, setNodeEn
1676
1675
  return `${urlProtocol}://${external_node_path_.posix.join(baseUrl, path)}`;
1677
1676
  }, canParse = (url)=>{
1678
1677
  try {
1679
- return new URL(url), !0;
1678
+ return new __WEBPACK_EXTERNAL_MODULE_node_url__.URL(url), !0;
1680
1679
  } catch {
1681
1680
  return !1;
1682
1681
  }
1682
+ }, parseUrl = (url)=>{
1683
+ try {
1684
+ return new __WEBPACK_EXTERNAL_MODULE_node_url__.URL(url);
1685
+ } catch {
1686
+ return null;
1687
+ }
1683
1688
  }, ensureAssetPrefix = (url, assetPrefix = DEFAULT_ASSET_PREFIX)=>url.startsWith('//') || canParse(url) || 'auto' === assetPrefix || 'function' == typeof assetPrefix ? url : assetPrefix.startsWith('http') ? urlJoin(assetPrefix, url) : assetPrefix.startsWith('//') ? urlJoin(`https:${assetPrefix}`, url).replace('https:', '') : external_node_path_.posix.join(assetPrefix, url);
1684
1689
  function getFilename(config, type, isProd, isServer) {
1685
1690
  let { filename, filenameHash } = config.output, hash = 'string' == typeof filenameHash ? filenameHash ? `.[${filenameHash}]` : '' : filenameHash ? '.[contenthash:8]' : '';
@@ -2647,7 +2652,7 @@ async function updateEnvironmentContext(context, configs) {
2647
2652
  async function createContext(options, userConfig, bundlerType) {
2648
2653
  let { cwd } = options, rootPath = userConfig.root ? getAbsolutePath(cwd, userConfig.root) : cwd, rsbuildConfig = await withDefaultConfig(rootPath, userConfig), cachePath = (0, external_node_path_.join)(rootPath, 'node_modules', '.cache');
2649
2654
  return {
2650
- version: "1.1.11",
2655
+ version: "1.1.13",
2651
2656
  rootPath,
2652
2657
  distPath: '',
2653
2658
  cachePath,
@@ -4535,20 +4540,16 @@ let resourceHints_generateLinks = (options, rel)=>options.map((option)=>({
4535
4540
  });
4536
4541
  }
4537
4542
  };
4538
- api.onAfterStartDevServer(onStartServer), api.onAfterStartProdServer(onStartServer), api.onBeforeBuild(async ({ isFirstCompile, environments })=>{
4543
+ api.onAfterStartDevServer(onStartServer), api.onAfterStartProdServer(onStartServer), api.onBeforeBuild(async ({ isFirstCompile })=>{
4539
4544
  if (!!isFirstCompile) for (let publicDir of normalizePublicDirs(api.getNormalizedConfig().server.publicDir)){
4540
4545
  let { name, copyOnBuild } = publicDir;
4541
4546
  if (!copyOnBuild || !name) continue;
4542
4547
  let normalizedPath = (0, external_node_path_.isAbsolute)(name) ? name : (0, external_node_path_.join)(api.context.rootPath, name);
4543
- if (!external_node_fs_.default.existsSync(normalizedPath)) continue;
4544
- let distPaths = [
4545
- ...new Set(Object.values(environments).map((e)=>e.distPath))
4546
- ];
4547
- try {
4548
- await Promise.all(distPaths.map((distPath)=>external_node_fs_.default.promises.cp(normalizedPath, distPath, {
4549
- recursive: !0,
4550
- dereference: !0
4551
- })));
4548
+ if (!!external_node_fs_.default.existsSync(normalizedPath)) try {
4549
+ await external_node_fs_.default.promises.cp(normalizedPath, api.context.distPath, {
4550
+ recursive: !0,
4551
+ dereference: !0
4552
+ });
4552
4553
  } catch (err) {
4553
4554
  throw err instanceof Error && (err.message = `Copy public dir (${normalizedPath}) to dist failed:\n${err.message}`), err;
4554
4555
  }
@@ -5252,8 +5253,8 @@ async function initConfigs({ context, pluginManager, rsbuildOptions }) {
5252
5253
  environment
5253
5254
  })));
5254
5255
  if (isDebug()) {
5255
- let inspect = ()=>{
5256
- inspectConfig({
5256
+ let inspect = async ()=>{
5257
+ await inspectConfig({
5257
5258
  context,
5258
5259
  pluginManager,
5259
5260
  inspectOptions: {
@@ -5264,8 +5265,8 @@ async function initConfigs({ context, pluginManager, rsbuildOptions }) {
5264
5265
  bundlerConfigs: rspackConfigs
5265
5266
  });
5266
5267
  };
5267
- context.hooks.onBeforeBuild.tap(({ isFirstCompile })=>{
5268
- isFirstCompile && inspect();
5268
+ context.hooks.onBeforeBuild.tap(async ({ isFirstCompile })=>{
5269
+ isFirstCompile && await inspect();
5269
5270
  }), context.hooks.onAfterStartDevServer.tap(inspect);
5270
5271
  }
5271
5272
  return {
@@ -5363,6 +5364,61 @@ let isClientCompiler = (compiler)=>{
5363
5364
  }), setupServerHooks(compiler, callbacks);
5364
5365
  }), rsbuildDevMiddleware(multiCompiler, restOptions);
5365
5366
  };
5367
+ }, colors = {
5368
+ black: '#000',
5369
+ red: '#fb6a6a',
5370
+ green: '#6ef790',
5371
+ yellow: '#eff986',
5372
+ cyan: '#6eecf7',
5373
+ blue: '#6eb2f7',
5374
+ magenta: '#f76ebe',
5375
+ lightgrey: '#f0f0f0',
5376
+ darkgrey: '#888'
5377
+ }, styles = {
5378
+ 30: 'black',
5379
+ 31: 'red',
5380
+ 32: 'green',
5381
+ 33: 'yellow',
5382
+ 34: 'blue',
5383
+ 35: 'magenta',
5384
+ 36: 'cyan',
5385
+ 37: 'lightgrey'
5386
+ }, openTags = {
5387
+ 1: 'font-weight:bold',
5388
+ 2: 'opacity:0.5',
5389
+ 3: '<i>',
5390
+ 4: '<u>',
5391
+ 8: 'display:none',
5392
+ 9: '<del>'
5393
+ }, closeTags = {
5394
+ 23: '</i>',
5395
+ 24: '</u>',
5396
+ 29: '</del>'
5397
+ };
5398
+ for (let n of [
5399
+ 0,
5400
+ 21,
5401
+ 22,
5402
+ 27,
5403
+ 28,
5404
+ 39,
5405
+ 49
5406
+ ])closeTags[n.toString()] = '</span>';
5407
+ !function() {
5408
+ for(let code in openTags['90'] = `color:${colors.darkgrey}`, styles){
5409
+ let oriColor = colors[styles[code]] || colors.black;
5410
+ openTags[code] = `color:${oriColor}`;
5411
+ }
5412
+ }();
5413
+ let server_ansiHTML = function(text) {
5414
+ if (!RegExp(`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))`, 'g').test(text)) return text;
5415
+ let ansiCodes = [], ret = text.replace(/\x1B\[(\d+)m/g, (_match, seq)=>{
5416
+ let ot = openTags[seq];
5417
+ if (ot) return -1 !== ansiCodes.indexOf(seq) ? (ansiCodes.pop(), '</span>') : (ansiCodes.push(seq), '<' === ot[0] ? ot : `<span style="${ot}">`);
5418
+ let ct = closeTags[seq];
5419
+ return ct ? (ansiCodes.pop(), ct) : '';
5420
+ }), l = ansiCodes.length;
5421
+ return l > 0 && (ret += Array(l + 1).join('</span>')), ret;
5366
5422
  };
5367
5423
  function socketServer_define_property(obj, key, value) {
5368
5424
  return key in obj ? Object.defineProperty(obj, key, {
@@ -5465,25 +5521,49 @@ class SocketServer {
5465
5521
  for (let v of a.values())if (!b.has(v)) return !1;
5466
5522
  return !0;
5467
5523
  }(initialChunks, newInitialChunks);
5468
- return (this.initialChunks[compilationId] = newInitialChunks, shouldReload) ? this.sockWrite({
5524
+ if (this.initialChunks[compilationId] = newInitialChunks, shouldReload) return this.sockWrite({
5469
5525
  type: 'content-changed',
5470
5526
  compilationId
5471
- }) : !force && stats && !stats.errorsCount && stats.assets && stats.assets.every((asset)=>!asset.emitted) ? this.sockWrite({
5527
+ });
5528
+ if (!force && stats && !stats.errorsCount && stats.assets && stats.assets.every((asset)=>!asset.emitted)) return this.sockWrite({
5472
5529
  type: 'still-ok',
5473
5530
  compilationId
5474
- }) : (this.sockWrite({
5531
+ });
5532
+ if (this.sockWrite({
5475
5533
  type: 'hash',
5476
5534
  compilationId,
5477
5535
  data: stats.hash
5478
- }), stats.errorsCount) ? this.sockWrite({
5479
- type: 'errors',
5480
- compilationId,
5481
- data: getAllStatsErrors(stats)
5482
- }) : stats.warningsCount ? this.sockWrite({
5483
- type: 'warnings',
5484
- compilationId,
5485
- data: getAllStatsWarnings(stats)
5486
- }) : this.sockWrite({
5536
+ }), stats.errorsCount) {
5537
+ let { errors: formattedErrors } = formatStatsMessages({
5538
+ errors: getAllStatsErrors(stats),
5539
+ warnings: []
5540
+ });
5541
+ return this.sockWrite({
5542
+ type: 'errors',
5543
+ compilationId,
5544
+ data: {
5545
+ text: formattedErrors,
5546
+ html: formattedErrors.map((item)=>{
5547
+ var text;
5548
+ return server_ansiHTML((text = item) ? text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#39;') : '');
5549
+ })
5550
+ }
5551
+ });
5552
+ }
5553
+ if (stats.warningsCount) {
5554
+ let { warnings: formattedWarnings } = formatStatsMessages({
5555
+ warnings: getAllStatsWarnings(stats),
5556
+ errors: []
5557
+ });
5558
+ return this.sockWrite({
5559
+ type: 'warnings',
5560
+ compilationId,
5561
+ data: {
5562
+ text: formattedWarnings
5563
+ }
5564
+ });
5565
+ }
5566
+ return this.sockWrite({
5487
5567
  type: 'ok',
5488
5568
  compilationId
5489
5569
  });
@@ -5503,13 +5583,19 @@ function compilerDevMiddleware_define_property(obj, key, value) {
5503
5583
  writable: !0
5504
5584
  }) : obj[key] = value, obj;
5505
5585
  }
5506
- let compilerDevMiddleware_require = (0, __WEBPACK_EXTERNAL_MODULE_node_module__.createRequire)(import.meta.url), formatDevConfig = (config, environments)=>1 === new Set(Object.values(environments).map((env)=>env.config.dev.writeToDisk)).size ? config : {
5586
+ let compilerDevMiddleware_require = (0, __WEBPACK_EXTERNAL_MODULE_node_module__.createRequire)(import.meta.url), formatDevConfig = (config, environments)=>{
5587
+ let writeToDiskValues = Object.values(environments).map((env)=>env.config.dev.writeToDisk);
5588
+ return 1 === new Set(writeToDiskValues).size ? {
5589
+ ...config,
5590
+ writeToDisk: writeToDiskValues[0]
5591
+ } : {
5507
5592
  ...config,
5508
5593
  writeToDisk (filePath, compilationName) {
5509
5594
  let { writeToDisk } = config;
5510
5595
  return compilationName && environments[compilationName] && (writeToDisk = environments[compilationName].config.dev.writeToDisk ?? writeToDisk), 'function' == typeof writeToDisk ? writeToDisk(filePath) : writeToDisk;
5511
5596
  }
5512
5597
  };
5598
+ };
5513
5599
  class CompilerDevMiddleware {
5514
5600
  async init() {
5515
5601
  let devMiddleware = await getDevMiddleware(this.compiler);
@@ -6017,8 +6103,9 @@ let run = async (bundlePath, outputPath, compilerOptions, readFileSync)=>new Bas
6017
6103
  }, applyDefaultMiddlewares = async ({ middlewares, server, compileMiddlewareAPI, output, pwd, outputFileSystem, environments })=>{
6018
6104
  let upgradeEvents = [];
6019
6105
  if (server.compress && middlewares.push(gzipMiddleware()), middlewares.push((req, res, next)=>{
6106
+ var _parseUrl;
6020
6107
  res.setHeader('Access-Control-Allow-Origin', '*');
6021
- let path = req.url ? __WEBPACK_EXTERNAL_MODULE_node_url__.default.parse(req.url).pathname : '';
6108
+ let path = req.url ? null === (_parseUrl = parseUrl(req.url)) || void 0 === _parseUrl ? void 0 : _parseUrl.pathname : '';
6022
6109
  (null == path ? void 0 : path.includes('hot-update')) && res.setHeader('Access-Control-Allow-Credentials', 'false');
6023
6110
  let confHeaders = server.headers;
6024
6111
  if (confHeaders) for (let [key, value] of Object.entries(confHeaders))res.setHeader(key, value);
@@ -6897,6 +6984,7 @@ async function createRsbuild(options = {}) {
6897
6984
  build,
6898
6985
  preview,
6899
6986
  startDevServer: (...args)=>(context.command = 'dev', !getNodeEnv() && setNodeEnv('development'), providerInstance.startDevServer(...args)),
6987
+ createCompiler: (...args)=>(!context.command && (context.command = 'development' === getNodeEnv() ? 'dev' : 'build'), providerInstance.createCompiler(...args)),
6900
6988
  createDevServer: (...args)=>(context.command = 'dev', !getNodeEnv() && setNodeEnv('development'), providerInstance.createDevServer(...args)),
6901
6989
  ...pick(pluginManager, [
6902
6990
  'addPlugins',
@@ -6923,8 +7011,7 @@ async function createRsbuild(options = {}) {
6923
7011
  ]),
6924
7012
  ...pick(providerInstance, [
6925
7013
  'initConfigs',
6926
- 'inspectConfig',
6927
- 'createCompiler'
7014
+ 'inspectConfig'
6928
7015
  ])
6929
7016
  }, getFlattenedPlugins = async (pluginOptions)=>{
6930
7017
  let plugins = pluginOptions;
@@ -6963,11 +7050,11 @@ async function runCLI() {
6963
7050
  }
6964
7051
  }(), process.title = 'rsbuild-node';
6965
7052
  let { npm_execpath } = process.env;
6966
- (!npm_execpath || npm_execpath.includes('npx-cli.js') || npm_execpath.includes('.bun')) && console.log(), __WEBPACK_EXTERNAL_MODULE__compiled_rslog_index_js__.logger.greet(` Rsbuild v1.1.11\n`);
7053
+ (!npm_execpath || npm_execpath.includes('npx-cli.js') || npm_execpath.includes('.bun')) && console.log(), __WEBPACK_EXTERNAL_MODULE__compiled_rslog_index_js__.logger.greet(` Rsbuild v1.1.13\n`);
6967
7054
  }();
6968
7055
  try {
6969
7056
  !function() {
6970
- program.name('rsbuild').usage('<command> [options]').version("1.1.11");
7057
+ program.name('rsbuild').usage('<command> [options]').version("1.1.13");
6971
7058
  let devCommand = program.command('dev'), buildCommand = program.command('build'), previewCommand = program.command('preview'), inspectCommand = program.command('inspect');
6972
7059
  [
6973
7060
  devCommand,
@@ -7026,6 +7113,6 @@ async function runCLI() {
7026
7113
  __WEBPACK_EXTERNAL_MODULE__compiled_rslog_index_js__.logger.error('Failed to start Rsbuild CLI.'), __WEBPACK_EXTERNAL_MODULE__compiled_rslog_index_js__.logger.error(err);
7027
7114
  }
7028
7115
  }
7029
- let src_version = "1.1.11";
7116
+ let src_version = "1.1.13";
7030
7117
  var __webpack_exports__logger = __WEBPACK_EXTERNAL_MODULE__compiled_rslog_index_js__.logger, __webpack_exports__rspack = __WEBPACK_EXTERNAL_MODULE__rspack_core__.rspack;
7031
7118
  export { PLUGIN_CSS_NAME, PLUGIN_SWC_NAME, internal_namespaceObject as __internalHelper, createRsbuild, defineConfig, ensureAssetPrefix, config_loadConfig as loadConfig, loadEnv, mergeRsbuildConfig, runCLI, src_version as version, __webpack_exports__logger as logger, __webpack_exports__rspack as rspack };
@@ -1,3 +1,4 @@
1
+ import { URL } from 'node:url';
1
2
  import type { Compiler as WebpackCompiler, MultiCompiler as WebpackMultiCompiler } from 'webpack';
2
3
  import color from '../../compiled/picocolors/index.js';
3
4
  import type RspackChain from '../../compiled/rspack-chain/index.js';
@@ -24,6 +25,7 @@ export declare const getPublicPathFromChain: (chain: RspackChain, withSlash?: bo
24
25
  export declare const getPublicPathFromCompiler: (compiler: Rspack.Compiler | Rspack.Compilation) => string;
25
26
  export declare const urlJoin: (base: string, path: string) => string;
26
27
  export declare const canParse: (url: string) => boolean;
28
+ export declare const parseUrl: (url: string) => URL | null;
27
29
  export declare const ensureAssetPrefix: (url: string, assetPrefix?: Rspack.PublicPath) => string;
28
30
  export declare function getFilename(config: NormalizedConfig | NormalizedEnvironmentConfig, type: 'js', isProd: boolean, isServer?: boolean): NonNullable<FilenameConfig['js']>;
29
31
  export declare function getFilename(config: NormalizedConfig | NormalizedEnvironmentConfig, type: 'css', isProd: boolean): NonNullable<FilenameConfig['css']>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * This module is modified based on `ansi-html-community`
3
+ * https://github.com/mahdyar/ansi-html-community
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * https://github.com/mahdyar/ansi-html-community/blob/master/LICENSE
7
+ */
8
+ /**
9
+ * Converts text with ANSI color codes to HTML markup.
10
+ */
11
+ export declare function ansiHTML(text: string): string;
12
+ export default ansiHTML;
@@ -62,4 +62,10 @@ export declare const getAddressUrls: ({ protocol, port, host, }: {
62
62
  }) => AddressUrl[];
63
63
  export declare const getCompilationId: (compiler: Rspack.Compiler | Rspack.Compilation) => string;
64
64
  export declare function getServerTerminator(server: Server | Http2SecureServer): () => Promise<void>;
65
+ /**
66
+ * Escape HTML characters
67
+ * @example
68
+ * escapeHtml('<div>Hello</div>') // '&lt;div&gt;Hello&lt;/div&gt;'
69
+ */
70
+ export declare function escapeHtml(text: string | null | undefined): string;
65
71
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsbuild/core",
3
- "version": "1.1.11",
3
+ "version": "1.1.13",
4
4
  "description": "The Rspack-based build tool.",
5
5
  "homepage": "https://rsbuild.dev",
6
6
  "bugs": {
@@ -52,14 +52,14 @@
52
52
  "core-js": "~3.39.0"
53
53
  },
54
54
  "devDependencies": {
55
- "@rslib/core": "0.1.4",
55
+ "@rslib/core": "0.2.0",
56
56
  "@types/connect": "3.4.38",
57
57
  "@types/node": "^22.10.2",
58
58
  "@types/on-finished": "2.3.4",
59
59
  "@types/webpack-bundle-analyzer": "4.7.0",
60
60
  "@types/ws": "^8.5.13",
61
61
  "browserslist-load-config": "1.0.0",
62
- "chokidar": "^4.0.1",
62
+ "chokidar": "^4.0.3",
63
63
  "commander": "^12.1.0",
64
64
  "connect": "3.7.0",
65
65
  "connect-history-api-fallback": "^2.0.0",
@@ -70,7 +70,7 @@
70
70
  "dotenv-expand": "11.0.7",
71
71
  "html-rspack-plugin": "6.0.2",
72
72
  "http-proxy-middleware": "^2.0.6",
73
- "jiti": "^1.21.6",
73
+ "jiti": "^1.21.7",
74
74
  "launch-editor-middleware": "^2.9.1",
75
75
  "mrmime": "^2.0.0",
76
76
  "on-finished": "2.4.1",
@@ -84,7 +84,7 @@
84
84
  "rsbuild-dev-middleware": "0.1.2",
85
85
  "rslog": "^1.2.3",
86
86
  "rspack-chain": "^1.1.0",
87
- "rspack-manifest-plugin": "5.0.2",
87
+ "rspack-manifest-plugin": "5.0.3",
88
88
  "sirv": "^3.0.0",
89
89
  "style-loader": "3.3.4",
90
90
  "tinyglobby": "^0.2.10",
File without changes