@rsbuild/core 1.7.0-beta.0 → 1.7.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,7 +35,7 @@ __webpack_require__.m = __webpack_modules__, __webpack_require__.add = function
35
35
  get: definition[key]
36
36
  });
37
37
  }, __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop), __webpack_require__.r = (exports)=>{
38
- 'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {
38
+ "u" > typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {
39
39
  value: 'Module'
40
40
  }), Object.defineProperty(exports, '__esModule', {
41
41
  value: !0
@@ -1,4 +1,4 @@
1
- import { default as loader_transformLoader } from "./136.mjs";
1
+ import loader_transformLoader from "./136.mjs";
2
2
  let raw = !0;
3
3
  export default loader_transformLoader;
4
4
  export { raw };
@@ -1,5 +1,5 @@
1
1
  import type { LogLevel, NormalizedClientConfig } from '../types';
2
- export declare const registerOverlay: (createFn: (html: string) => void, clearFn: () => void) => void;
2
+ export declare const registerOverlay: (createFn: (title: string, content: string) => void, clearFn: () => void) => void;
3
3
  export declare function init({ token, config, serverHost, serverPort, liveReload, browserLogs, logLevel, }: {
4
4
  token: string;
5
5
  config: NormalizedClientConfig;
@@ -2,7 +2,6 @@ type CompiledPackages = {
2
2
  ws: typeof import('../../compiled/ws').default;
3
3
  cors: typeof import('../../compiled/cors').default;
4
4
  sirv: typeof import('../../compiled/sirv');
5
- rslog: typeof import('../../compiled/rslog');
6
5
  memfs: typeof import('../../compiled/memfs');
7
6
  mrmime: typeof import('../../compiled/mrmime');
8
7
  connect: typeof import('../../compiled/connect').default;
@@ -12,8 +12,7 @@
12
12
  * This convention helps distinguish between normal operations
13
13
  * and important alerts that require attention.
14
14
  */
15
- import type { Logger } from '../compiled/rslog/index.js';
16
- declare const logger: Logger;
15
+ import { type Logger, logger } from '../compiled/rslog';
17
16
  export declare const isDebug: () => boolean;
18
17
  export declare const isVerbose: () => boolean;
19
18
  export { logger };
@@ -1,2 +1,2 @@
1
1
  export declare function convertLinksInHtml(text: string, root?: string): string;
2
- export declare function genOverlayHTML(errors: string[], root?: string): string;
2
+ export declare function renderErrorToHtml(error: string, root?: string): string;
@@ -24,9 +24,17 @@ export type ServerMessageErrors = {
24
24
  html: string;
25
25
  };
26
26
  };
27
- export type ServerMessage = ServerMessageOk | ServerMessageStaticChanged | ServerMessageHash | ServerMessageWarnings | ServerMessageErrors;
27
+ export type ServerMessageResolvedClientError = {
28
+ type: 'resolved-client-error';
29
+ data: {
30
+ id: string;
31
+ message: string;
32
+ };
33
+ };
34
+ export type ServerMessage = ServerMessageOk | ServerMessageStaticChanged | ServerMessageHash | ServerMessageWarnings | ServerMessageErrors | ServerMessageResolvedClientError;
28
35
  export type ClientMessageError = {
29
36
  type: 'client-error';
37
+ id: string;
30
38
  message: string;
31
39
  stack?: string;
32
40
  };
@@ -1559,7 +1559,13 @@ export type ClientConfig = {
1559
1559
  * Whether to display an error overlay in the browser when a compilation error occurs.
1560
1560
  * @default true
1561
1561
  */
1562
- overlay?: boolean;
1562
+ overlay?: boolean | {
1563
+ /**
1564
+ * Whether to show runtime errors in the overlay.
1565
+ * @default false
1566
+ */
1567
+ runtime?: boolean;
1568
+ };
1563
1569
  /**
1564
1570
  * Controls the log level for client-side logging in the browser console.
1565
1571
  * @default 'info'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsbuild/core",
3
- "version": "1.7.0-beta.0",
3
+ "version": "1.7.0-beta.1",
4
4
  "description": "The Rspack-based build tool.",
5
5
  "homepage": "https://rsbuild.rs",
6
6
  "bugs": {
@@ -46,7 +46,7 @@
46
46
  "types.d.ts"
47
47
  ],
48
48
  "dependencies": {
49
- "@rspack/core": "1.7.0-beta.0",
49
+ "@rspack/core": "1.7.0-beta.1",
50
50
  "@rspack/lite-tapable": "~1.1.0",
51
51
  "@swc/helpers": "^0.5.17",
52
52
  "core-js": "~3.47.0",
@@ -55,7 +55,7 @@
55
55
  "devDependencies": {
56
56
  "@jridgewell/remapping": "^2.3.5",
57
57
  "@jridgewell/trace-mapping": "^0.3.31",
58
- "@rslib/core": "0.18.4",
58
+ "@rslib/core": "0.18.5",
59
59
  "@types/connect": "3.4.38",
60
60
  "@types/cors": "^2.8.19",
61
61
  "@types/node": "^24.10.4",
@@ -93,7 +93,7 @@
93
93
  "style-loader": "3.3.4",
94
94
  "tinyglobby": "0.2.14",
95
95
  "typescript": "^5.9.3",
96
- "webpack": "^5.104.0",
96
+ "webpack": "^5.104.1",
97
97
  "webpack-bundle-analyzer": "^4.10.2",
98
98
  "webpack-merge": "6.0.1",
99
99
  "ws": "^8.18.3"
@@ -1,300 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
9
- };
10
- })();
11
- (()=>{
12
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
- })();
14
- (()=>{
15
- __webpack_require__.r = (exports1)=>{
16
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
- value: 'Module'
18
- });
19
- Object.defineProperty(exports1, '__esModule', {
20
- value: true
21
- });
22
- };
23
- })();
24
- var __webpack_exports__ = {};
25
- __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- createLogger: ()=>createLogger,
28
- logger: ()=>src_logger
29
- });
30
- const external_node_process_namespaceObject = require("node:process");
31
- const external_node_os_namespaceObject = require("node:os");
32
- const external_node_tty_namespaceObject = require("node:tty");
33
- function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : external_node_process_namespaceObject.argv) {
34
- const prefix = flag.startsWith('-') ? '' : 1 === flag.length ? '-' : '--';
35
- const position = argv.indexOf(prefix + flag);
36
- const terminatorPosition = argv.indexOf('--');
37
- return -1 !== position && (-1 === terminatorPosition || position < terminatorPosition);
38
- }
39
- const { env } = external_node_process_namespaceObject;
40
- let flagForceColor;
41
- if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false') || hasFlag('color=never')) flagForceColor = 0;
42
- else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') || hasFlag('color=always')) flagForceColor = 1;
43
- function envForceColor() {
44
- if (!('FORCE_COLOR' in env)) return;
45
- if ('true' === env.FORCE_COLOR) return 1;
46
- if ('false' === env.FORCE_COLOR) return 0;
47
- if (0 === env.FORCE_COLOR.length) return 1;
48
- const level = Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
49
- if (![
50
- 0,
51
- 1,
52
- 2,
53
- 3
54
- ].includes(level)) return;
55
- return level;
56
- }
57
- function translateLevel(level) {
58
- if (0 === level) return false;
59
- return {
60
- level,
61
- hasBasic: true,
62
- has256: level >= 2,
63
- has16m: level >= 3
64
- };
65
- }
66
- function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
67
- const noFlagForceColor = envForceColor();
68
- if (void 0 !== noFlagForceColor) flagForceColor = noFlagForceColor;
69
- const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
70
- if (0 === forceColor) return 0;
71
- if (sniffFlags) {
72
- if (hasFlag('color=16m') || hasFlag('color=full') || hasFlag('color=truecolor')) return 3;
73
- if (hasFlag('color=256')) return 2;
74
- }
75
- if ('TF_BUILD' in env && 'AGENT_NAME' in env) return 1;
76
- if (haveStream && !streamIsTTY && void 0 === forceColor) return 0;
77
- const min = forceColor || 0;
78
- if ('dumb' === env.TERM) return min;
79
- if ('win32' === external_node_process_namespaceObject.platform) {
80
- const osRelease = external_node_os_namespaceObject.release().split('.');
81
- if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
82
- return 1;
83
- }
84
- if ('CI' in env) {
85
- if ([
86
- 'GITHUB_ACTIONS',
87
- 'GITEA_ACTIONS',
88
- 'CIRCLECI'
89
- ].some((key)=>key in env)) return 3;
90
- if ([
91
- 'TRAVIS',
92
- 'APPVEYOR',
93
- 'GITLAB_CI',
94
- 'BUILDKITE',
95
- 'DRONE'
96
- ].some((sign)=>sign in env) || 'codeship' === env.CI_NAME) return 1;
97
- return min;
98
- }
99
- if ('TEAMCITY_VERSION' in env) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
100
- if ('truecolor' === env.COLORTERM) return 3;
101
- if ('xterm-kitty' === env.TERM) return 3;
102
- if ('xterm-ghostty' === env.TERM) return 3;
103
- if ('wezterm' === env.TERM) return 3;
104
- if ('TERM_PROGRAM' in env) {
105
- const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
106
- switch(env.TERM_PROGRAM){
107
- case 'iTerm.app':
108
- return version >= 3 ? 3 : 2;
109
- case 'Apple_Terminal':
110
- return 2;
111
- }
112
- }
113
- if (/-256(color)?$/i.test(env.TERM)) return 2;
114
- if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) return 1;
115
- if ('COLORTERM' in env) return 1;
116
- return min;
117
- }
118
- function createSupportsColor(stream, options = {}) {
119
- const level = _supportsColor(stream, {
120
- streamIsTTY: stream && stream.isTTY,
121
- ...options
122
- });
123
- return translateLevel(level);
124
- }
125
- const supportsColor = {
126
- stdout: createSupportsColor({
127
- isTTY: external_node_tty_namespaceObject.isatty(1)
128
- }),
129
- stderr: createSupportsColor({
130
- isTTY: external_node_tty_namespaceObject.isatty(2)
131
- })
132
- };
133
- const supports_color = supportsColor;
134
- const colorLevel = supports_color.stdout ? supports_color.stdout.level : 0;
135
- let errorStackRegExp = /at [^\r\n]{0,200}:\d+:\d+[\s\)]*$/;
136
- let anonymousErrorStackRegExp = /at [^\r\n]{0,200}\(<anonymous>\)$/;
137
- let indexErrorStackRegExp = /at [^\r\n]{0,200}\(index\s\d+\)$/;
138
- let isErrorStackMessage = (message)=>errorStackRegExp.test(message) || anonymousErrorStackRegExp.test(message) || indexErrorStackRegExp.test(message);
139
- let formatter = (open, close, replace = open)=>colorLevel >= 2 ? (input)=>{
140
- let string = '' + input;
141
- let index = string.indexOf(close, open.length);
142
- return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
143
- } : String;
144
- let replaceClose = (string, close, replace, index)=>{
145
- let start = string.substring(0, index) + replace;
146
- let end = string.substring(index + close.length);
147
- let nextIndex = end.indexOf(close);
148
- return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;
149
- };
150
- const bold = formatter('\x1b[1m', '\x1b[22m', '\x1b[22m\x1b[1m');
151
- const red = formatter('\x1b[31m', '\x1b[39m');
152
- const green = formatter('\x1b[32m', '\x1b[39m');
153
- const yellow = formatter('\x1b[33m', '\x1b[39m');
154
- const magenta = formatter('\x1b[35m', '\x1b[39m');
155
- const cyan = formatter('\x1b[36m', '\x1b[39m');
156
- const gray = formatter('\x1b[90m', '\x1b[39m');
157
- let startColor = [
158
- 189,
159
- 255,
160
- 243
161
- ];
162
- let endColor = [
163
- 74,
164
- 194,
165
- 154
166
- ];
167
- let isWord = (char)=>!/[\s\n]/.test(char);
168
- let gradient = (message)=>{
169
- if (colorLevel < 3) return 2 === colorLevel ? bold(cyan(message)) : message;
170
- let chars = [
171
- ...message
172
- ];
173
- let steps = chars.filter(isWord).length;
174
- let r = startColor[0];
175
- let g = startColor[1];
176
- let b = startColor[2];
177
- let rStep = (endColor[0] - r) / steps;
178
- let gStep = (endColor[1] - g) / steps;
179
- let bStep = (endColor[2] - b) / steps;
180
- let output = '';
181
- for (let char of chars){
182
- if (isWord(char)) {
183
- r += rStep;
184
- g += gStep;
185
- b += bStep;
186
- }
187
- output += `\x1b[38;2;${Math.round(r)};${Math.round(g)};${Math.round(b)}m${char}\x1b[39m`;
188
- }
189
- return bold(output);
190
- };
191
- let LOG_LEVEL = {
192
- silent: -1,
193
- error: 0,
194
- warn: 1,
195
- info: 2,
196
- log: 2,
197
- verbose: 3
198
- };
199
- let LOG_TYPES = {
200
- error: {
201
- label: 'error',
202
- level: 'error',
203
- color: red
204
- },
205
- warn: {
206
- label: 'warn',
207
- level: 'warn',
208
- color: yellow
209
- },
210
- info: {
211
- label: 'info',
212
- level: 'info',
213
- color: cyan
214
- },
215
- start: {
216
- label: 'start',
217
- level: 'info',
218
- color: cyan
219
- },
220
- ready: {
221
- label: 'ready',
222
- level: 'info',
223
- color: green
224
- },
225
- success: {
226
- label: 'success',
227
- level: 'info',
228
- color: green
229
- },
230
- log: {
231
- level: 'info'
232
- },
233
- debug: {
234
- label: 'debug',
235
- level: 'verbose',
236
- color: magenta
237
- }
238
- };
239
- const normalizeErrorMessage = (err)=>{
240
- if (err.stack) {
241
- let [name, ...rest] = err.stack.split('\n');
242
- if (name.startsWith('Error: ')) name = name.slice(7);
243
- return `${name}\n${gray(rest.join('\n'))}`;
244
- }
245
- return err.message;
246
- };
247
- let createLogger = (options = {})=>{
248
- let maxLevel = options.level || 'info';
249
- let log = (type, message, ...args)=>{
250
- let logType = LOG_TYPES[type];
251
- const { level } = logType;
252
- if (LOG_LEVEL[level] > LOG_LEVEL[maxLevel]) return;
253
- if (null == message) return console.log();
254
- let label = '';
255
- let text = '';
256
- if ('label' in logType) {
257
- label = (logType.label || '').padEnd(7);
258
- label = bold(logType.color ? logType.color(label) : label);
259
- }
260
- if (message instanceof Error) {
261
- text += normalizeErrorMessage(message);
262
- const { cause } = message;
263
- if (cause) {
264
- text += yellow('\n [cause]: ');
265
- text += cause instanceof Error ? normalizeErrorMessage(cause) : String(cause);
266
- }
267
- } else if ('error' === level && 'string' == typeof message) {
268
- let lines = message.split('\n');
269
- text = lines.map((line)=>isErrorStackMessage(line) ? gray(line) : line).join('\n');
270
- } else text = `${message}`;
271
- const method = 'error' === level || 'warn' === level ? level : 'log';
272
- console[method](label.length ? `${label} ${text}` : text, ...args);
273
- };
274
- let logger = {
275
- greet: (message)=>log('log', gradient(message))
276
- };
277
- Object.keys(LOG_TYPES).forEach((key)=>{
278
- logger[key] = (...args)=>log(key, ...args);
279
- });
280
- Object.defineProperty(logger, 'level', {
281
- get: ()=>maxLevel,
282
- set (val) {
283
- maxLevel = val;
284
- }
285
- });
286
- logger.override = (customLogger)=>{
287
- Object.assign(logger, customLogger);
288
- };
289
- return logger;
290
- };
291
- let src_logger = createLogger();
292
- exports.createLogger = __webpack_exports__.createLogger;
293
- exports.logger = __webpack_exports__.logger;
294
- for(var __webpack_i__ in __webpack_exports__)if (-1 === [
295
- "createLogger",
296
- "logger"
297
- ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
298
- Object.defineProperty(exports, '__esModule', {
299
- value: true
300
- });