rolldown 1.0.0-beta.9-commit.0ec9e7d → 1.0.0-rc.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.
- package/README.md +11 -0
- package/bin/cli.mjs +1 -0
- package/dist/cli-setup.mjs +17 -0
- package/dist/cli.mjs +1085 -1281
- package/dist/config.d.mts +2 -4
- package/dist/config.mjs +8 -5
- package/dist/experimental-index.d.mts +161 -76
- package/dist/experimental-index.mjs +227 -61
- package/dist/experimental-runtime-types.d.ts +98 -0
- package/dist/filter-index.d.mts +196 -4
- package/dist/filter-index.mjs +328 -4
- package/dist/get-log-filter.d.mts +7 -0
- package/dist/get-log-filter.mjs +48 -0
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +56 -5
- package/dist/parallel-plugin-worker.mjs +27 -33
- package/dist/parallel-plugin.d.mts +7 -8
- package/dist/parse-ast-index.d.mts +4 -5
- package/dist/parse-ast-index.mjs +2 -2
- package/dist/plugins-index.d.mts +30 -0
- package/dist/plugins-index.mjs +40 -0
- package/dist/shared/binding-B92Lq__Q.d.mts +1687 -0
- package/dist/shared/binding-C-UNREnT.mjs +585 -0
- package/dist/shared/bindingify-input-options-Cb-01HR1.mjs +2233 -0
- package/dist/shared/constructors-D_KFsTQ-.d.mts +28 -0
- package/dist/shared/constructors-aZ82R2dj.mjs +61 -0
- package/dist/shared/define-config-BVG4QvnP.mjs +7 -0
- package/dist/shared/define-config-DO4TBkJV.d.mts +3457 -0
- package/dist/shared/{load-config-Dll-92l5.mjs → load-config-D6cey0o1.mjs} +23 -33
- package/dist/shared/logging-wIy4zY9I.d.mts +50 -0
- package/dist/shared/logs-NH298mHo.mjs +183 -0
- package/dist/shared/{misc-DGAe2XOW.mjs → misc-CCZIsXVO.mjs} +1 -7
- package/dist/shared/normalize-string-or-regex-Dq50a7l9.mjs +61 -0
- package/dist/shared/parse-ast-index-B6LAhWD8.mjs +99 -0
- package/dist/shared/{prompt-CxjDC0Gn.cjs → prompt-tlfjalEt.mjs} +301 -308
- package/dist/shared/rolldown-CIC_OHw3.mjs +42 -0
- package/dist/shared/rolldown-build-KB1YaNe-.mjs +2369 -0
- package/dist/shared/watch-B2WRkpw2.mjs +379 -0
- package/package.json +86 -98
- package/dist/cli.cjs +0 -1748
- package/dist/config.cjs +0 -12
- package/dist/config.d.cts +0 -12
- package/dist/experimental-index.cjs +0 -132
- package/dist/experimental-index.d.cts +0 -96
- package/dist/filter-index.cjs +0 -105
- package/dist/filter-index.d.cts +0 -5
- package/dist/index.cjs +0 -9
- package/dist/index.d.cts +0 -4
- package/dist/parallel-plugin-worker.cjs +0 -33
- package/dist/parallel-plugin-worker.d.cts +0 -1
- package/dist/parallel-plugin.cjs +0 -8
- package/dist/parallel-plugin.d.cts +0 -15
- package/dist/parse-ast-index.cjs +0 -4
- package/dist/parse-ast-index.d.cts +0 -9
- package/dist/shared/binding.d-Dz3qQrbl.d.mts +0 -1682
- package/dist/shared/binding.d-QXzDcVmm.d.cts +0 -1682
- package/dist/shared/chunk--iN_1bjD.mjs +0 -33
- package/dist/shared/chunk-DDkG_k5U.cjs +0 -39
- package/dist/shared/define-config.d-CUcDq_vm.d.cts +0 -1080
- package/dist/shared/define-config.d-qV1PzX_C.d.mts +0 -1080
- package/dist/shared/load-config-Bx9W9x2a.cjs +0 -125
- package/dist/shared/misc-BKp5iIef.cjs +0 -67
- package/dist/shared/parse-ast-index-0m6JgGc9.mjs +0 -655
- package/dist/shared/parse-ast-index-Cn_efzjO.cjs +0 -697
- package/dist/shared/prompt-uGrwvyp0.mjs +0 -854
- package/dist/shared/src-B4EklR3U.mjs +0 -4704
- package/dist/shared/src-BzFe16tX.cjs +0 -4654
- /package/dist/{cli.d.cts → cli-setup.d.mts} +0 -0
package/dist/cli.mjs
CHANGED
|
@@ -1,16 +1,51 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import "./shared/
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import "./shared/binding-C-UNREnT.mjs";
|
|
2
|
+
import { n as onExit, t as watch } from "./shared/watch-B2WRkpw2.mjs";
|
|
3
|
+
import "./shared/normalize-string-or-regex-Dq50a7l9.mjs";
|
|
4
|
+
import { C as description, w as version } from "./shared/bindingify-input-options-Cb-01HR1.mjs";
|
|
5
|
+
import { t as arraify } from "./shared/misc-CCZIsXVO.mjs";
|
|
6
|
+
import { a as getOutputCliKeys, c as styleText$1, i as getInputCliKeys, o as validateCliOptions, r as getCliSchemaInfo } from "./shared/rolldown-build-KB1YaNe-.mjs";
|
|
7
|
+
import "./shared/parse-ast-index-B6LAhWD8.mjs";
|
|
8
|
+
import { t as rolldown } from "./shared/rolldown-CIC_OHw3.mjs";
|
|
9
|
+
import { t as loadConfig } from "./shared/load-config-D6cey0o1.mjs";
|
|
6
10
|
import path, { sep } from "node:path";
|
|
7
|
-
import colors from "ansis";
|
|
8
|
-
import process$1 from "node:process";
|
|
9
11
|
import { formatWithOptions, parseArgs } from "node:util";
|
|
12
|
+
import process$1 from "node:process";
|
|
10
13
|
import * as tty from "node:tty";
|
|
11
14
|
import { performance } from "node:perf_hooks";
|
|
12
15
|
|
|
13
16
|
//#region ../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/core.mjs
|
|
17
|
+
const LogLevels = {
|
|
18
|
+
silent: Number.NEGATIVE_INFINITY,
|
|
19
|
+
fatal: 0,
|
|
20
|
+
error: 0,
|
|
21
|
+
warn: 1,
|
|
22
|
+
log: 2,
|
|
23
|
+
info: 3,
|
|
24
|
+
success: 3,
|
|
25
|
+
fail: 3,
|
|
26
|
+
ready: 3,
|
|
27
|
+
start: 3,
|
|
28
|
+
box: 3,
|
|
29
|
+
debug: 4,
|
|
30
|
+
trace: 5,
|
|
31
|
+
verbose: Number.POSITIVE_INFINITY
|
|
32
|
+
};
|
|
33
|
+
const LogTypes = {
|
|
34
|
+
silent: { level: -1 },
|
|
35
|
+
fatal: { level: LogLevels.fatal },
|
|
36
|
+
error: { level: LogLevels.error },
|
|
37
|
+
warn: { level: LogLevels.warn },
|
|
38
|
+
log: { level: LogLevels.log },
|
|
39
|
+
info: { level: LogLevels.info },
|
|
40
|
+
success: { level: LogLevels.success },
|
|
41
|
+
fail: { level: LogLevels.fail },
|
|
42
|
+
ready: { level: LogLevels.info },
|
|
43
|
+
start: { level: LogLevels.info },
|
|
44
|
+
box: { level: LogLevels.info },
|
|
45
|
+
debug: { level: LogLevels.debug },
|
|
46
|
+
trace: { level: LogLevels.trace },
|
|
47
|
+
verbose: { level: LogLevels.verbose }
|
|
48
|
+
};
|
|
14
49
|
function isPlainObject$1(value) {
|
|
15
50
|
if (value === null || typeof value !== "object") return false;
|
|
16
51
|
const prototype = Object.getPrototypeOf(value);
|
|
@@ -34,8 +69,9 @@ function _defu(baseObject, defaults, namespace = ".", merger) {
|
|
|
34
69
|
return object;
|
|
35
70
|
}
|
|
36
71
|
function createDefu(merger) {
|
|
37
|
-
return (...arguments_) => arguments_.reduce((p, c
|
|
72
|
+
return (...arguments_) => arguments_.reduce((p, c) => _defu(p, c, "", merger), {});
|
|
38
73
|
}
|
|
74
|
+
const defu = createDefu();
|
|
39
75
|
function isPlainObject(obj) {
|
|
40
76
|
return Object.prototype.toString.call(obj) === "[object Object]";
|
|
41
77
|
}
|
|
@@ -45,428 +81,393 @@ function isLogObj(arg) {
|
|
|
45
81
|
if (arg.stack) return false;
|
|
46
82
|
return true;
|
|
47
83
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
};
|
|
75
|
-
LogTypes = {
|
|
76
|
-
silent: { level: -1 },
|
|
77
|
-
fatal: { level: LogLevels.fatal },
|
|
78
|
-
error: { level: LogLevels.error },
|
|
79
|
-
warn: { level: LogLevels.warn },
|
|
80
|
-
log: { level: LogLevels.log },
|
|
81
|
-
info: { level: LogLevels.info },
|
|
82
|
-
success: { level: LogLevels.success },
|
|
83
|
-
fail: { level: LogLevels.fail },
|
|
84
|
-
ready: { level: LogLevels.info },
|
|
85
|
-
start: { level: LogLevels.info },
|
|
86
|
-
box: { level: LogLevels.info },
|
|
87
|
-
debug: { level: LogLevels.debug },
|
|
88
|
-
trace: { level: LogLevels.trace },
|
|
89
|
-
verbose: { level: LogLevels.verbose }
|
|
90
|
-
};
|
|
91
|
-
defu = createDefu();
|
|
92
|
-
paused = false;
|
|
93
|
-
queue = [];
|
|
94
|
-
Consola = class Consola {
|
|
95
|
-
options;
|
|
96
|
-
_lastLog;
|
|
97
|
-
_mockFn;
|
|
98
|
-
/**
|
|
99
|
-
* Creates an instance of Consola with specified options or defaults.
|
|
100
|
-
*
|
|
101
|
-
* @param {Partial<ConsolaOptions>} [options={}] - Configuration options for the Consola instance.
|
|
102
|
-
*/
|
|
103
|
-
constructor(options$1 = {}) {
|
|
104
|
-
const types = options$1.types || LogTypes;
|
|
105
|
-
this.options = defu({
|
|
106
|
-
...options$1,
|
|
107
|
-
defaults: { ...options$1.defaults },
|
|
108
|
-
level: _normalizeLogLevel(options$1.level, types),
|
|
109
|
-
reporters: [...options$1.reporters || []]
|
|
110
|
-
}, {
|
|
111
|
-
types: LogTypes,
|
|
112
|
-
throttle: 1e3,
|
|
113
|
-
throttleMin: 5,
|
|
114
|
-
formatOptions: {
|
|
115
|
-
date: true,
|
|
116
|
-
colors: false,
|
|
117
|
-
compact: true
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
for (const type in types) {
|
|
121
|
-
const defaults = {
|
|
122
|
-
type,
|
|
123
|
-
...this.options.defaults,
|
|
124
|
-
...types[type]
|
|
125
|
-
};
|
|
126
|
-
this[type] = this._wrapLogFn(defaults);
|
|
127
|
-
this[type].raw = this._wrapLogFn(defaults, true);
|
|
128
|
-
}
|
|
129
|
-
if (this.options.mockFn) this.mockTypes();
|
|
130
|
-
this._lastLog = {};
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Gets the current log level of the Consola instance.
|
|
134
|
-
*
|
|
135
|
-
* @returns {number} The current log level.
|
|
136
|
-
*/
|
|
137
|
-
get level() {
|
|
138
|
-
return this.options.level;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Sets the minimum log level that will be output by the instance.
|
|
142
|
-
*
|
|
143
|
-
* @param {number} level - The new log level to set.
|
|
144
|
-
*/
|
|
145
|
-
set level(level) {
|
|
146
|
-
this.options.level = _normalizeLogLevel(level, this.options.types, this.options.level);
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Displays a prompt to the user and returns the response.
|
|
150
|
-
* Throw an error if `prompt` is not supported by the current configuration.
|
|
151
|
-
*
|
|
152
|
-
* @template T
|
|
153
|
-
* @param {string} message - The message to display in the prompt.
|
|
154
|
-
* @param {T} [opts] - Optional options for the prompt. See {@link PromptOptions}.
|
|
155
|
-
* @returns {promise<T>} A promise that infer with the prompt options. See {@link PromptOptions}.
|
|
156
|
-
*/
|
|
157
|
-
prompt(message, opts) {
|
|
158
|
-
if (!this.options.prompt) throw new Error("prompt is not supported!");
|
|
159
|
-
return this.options.prompt(message, opts);
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Creates a new instance of Consola, inheriting options from the current instance, with possible overrides.
|
|
163
|
-
*
|
|
164
|
-
* @param {Partial<ConsolaOptions>} options - Optional overrides for the new instance. See {@link ConsolaOptions}.
|
|
165
|
-
* @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.
|
|
166
|
-
*/
|
|
167
|
-
create(options$1) {
|
|
168
|
-
const instance = new Consola({
|
|
169
|
-
...this.options,
|
|
170
|
-
...options$1
|
|
171
|
-
});
|
|
172
|
-
if (this._mockFn) instance.mockTypes(this._mockFn);
|
|
173
|
-
return instance;
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Creates a new Consola instance with the specified default log object properties.
|
|
177
|
-
*
|
|
178
|
-
* @param {InputLogObject} defaults - Default properties to include in any log from the new instance. See {@link InputLogObject}.
|
|
179
|
-
* @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.
|
|
180
|
-
*/
|
|
181
|
-
withDefaults(defaults) {
|
|
182
|
-
return this.create({
|
|
183
|
-
...this.options,
|
|
184
|
-
defaults: {
|
|
185
|
-
...this.options.defaults,
|
|
186
|
-
...defaults
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Creates a new Consola instance with a specified tag, which will be included in every log.
|
|
192
|
-
*
|
|
193
|
-
* @param {string} tag - The tag to include in each log of the new instance.
|
|
194
|
-
* @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.
|
|
195
|
-
*/
|
|
196
|
-
withTag(tag) {
|
|
197
|
-
return this.withDefaults({ tag: this.options.defaults.tag ? this.options.defaults.tag + ":" + tag : tag });
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Adds a custom reporter to the Consola instance.
|
|
201
|
-
* Reporters will be called for each log message, depending on their implementation and log level.
|
|
202
|
-
*
|
|
203
|
-
* @param {ConsolaReporter} reporter - The reporter to add. See {@link ConsolaReporter}.
|
|
204
|
-
* @returns {Consola} The current Consola instance.
|
|
205
|
-
*/
|
|
206
|
-
addReporter(reporter) {
|
|
207
|
-
this.options.reporters.push(reporter);
|
|
208
|
-
return this;
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Removes a custom reporter from the Consola instance.
|
|
212
|
-
* If no reporter is specified, all reporters will be removed.
|
|
213
|
-
*
|
|
214
|
-
* @param {ConsolaReporter} reporter - The reporter to remove. See {@link ConsolaReporter}.
|
|
215
|
-
* @returns {Consola} The current Consola instance.
|
|
216
|
-
*/
|
|
217
|
-
removeReporter(reporter) {
|
|
218
|
-
if (reporter) {
|
|
219
|
-
const i$1 = this.options.reporters.indexOf(reporter);
|
|
220
|
-
if (i$1 !== -1) return this.options.reporters.splice(i$1, 1);
|
|
221
|
-
} else this.options.reporters.splice(0);
|
|
222
|
-
return this;
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Replaces all reporters of the Consola instance with the specified array of reporters.
|
|
226
|
-
*
|
|
227
|
-
* @param {ConsolaReporter[]} reporters - The new reporters to set. See {@link ConsolaReporter}.
|
|
228
|
-
* @returns {Consola} The current Consola instance.
|
|
229
|
-
*/
|
|
230
|
-
setReporters(reporters) {
|
|
231
|
-
this.options.reporters = Array.isArray(reporters) ? reporters : [reporters];
|
|
232
|
-
return this;
|
|
233
|
-
}
|
|
234
|
-
wrapAll() {
|
|
235
|
-
this.wrapConsole();
|
|
236
|
-
this.wrapStd();
|
|
237
|
-
}
|
|
238
|
-
restoreAll() {
|
|
239
|
-
this.restoreConsole();
|
|
240
|
-
this.restoreStd();
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Overrides console methods with Consola logging methods for consistent logging.
|
|
244
|
-
*/
|
|
245
|
-
wrapConsole() {
|
|
246
|
-
for (const type in this.options.types) {
|
|
247
|
-
if (!console["__" + type]) console["__" + type] = console[type];
|
|
248
|
-
console[type] = this[type].raw;
|
|
84
|
+
let paused = false;
|
|
85
|
+
const queue = [];
|
|
86
|
+
var Consola = class Consola {
|
|
87
|
+
options;
|
|
88
|
+
_lastLog;
|
|
89
|
+
_mockFn;
|
|
90
|
+
/**
|
|
91
|
+
* Creates an instance of Consola with specified options or defaults.
|
|
92
|
+
*
|
|
93
|
+
* @param {Partial<ConsolaOptions>} [options={}] - Configuration options for the Consola instance.
|
|
94
|
+
*/
|
|
95
|
+
constructor(options = {}) {
|
|
96
|
+
const types = options.types || LogTypes;
|
|
97
|
+
this.options = defu({
|
|
98
|
+
...options,
|
|
99
|
+
defaults: { ...options.defaults },
|
|
100
|
+
level: _normalizeLogLevel(options.level, types),
|
|
101
|
+
reporters: [...options.reporters || []]
|
|
102
|
+
}, {
|
|
103
|
+
types: LogTypes,
|
|
104
|
+
throttle: 1e3,
|
|
105
|
+
throttleMin: 5,
|
|
106
|
+
formatOptions: {
|
|
107
|
+
date: true,
|
|
108
|
+
colors: false,
|
|
109
|
+
compact: true
|
|
249
110
|
}
|
|
111
|
+
});
|
|
112
|
+
for (const type in types) {
|
|
113
|
+
const defaults = {
|
|
114
|
+
type,
|
|
115
|
+
...this.options.defaults,
|
|
116
|
+
...types[type]
|
|
117
|
+
};
|
|
118
|
+
this[type] = this._wrapLogFn(defaults);
|
|
119
|
+
this[type].raw = this._wrapLogFn(defaults, true);
|
|
250
120
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
121
|
+
if (this.options.mockFn) this.mockTypes();
|
|
122
|
+
this._lastLog = {};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Gets the current log level of the Consola instance.
|
|
126
|
+
*
|
|
127
|
+
* @returns {number} The current log level.
|
|
128
|
+
*/
|
|
129
|
+
get level() {
|
|
130
|
+
return this.options.level;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Sets the minimum log level that will be output by the instance.
|
|
134
|
+
*
|
|
135
|
+
* @param {number} level - The new log level to set.
|
|
136
|
+
*/
|
|
137
|
+
set level(level) {
|
|
138
|
+
this.options.level = _normalizeLogLevel(level, this.options.types, this.options.level);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Displays a prompt to the user and returns the response.
|
|
142
|
+
* Throw an error if `prompt` is not supported by the current configuration.
|
|
143
|
+
*
|
|
144
|
+
* @template T
|
|
145
|
+
* @param {string} message - The message to display in the prompt.
|
|
146
|
+
* @param {T} [opts] - Optional options for the prompt. See {@link PromptOptions}.
|
|
147
|
+
* @returns {promise<T>} A promise that infer with the prompt options. See {@link PromptOptions}.
|
|
148
|
+
*/
|
|
149
|
+
prompt(message, opts) {
|
|
150
|
+
if (!this.options.prompt) throw new Error("prompt is not supported!");
|
|
151
|
+
return this.options.prompt(message, opts);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Creates a new instance of Consola, inheriting options from the current instance, with possible overrides.
|
|
155
|
+
*
|
|
156
|
+
* @param {Partial<ConsolaOptions>} options - Optional overrides for the new instance. See {@link ConsolaOptions}.
|
|
157
|
+
* @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.
|
|
158
|
+
*/
|
|
159
|
+
create(options) {
|
|
160
|
+
const instance = new Consola({
|
|
161
|
+
...this.options,
|
|
162
|
+
...options
|
|
163
|
+
});
|
|
164
|
+
if (this._mockFn) instance.mockTypes(this._mockFn);
|
|
165
|
+
return instance;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Creates a new Consola instance with the specified default log object properties.
|
|
169
|
+
*
|
|
170
|
+
* @param {InputLogObject} defaults - Default properties to include in any log from the new instance. See {@link InputLogObject}.
|
|
171
|
+
* @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.
|
|
172
|
+
*/
|
|
173
|
+
withDefaults(defaults) {
|
|
174
|
+
return this.create({
|
|
175
|
+
...this.options,
|
|
176
|
+
defaults: {
|
|
177
|
+
...this.options.defaults,
|
|
178
|
+
...defaults
|
|
258
179
|
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Creates a new Consola instance with a specified tag, which will be included in every log.
|
|
184
|
+
*
|
|
185
|
+
* @param {string} tag - The tag to include in each log of the new instance.
|
|
186
|
+
* @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.
|
|
187
|
+
*/
|
|
188
|
+
withTag(tag) {
|
|
189
|
+
return this.withDefaults({ tag: this.options.defaults.tag ? this.options.defaults.tag + ":" + tag : tag });
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Adds a custom reporter to the Consola instance.
|
|
193
|
+
* Reporters will be called for each log message, depending on their implementation and log level.
|
|
194
|
+
*
|
|
195
|
+
* @param {ConsolaReporter} reporter - The reporter to add. See {@link ConsolaReporter}.
|
|
196
|
+
* @returns {Consola} The current Consola instance.
|
|
197
|
+
*/
|
|
198
|
+
addReporter(reporter) {
|
|
199
|
+
this.options.reporters.push(reporter);
|
|
200
|
+
return this;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Removes a custom reporter from the Consola instance.
|
|
204
|
+
* If no reporter is specified, all reporters will be removed.
|
|
205
|
+
*
|
|
206
|
+
* @param {ConsolaReporter} reporter - The reporter to remove. See {@link ConsolaReporter}.
|
|
207
|
+
* @returns {Consola} The current Consola instance.
|
|
208
|
+
*/
|
|
209
|
+
removeReporter(reporter) {
|
|
210
|
+
if (reporter) {
|
|
211
|
+
const i = this.options.reporters.indexOf(reporter);
|
|
212
|
+
if (i !== -1) return this.options.reporters.splice(i, 1);
|
|
213
|
+
} else this.options.reporters.splice(0);
|
|
214
|
+
return this;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Replaces all reporters of the Consola instance with the specified array of reporters.
|
|
218
|
+
*
|
|
219
|
+
* @param {ConsolaReporter[]} reporters - The new reporters to set. See {@link ConsolaReporter}.
|
|
220
|
+
* @returns {Consola} The current Consola instance.
|
|
221
|
+
*/
|
|
222
|
+
setReporters(reporters) {
|
|
223
|
+
this.options.reporters = Array.isArray(reporters) ? reporters : [reporters];
|
|
224
|
+
return this;
|
|
225
|
+
}
|
|
226
|
+
wrapAll() {
|
|
227
|
+
this.wrapConsole();
|
|
228
|
+
this.wrapStd();
|
|
229
|
+
}
|
|
230
|
+
restoreAll() {
|
|
231
|
+
this.restoreConsole();
|
|
232
|
+
this.restoreStd();
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Overrides console methods with Consola logging methods for consistent logging.
|
|
236
|
+
*/
|
|
237
|
+
wrapConsole() {
|
|
238
|
+
for (const type in this.options.types) {
|
|
239
|
+
if (!console["__" + type]) console["__" + type] = console[type];
|
|
240
|
+
console[type] = this[type].raw;
|
|
259
241
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Restores the original console methods, removing Consola overrides.
|
|
245
|
+
*/
|
|
246
|
+
restoreConsole() {
|
|
247
|
+
for (const type in this.options.types) if (console["__" + type]) {
|
|
248
|
+
console[type] = console["__" + type];
|
|
249
|
+
delete console["__" + type];
|
|
266
250
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Overrides standard output and error streams to redirect them through Consola.
|
|
254
|
+
*/
|
|
255
|
+
wrapStd() {
|
|
256
|
+
this._wrapStream(this.options.stdout, "log");
|
|
257
|
+
this._wrapStream(this.options.stderr, "log");
|
|
258
|
+
}
|
|
259
|
+
_wrapStream(stream, type) {
|
|
260
|
+
if (!stream) return;
|
|
261
|
+
if (!stream.__write) stream.__write = stream.write;
|
|
262
|
+
stream.write = (data) => {
|
|
263
|
+
this[type].raw(String(data).trim());
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Restores the original standard output and error streams, removing the Consola redirection.
|
|
268
|
+
*/
|
|
269
|
+
restoreStd() {
|
|
270
|
+
this._restoreStream(this.options.stdout);
|
|
271
|
+
this._restoreStream(this.options.stderr);
|
|
272
|
+
}
|
|
273
|
+
_restoreStream(stream) {
|
|
274
|
+
if (!stream) return;
|
|
275
|
+
if (stream.__write) {
|
|
276
|
+
stream.write = stream.__write;
|
|
277
|
+
delete stream.__write;
|
|
273
278
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Pauses logging, queues incoming logs until resumed.
|
|
282
|
+
*/
|
|
283
|
+
pauseLogs() {
|
|
284
|
+
paused = true;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Resumes logging, processing any queued logs.
|
|
288
|
+
*/
|
|
289
|
+
resumeLogs() {
|
|
290
|
+
paused = false;
|
|
291
|
+
const _queue = queue.splice(0);
|
|
292
|
+
for (const item of _queue) item[0]._logFn(item[1], item[2]);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Replaces logging methods with mocks if a mock function is provided.
|
|
296
|
+
*
|
|
297
|
+
* @param {ConsolaOptions["mockFn"]} mockFn - The function to use for mocking logging methods. See {@link ConsolaOptions["mockFn"]}.
|
|
298
|
+
*/
|
|
299
|
+
mockTypes(mockFn) {
|
|
300
|
+
const _mockFn = mockFn || this.options.mockFn;
|
|
301
|
+
this._mockFn = _mockFn;
|
|
302
|
+
if (typeof _mockFn !== "function") return;
|
|
303
|
+
for (const type in this.options.types) {
|
|
304
|
+
this[type] = _mockFn(type, this.options.types[type]) || this[type];
|
|
305
|
+
this[type].raw = this[type];
|
|
280
306
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
307
|
+
}
|
|
308
|
+
_wrapLogFn(defaults, isRaw) {
|
|
309
|
+
return (...args) => {
|
|
310
|
+
if (paused) {
|
|
311
|
+
queue.push([
|
|
312
|
+
this,
|
|
313
|
+
defaults,
|
|
314
|
+
args,
|
|
315
|
+
isRaw
|
|
316
|
+
]);
|
|
317
|
+
return;
|
|
286
318
|
}
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
319
|
+
return this._logFn(defaults, args, isRaw);
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
_logFn(defaults, args, isRaw) {
|
|
323
|
+
if ((defaults.level || 0) > this.level) return false;
|
|
324
|
+
const logObj = {
|
|
325
|
+
date: /* @__PURE__ */ new Date(),
|
|
326
|
+
args: [],
|
|
327
|
+
...defaults,
|
|
328
|
+
level: _normalizeLogLevel(defaults.level, this.options.types)
|
|
329
|
+
};
|
|
330
|
+
if (!isRaw && args.length === 1 && isLogObj(args[0])) Object.assign(logObj, args[0]);
|
|
331
|
+
else logObj.args = [...args];
|
|
332
|
+
if (logObj.message) {
|
|
333
|
+
logObj.args.unshift(logObj.message);
|
|
334
|
+
delete logObj.message;
|
|
335
|
+
}
|
|
336
|
+
if (logObj.additional) {
|
|
337
|
+
if (!Array.isArray(logObj.additional)) logObj.additional = logObj.additional.split("\n");
|
|
338
|
+
logObj.args.push("\n" + logObj.additional.join("\n"));
|
|
339
|
+
delete logObj.additional;
|
|
340
|
+
}
|
|
341
|
+
logObj.type = typeof logObj.type === "string" ? logObj.type.toLowerCase() : "log";
|
|
342
|
+
logObj.tag = typeof logObj.tag === "string" ? logObj.tag : "";
|
|
343
|
+
const resolveLog = (newLog = false) => {
|
|
344
|
+
const repeated = (this._lastLog.count || 0) - this.options.throttleMin;
|
|
345
|
+
if (this._lastLog.object && repeated > 0) {
|
|
346
|
+
const args2 = [...this._lastLog.object.args];
|
|
347
|
+
if (repeated > 1) args2.push(`(repeated ${repeated} times)`);
|
|
348
|
+
this._log({
|
|
349
|
+
...this._lastLog.object,
|
|
350
|
+
args: args2
|
|
351
|
+
});
|
|
352
|
+
this._lastLog.count = 1;
|
|
314
353
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
354
|
+
if (newLog) {
|
|
355
|
+
this._lastLog.object = logObj;
|
|
356
|
+
this._log(logObj);
|
|
357
|
+
}
|
|
358
|
+
};
|
|
359
|
+
clearTimeout(this._lastLog.timeout);
|
|
360
|
+
const diffTime = this._lastLog.time && logObj.date ? logObj.date.getTime() - this._lastLog.time.getTime() : 0;
|
|
361
|
+
this._lastLog.time = logObj.date;
|
|
362
|
+
if (diffTime < this.options.throttle) try {
|
|
363
|
+
const serializedLog = JSON.stringify([
|
|
364
|
+
logObj.type,
|
|
365
|
+
logObj.tag,
|
|
366
|
+
logObj.args
|
|
367
|
+
]);
|
|
368
|
+
const isSameLog = this._lastLog.serialized === serializedLog;
|
|
369
|
+
this._lastLog.serialized = serializedLog;
|
|
370
|
+
if (isSameLog) {
|
|
371
|
+
this._lastLog.count = (this._lastLog.count || 0) + 1;
|
|
372
|
+
if (this._lastLog.count > this.options.throttleMin) {
|
|
373
|
+
this._lastLog.timeout = setTimeout(resolveLog, this.options.throttle);
|
|
325
374
|
return;
|
|
326
375
|
}
|
|
327
|
-
return this._logFn(defaults, args, isRaw);
|
|
328
|
-
};
|
|
329
|
-
}
|
|
330
|
-
_logFn(defaults, args, isRaw) {
|
|
331
|
-
if ((defaults.level || 0) > this.level) return false;
|
|
332
|
-
const logObj = {
|
|
333
|
-
date: /* @__PURE__ */ new Date(),
|
|
334
|
-
args: [],
|
|
335
|
-
...defaults,
|
|
336
|
-
level: _normalizeLogLevel(defaults.level, this.options.types)
|
|
337
|
-
};
|
|
338
|
-
if (!isRaw && args.length === 1 && isLogObj(args[0])) Object.assign(logObj, args[0]);
|
|
339
|
-
else logObj.args = [...args];
|
|
340
|
-
if (logObj.message) {
|
|
341
|
-
logObj.args.unshift(logObj.message);
|
|
342
|
-
delete logObj.message;
|
|
343
376
|
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
clearTimeout(this._lastLog.timeout);
|
|
368
|
-
const diffTime = this._lastLog.time && logObj.date ? logObj.date.getTime() - this._lastLog.time.getTime() : 0;
|
|
369
|
-
this._lastLog.time = logObj.date;
|
|
370
|
-
if (diffTime < this.options.throttle) try {
|
|
371
|
-
const serializedLog = JSON.stringify([
|
|
372
|
-
logObj.type,
|
|
373
|
-
logObj.tag,
|
|
374
|
-
logObj.args
|
|
375
|
-
]);
|
|
376
|
-
const isSameLog = this._lastLog.serialized === serializedLog;
|
|
377
|
-
this._lastLog.serialized = serializedLog;
|
|
378
|
-
if (isSameLog) {
|
|
379
|
-
this._lastLog.count = (this._lastLog.count || 0) + 1;
|
|
380
|
-
if (this._lastLog.count > this.options.throttleMin) {
|
|
381
|
-
this._lastLog.timeout = setTimeout(resolveLog, this.options.throttle);
|
|
382
|
-
return;
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
} catch {}
|
|
386
|
-
resolveLog(true);
|
|
387
|
-
}
|
|
388
|
-
_log(logObj) {
|
|
389
|
-
for (const reporter of this.options.reporters) reporter.log(logObj, { options: this.options });
|
|
390
|
-
}
|
|
391
|
-
};
|
|
392
|
-
Consola.prototype.add = Consola.prototype.addReporter;
|
|
393
|
-
Consola.prototype.remove = Consola.prototype.removeReporter;
|
|
394
|
-
Consola.prototype.clear = Consola.prototype.removeReporter;
|
|
395
|
-
Consola.prototype.withScope = Consola.prototype.withTag;
|
|
396
|
-
Consola.prototype.mock = Consola.prototype.mockTypes;
|
|
397
|
-
Consola.prototype.pause = Consola.prototype.pauseLogs;
|
|
398
|
-
Consola.prototype.resume = Consola.prototype.resumeLogs;
|
|
399
|
-
} });
|
|
377
|
+
} catch {}
|
|
378
|
+
resolveLog(true);
|
|
379
|
+
}
|
|
380
|
+
_log(logObj) {
|
|
381
|
+
for (const reporter of this.options.reporters) reporter.log(logObj, { options: this.options });
|
|
382
|
+
}
|
|
383
|
+
};
|
|
384
|
+
function _normalizeLogLevel(input, types = {}, defaultLevel = 3) {
|
|
385
|
+
if (input === void 0) return defaultLevel;
|
|
386
|
+
if (typeof input === "number") return input;
|
|
387
|
+
if (types[input] && types[input].level !== void 0) return types[input].level;
|
|
388
|
+
return defaultLevel;
|
|
389
|
+
}
|
|
390
|
+
Consola.prototype.add = Consola.prototype.addReporter;
|
|
391
|
+
Consola.prototype.remove = Consola.prototype.removeReporter;
|
|
392
|
+
Consola.prototype.clear = Consola.prototype.removeReporter;
|
|
393
|
+
Consola.prototype.withScope = Consola.prototype.withTag;
|
|
394
|
+
Consola.prototype.mock = Consola.prototype.mockTypes;
|
|
395
|
+
Consola.prototype.pause = Consola.prototype.pauseLogs;
|
|
396
|
+
Consola.prototype.resume = Consola.prototype.resumeLogs;
|
|
397
|
+
function createConsola$1(options = {}) {
|
|
398
|
+
return new Consola(options);
|
|
399
|
+
}
|
|
400
400
|
|
|
401
401
|
//#endregion
|
|
402
402
|
//#region ../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs
|
|
403
403
|
function parseStack(stack, message) {
|
|
404
|
-
const cwd
|
|
405
|
-
|
|
406
|
-
return lines;
|
|
404
|
+
const cwd = process.cwd() + sep;
|
|
405
|
+
return stack.split("\n").splice(message.split("\n").length).map((l) => l.trim().replace("file://", "").replace(cwd, ""));
|
|
407
406
|
}
|
|
408
407
|
function writeStream(data, stream) {
|
|
409
|
-
|
|
410
|
-
return write.call(stream, data);
|
|
408
|
+
return (stream.__write || stream.write).call(stream, data);
|
|
411
409
|
}
|
|
412
|
-
|
|
413
|
-
var
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
const indent = " ".repeat((opts?.errorLevel || 0) + 1);
|
|
418
|
-
return indent + parseStack(stack, message).join(`
|
|
410
|
+
const bracket = (x) => x ? `[${x}]` : "";
|
|
411
|
+
var BasicReporter = class {
|
|
412
|
+
formatStack(stack, message, opts) {
|
|
413
|
+
const indent = " ".repeat((opts?.errorLevel || 0) + 1);
|
|
414
|
+
return indent + parseStack(stack, message).join(`
|
|
419
415
|
${indent}`);
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
}
|
|
465
|
-
};
|
|
466
|
-
} });
|
|
416
|
+
}
|
|
417
|
+
formatError(err, opts) {
|
|
418
|
+
const message = err.message ?? formatWithOptions(opts, err);
|
|
419
|
+
const stack = err.stack ? this.formatStack(err.stack, message, opts) : "";
|
|
420
|
+
const level = opts?.errorLevel || 0;
|
|
421
|
+
const causedPrefix = level > 0 ? `${" ".repeat(level)}[cause]: ` : "";
|
|
422
|
+
const causedError = err.cause ? "\n\n" + this.formatError(err.cause, {
|
|
423
|
+
...opts,
|
|
424
|
+
errorLevel: level + 1
|
|
425
|
+
}) : "";
|
|
426
|
+
return causedPrefix + message + "\n" + stack + causedError;
|
|
427
|
+
}
|
|
428
|
+
formatArgs(args, opts) {
|
|
429
|
+
return formatWithOptions(opts, ...args.map((arg) => {
|
|
430
|
+
if (arg && typeof arg.stack === "string") return this.formatError(arg, opts);
|
|
431
|
+
return arg;
|
|
432
|
+
}));
|
|
433
|
+
}
|
|
434
|
+
formatDate(date, opts) {
|
|
435
|
+
return opts.date ? date.toLocaleTimeString() : "";
|
|
436
|
+
}
|
|
437
|
+
filterAndJoin(arr) {
|
|
438
|
+
return arr.filter(Boolean).join(" ");
|
|
439
|
+
}
|
|
440
|
+
formatLogObj(logObj, opts) {
|
|
441
|
+
const message = this.formatArgs(logObj.args, opts);
|
|
442
|
+
if (logObj.type === "box") return "\n" + [
|
|
443
|
+
bracket(logObj.tag),
|
|
444
|
+
logObj.title && logObj.title,
|
|
445
|
+
...message.split("\n")
|
|
446
|
+
].filter(Boolean).map((l) => " > " + l).join("\n") + "\n";
|
|
447
|
+
return this.filterAndJoin([
|
|
448
|
+
bracket(logObj.type),
|
|
449
|
+
bracket(logObj.tag),
|
|
450
|
+
message
|
|
451
|
+
]);
|
|
452
|
+
}
|
|
453
|
+
log(logObj, ctx) {
|
|
454
|
+
return writeStream(this.formatLogObj(logObj, {
|
|
455
|
+
columns: ctx.options.stdout.columns || 0,
|
|
456
|
+
...ctx.options.formatOptions
|
|
457
|
+
}) + "\n", logObj.level < 2 ? ctx.options.stderr || process.stderr : ctx.options.stdout || process.stdout);
|
|
458
|
+
}
|
|
459
|
+
};
|
|
467
460
|
|
|
468
461
|
//#endregion
|
|
469
462
|
//#region ../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs
|
|
463
|
+
const { env = {}, argv = [], platform = "" } = typeof process === "undefined" ? {} : process;
|
|
464
|
+
const isDisabled = "NO_COLOR" in env || argv.includes("--no-color");
|
|
465
|
+
const isForced = "FORCE_COLOR" in env || argv.includes("--color");
|
|
466
|
+
const isWindows = platform === "win32";
|
|
467
|
+
const isDumbTerminal = env.TERM === "dumb";
|
|
468
|
+
const isCompatibleTerminal = tty && tty.isatty && tty.isatty(1) && env.TERM && !isDumbTerminal;
|
|
469
|
+
const isCI = "CI" in env && ("GITHUB_ACTIONS" in env || "GITLAB_CI" in env || "CIRCLECI" in env);
|
|
470
|
+
const isColorSupported = !isDisabled && (isForced || isWindows && !isDumbTerminal || isCompatibleTerminal || isCI);
|
|
470
471
|
function replaceClose(index, string, close, replace, head = string.slice(0, Math.max(0, index)) + replace, tail = string.slice(Math.max(0, index + close.length)), next = tail.indexOf(close)) {
|
|
471
472
|
return head + (next < 0 ? tail : replaceClose(next, tail, close, replace));
|
|
472
473
|
}
|
|
@@ -479,15 +480,135 @@ function filterEmpty(open, close, replace = open, at = open.length + 1) {
|
|
|
479
480
|
function init(open, close, replace) {
|
|
480
481
|
return filterEmpty(`\x1B[${open}m`, `\x1B[${close}m`, replace);
|
|
481
482
|
}
|
|
483
|
+
const colorDefs = {
|
|
484
|
+
reset: init(0, 0),
|
|
485
|
+
bold: init(1, 22, "\x1B[22m\x1B[1m"),
|
|
486
|
+
dim: init(2, 22, "\x1B[22m\x1B[2m"),
|
|
487
|
+
italic: init(3, 23),
|
|
488
|
+
underline: init(4, 24),
|
|
489
|
+
inverse: init(7, 27),
|
|
490
|
+
hidden: init(8, 28),
|
|
491
|
+
strikethrough: init(9, 29),
|
|
492
|
+
black: init(30, 39),
|
|
493
|
+
red: init(31, 39),
|
|
494
|
+
green: init(32, 39),
|
|
495
|
+
yellow: init(33, 39),
|
|
496
|
+
blue: init(34, 39),
|
|
497
|
+
magenta: init(35, 39),
|
|
498
|
+
cyan: init(36, 39),
|
|
499
|
+
white: init(37, 39),
|
|
500
|
+
gray: init(90, 39),
|
|
501
|
+
bgBlack: init(40, 49),
|
|
502
|
+
bgRed: init(41, 49),
|
|
503
|
+
bgGreen: init(42, 49),
|
|
504
|
+
bgYellow: init(43, 49),
|
|
505
|
+
bgBlue: init(44, 49),
|
|
506
|
+
bgMagenta: init(45, 49),
|
|
507
|
+
bgCyan: init(46, 49),
|
|
508
|
+
bgWhite: init(47, 49),
|
|
509
|
+
blackBright: init(90, 39),
|
|
510
|
+
redBright: init(91, 39),
|
|
511
|
+
greenBright: init(92, 39),
|
|
512
|
+
yellowBright: init(93, 39),
|
|
513
|
+
blueBright: init(94, 39),
|
|
514
|
+
magentaBright: init(95, 39),
|
|
515
|
+
cyanBright: init(96, 39),
|
|
516
|
+
whiteBright: init(97, 39),
|
|
517
|
+
bgBlackBright: init(100, 49),
|
|
518
|
+
bgRedBright: init(101, 49),
|
|
519
|
+
bgGreenBright: init(102, 49),
|
|
520
|
+
bgYellowBright: init(103, 49),
|
|
521
|
+
bgBlueBright: init(104, 49),
|
|
522
|
+
bgMagentaBright: init(105, 49),
|
|
523
|
+
bgCyanBright: init(106, 49),
|
|
524
|
+
bgWhiteBright: init(107, 49)
|
|
525
|
+
};
|
|
482
526
|
function createColors(useColor = isColorSupported) {
|
|
483
527
|
return useColor ? colorDefs : Object.fromEntries(Object.keys(colorDefs).map((key) => [key, String]));
|
|
484
528
|
}
|
|
529
|
+
const colors = createColors();
|
|
485
530
|
function getColor$1(color, fallback = "reset") {
|
|
486
|
-
return colors
|
|
531
|
+
return colors[color] || colors[fallback];
|
|
487
532
|
}
|
|
488
|
-
|
|
533
|
+
const ansiRegex$1 = [String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`, String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`].join("|");
|
|
534
|
+
function stripAnsi$1(text) {
|
|
489
535
|
return text.replace(new RegExp(ansiRegex$1, "g"), "");
|
|
490
536
|
}
|
|
537
|
+
const boxStylePresets = {
|
|
538
|
+
solid: {
|
|
539
|
+
tl: "┌",
|
|
540
|
+
tr: "┐",
|
|
541
|
+
bl: "└",
|
|
542
|
+
br: "┘",
|
|
543
|
+
h: "─",
|
|
544
|
+
v: "│"
|
|
545
|
+
},
|
|
546
|
+
double: {
|
|
547
|
+
tl: "╔",
|
|
548
|
+
tr: "╗",
|
|
549
|
+
bl: "╚",
|
|
550
|
+
br: "╝",
|
|
551
|
+
h: "═",
|
|
552
|
+
v: "║"
|
|
553
|
+
},
|
|
554
|
+
doubleSingle: {
|
|
555
|
+
tl: "╓",
|
|
556
|
+
tr: "╖",
|
|
557
|
+
bl: "╙",
|
|
558
|
+
br: "╜",
|
|
559
|
+
h: "─",
|
|
560
|
+
v: "║"
|
|
561
|
+
},
|
|
562
|
+
doubleSingleRounded: {
|
|
563
|
+
tl: "╭",
|
|
564
|
+
tr: "╮",
|
|
565
|
+
bl: "╰",
|
|
566
|
+
br: "╯",
|
|
567
|
+
h: "─",
|
|
568
|
+
v: "║"
|
|
569
|
+
},
|
|
570
|
+
singleThick: {
|
|
571
|
+
tl: "┏",
|
|
572
|
+
tr: "┓",
|
|
573
|
+
bl: "┗",
|
|
574
|
+
br: "┛",
|
|
575
|
+
h: "━",
|
|
576
|
+
v: "┃"
|
|
577
|
+
},
|
|
578
|
+
singleDouble: {
|
|
579
|
+
tl: "╒",
|
|
580
|
+
tr: "╕",
|
|
581
|
+
bl: "╘",
|
|
582
|
+
br: "╛",
|
|
583
|
+
h: "═",
|
|
584
|
+
v: "│"
|
|
585
|
+
},
|
|
586
|
+
singleDoubleRounded: {
|
|
587
|
+
tl: "╭",
|
|
588
|
+
tr: "╮",
|
|
589
|
+
bl: "╰",
|
|
590
|
+
br: "╯",
|
|
591
|
+
h: "═",
|
|
592
|
+
v: "│"
|
|
593
|
+
},
|
|
594
|
+
rounded: {
|
|
595
|
+
tl: "╭",
|
|
596
|
+
tr: "╮",
|
|
597
|
+
bl: "╰",
|
|
598
|
+
br: "╯",
|
|
599
|
+
h: "─",
|
|
600
|
+
v: "│"
|
|
601
|
+
}
|
|
602
|
+
};
|
|
603
|
+
const defaultStyle = {
|
|
604
|
+
borderColor: "white",
|
|
605
|
+
borderStyle: "rounded",
|
|
606
|
+
valign: "center",
|
|
607
|
+
padding: 2,
|
|
608
|
+
marginLeft: 1,
|
|
609
|
+
marginTop: 1,
|
|
610
|
+
marginBottom: 1
|
|
611
|
+
};
|
|
491
612
|
function box(text, _opts = {}) {
|
|
492
613
|
const opts = {
|
|
493
614
|
..._opts,
|
|
@@ -503,166 +624,146 @@ function box(text, _opts = {}) {
|
|
|
503
624
|
if (_color) for (const key in borderStyle) borderStyle[key] = _color(borderStyle[key]);
|
|
504
625
|
const paddingOffset = opts.style.padding % 2 === 0 ? opts.style.padding : opts.style.padding + 1;
|
|
505
626
|
const height = textLines.length + paddingOffset;
|
|
506
|
-
const width = Math.max(...textLines.map((line) => stripAnsi(line).length), opts.title ? stripAnsi(opts.title).length : 0) + paddingOffset;
|
|
627
|
+
const width = Math.max(...textLines.map((line) => stripAnsi$1(line).length), opts.title ? stripAnsi$1(opts.title).length : 0) + paddingOffset;
|
|
507
628
|
const widthOffset = width + paddingOffset;
|
|
508
629
|
const leftSpace = opts.style.marginLeft > 0 ? " ".repeat(opts.style.marginLeft) : "";
|
|
509
630
|
if (opts.style.marginTop > 0) boxLines.push("".repeat(opts.style.marginTop));
|
|
510
631
|
if (opts.title) {
|
|
511
632
|
const title = _color ? _color(opts.title) : opts.title;
|
|
512
|
-
const left = borderStyle.h.repeat(Math.floor((width - stripAnsi(opts.title).length) / 2));
|
|
513
|
-
const right = borderStyle.h.repeat(width - stripAnsi(opts.title).length - stripAnsi(left).length + paddingOffset);
|
|
633
|
+
const left = borderStyle.h.repeat(Math.floor((width - stripAnsi$1(opts.title).length) / 2));
|
|
634
|
+
const right = borderStyle.h.repeat(width - stripAnsi$1(opts.title).length - stripAnsi$1(left).length + paddingOffset);
|
|
514
635
|
boxLines.push(`${leftSpace}${borderStyle.tl}${left}${title}${right}${borderStyle.tr}`);
|
|
515
636
|
} else boxLines.push(`${leftSpace}${borderStyle.tl}${borderStyle.h.repeat(widthOffset)}${borderStyle.tr}`);
|
|
516
637
|
const valignOffset = opts.style.valign === "center" ? Math.floor((height - textLines.length) / 2) : opts.style.valign === "top" ? height - textLines.length - paddingOffset : height - textLines.length;
|
|
517
|
-
for (let i
|
|
638
|
+
for (let i = 0; i < height; i++) if (i < valignOffset || i >= valignOffset + textLines.length) boxLines.push(`${leftSpace}${borderStyle.v}${" ".repeat(widthOffset)}${borderStyle.v}`);
|
|
518
639
|
else {
|
|
519
|
-
const line = textLines[i
|
|
640
|
+
const line = textLines[i - valignOffset];
|
|
520
641
|
const left = " ".repeat(paddingOffset);
|
|
521
|
-
const right = " ".repeat(width - stripAnsi(line).length);
|
|
642
|
+
const right = " ".repeat(width - stripAnsi$1(line).length);
|
|
522
643
|
boxLines.push(`${leftSpace}${borderStyle.v}${left}${line}${right}${borderStyle.v}`);
|
|
523
644
|
}
|
|
524
645
|
boxLines.push(`${leftSpace}${borderStyle.bl}${borderStyle.h.repeat(widthOffset)}${borderStyle.br}`);
|
|
525
646
|
if (opts.style.marginBottom > 0) boxLines.push("".repeat(opts.style.marginBottom));
|
|
526
647
|
return boxLines.join("\n");
|
|
527
648
|
}
|
|
528
|
-
var env, argv, platform, isDisabled, isForced, isWindows, isDumbTerminal, isCompatibleTerminal, isCI, isColorSupported, colorDefs, colors$1, ansiRegex$1, boxStylePresets, defaultStyle;
|
|
529
|
-
var init_consola_DXBYu_KD = __esm({ "../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs"() {
|
|
530
|
-
({env = {}, argv = [], platform = ""} = typeof process === "undefined" ? {} : process);
|
|
531
|
-
isDisabled = "NO_COLOR" in env || argv.includes("--no-color");
|
|
532
|
-
isForced = "FORCE_COLOR" in env || argv.includes("--color");
|
|
533
|
-
isWindows = platform === "win32";
|
|
534
|
-
isDumbTerminal = env.TERM === "dumb";
|
|
535
|
-
isCompatibleTerminal = tty && tty.isatty && tty.isatty(1) && env.TERM && !isDumbTerminal;
|
|
536
|
-
isCI = "CI" in env && ("GITHUB_ACTIONS" in env || "GITLAB_CI" in env || "CIRCLECI" in env);
|
|
537
|
-
isColorSupported = !isDisabled && (isForced || isWindows && !isDumbTerminal || isCompatibleTerminal || isCI);
|
|
538
|
-
colorDefs = {
|
|
539
|
-
reset: init(0, 0),
|
|
540
|
-
bold: init(1, 22, "\x1B[22m\x1B[1m"),
|
|
541
|
-
dim: init(2, 22, "\x1B[22m\x1B[2m"),
|
|
542
|
-
italic: init(3, 23),
|
|
543
|
-
underline: init(4, 24),
|
|
544
|
-
inverse: init(7, 27),
|
|
545
|
-
hidden: init(8, 28),
|
|
546
|
-
strikethrough: init(9, 29),
|
|
547
|
-
black: init(30, 39),
|
|
548
|
-
red: init(31, 39),
|
|
549
|
-
green: init(32, 39),
|
|
550
|
-
yellow: init(33, 39),
|
|
551
|
-
blue: init(34, 39),
|
|
552
|
-
magenta: init(35, 39),
|
|
553
|
-
cyan: init(36, 39),
|
|
554
|
-
white: init(37, 39),
|
|
555
|
-
gray: init(90, 39),
|
|
556
|
-
bgBlack: init(40, 49),
|
|
557
|
-
bgRed: init(41, 49),
|
|
558
|
-
bgGreen: init(42, 49),
|
|
559
|
-
bgYellow: init(43, 49),
|
|
560
|
-
bgBlue: init(44, 49),
|
|
561
|
-
bgMagenta: init(45, 49),
|
|
562
|
-
bgCyan: init(46, 49),
|
|
563
|
-
bgWhite: init(47, 49),
|
|
564
|
-
blackBright: init(90, 39),
|
|
565
|
-
redBright: init(91, 39),
|
|
566
|
-
greenBright: init(92, 39),
|
|
567
|
-
yellowBright: init(93, 39),
|
|
568
|
-
blueBright: init(94, 39),
|
|
569
|
-
magentaBright: init(95, 39),
|
|
570
|
-
cyanBright: init(96, 39),
|
|
571
|
-
whiteBright: init(97, 39),
|
|
572
|
-
bgBlackBright: init(100, 49),
|
|
573
|
-
bgRedBright: init(101, 49),
|
|
574
|
-
bgGreenBright: init(102, 49),
|
|
575
|
-
bgYellowBright: init(103, 49),
|
|
576
|
-
bgBlueBright: init(104, 49),
|
|
577
|
-
bgMagentaBright: init(105, 49),
|
|
578
|
-
bgCyanBright: init(106, 49),
|
|
579
|
-
bgWhiteBright: init(107, 49)
|
|
580
|
-
};
|
|
581
|
-
colors$1 = createColors();
|
|
582
|
-
ansiRegex$1 = [String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`, String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`].join("|");
|
|
583
|
-
boxStylePresets = {
|
|
584
|
-
solid: {
|
|
585
|
-
tl: "┌",
|
|
586
|
-
tr: "┐",
|
|
587
|
-
bl: "└",
|
|
588
|
-
br: "┘",
|
|
589
|
-
h: "─",
|
|
590
|
-
v: "│"
|
|
591
|
-
},
|
|
592
|
-
double: {
|
|
593
|
-
tl: "╔",
|
|
594
|
-
tr: "╗",
|
|
595
|
-
bl: "╚",
|
|
596
|
-
br: "╝",
|
|
597
|
-
h: "═",
|
|
598
|
-
v: "║"
|
|
599
|
-
},
|
|
600
|
-
doubleSingle: {
|
|
601
|
-
tl: "╓",
|
|
602
|
-
tr: "╖",
|
|
603
|
-
bl: "╙",
|
|
604
|
-
br: "╜",
|
|
605
|
-
h: "─",
|
|
606
|
-
v: "║"
|
|
607
|
-
},
|
|
608
|
-
doubleSingleRounded: {
|
|
609
|
-
tl: "╭",
|
|
610
|
-
tr: "╮",
|
|
611
|
-
bl: "╰",
|
|
612
|
-
br: "╯",
|
|
613
|
-
h: "─",
|
|
614
|
-
v: "║"
|
|
615
|
-
},
|
|
616
|
-
singleThick: {
|
|
617
|
-
tl: "┏",
|
|
618
|
-
tr: "┓",
|
|
619
|
-
bl: "┗",
|
|
620
|
-
br: "┛",
|
|
621
|
-
h: "━",
|
|
622
|
-
v: "┃"
|
|
623
|
-
},
|
|
624
|
-
singleDouble: {
|
|
625
|
-
tl: "╒",
|
|
626
|
-
tr: "╕",
|
|
627
|
-
bl: "╘",
|
|
628
|
-
br: "╛",
|
|
629
|
-
h: "═",
|
|
630
|
-
v: "│"
|
|
631
|
-
},
|
|
632
|
-
singleDoubleRounded: {
|
|
633
|
-
tl: "╭",
|
|
634
|
-
tr: "╮",
|
|
635
|
-
bl: "╰",
|
|
636
|
-
br: "╯",
|
|
637
|
-
h: "═",
|
|
638
|
-
v: "│"
|
|
639
|
-
},
|
|
640
|
-
rounded: {
|
|
641
|
-
tl: "╭",
|
|
642
|
-
tr: "╮",
|
|
643
|
-
bl: "╰",
|
|
644
|
-
br: "╯",
|
|
645
|
-
h: "─",
|
|
646
|
-
v: "│"
|
|
647
|
-
}
|
|
648
|
-
};
|
|
649
|
-
defaultStyle = {
|
|
650
|
-
borderColor: "white",
|
|
651
|
-
borderStyle: "rounded",
|
|
652
|
-
valign: "center",
|
|
653
|
-
padding: 2,
|
|
654
|
-
marginLeft: 1,
|
|
655
|
-
marginTop: 1,
|
|
656
|
-
marginBottom: 1
|
|
657
|
-
};
|
|
658
|
-
} });
|
|
659
649
|
|
|
660
650
|
//#endregion
|
|
661
651
|
//#region ../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/index.mjs
|
|
652
|
+
const r = Object.create(null), i = (e) => globalThis.process?.env || import.meta.env || globalThis.Deno?.env.toObject() || globalThis.__env__ || (e ? r : globalThis), o = new Proxy(r, {
|
|
653
|
+
get(e, s) {
|
|
654
|
+
return i()[s] ?? r[s];
|
|
655
|
+
},
|
|
656
|
+
has(e, s) {
|
|
657
|
+
return s in i() || s in r;
|
|
658
|
+
},
|
|
659
|
+
set(e, s, E) {
|
|
660
|
+
const B = i(true);
|
|
661
|
+
return B[s] = E, true;
|
|
662
|
+
},
|
|
663
|
+
deleteProperty(e, s) {
|
|
664
|
+
if (!s) return false;
|
|
665
|
+
const E = i(true);
|
|
666
|
+
return delete E[s], true;
|
|
667
|
+
},
|
|
668
|
+
ownKeys() {
|
|
669
|
+
const e = i(true);
|
|
670
|
+
return Object.keys(e);
|
|
671
|
+
}
|
|
672
|
+
}), t = typeof process < "u" && process.env && process.env.NODE_ENV || "", f = [
|
|
673
|
+
["APPVEYOR"],
|
|
674
|
+
[
|
|
675
|
+
"AWS_AMPLIFY",
|
|
676
|
+
"AWS_APP_ID",
|
|
677
|
+
{ ci: true }
|
|
678
|
+
],
|
|
679
|
+
["AZURE_PIPELINES", "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],
|
|
680
|
+
["AZURE_STATIC", "INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],
|
|
681
|
+
["APPCIRCLE", "AC_APPCIRCLE"],
|
|
682
|
+
["BAMBOO", "bamboo_planKey"],
|
|
683
|
+
["BITBUCKET", "BITBUCKET_COMMIT"],
|
|
684
|
+
["BITRISE", "BITRISE_IO"],
|
|
685
|
+
["BUDDY", "BUDDY_WORKSPACE_ID"],
|
|
686
|
+
["BUILDKITE"],
|
|
687
|
+
["CIRCLE", "CIRCLECI"],
|
|
688
|
+
["CIRRUS", "CIRRUS_CI"],
|
|
689
|
+
[
|
|
690
|
+
"CLOUDFLARE_PAGES",
|
|
691
|
+
"CF_PAGES",
|
|
692
|
+
{ ci: true }
|
|
693
|
+
],
|
|
694
|
+
["CODEBUILD", "CODEBUILD_BUILD_ARN"],
|
|
695
|
+
["CODEFRESH", "CF_BUILD_ID"],
|
|
696
|
+
["DRONE"],
|
|
697
|
+
["DRONE", "DRONE_BUILD_EVENT"],
|
|
698
|
+
["DSARI"],
|
|
699
|
+
["GITHUB_ACTIONS"],
|
|
700
|
+
["GITLAB", "GITLAB_CI"],
|
|
701
|
+
["GITLAB", "CI_MERGE_REQUEST_ID"],
|
|
702
|
+
["GOCD", "GO_PIPELINE_LABEL"],
|
|
703
|
+
["LAYERCI"],
|
|
704
|
+
["HUDSON", "HUDSON_URL"],
|
|
705
|
+
["JENKINS", "JENKINS_URL"],
|
|
706
|
+
["MAGNUM"],
|
|
707
|
+
["NETLIFY"],
|
|
708
|
+
[
|
|
709
|
+
"NETLIFY",
|
|
710
|
+
"NETLIFY_LOCAL",
|
|
711
|
+
{ ci: false }
|
|
712
|
+
],
|
|
713
|
+
["NEVERCODE"],
|
|
714
|
+
["RENDER"],
|
|
715
|
+
["SAIL", "SAILCI"],
|
|
716
|
+
["SEMAPHORE"],
|
|
717
|
+
["SCREWDRIVER"],
|
|
718
|
+
["SHIPPABLE"],
|
|
719
|
+
["SOLANO", "TDDIUM"],
|
|
720
|
+
["STRIDER"],
|
|
721
|
+
["TEAMCITY", "TEAMCITY_VERSION"],
|
|
722
|
+
["TRAVIS"],
|
|
723
|
+
["VERCEL", "NOW_BUILDER"],
|
|
724
|
+
[
|
|
725
|
+
"VERCEL",
|
|
726
|
+
"VERCEL",
|
|
727
|
+
{ ci: false }
|
|
728
|
+
],
|
|
729
|
+
[
|
|
730
|
+
"VERCEL",
|
|
731
|
+
"VERCEL_ENV",
|
|
732
|
+
{ ci: false }
|
|
733
|
+
],
|
|
734
|
+
["APPCENTER", "APPCENTER_BUILD_ID"],
|
|
735
|
+
[
|
|
736
|
+
"CODESANDBOX",
|
|
737
|
+
"CODESANDBOX_SSE",
|
|
738
|
+
{ ci: false }
|
|
739
|
+
],
|
|
740
|
+
[
|
|
741
|
+
"CODESANDBOX",
|
|
742
|
+
"CODESANDBOX_HOST",
|
|
743
|
+
{ ci: false }
|
|
744
|
+
],
|
|
745
|
+
["STACKBLITZ"],
|
|
746
|
+
["STORMKIT"],
|
|
747
|
+
["CLEAVR"],
|
|
748
|
+
["ZEABUR"],
|
|
749
|
+
[
|
|
750
|
+
"CODESPHERE",
|
|
751
|
+
"CODESPHERE_APP_ID",
|
|
752
|
+
{ ci: true }
|
|
753
|
+
],
|
|
754
|
+
["RAILWAY", "RAILWAY_PROJECT_ID"],
|
|
755
|
+
["RAILWAY", "RAILWAY_SERVICE_ID"],
|
|
756
|
+
["DENO-DEPLOY", "DENO_DEPLOYMENT_ID"],
|
|
757
|
+
[
|
|
758
|
+
"FIREBASE_APP_HOSTING",
|
|
759
|
+
"FIREBASE_APP_HOSTING",
|
|
760
|
+
{ ci: true }
|
|
761
|
+
]
|
|
762
|
+
];
|
|
662
763
|
function b() {
|
|
663
764
|
if (globalThis.process?.env) for (const e of f) {
|
|
664
|
-
const s
|
|
665
|
-
if (globalThis.process?.env[s
|
|
765
|
+
const s = e[1] || e[0];
|
|
766
|
+
if (globalThis.process?.env[s]) return {
|
|
666
767
|
name: e[0].toLowerCase(),
|
|
667
768
|
...e[2]
|
|
668
769
|
};
|
|
@@ -675,19 +776,43 @@ function b() {
|
|
|
675
776
|
ci: false
|
|
676
777
|
};
|
|
677
778
|
}
|
|
779
|
+
const l = b();
|
|
780
|
+
l.name;
|
|
678
781
|
function n(e) {
|
|
679
782
|
return e ? e !== "false" : false;
|
|
680
783
|
}
|
|
784
|
+
const I = globalThis.process?.platform || "", T = n(o.CI) || l.ci !== false, a = n(globalThis.process?.stdout && globalThis.process?.stdout.isTTY), g = n(o.DEBUG), R = t === "test" || n(o.TEST);
|
|
785
|
+
n(o.MINIMAL);
|
|
786
|
+
const A = /^win/i.test(I);
|
|
787
|
+
!n(o.NO_COLOR) && (n(o.FORCE_COLOR) || (a || A) && o.TERM);
|
|
788
|
+
const C = (globalThis.process?.versions?.node || "").replace(/^v/, "") || null;
|
|
789
|
+
Number(C?.split(".")[0]);
|
|
790
|
+
const y = globalThis.process || Object.create(null), _ = { versions: {} };
|
|
791
|
+
new Proxy(y, { get(e, s) {
|
|
792
|
+
if (s === "env") return o;
|
|
793
|
+
if (s in e) return e[s];
|
|
794
|
+
if (s in _) return _[s];
|
|
795
|
+
} });
|
|
796
|
+
const c = globalThis.process?.release?.name === "node", O = !!globalThis.Bun || !!globalThis.process?.versions?.bun, D = !!globalThis.Deno, L = !!globalThis.fastly, S = !!globalThis.Netlify, u = !!globalThis.EdgeRuntime, N = globalThis.navigator?.userAgent === "Cloudflare-Workers", F = [
|
|
797
|
+
[S, "netlify"],
|
|
798
|
+
[u, "edge-light"],
|
|
799
|
+
[N, "workerd"],
|
|
800
|
+
[L, "fastly"],
|
|
801
|
+
[D, "deno"],
|
|
802
|
+
[O, "bun"],
|
|
803
|
+
[c, "node"]
|
|
804
|
+
];
|
|
681
805
|
function G() {
|
|
682
|
-
const e = F.find((s
|
|
806
|
+
const e = F.find((s) => s[0]);
|
|
683
807
|
if (e) return { name: e[1] };
|
|
684
808
|
}
|
|
809
|
+
G()?.name;
|
|
685
810
|
function ansiRegex({ onlyFirst = false } = {}) {
|
|
686
|
-
const
|
|
687
|
-
const pattern = [`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`, "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");
|
|
811
|
+
const pattern = [`[\\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=><~]))"].join("|");
|
|
688
812
|
return new RegExp(pattern, onlyFirst ? void 0 : "g");
|
|
689
813
|
}
|
|
690
|
-
|
|
814
|
+
const regex = ansiRegex();
|
|
815
|
+
function stripAnsi(string) {
|
|
691
816
|
if (typeof string !== "string") throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
|
|
692
817
|
return string.replace(regex, "");
|
|
693
818
|
}
|
|
@@ -708,10 +833,15 @@ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
|
|
|
708
833
|
if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) return 2;
|
|
709
834
|
return 1;
|
|
710
835
|
}
|
|
711
|
-
|
|
836
|
+
const emojiRegex = () => {
|
|
837
|
+
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
838
|
+
};
|
|
839
|
+
const segmenter = globalThis.Intl?.Segmenter ? new Intl.Segmenter() : { segment: (str) => str.split("") };
|
|
840
|
+
const defaultIgnorableCodePointRegex = /^\p{Default_Ignorable_Code_Point}$/u;
|
|
841
|
+
function stringWidth$1(string, options = {}) {
|
|
712
842
|
if (typeof string !== "string" || string.length === 0) return 0;
|
|
713
|
-
const { ambiguousIsNarrow = true, countAnsiEscapeCodes = false } = options
|
|
714
|
-
if (!countAnsiEscapeCodes) string = stripAnsi
|
|
843
|
+
const { ambiguousIsNarrow = true, countAnsiEscapeCodes = false } = options;
|
|
844
|
+
if (!countAnsiEscapeCodes) string = stripAnsi(string);
|
|
715
845
|
if (string.length === 0) return 0;
|
|
716
846
|
let width = 0;
|
|
717
847
|
const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
|
|
@@ -732,260 +862,113 @@ function stringWidth$1(string, options$1 = {}) {
|
|
|
732
862
|
return width;
|
|
733
863
|
}
|
|
734
864
|
function isUnicodeSupported() {
|
|
735
|
-
const { env
|
|
736
|
-
const { TERM, TERM_PROGRAM } = env
|
|
865
|
+
const { env } = process$1;
|
|
866
|
+
const { TERM, TERM_PROGRAM } = env;
|
|
737
867
|
if (process$1.platform !== "win32") return TERM !== "linux";
|
|
738
|
-
return Boolean(env
|
|
868
|
+
return Boolean(env.WT_SESSION) || Boolean(env.TERMINUS_SUBLIME) || env.ConEmuTask === "{cmd::Cmder}" || TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
|
|
739
869
|
}
|
|
870
|
+
const TYPE_COLOR_MAP = {
|
|
871
|
+
info: "cyan",
|
|
872
|
+
fail: "red",
|
|
873
|
+
success: "green",
|
|
874
|
+
ready: "green",
|
|
875
|
+
start: "magenta"
|
|
876
|
+
};
|
|
877
|
+
const LEVEL_COLOR_MAP = {
|
|
878
|
+
0: "red",
|
|
879
|
+
1: "yellow"
|
|
880
|
+
};
|
|
881
|
+
const unicode = isUnicodeSupported();
|
|
882
|
+
const s = (c, fallback) => unicode ? c : fallback;
|
|
883
|
+
const TYPE_ICONS = {
|
|
884
|
+
error: s("✖", "×"),
|
|
885
|
+
fatal: s("✖", "×"),
|
|
886
|
+
ready: s("✔", "√"),
|
|
887
|
+
warn: s("⚠", "‼"),
|
|
888
|
+
info: s("ℹ", "i"),
|
|
889
|
+
success: s("✔", "√"),
|
|
890
|
+
debug: s("⚙", "D"),
|
|
891
|
+
trace: s("→", "→"),
|
|
892
|
+
fail: s("✖", "×"),
|
|
893
|
+
start: s("◐", "o"),
|
|
894
|
+
log: ""
|
|
895
|
+
};
|
|
740
896
|
function stringWidth(str) {
|
|
741
|
-
|
|
742
|
-
if (!hasICU || !Intl.Segmenter) return stripAnsi(str).length;
|
|
897
|
+
if (!(typeof Intl === "object") || !Intl.Segmenter) return stripAnsi$1(str).length;
|
|
743
898
|
return stringWidth$1(str);
|
|
744
899
|
}
|
|
900
|
+
var FancyReporter = class extends BasicReporter {
|
|
901
|
+
formatStack(stack, message, opts) {
|
|
902
|
+
const indent = " ".repeat((opts?.errorLevel || 0) + 1);
|
|
903
|
+
return `
|
|
904
|
+
${indent}` + parseStack(stack, message).map((line) => " " + line.replace(/^at +/, (m) => colors.gray(m)).replace(/\((.+)\)/, (_, m) => `(${colors.cyan(m)})`)).join(`
|
|
905
|
+
${indent}`);
|
|
906
|
+
}
|
|
907
|
+
formatType(logObj, isBadge, opts) {
|
|
908
|
+
const typeColor = TYPE_COLOR_MAP[logObj.type] || LEVEL_COLOR_MAP[logObj.level] || "gray";
|
|
909
|
+
if (isBadge) return getBgColor(typeColor)(colors.black(` ${logObj.type.toUpperCase()} `));
|
|
910
|
+
const _type = typeof TYPE_ICONS[logObj.type] === "string" ? TYPE_ICONS[logObj.type] : logObj.icon || logObj.type;
|
|
911
|
+
return _type ? getColor(typeColor)(_type) : "";
|
|
912
|
+
}
|
|
913
|
+
formatLogObj(logObj, opts) {
|
|
914
|
+
const [message, ...additional] = this.formatArgs(logObj.args, opts).split("\n");
|
|
915
|
+
if (logObj.type === "box") return box(characterFormat(message + (additional.length > 0 ? "\n" + additional.join("\n") : "")), {
|
|
916
|
+
title: logObj.title ? characterFormat(logObj.title) : void 0,
|
|
917
|
+
style: logObj.style
|
|
918
|
+
});
|
|
919
|
+
const date = this.formatDate(logObj.date, opts);
|
|
920
|
+
const coloredDate = date && colors.gray(date);
|
|
921
|
+
const isBadge = logObj.badge ?? logObj.level < 2;
|
|
922
|
+
const type = this.formatType(logObj, isBadge, opts);
|
|
923
|
+
const tag = logObj.tag ? colors.gray(logObj.tag) : "";
|
|
924
|
+
let line;
|
|
925
|
+
const left = this.filterAndJoin([type, characterFormat(message)]);
|
|
926
|
+
const right = this.filterAndJoin(opts.columns ? [tag, coloredDate] : [tag]);
|
|
927
|
+
const space = (opts.columns || 0) - stringWidth(left) - stringWidth(right) - 2;
|
|
928
|
+
line = space > 0 && (opts.columns || 0) >= 80 ? left + " ".repeat(space) + right : (right ? `${colors.gray(`[${right}]`)} ` : "") + left;
|
|
929
|
+
line += characterFormat(additional.length > 0 ? "\n" + additional.join("\n") : "");
|
|
930
|
+
if (logObj.type === "trace") {
|
|
931
|
+
const _err = /* @__PURE__ */ new Error("Trace: " + logObj.message);
|
|
932
|
+
line += this.formatStack(_err.stack || "", _err.message);
|
|
933
|
+
}
|
|
934
|
+
return isBadge ? "\n" + line + "\n" : line;
|
|
935
|
+
}
|
|
936
|
+
};
|
|
745
937
|
function characterFormat(str) {
|
|
746
|
-
return str.replace(/`([^`]+)`/gm, (_
|
|
938
|
+
return str.replace(/`([^`]+)`/gm, (_, m) => colors.cyan(m)).replace(/\s+_([^_]+)_\s+/gm, (_, m) => ` ${colors.underline(m)} `);
|
|
747
939
|
}
|
|
748
940
|
function getColor(color = "white") {
|
|
749
|
-
return colors
|
|
941
|
+
return colors[color] || colors.white;
|
|
750
942
|
}
|
|
751
943
|
function getBgColor(color = "bgWhite") {
|
|
752
|
-
return colors
|
|
944
|
+
return colors[`bg${color[0].toUpperCase()}${color.slice(1)}`] || colors.bgWhite;
|
|
753
945
|
}
|
|
754
|
-
function createConsola(options
|
|
946
|
+
function createConsola(options = {}) {
|
|
755
947
|
let level = _getDefaultLogLevel();
|
|
756
948
|
if (process.env.CONSOLA_LEVEL) level = Number.parseInt(process.env.CONSOLA_LEVEL) ?? level;
|
|
757
|
-
|
|
949
|
+
return createConsola$1({
|
|
758
950
|
level,
|
|
759
951
|
defaults: { level },
|
|
760
952
|
stdout: process.stdout,
|
|
761
953
|
stderr: process.stderr,
|
|
762
|
-
prompt: (...args) => import("./shared/prompt-
|
|
763
|
-
reporters: options
|
|
764
|
-
...options
|
|
954
|
+
prompt: (...args) => import("./shared/prompt-tlfjalEt.mjs").then((m) => m.prompt(...args)),
|
|
955
|
+
reporters: options.reporters || [options.fancy ?? !(T || R) ? new FancyReporter() : new BasicReporter()],
|
|
956
|
+
...options
|
|
765
957
|
});
|
|
766
|
-
return consola2;
|
|
767
958
|
}
|
|
768
959
|
function _getDefaultLogLevel() {
|
|
769
960
|
if (g) return LogLevels.debug;
|
|
770
961
|
if (R) return LogLevels.warn;
|
|
771
962
|
return LogLevels.info;
|
|
772
963
|
}
|
|
773
|
-
|
|
774
|
-
var init_dist = __esm({ "../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/index.mjs"() {
|
|
775
|
-
init_core();
|
|
776
|
-
init_consola_DRwqZj3T();
|
|
777
|
-
init_consola_DXBYu_KD();
|
|
778
|
-
r = Object.create(null), i = (e) => globalThis.process?.env || import.meta.env || globalThis.Deno?.env.toObject() || globalThis.__env__ || (e ? r : globalThis), o = new Proxy(r, {
|
|
779
|
-
get(e, s$1) {
|
|
780
|
-
return i()[s$1] ?? r[s$1];
|
|
781
|
-
},
|
|
782
|
-
has(e, s$1) {
|
|
783
|
-
const E = i();
|
|
784
|
-
return s$1 in E || s$1 in r;
|
|
785
|
-
},
|
|
786
|
-
set(e, s$1, E) {
|
|
787
|
-
const B = i(true);
|
|
788
|
-
return B[s$1] = E, true;
|
|
789
|
-
},
|
|
790
|
-
deleteProperty(e, s$1) {
|
|
791
|
-
if (!s$1) return false;
|
|
792
|
-
const E = i(true);
|
|
793
|
-
return delete E[s$1], true;
|
|
794
|
-
},
|
|
795
|
-
ownKeys() {
|
|
796
|
-
const e = i(true);
|
|
797
|
-
return Object.keys(e);
|
|
798
|
-
}
|
|
799
|
-
}), t = typeof process < "u" && process.env && process.env.NODE_ENV || "", f = [
|
|
800
|
-
["APPVEYOR"],
|
|
801
|
-
[
|
|
802
|
-
"AWS_AMPLIFY",
|
|
803
|
-
"AWS_APP_ID",
|
|
804
|
-
{ ci: true }
|
|
805
|
-
],
|
|
806
|
-
["AZURE_PIPELINES", "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],
|
|
807
|
-
["AZURE_STATIC", "INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],
|
|
808
|
-
["APPCIRCLE", "AC_APPCIRCLE"],
|
|
809
|
-
["BAMBOO", "bamboo_planKey"],
|
|
810
|
-
["BITBUCKET", "BITBUCKET_COMMIT"],
|
|
811
|
-
["BITRISE", "BITRISE_IO"],
|
|
812
|
-
["BUDDY", "BUDDY_WORKSPACE_ID"],
|
|
813
|
-
["BUILDKITE"],
|
|
814
|
-
["CIRCLE", "CIRCLECI"],
|
|
815
|
-
["CIRRUS", "CIRRUS_CI"],
|
|
816
|
-
[
|
|
817
|
-
"CLOUDFLARE_PAGES",
|
|
818
|
-
"CF_PAGES",
|
|
819
|
-
{ ci: true }
|
|
820
|
-
],
|
|
821
|
-
["CODEBUILD", "CODEBUILD_BUILD_ARN"],
|
|
822
|
-
["CODEFRESH", "CF_BUILD_ID"],
|
|
823
|
-
["DRONE"],
|
|
824
|
-
["DRONE", "DRONE_BUILD_EVENT"],
|
|
825
|
-
["DSARI"],
|
|
826
|
-
["GITHUB_ACTIONS"],
|
|
827
|
-
["GITLAB", "GITLAB_CI"],
|
|
828
|
-
["GITLAB", "CI_MERGE_REQUEST_ID"],
|
|
829
|
-
["GOCD", "GO_PIPELINE_LABEL"],
|
|
830
|
-
["LAYERCI"],
|
|
831
|
-
["HUDSON", "HUDSON_URL"],
|
|
832
|
-
["JENKINS", "JENKINS_URL"],
|
|
833
|
-
["MAGNUM"],
|
|
834
|
-
["NETLIFY"],
|
|
835
|
-
[
|
|
836
|
-
"NETLIFY",
|
|
837
|
-
"NETLIFY_LOCAL",
|
|
838
|
-
{ ci: false }
|
|
839
|
-
],
|
|
840
|
-
["NEVERCODE"],
|
|
841
|
-
["RENDER"],
|
|
842
|
-
["SAIL", "SAILCI"],
|
|
843
|
-
["SEMAPHORE"],
|
|
844
|
-
["SCREWDRIVER"],
|
|
845
|
-
["SHIPPABLE"],
|
|
846
|
-
["SOLANO", "TDDIUM"],
|
|
847
|
-
["STRIDER"],
|
|
848
|
-
["TEAMCITY", "TEAMCITY_VERSION"],
|
|
849
|
-
["TRAVIS"],
|
|
850
|
-
["VERCEL", "NOW_BUILDER"],
|
|
851
|
-
[
|
|
852
|
-
"VERCEL",
|
|
853
|
-
"VERCEL",
|
|
854
|
-
{ ci: false }
|
|
855
|
-
],
|
|
856
|
-
[
|
|
857
|
-
"VERCEL",
|
|
858
|
-
"VERCEL_ENV",
|
|
859
|
-
{ ci: false }
|
|
860
|
-
],
|
|
861
|
-
["APPCENTER", "APPCENTER_BUILD_ID"],
|
|
862
|
-
[
|
|
863
|
-
"CODESANDBOX",
|
|
864
|
-
"CODESANDBOX_SSE",
|
|
865
|
-
{ ci: false }
|
|
866
|
-
],
|
|
867
|
-
[
|
|
868
|
-
"CODESANDBOX",
|
|
869
|
-
"CODESANDBOX_HOST",
|
|
870
|
-
{ ci: false }
|
|
871
|
-
],
|
|
872
|
-
["STACKBLITZ"],
|
|
873
|
-
["STORMKIT"],
|
|
874
|
-
["CLEAVR"],
|
|
875
|
-
["ZEABUR"],
|
|
876
|
-
[
|
|
877
|
-
"CODESPHERE",
|
|
878
|
-
"CODESPHERE_APP_ID",
|
|
879
|
-
{ ci: true }
|
|
880
|
-
],
|
|
881
|
-
["RAILWAY", "RAILWAY_PROJECT_ID"],
|
|
882
|
-
["RAILWAY", "RAILWAY_SERVICE_ID"],
|
|
883
|
-
["DENO-DEPLOY", "DENO_DEPLOYMENT_ID"],
|
|
884
|
-
[
|
|
885
|
-
"FIREBASE_APP_HOSTING",
|
|
886
|
-
"FIREBASE_APP_HOSTING",
|
|
887
|
-
{ ci: true }
|
|
888
|
-
]
|
|
889
|
-
];
|
|
890
|
-
l = b();
|
|
891
|
-
l.name;
|
|
892
|
-
I = globalThis.process?.platform || "", T = n(o.CI) || l.ci !== false, a = n(globalThis.process?.stdout && globalThis.process?.stdout.isTTY), g = n(o.DEBUG), R = t === "test" || n(o.TEST);
|
|
893
|
-
n(o.MINIMAL);
|
|
894
|
-
A = /^win/i.test(I);
|
|
895
|
-
!n(o.NO_COLOR) && (n(o.FORCE_COLOR) || (a || A) && o.TERM);
|
|
896
|
-
C = (globalThis.process?.versions?.node || "").replace(/^v/, "") || null;
|
|
897
|
-
Number(C?.split(".")[0]);
|
|
898
|
-
y = globalThis.process || Object.create(null), _ = { versions: {} };
|
|
899
|
-
new Proxy(y, { get(e, s$1) {
|
|
900
|
-
if (s$1 === "env") return o;
|
|
901
|
-
if (s$1 in e) return e[s$1];
|
|
902
|
-
if (s$1 in _) return _[s$1];
|
|
903
|
-
} });
|
|
904
|
-
c = globalThis.process?.release?.name === "node", O = !!globalThis.Bun || !!globalThis.process?.versions?.bun, D = !!globalThis.Deno, L = !!globalThis.fastly, S = !!globalThis.Netlify, u = !!globalThis.EdgeRuntime, N = globalThis.navigator?.userAgent === "Cloudflare-Workers", F = [
|
|
905
|
-
[S, "netlify"],
|
|
906
|
-
[u, "edge-light"],
|
|
907
|
-
[N, "workerd"],
|
|
908
|
-
[L, "fastly"],
|
|
909
|
-
[D, "deno"],
|
|
910
|
-
[O, "bun"],
|
|
911
|
-
[c, "node"]
|
|
912
|
-
];
|
|
913
|
-
P = G();
|
|
914
|
-
P?.name;
|
|
915
|
-
regex = ansiRegex();
|
|
916
|
-
emojiRegex = () => {
|
|
917
|
-
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
918
|
-
};
|
|
919
|
-
segmenter = globalThis.Intl?.Segmenter ? new Intl.Segmenter() : { segment: (str) => str.split("") };
|
|
920
|
-
defaultIgnorableCodePointRegex = /^\p{Default_Ignorable_Code_Point}$/u;
|
|
921
|
-
TYPE_COLOR_MAP = {
|
|
922
|
-
info: "cyan",
|
|
923
|
-
fail: "red",
|
|
924
|
-
success: "green",
|
|
925
|
-
ready: "green",
|
|
926
|
-
start: "magenta"
|
|
927
|
-
};
|
|
928
|
-
LEVEL_COLOR_MAP = {
|
|
929
|
-
0: "red",
|
|
930
|
-
1: "yellow"
|
|
931
|
-
};
|
|
932
|
-
unicode = isUnicodeSupported();
|
|
933
|
-
s = (c$1, fallback) => unicode ? c$1 : fallback;
|
|
934
|
-
TYPE_ICONS = {
|
|
935
|
-
error: s("✖", "×"),
|
|
936
|
-
fatal: s("✖", "×"),
|
|
937
|
-
ready: s("✔", "√"),
|
|
938
|
-
warn: s("⚠", "‼"),
|
|
939
|
-
info: s("ℹ", "i"),
|
|
940
|
-
success: s("✔", "√"),
|
|
941
|
-
debug: s("⚙", "D"),
|
|
942
|
-
trace: s("→", "→"),
|
|
943
|
-
fail: s("✖", "×"),
|
|
944
|
-
start: s("◐", "o"),
|
|
945
|
-
log: ""
|
|
946
|
-
};
|
|
947
|
-
FancyReporter = class extends BasicReporter {
|
|
948
|
-
formatStack(stack, message, opts) {
|
|
949
|
-
const indent = " ".repeat((opts?.errorLevel || 0) + 1);
|
|
950
|
-
return `
|
|
951
|
-
${indent}` + parseStack(stack, message).map((line) => " " + line.replace(/^at +/, (m) => colors$1.gray(m)).replace(/\((.+)\)/, (_$1, m) => `(${colors$1.cyan(m)})`)).join(`
|
|
952
|
-
${indent}`);
|
|
953
|
-
}
|
|
954
|
-
formatType(logObj, isBadge, opts) {
|
|
955
|
-
const typeColor = TYPE_COLOR_MAP[logObj.type] || LEVEL_COLOR_MAP[logObj.level] || "gray";
|
|
956
|
-
if (isBadge) return getBgColor(typeColor)(colors$1.black(` ${logObj.type.toUpperCase()} `));
|
|
957
|
-
const _type = typeof TYPE_ICONS[logObj.type] === "string" ? TYPE_ICONS[logObj.type] : logObj.icon || logObj.type;
|
|
958
|
-
return _type ? getColor(typeColor)(_type) : "";
|
|
959
|
-
}
|
|
960
|
-
formatLogObj(logObj, opts) {
|
|
961
|
-
const [message, ...additional] = this.formatArgs(logObj.args, opts).split("\n");
|
|
962
|
-
if (logObj.type === "box") return box(characterFormat(message + (additional.length > 0 ? "\n" + additional.join("\n") : "")), {
|
|
963
|
-
title: logObj.title ? characterFormat(logObj.title) : void 0,
|
|
964
|
-
style: logObj.style
|
|
965
|
-
});
|
|
966
|
-
const date = this.formatDate(logObj.date, opts);
|
|
967
|
-
const coloredDate = date && colors$1.gray(date);
|
|
968
|
-
const isBadge = logObj.badge ?? logObj.level < 2;
|
|
969
|
-
const type = this.formatType(logObj, isBadge, opts);
|
|
970
|
-
const tag = logObj.tag ? colors$1.gray(logObj.tag) : "";
|
|
971
|
-
let line;
|
|
972
|
-
const left = this.filterAndJoin([type, characterFormat(message)]);
|
|
973
|
-
const right = this.filterAndJoin(opts.columns ? [tag, coloredDate] : [tag]);
|
|
974
|
-
const space = (opts.columns || 0) - stringWidth(left) - stringWidth(right) - 2;
|
|
975
|
-
line = space > 0 && (opts.columns || 0) >= 80 ? left + " ".repeat(space) + right : (right ? `${colors$1.gray(`[${right}]`)} ` : "") + left;
|
|
976
|
-
line += characterFormat(additional.length > 0 ? "\n" + additional.join("\n") : "");
|
|
977
|
-
if (logObj.type === "trace") {
|
|
978
|
-
const _err = new Error("Trace: " + logObj.message);
|
|
979
|
-
line += this.formatStack(_err.stack || "", _err.message);
|
|
980
|
-
}
|
|
981
|
-
return isBadge ? "\n" + line + "\n" : line;
|
|
982
|
-
}
|
|
983
|
-
};
|
|
984
|
-
consola = createConsola();
|
|
985
|
-
} });
|
|
964
|
+
const consola = createConsola();
|
|
986
965
|
|
|
987
966
|
//#endregion
|
|
988
967
|
//#region src/cli/logger.ts
|
|
968
|
+
/**
|
|
969
|
+
* Console logger
|
|
970
|
+
*/
|
|
971
|
+
const logger = process.env.ROLLDOWN_TEST ? createTestingLogger() : createConsola({ formatOptions: { date: false } });
|
|
989
972
|
function createTestingLogger() {
|
|
990
973
|
const types = [
|
|
991
974
|
"silent",
|
|
@@ -1007,79 +990,55 @@ function createTestingLogger() {
|
|
|
1007
990
|
for (const type of types) ret[type] = console.log;
|
|
1008
991
|
return ret;
|
|
1009
992
|
}
|
|
1010
|
-
var logger;
|
|
1011
|
-
var init_logger = __esm({ "src/cli/logger.ts"() {
|
|
1012
|
-
init_dist();
|
|
1013
|
-
logger = process.env.ROLLDOWN_TEST ? createTestingLogger() : createConsola({ formatOptions: { date: false } });
|
|
1014
|
-
} });
|
|
1015
993
|
|
|
1016
994
|
//#endregion
|
|
1017
995
|
//#region src/cli/arguments/alias.ts
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
}
|
|
1053
|
-
|
|
996
|
+
const alias = {
|
|
997
|
+
config: {
|
|
998
|
+
abbreviation: "c",
|
|
999
|
+
hint: "filename"
|
|
1000
|
+
},
|
|
1001
|
+
help: { abbreviation: "h" },
|
|
1002
|
+
version: { abbreviation: "v" },
|
|
1003
|
+
watch: { abbreviation: "w" },
|
|
1004
|
+
dir: { abbreviation: "d" },
|
|
1005
|
+
file: { abbreviation: "o" },
|
|
1006
|
+
external: { abbreviation: "e" },
|
|
1007
|
+
format: { abbreviation: "f" },
|
|
1008
|
+
name: { abbreviation: "n" },
|
|
1009
|
+
globals: { abbreviation: "g" },
|
|
1010
|
+
sourcemap: {
|
|
1011
|
+
abbreviation: "s",
|
|
1012
|
+
default: true
|
|
1013
|
+
},
|
|
1014
|
+
minify: { abbreviation: "m" },
|
|
1015
|
+
platform: { abbreviation: "p" },
|
|
1016
|
+
assetFileNames: { hint: "name" },
|
|
1017
|
+
chunkFileNames: { hint: "name" },
|
|
1018
|
+
entryFileNames: { hint: "name" },
|
|
1019
|
+
externalLiveBindings: {
|
|
1020
|
+
default: true,
|
|
1021
|
+
reverse: true
|
|
1022
|
+
},
|
|
1023
|
+
treeshake: {
|
|
1024
|
+
default: true,
|
|
1025
|
+
reverse: true
|
|
1026
|
+
},
|
|
1027
|
+
preserveEntrySignatures: {
|
|
1028
|
+
default: "strict",
|
|
1029
|
+
reverse: true
|
|
1030
|
+
},
|
|
1031
|
+
moduleTypes: { hint: "types" }
|
|
1032
|
+
};
|
|
1054
1033
|
|
|
1055
1034
|
//#endregion
|
|
1056
1035
|
//#region src/cli/arguments/utils.ts
|
|
1057
|
-
function
|
|
1058
|
-
|
|
1059
|
-
const types = schema.anyOf.map(getSchemaType);
|
|
1060
|
-
let result = priority.find((type) => types.includes(type));
|
|
1061
|
-
if (result) return result;
|
|
1062
|
-
}
|
|
1063
|
-
if ("type" in schema) return schema.type;
|
|
1064
|
-
if ("const" in schema) return typeof schema.const;
|
|
1065
|
-
return "never";
|
|
1066
|
-
}
|
|
1067
|
-
function flattenSchema(schema, base = {}, parent = "") {
|
|
1068
|
-
if (schema === void 0) return base;
|
|
1069
|
-
for (const [k, value] of Object.entries(schema)) {
|
|
1070
|
-
const key = parent ? `${parent}.${k}` : k;
|
|
1071
|
-
if (getSchemaType(value) === "object") if ("properties" in value) flattenSchema(value.properties, base, key);
|
|
1072
|
-
else base[key] = value;
|
|
1073
|
-
else base[key] = value;
|
|
1074
|
-
}
|
|
1075
|
-
return base;
|
|
1076
|
-
}
|
|
1077
|
-
function setNestedProperty(obj, path$1, value) {
|
|
1078
|
-
const keys = path$1.split(".");
|
|
1036
|
+
function setNestedProperty(obj, path, value) {
|
|
1037
|
+
const keys = path.split(".");
|
|
1079
1038
|
let current = obj;
|
|
1080
|
-
for (let i
|
|
1081
|
-
if (!current[keys[i
|
|
1082
|
-
current = current[keys[i
|
|
1039
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
1040
|
+
if (!current[keys[i]]) current[keys[i]] = {};
|
|
1041
|
+
current = current[keys[i]];
|
|
1083
1042
|
}
|
|
1084
1043
|
const finalKey = keys[keys.length - 1];
|
|
1085
1044
|
Object.defineProperty(current, finalKey, {
|
|
@@ -1095,47 +1054,49 @@ function camelCaseToKebabCase(str) {
|
|
|
1095
1054
|
function kebabCaseToCamelCase(str) {
|
|
1096
1055
|
return str.replace(/-./g, (match) => match[1].toUpperCase());
|
|
1097
1056
|
}
|
|
1098
|
-
var priority;
|
|
1099
|
-
var init_utils = __esm({ "src/cli/arguments/utils.ts"() {
|
|
1100
|
-
priority = [
|
|
1101
|
-
"object",
|
|
1102
|
-
"array",
|
|
1103
|
-
"string",
|
|
1104
|
-
"number",
|
|
1105
|
-
"boolean"
|
|
1106
|
-
];
|
|
1107
|
-
} });
|
|
1108
1057
|
|
|
1109
1058
|
//#endregion
|
|
1110
1059
|
//#region src/cli/arguments/normalize.ts
|
|
1111
1060
|
function normalizeCliOptions(cliOptions, positionals) {
|
|
1112
|
-
const
|
|
1061
|
+
const prototypePollutionKeys = [
|
|
1062
|
+
"__proto__",
|
|
1063
|
+
"constructor",
|
|
1064
|
+
"prototype"
|
|
1065
|
+
];
|
|
1066
|
+
const unflattenedCliOptions = {};
|
|
1067
|
+
for (let [key, value] of Object.entries(cliOptions)) if (prototypePollutionKeys.includes(key)) {} else if (key.includes(".")) {
|
|
1068
|
+
const [parentKey] = key.split(".");
|
|
1069
|
+
unflattenedCliOptions[parentKey] ??= {};
|
|
1070
|
+
setNestedProperty(unflattenedCliOptions, key, value);
|
|
1071
|
+
} else unflattenedCliOptions[key] = value;
|
|
1072
|
+
const [data, errors] = validateCliOptions(unflattenedCliOptions);
|
|
1113
1073
|
if (errors?.length) {
|
|
1114
1074
|
errors.forEach((error) => {
|
|
1115
1075
|
logger.error(`${error}. You can use \`rolldown -h\` to see the help.`);
|
|
1116
1076
|
});
|
|
1117
1077
|
process.exit(1);
|
|
1118
1078
|
}
|
|
1119
|
-
const options
|
|
1079
|
+
const options = data ?? {};
|
|
1120
1080
|
const result = {
|
|
1121
1081
|
input: {},
|
|
1122
1082
|
output: {},
|
|
1123
|
-
help: options
|
|
1124
|
-
version: options
|
|
1125
|
-
watch: options
|
|
1083
|
+
help: options.help ?? false,
|
|
1084
|
+
version: options.version ?? false,
|
|
1085
|
+
watch: options.watch ?? false
|
|
1126
1086
|
};
|
|
1127
|
-
if (typeof options
|
|
1087
|
+
if (typeof options.config === "string") result.config = options.config;
|
|
1088
|
+
if (options.environment !== void 0) result.environment = options.environment;
|
|
1128
1089
|
const keysOfInput = getInputCliKeys();
|
|
1129
1090
|
const keysOfOutput = getOutputCliKeys();
|
|
1130
1091
|
const reservedKeys = [
|
|
1131
1092
|
"help",
|
|
1132
1093
|
"version",
|
|
1133
1094
|
"config",
|
|
1134
|
-
"watch"
|
|
1095
|
+
"watch",
|
|
1096
|
+
"environment"
|
|
1135
1097
|
];
|
|
1136
|
-
for (let [key, value] of Object.entries(options
|
|
1137
|
-
const
|
|
1138
|
-
const [primary] = keys;
|
|
1098
|
+
for (let [key, value] of Object.entries(options)) {
|
|
1099
|
+
const [primary] = key.split(".");
|
|
1139
1100
|
if (keysOfInput.includes(primary)) setNestedProperty(result.input, key, value);
|
|
1140
1101
|
else if (keysOfOutput.includes(primary)) setNestedProperty(result.output, key, value);
|
|
1141
1102
|
else if (!reservedKeys.includes(key)) {
|
|
@@ -1147,14 +1108,25 @@ function normalizeCliOptions(cliOptions, positionals) {
|
|
|
1147
1108
|
else result.input.input = positionals;
|
|
1148
1109
|
return result;
|
|
1149
1110
|
}
|
|
1150
|
-
var init_normalize = __esm({ "src/cli/arguments/normalize.ts"() {
|
|
1151
|
-
init_validator();
|
|
1152
|
-
init_logger();
|
|
1153
|
-
init_utils();
|
|
1154
|
-
} });
|
|
1155
1111
|
|
|
1156
1112
|
//#endregion
|
|
1157
1113
|
//#region src/cli/arguments/index.ts
|
|
1114
|
+
const schemaInfo = getCliSchemaInfo();
|
|
1115
|
+
const options = Object.fromEntries(Object.entries(schemaInfo).filter(([_key, info]) => info.type !== "never").map(([key, info]) => {
|
|
1116
|
+
const config = Object.getOwnPropertyDescriptor(alias, key)?.value;
|
|
1117
|
+
const result = {
|
|
1118
|
+
type: info.type === "boolean" ? "boolean" : "string",
|
|
1119
|
+
description: info?.description ?? config?.description ?? "",
|
|
1120
|
+
hint: config?.hint
|
|
1121
|
+
};
|
|
1122
|
+
if (config && config?.abbreviation) result.short = config?.abbreviation;
|
|
1123
|
+
if (config && config.reverse) {
|
|
1124
|
+
if (result.description.startsWith("enable")) result.description = result.description.replace("enable", "disable");
|
|
1125
|
+
else if (!result.description.startsWith("Avoid")) result.description = `disable ${result.description}`;
|
|
1126
|
+
}
|
|
1127
|
+
key = camelCaseToKebabCase(key);
|
|
1128
|
+
return [config?.reverse ? `no-${key}` : key, result];
|
|
1129
|
+
}));
|
|
1158
1130
|
function parseCliArguments() {
|
|
1159
1131
|
const { values, tokens, positionals } = parseArgs({
|
|
1160
1132
|
options,
|
|
@@ -1162,11 +1134,11 @@ function parseCliArguments() {
|
|
|
1162
1134
|
allowPositionals: true,
|
|
1163
1135
|
strict: false
|
|
1164
1136
|
});
|
|
1165
|
-
tokens.filter((token) => token.kind === "option").
|
|
1137
|
+
let invalid_options = tokens.filter((token) => token.kind === "option").map((option) => {
|
|
1166
1138
|
let negative = false;
|
|
1167
1139
|
if (option.name.startsWith("no-")) {
|
|
1168
1140
|
const name = kebabCaseToCamelCase(option.name.substring(3));
|
|
1169
|
-
if (name in
|
|
1141
|
+
if (name in schemaInfo) {
|
|
1170
1142
|
delete values[option.name];
|
|
1171
1143
|
option.name = name;
|
|
1172
1144
|
negative = true;
|
|
@@ -1174,12 +1146,12 @@ function parseCliArguments() {
|
|
|
1174
1146
|
}
|
|
1175
1147
|
delete values[option.name];
|
|
1176
1148
|
option.name = kebabCaseToCamelCase(option.name);
|
|
1177
|
-
let
|
|
1178
|
-
if (!
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
}
|
|
1182
|
-
let type =
|
|
1149
|
+
let originalInfo = schemaInfo[option.name];
|
|
1150
|
+
if (!originalInfo) return {
|
|
1151
|
+
name: option.name,
|
|
1152
|
+
value: option.value
|
|
1153
|
+
};
|
|
1154
|
+
let type = originalInfo.type;
|
|
1183
1155
|
if (type === "string" && typeof option.value !== "string") {
|
|
1184
1156
|
let opt = option;
|
|
1185
1157
|
let defaultValue = Object.getOwnPropertyDescriptor(alias, opt.name)?.value;
|
|
@@ -1190,14 +1162,14 @@ function parseCliArguments() {
|
|
|
1190
1162
|
writable: true
|
|
1191
1163
|
});
|
|
1192
1164
|
} else if (type === "object" && typeof option.value === "string") {
|
|
1193
|
-
const
|
|
1165
|
+
const pairs = option.value.split(",").map((x) => x.split("="));
|
|
1194
1166
|
if (!values[option.name]) Object.defineProperty(values, option.name, {
|
|
1195
1167
|
value: {},
|
|
1196
1168
|
enumerable: true,
|
|
1197
1169
|
configurable: true,
|
|
1198
1170
|
writable: true
|
|
1199
1171
|
});
|
|
1200
|
-
if (key && value) Object.defineProperty(values[option.name], key, {
|
|
1172
|
+
for (const [key, value] of pairs) if (key && value) Object.defineProperty(values[option.name], key, {
|
|
1201
1173
|
value,
|
|
1202
1174
|
enumerable: true,
|
|
1203
1175
|
configurable: true,
|
|
@@ -1217,321 +1189,149 @@ function parseCliArguments() {
|
|
|
1217
1189
|
configurable: true,
|
|
1218
1190
|
writable: true
|
|
1219
1191
|
});
|
|
1220
|
-
else
|
|
1192
|
+
else if (type === "union") {
|
|
1193
|
+
let defaultValue = Object.getOwnPropertyDescriptor(alias, option.name)?.value;
|
|
1194
|
+
Object.defineProperty(values, option.name, {
|
|
1195
|
+
value: option.value ?? defaultValue?.default ?? "",
|
|
1196
|
+
enumerable: true,
|
|
1197
|
+
configurable: true,
|
|
1198
|
+
writable: true
|
|
1199
|
+
});
|
|
1200
|
+
} else Object.defineProperty(values, option.name, {
|
|
1221
1201
|
value: option.value ?? "",
|
|
1222
1202
|
enumerable: true,
|
|
1223
1203
|
configurable: true,
|
|
1224
1204
|
writable: true
|
|
1225
1205
|
});
|
|
1206
|
+
}).filter((item) => {
|
|
1207
|
+
return item !== void 0;
|
|
1208
|
+
});
|
|
1209
|
+
invalid_options.sort((a, b) => {
|
|
1210
|
+
return a.name.localeCompare(b.name);
|
|
1226
1211
|
});
|
|
1227
|
-
|
|
1212
|
+
if (invalid_options.length !== 0) {
|
|
1213
|
+
let single = invalid_options.length === 1;
|
|
1214
|
+
logger.warn(`Option \`${invalid_options.map((item) => item.name).join(",")}\` ${single ? "is" : "are"} unrecognized. We will ignore ${single ? "this" : "those"} option${single ? "" : "s"}.`);
|
|
1215
|
+
}
|
|
1216
|
+
let rawArgs = {
|
|
1217
|
+
...values,
|
|
1218
|
+
...invalid_options.reduce((acc, cur) => {
|
|
1219
|
+
acc[cur.name] = cur.value;
|
|
1220
|
+
return acc;
|
|
1221
|
+
}, Object.create(null))
|
|
1222
|
+
};
|
|
1223
|
+
return {
|
|
1224
|
+
...normalizeCliOptions(values, positionals),
|
|
1225
|
+
rawArgs
|
|
1226
|
+
};
|
|
1228
1227
|
}
|
|
1229
|
-
var objectSchema, flattenedSchema, options;
|
|
1230
|
-
var init_arguments = __esm({ "src/cli/arguments/index.ts"() {
|
|
1231
|
-
init_validator();
|
|
1232
|
-
init_logger();
|
|
1233
|
-
init_alias();
|
|
1234
|
-
init_normalize();
|
|
1235
|
-
init_utils();
|
|
1236
|
-
objectSchema = getJsonSchema();
|
|
1237
|
-
flattenedSchema = flattenSchema(objectSchema.properties);
|
|
1238
|
-
options = Object.fromEntries(Object.entries(flattenedSchema).filter(([_key, schema]) => getSchemaType(schema) !== "never").map(([key, schema]) => {
|
|
1239
|
-
const config = Object.getOwnPropertyDescriptor(alias, key)?.value;
|
|
1240
|
-
const type = getSchemaType(schema);
|
|
1241
|
-
const result = {
|
|
1242
|
-
type: type === "boolean" ? "boolean" : "string",
|
|
1243
|
-
description: schema?.description ?? config?.description ?? "",
|
|
1244
|
-
hint: config?.hint
|
|
1245
|
-
};
|
|
1246
|
-
if (config && config?.abbreviation) result.short = config?.abbreviation;
|
|
1247
|
-
if (config && config.reverse) if (result.description.startsWith("enable")) result.description = result.description.replace("enable", "disable");
|
|
1248
|
-
else result.description = `disable ${result.description}`;
|
|
1249
|
-
key = camelCaseToKebabCase(key);
|
|
1250
|
-
return [config?.reverse ? `no-${key}` : key, result];
|
|
1251
|
-
}));
|
|
1252
|
-
} });
|
|
1253
|
-
|
|
1254
|
-
//#endregion
|
|
1255
|
-
//#region ../../node_modules/.pnpm/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/signals.js
|
|
1256
|
-
var signals;
|
|
1257
|
-
var init_signals = __esm({ "../../node_modules/.pnpm/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/signals.js"() {
|
|
1258
|
-
signals = [];
|
|
1259
|
-
signals.push("SIGHUP", "SIGINT", "SIGTERM");
|
|
1260
|
-
if (process.platform !== "win32") signals.push("SIGALRM", "SIGABRT", "SIGVTALRM", "SIGXCPU", "SIGXFSZ", "SIGUSR2", "SIGTRAP", "SIGSYS", "SIGQUIT", "SIGIOT");
|
|
1261
|
-
if (process.platform === "linux") signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
|
|
1262
|
-
} });
|
|
1263
1228
|
|
|
1264
1229
|
//#endregion
|
|
1265
|
-
//#region
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
ObjectDefineProperty = Object.defineProperty.bind(Object);
|
|
1273
|
-
Emitter = class {
|
|
1274
|
-
emitted = {
|
|
1275
|
-
afterExit: false,
|
|
1276
|
-
exit: false
|
|
1277
|
-
};
|
|
1278
|
-
listeners = {
|
|
1279
|
-
afterExit: [],
|
|
1280
|
-
exit: []
|
|
1281
|
-
};
|
|
1282
|
-
count = 0;
|
|
1283
|
-
id = Math.random();
|
|
1284
|
-
constructor() {
|
|
1285
|
-
if (global[kExitEmitter]) return global[kExitEmitter];
|
|
1286
|
-
ObjectDefineProperty(global, kExitEmitter, {
|
|
1287
|
-
value: this,
|
|
1288
|
-
writable: false,
|
|
1289
|
-
enumerable: false,
|
|
1290
|
-
configurable: false
|
|
1291
|
-
});
|
|
1292
|
-
}
|
|
1293
|
-
on(ev, fn) {
|
|
1294
|
-
this.listeners[ev].push(fn);
|
|
1295
|
-
}
|
|
1296
|
-
removeListener(ev, fn) {
|
|
1297
|
-
const list = this.listeners[ev];
|
|
1298
|
-
const i$1 = list.indexOf(fn);
|
|
1299
|
-
/* c8 ignore start */
|
|
1300
|
-
if (i$1 === -1) return;
|
|
1301
|
-
/* c8 ignore stop */
|
|
1302
|
-
if (i$1 === 0 && list.length === 1) list.length = 0;
|
|
1303
|
-
else list.splice(i$1, 1);
|
|
1304
|
-
}
|
|
1305
|
-
emit(ev, code, signal) {
|
|
1306
|
-
if (this.emitted[ev]) return false;
|
|
1307
|
-
this.emitted[ev] = true;
|
|
1308
|
-
let ret = false;
|
|
1309
|
-
for (const fn of this.listeners[ev]) ret = fn(code, signal) === true || ret;
|
|
1310
|
-
if (ev === "exit") ret = this.emit("afterExit", code, signal) || ret;
|
|
1311
|
-
return ret;
|
|
1312
|
-
}
|
|
1230
|
+
//#region src/utils/clear-screen.ts
|
|
1231
|
+
const CLEAR_SCREEN = "\x1Bc";
|
|
1232
|
+
function getClearScreenFunction(options) {
|
|
1233
|
+
const isTTY = process.stdout.isTTY;
|
|
1234
|
+
const isAnyOptionNotAllowingClearScreen = arraify(options).some(({ watch }) => watch === false || watch?.clearScreen === false);
|
|
1235
|
+
if (isTTY && !isAnyOptionNotAllowingClearScreen) return () => {
|
|
1236
|
+
process.stdout.write(CLEAR_SCREEN);
|
|
1313
1237
|
};
|
|
1314
|
-
|
|
1315
|
-
signalExitWrap = (handler) => {
|
|
1316
|
-
return {
|
|
1317
|
-
onExit(cb, opts) {
|
|
1318
|
-
return handler.onExit(cb, opts);
|
|
1319
|
-
},
|
|
1320
|
-
load() {
|
|
1321
|
-
return handler.load();
|
|
1322
|
-
},
|
|
1323
|
-
unload() {
|
|
1324
|
-
return handler.unload();
|
|
1325
|
-
}
|
|
1326
|
-
};
|
|
1327
|
-
};
|
|
1328
|
-
SignalExitFallback = class extends SignalExitBase {
|
|
1329
|
-
onExit() {
|
|
1330
|
-
return () => {};
|
|
1331
|
-
}
|
|
1332
|
-
load() {}
|
|
1333
|
-
unload() {}
|
|
1334
|
-
};
|
|
1335
|
-
SignalExit = class extends SignalExitBase {
|
|
1336
|
-
/* c8 ignore start */
|
|
1337
|
-
#hupSig = process$2.platform === "win32" ? "SIGINT" : "SIGHUP";
|
|
1338
|
-
/* c8 ignore stop */
|
|
1339
|
-
#emitter = new Emitter();
|
|
1340
|
-
#process;
|
|
1341
|
-
#originalProcessEmit;
|
|
1342
|
-
#originalProcessReallyExit;
|
|
1343
|
-
#sigListeners = {};
|
|
1344
|
-
#loaded = false;
|
|
1345
|
-
constructor(process$3) {
|
|
1346
|
-
super();
|
|
1347
|
-
this.#process = process$3;
|
|
1348
|
-
this.#sigListeners = {};
|
|
1349
|
-
for (const sig of signals) this.#sigListeners[sig] = () => {
|
|
1350
|
-
const listeners = this.#process.listeners(sig);
|
|
1351
|
-
let { count } = this.#emitter;
|
|
1352
|
-
/* c8 ignore start */
|
|
1353
|
-
const p = process$3;
|
|
1354
|
-
if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") count += p.__signal_exit_emitter__.count;
|
|
1355
|
-
/* c8 ignore stop */
|
|
1356
|
-
if (listeners.length === count) {
|
|
1357
|
-
this.unload();
|
|
1358
|
-
const ret = this.#emitter.emit("exit", null, sig);
|
|
1359
|
-
/* c8 ignore start */
|
|
1360
|
-
const s$1 = sig === "SIGHUP" ? this.#hupSig : sig;
|
|
1361
|
-
if (!ret) process$3.kill(process$3.pid, s$1);
|
|
1362
|
-
}
|
|
1363
|
-
};
|
|
1364
|
-
this.#originalProcessReallyExit = process$3.reallyExit;
|
|
1365
|
-
this.#originalProcessEmit = process$3.emit;
|
|
1366
|
-
}
|
|
1367
|
-
onExit(cb, opts) {
|
|
1368
|
-
/* c8 ignore start */
|
|
1369
|
-
if (!processOk(this.#process)) return () => {};
|
|
1370
|
-
/* c8 ignore stop */
|
|
1371
|
-
if (this.#loaded === false) this.load();
|
|
1372
|
-
const ev = opts?.alwaysLast ? "afterExit" : "exit";
|
|
1373
|
-
this.#emitter.on(ev, cb);
|
|
1374
|
-
return () => {
|
|
1375
|
-
this.#emitter.removeListener(ev, cb);
|
|
1376
|
-
if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) this.unload();
|
|
1377
|
-
};
|
|
1378
|
-
}
|
|
1379
|
-
load() {
|
|
1380
|
-
if (this.#loaded) return;
|
|
1381
|
-
this.#loaded = true;
|
|
1382
|
-
this.#emitter.count += 1;
|
|
1383
|
-
for (const sig of signals) try {
|
|
1384
|
-
const fn = this.#sigListeners[sig];
|
|
1385
|
-
if (fn) this.#process.on(sig, fn);
|
|
1386
|
-
} catch (_$1) {}
|
|
1387
|
-
this.#process.emit = (ev, ...a$1) => {
|
|
1388
|
-
return this.#processEmit(ev, ...a$1);
|
|
1389
|
-
};
|
|
1390
|
-
this.#process.reallyExit = (code) => {
|
|
1391
|
-
return this.#processReallyExit(code);
|
|
1392
|
-
};
|
|
1393
|
-
}
|
|
1394
|
-
unload() {
|
|
1395
|
-
if (!this.#loaded) return;
|
|
1396
|
-
this.#loaded = false;
|
|
1397
|
-
signals.forEach((sig) => {
|
|
1398
|
-
const listener = this.#sigListeners[sig];
|
|
1399
|
-
/* c8 ignore start */
|
|
1400
|
-
if (!listener) throw new Error("Listener not defined for signal: " + sig);
|
|
1401
|
-
/* c8 ignore stop */
|
|
1402
|
-
try {
|
|
1403
|
-
this.#process.removeListener(sig, listener);
|
|
1404
|
-
} catch (_$1) {}
|
|
1405
|
-
/* c8 ignore stop */
|
|
1406
|
-
});
|
|
1407
|
-
this.#process.emit = this.#originalProcessEmit;
|
|
1408
|
-
this.#process.reallyExit = this.#originalProcessReallyExit;
|
|
1409
|
-
this.#emitter.count -= 1;
|
|
1410
|
-
}
|
|
1411
|
-
#processReallyExit(code) {
|
|
1412
|
-
/* c8 ignore start */
|
|
1413
|
-
if (!processOk(this.#process)) return 0;
|
|
1414
|
-
this.#process.exitCode = code || 0;
|
|
1415
|
-
/* c8 ignore stop */
|
|
1416
|
-
this.#emitter.emit("exit", this.#process.exitCode, null);
|
|
1417
|
-
return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
|
|
1418
|
-
}
|
|
1419
|
-
#processEmit(ev, ...args) {
|
|
1420
|
-
const og = this.#originalProcessEmit;
|
|
1421
|
-
if (ev === "exit" && processOk(this.#process)) {
|
|
1422
|
-
if (typeof args[0] === "number") this.#process.exitCode = args[0];
|
|
1423
|
-
/* c8 ignore start */
|
|
1424
|
-
const ret = og.call(this.#process, ev, ...args);
|
|
1425
|
-
/* c8 ignore start */
|
|
1426
|
-
this.#emitter.emit("exit", this.#process.exitCode, null);
|
|
1427
|
-
/* c8 ignore stop */
|
|
1428
|
-
return ret;
|
|
1429
|
-
} else return og.call(this.#process, ev, ...args);
|
|
1430
|
-
}
|
|
1431
|
-
};
|
|
1432
|
-
process$2 = globalThis.process;
|
|
1433
|
-
({onExit, load, unload} = signalExitWrap(processOk(process$2) ? new SignalExit(process$2) : new SignalExitFallback()));
|
|
1434
|
-
} });
|
|
1238
|
+
}
|
|
1435
1239
|
|
|
1436
1240
|
//#endregion
|
|
1437
|
-
//#region
|
|
1438
|
-
|
|
1439
|
-
function
|
|
1440
|
-
var
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
if (
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
return Promise.reject(r$3);
|
|
1455
|
-
}
|
|
1456
|
-
}), n$1.push({
|
|
1457
|
-
v: e$1,
|
|
1458
|
-
d: o$1,
|
|
1459
|
-
a: r$2
|
|
1460
|
-
});
|
|
1461
|
-
} else r$2 && n$1.push({
|
|
1462
|
-
d: e$1,
|
|
1463
|
-
a: r$2
|
|
1464
|
-
});
|
|
1465
|
-
return e$1;
|
|
1466
|
-
}
|
|
1467
|
-
return {
|
|
1468
|
-
e,
|
|
1469
|
-
u: using.bind(null, !1),
|
|
1470
|
-
a: using.bind(null, !0),
|
|
1471
|
-
d: function d() {
|
|
1472
|
-
var o$1, t$1 = this.e, s$1 = 0;
|
|
1473
|
-
function next() {
|
|
1474
|
-
for (; o$1 = n$1.pop();) try {
|
|
1475
|
-
if (!o$1.a && 1 === s$1) return s$1 = 0, n$1.push(o$1), Promise.resolve().then(next);
|
|
1476
|
-
if (o$1.d) {
|
|
1477
|
-
var r$2 = o$1.d.call(o$1.v);
|
|
1478
|
-
if (o$1.a) return s$1 |= 2, Promise.resolve(r$2).then(next, err);
|
|
1479
|
-
} else s$1 |= 1;
|
|
1480
|
-
} catch (r$3) {
|
|
1481
|
-
return err(r$3);
|
|
1482
|
-
}
|
|
1483
|
-
if (1 === s$1) return t$1 !== e ? Promise.reject(t$1) : Promise.resolve();
|
|
1484
|
-
if (t$1 !== e) throw t$1;
|
|
1241
|
+
//#region \0@oxc-project+runtime@0.110.0/helpers/usingCtx.js
|
|
1242
|
+
function _usingCtx() {
|
|
1243
|
+
var r = "function" == typeof SuppressedError ? SuppressedError : function(r, e) {
|
|
1244
|
+
var n = Error();
|
|
1245
|
+
return n.name = "SuppressedError", n.error = r, n.suppressed = e, n;
|
|
1246
|
+
}, e = {}, n = [];
|
|
1247
|
+
function using(r, e) {
|
|
1248
|
+
if (null != e) {
|
|
1249
|
+
if (Object(e) !== e) throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");
|
|
1250
|
+
if (r) var o = e[Symbol.asyncDispose || Symbol["for"]("Symbol.asyncDispose")];
|
|
1251
|
+
if (void 0 === o && (o = e[Symbol.dispose || Symbol["for"]("Symbol.dispose")], r)) var t = o;
|
|
1252
|
+
if ("function" != typeof o) throw new TypeError("Object is not disposable.");
|
|
1253
|
+
t && (o = function o() {
|
|
1254
|
+
try {
|
|
1255
|
+
t.call(e);
|
|
1256
|
+
} catch (r) {
|
|
1257
|
+
return Promise.reject(r);
|
|
1485
1258
|
}
|
|
1486
|
-
|
|
1487
|
-
|
|
1259
|
+
}), n.push({
|
|
1260
|
+
v: e,
|
|
1261
|
+
d: o,
|
|
1262
|
+
a: r
|
|
1263
|
+
});
|
|
1264
|
+
} else r && n.push({
|
|
1265
|
+
d: e,
|
|
1266
|
+
a: r
|
|
1267
|
+
});
|
|
1268
|
+
return e;
|
|
1269
|
+
}
|
|
1270
|
+
return {
|
|
1271
|
+
e,
|
|
1272
|
+
u: using.bind(null, !1),
|
|
1273
|
+
a: using.bind(null, !0),
|
|
1274
|
+
d: function d() {
|
|
1275
|
+
var o, t = this.e, s = 0;
|
|
1276
|
+
function next() {
|
|
1277
|
+
for (; o = n.pop();) try {
|
|
1278
|
+
if (!o.a && 1 === s) return s = 0, n.push(o), Promise.resolve().then(next);
|
|
1279
|
+
if (o.d) {
|
|
1280
|
+
var r = o.d.call(o.v);
|
|
1281
|
+
if (o.a) return s |= 2, Promise.resolve(r).then(next, err);
|
|
1282
|
+
} else s |= 1;
|
|
1283
|
+
} catch (r) {
|
|
1284
|
+
return err(r);
|
|
1488
1285
|
}
|
|
1489
|
-
return
|
|
1286
|
+
if (1 === s) return t !== e ? Promise.reject(t) : Promise.resolve();
|
|
1287
|
+
if (t !== e) throw t;
|
|
1490
1288
|
}
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1289
|
+
function err(n) {
|
|
1290
|
+
return t = t !== e ? new r(n, t) : n, next();
|
|
1291
|
+
}
|
|
1292
|
+
return next();
|
|
1293
|
+
}
|
|
1294
|
+
};
|
|
1295
|
+
}
|
|
1495
1296
|
|
|
1496
1297
|
//#endregion
|
|
1497
1298
|
//#region src/cli/commands/bundle.ts
|
|
1498
|
-
async function bundleWithConfig(configPath, cliOptions) {
|
|
1299
|
+
async function bundleWithConfig(configPath, cliOptions, rawArgs = {}) {
|
|
1499
1300
|
if (cliOptions.watch) {
|
|
1500
1301
|
process.env.ROLLUP_WATCH = "true";
|
|
1501
1302
|
process.env.ROLLDOWN_WATCH = "true";
|
|
1502
1303
|
}
|
|
1503
1304
|
const config = await loadConfig(configPath);
|
|
1504
|
-
|
|
1505
|
-
|
|
1305
|
+
const resolvedConfig = typeof config === "function" ? await config(rawArgs) : config;
|
|
1306
|
+
if (typeof resolvedConfig !== "object" || resolvedConfig === null) {
|
|
1307
|
+
logger.error(`Invalid configuration from ${configPath}: expected object or array, got ${resolvedConfig}`);
|
|
1506
1308
|
process.exit(1);
|
|
1507
1309
|
}
|
|
1508
|
-
if (cliOptions.watch) await watchInner(
|
|
1509
|
-
else await bundleInner(
|
|
1310
|
+
if (cliOptions.watch) await watchInner(resolvedConfig, cliOptions);
|
|
1311
|
+
else await bundleInner(resolvedConfig, cliOptions);
|
|
1510
1312
|
}
|
|
1511
1313
|
async function bundleWithCliOptions(cliOptions) {
|
|
1512
1314
|
try {
|
|
1513
|
-
var _usingCtx$1 = (
|
|
1315
|
+
var _usingCtx$1 = _usingCtx();
|
|
1514
1316
|
if (cliOptions.output.dir || cliOptions.output.file) {
|
|
1515
|
-
|
|
1516
|
-
await operation({}, cliOptions);
|
|
1317
|
+
await (cliOptions.watch ? watchInner : bundleInner)({}, cliOptions);
|
|
1517
1318
|
return;
|
|
1518
1319
|
}
|
|
1519
1320
|
if (cliOptions.watch) {
|
|
1520
1321
|
logger.error("You must specify `output.dir` to use watch mode");
|
|
1521
1322
|
process.exit(1);
|
|
1522
1323
|
}
|
|
1523
|
-
const
|
|
1524
|
-
const { output: outputs } = await build.generate(cliOptions.output);
|
|
1324
|
+
const { output: outputs } = await _usingCtx$1.a(await rolldown(cliOptions.input)).generate(cliOptions.output);
|
|
1525
1325
|
if (outputs.length === 0) {
|
|
1526
1326
|
logger.error("No output generated");
|
|
1527
1327
|
process.exit(1);
|
|
1528
1328
|
}
|
|
1529
1329
|
for (const file of outputs) {
|
|
1530
|
-
if (outputs.length > 1) logger.log(`\n${
|
|
1330
|
+
if (outputs.length > 1) logger.log(`\n${styleText$1(["cyan", "bold"], `|→ ${file.fileName}:`)}\n`);
|
|
1531
1331
|
console.log(file.type === "asset" ? file.source : file.code);
|
|
1532
1332
|
}
|
|
1533
|
-
} catch (_
|
|
1534
|
-
_usingCtx$1.e = _
|
|
1333
|
+
} catch (_) {
|
|
1334
|
+
_usingCtx$1.e = _;
|
|
1535
1335
|
} finally {
|
|
1536
1336
|
await _usingCtx$1.d();
|
|
1537
1337
|
}
|
|
@@ -1549,7 +1349,7 @@ async function watchInner(config, cliOptions) {
|
|
|
1549
1349
|
})
|
|
1550
1350
|
};
|
|
1551
1351
|
});
|
|
1552
|
-
const watcher =
|
|
1352
|
+
const watcher = watch(normalizedConfig);
|
|
1553
1353
|
onExit((code) => {
|
|
1554
1354
|
Promise.resolve(watcher.close()).finally(() => {
|
|
1555
1355
|
process.exit(typeof code === "number" ? code : 0);
|
|
@@ -1560,15 +1360,19 @@ async function watchInner(config, cliOptions) {
|
|
|
1560
1360
|
watcher.on("change", (id, event) => {
|
|
1561
1361
|
if (event.event === "update") changedFile.push(id);
|
|
1562
1362
|
});
|
|
1363
|
+
const clearScreen = getClearScreenFunction(normalizedConfig);
|
|
1563
1364
|
watcher.on("event", async (event) => {
|
|
1564
1365
|
switch (event.code) {
|
|
1366
|
+
case "START":
|
|
1367
|
+
clearScreen?.();
|
|
1368
|
+
break;
|
|
1565
1369
|
case "BUNDLE_START":
|
|
1566
|
-
if (changedFile.length > 0) logger.log(`Found ${
|
|
1370
|
+
if (changedFile.length > 0) logger.log(`Found ${styleText$1("bold", changedFile.map(relativeId).join(", "))} changed, rebuilding...`);
|
|
1567
1371
|
changedFile.length = 0;
|
|
1568
1372
|
break;
|
|
1569
1373
|
case "BUNDLE_END":
|
|
1570
1374
|
await event.result.close();
|
|
1571
|
-
logger.success(`Rebuilt ${
|
|
1375
|
+
logger.success(`Rebuilt ${styleText$1("bold", relativeId(event.output[0]))} in ${styleText$1("green", ms(event.duration))}.`);
|
|
1572
1376
|
break;
|
|
1573
1377
|
case "ERROR":
|
|
1574
1378
|
await event.result.close();
|
|
@@ -1583,14 +1387,14 @@ async function bundleInner(config, cliOptions) {
|
|
|
1583
1387
|
const startTime = performance.now();
|
|
1584
1388
|
const result = [];
|
|
1585
1389
|
const configList = arraify(config);
|
|
1586
|
-
for (const config
|
|
1587
|
-
const outputList = arraify(config
|
|
1390
|
+
for (const config of configList) {
|
|
1391
|
+
const outputList = arraify(config.output || {});
|
|
1588
1392
|
const build = await rolldown({
|
|
1589
|
-
...config
|
|
1393
|
+
...config,
|
|
1590
1394
|
...cliOptions.input
|
|
1591
1395
|
});
|
|
1592
|
-
|
|
1593
|
-
result.push(await build.write({
|
|
1396
|
+
try {
|
|
1397
|
+
for (const output of outputList) result.push(await build.write({
|
|
1594
1398
|
...output,
|
|
1595
1399
|
...cliOptions.output
|
|
1596
1400
|
}));
|
|
@@ -1600,14 +1404,12 @@ async function bundleInner(config, cliOptions) {
|
|
|
1600
1404
|
}
|
|
1601
1405
|
result.forEach(printBundleOutputPretty);
|
|
1602
1406
|
logger.log(``);
|
|
1603
|
-
const
|
|
1604
|
-
|
|
1605
|
-
logger.success(`Finished in ${colors.bold(ms(duration))}`);
|
|
1407
|
+
const duration = performance.now() - startTime;
|
|
1408
|
+
logger.success(`rolldown v${version} Finished in ${styleText$1("green", ms(duration))}`);
|
|
1606
1409
|
}
|
|
1607
1410
|
function printBundleOutputPretty(output) {
|
|
1608
1411
|
const outputEntries = collectOutputEntries(output.output);
|
|
1609
|
-
|
|
1610
|
-
printOutputEntries(outputEntries, outputLayoutSizes, "<DIR>");
|
|
1412
|
+
printOutputEntries(outputEntries, collectOutputLayoutAdjustmentSizes(outputEntries), "<DIR>");
|
|
1611
1413
|
}
|
|
1612
1414
|
function collectOutputEntries(output) {
|
|
1613
1415
|
return output.map((chunk) => ({
|
|
@@ -1630,25 +1432,36 @@ function collectOutputLayoutAdjustmentSizes(entries) {
|
|
|
1630
1432
|
sizePad
|
|
1631
1433
|
};
|
|
1632
1434
|
}
|
|
1435
|
+
const numberFormatter = new Intl.NumberFormat("en", {
|
|
1436
|
+
maximumFractionDigits: 2,
|
|
1437
|
+
minimumFractionDigits: 2
|
|
1438
|
+
});
|
|
1633
1439
|
function displaySize(bytes) {
|
|
1634
1440
|
return `${numberFormatter.format(bytes / 1e3)} kB`;
|
|
1635
1441
|
}
|
|
1442
|
+
const CHUNK_GROUPS = [{
|
|
1443
|
+
type: "asset",
|
|
1444
|
+
color: "green"
|
|
1445
|
+
}, {
|
|
1446
|
+
type: "chunk",
|
|
1447
|
+
color: "cyan"
|
|
1448
|
+
}];
|
|
1636
1449
|
function printOutputEntries(entries, sizeAdjustment, distPath) {
|
|
1637
1450
|
for (const group of CHUNK_GROUPS) {
|
|
1638
1451
|
const filtered = entries.filter((e) => e.type === group.type);
|
|
1639
1452
|
if (!filtered.length) continue;
|
|
1640
|
-
for (const entry of filtered.sort((a
|
|
1641
|
-
let log =
|
|
1642
|
-
log +=
|
|
1643
|
-
log +=
|
|
1644
|
-
log +=
|
|
1453
|
+
for (const entry of filtered.sort((a, z) => a.size - z.size)) {
|
|
1454
|
+
let log = styleText$1("dim", withTrailingSlash(distPath));
|
|
1455
|
+
log += styleText$1(group.color, entry.fileName.padEnd(sizeAdjustment.longest + 2));
|
|
1456
|
+
log += styleText$1("dim", entry.type);
|
|
1457
|
+
log += styleText$1("dim", ` │ size: ${displaySize(entry.size).padStart(sizeAdjustment.sizePad)}`);
|
|
1645
1458
|
logger.log(log);
|
|
1646
1459
|
}
|
|
1647
1460
|
}
|
|
1648
1461
|
}
|
|
1649
|
-
function withTrailingSlash(path
|
|
1650
|
-
if (path
|
|
1651
|
-
return path
|
|
1462
|
+
function withTrailingSlash(path) {
|
|
1463
|
+
if (path[path.length - 1] !== "/") return `${path}/`;
|
|
1464
|
+
return path;
|
|
1652
1465
|
}
|
|
1653
1466
|
function ms(duration) {
|
|
1654
1467
|
return duration < 1e3 ? `${duration.toFixed(2)} ms` : `${(duration / 1e3).toFixed(2)} s`;
|
|
@@ -1657,128 +1470,119 @@ function relativeId(id) {
|
|
|
1657
1470
|
if (!path.isAbsolute(id)) return id;
|
|
1658
1471
|
return path.relative(path.resolve(), id);
|
|
1659
1472
|
}
|
|
1660
|
-
var import_usingCtx, numberFormatter, CHUNK_GROUPS;
|
|
1661
|
-
var init_bundle = __esm({ "src/cli/commands/bundle.ts"() {
|
|
1662
|
-
init_mjs();
|
|
1663
|
-
init_rolldown();
|
|
1664
|
-
init_watch();
|
|
1665
|
-
init_load_config();
|
|
1666
|
-
init_misc();
|
|
1667
|
-
init_logger();
|
|
1668
|
-
import_usingCtx = __toESM(require_usingCtx());
|
|
1669
|
-
numberFormatter = new Intl.NumberFormat("en", {
|
|
1670
|
-
maximumFractionDigits: 2,
|
|
1671
|
-
minimumFractionDigits: 2
|
|
1672
|
-
});
|
|
1673
|
-
CHUNK_GROUPS = [{
|
|
1674
|
-
type: "asset",
|
|
1675
|
-
color: "green"
|
|
1676
|
-
}, {
|
|
1677
|
-
type: "chunk",
|
|
1678
|
-
color: "cyan"
|
|
1679
|
-
}];
|
|
1680
|
-
} });
|
|
1681
1473
|
|
|
1682
1474
|
//#endregion
|
|
1683
1475
|
//#region src/cli/commands/help.ts
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1476
|
+
const examples = [
|
|
1477
|
+
{
|
|
1478
|
+
title: "Bundle with a config file `rolldown.config.mjs`",
|
|
1479
|
+
command: "rolldown -c rolldown.config.mjs"
|
|
1480
|
+
},
|
|
1481
|
+
{
|
|
1482
|
+
title: "Bundle the `src/main.ts` to `dist` with `cjs` format",
|
|
1483
|
+
command: "rolldown src/main.ts -d dist -f cjs"
|
|
1484
|
+
},
|
|
1485
|
+
{
|
|
1486
|
+
title: "Bundle the `src/main.ts` and handle the `.png` assets to Data URL",
|
|
1487
|
+
command: "rolldown src/main.ts -d dist --moduleTypes .png=dataurl"
|
|
1488
|
+
},
|
|
1489
|
+
{
|
|
1490
|
+
title: "Bundle the `src/main.tsx` and minify the output with sourcemap",
|
|
1491
|
+
command: "rolldown src/main.tsx -d dist -m -s"
|
|
1492
|
+
},
|
|
1493
|
+
{
|
|
1494
|
+
title: "Create self-executing IIFE using external jQuery as `$` and `_`",
|
|
1495
|
+
command: "rolldown src/main.ts -d dist -n bundle -f iife -e jQuery,window._ -g jQuery=$"
|
|
1496
|
+
}
|
|
1497
|
+
];
|
|
1498
|
+
const notes = [
|
|
1499
|
+
"Due to the API limitation, you need to pass `-s` for `.map` sourcemap file as the last argument.",
|
|
1500
|
+
"If you are using the configuration, please pass the `-c` as the last argument if you ignore the default configuration file.",
|
|
1501
|
+
"CLI options will override the configuration file.",
|
|
1502
|
+
"For more information, please visit https://rolldown.rs/."
|
|
1503
|
+
];
|
|
1504
|
+
/**
|
|
1505
|
+
* Generates the CLI help text as a string.
|
|
1506
|
+
*/
|
|
1507
|
+
function generateHelpText() {
|
|
1508
|
+
const lines = [];
|
|
1509
|
+
lines.push(`${styleText$1("gray", `${description} (rolldown v${version})`)}`);
|
|
1510
|
+
lines.push("");
|
|
1511
|
+
lines.push(`${styleText$1(["bold", "underline"], "USAGE")} ${styleText$1("cyan", "rolldown -c <config>")} or ${styleText$1("cyan", "rolldown <input> <options>")}`);
|
|
1512
|
+
lines.push("");
|
|
1513
|
+
lines.push(`${styleText$1(["bold", "underline"], "OPTIONS")}`);
|
|
1514
|
+
lines.push("");
|
|
1515
|
+
lines.push(Object.entries(options).sort(([a], [b]) => {
|
|
1516
|
+
if (options[a].short && !options[b].short) return -1;
|
|
1517
|
+
if (!options[a].short && options[b].short) return 1;
|
|
1518
|
+
if (options[a].short && options[b].short) return options[a].short.localeCompare(options[b].short);
|
|
1519
|
+
return a.localeCompare(b);
|
|
1520
|
+
}).map(([option, { type, short, hint, description }]) => {
|
|
1695
1521
|
let optionStr = ` --${option} `;
|
|
1696
1522
|
option = camelCaseToKebabCase(option);
|
|
1697
1523
|
if (short) optionStr += `-${short}, `;
|
|
1698
1524
|
if (type === "string") optionStr += `<${hint ?? option}>`;
|
|
1699
|
-
if (description
|
|
1700
|
-
return
|
|
1525
|
+
if (description && description.length > 0) description = description[0].toUpperCase() + description.slice(1);
|
|
1526
|
+
return styleText$1("cyan", optionStr.padEnd(30)) + description + (description && description?.endsWith(".") ? "" : ".");
|
|
1701
1527
|
}).join("\n"));
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1528
|
+
lines.push("");
|
|
1529
|
+
lines.push(`${styleText$1(["bold", "underline"], "EXAMPLES")}`);
|
|
1530
|
+
lines.push("");
|
|
1705
1531
|
examples.forEach(({ title, command }, ord) => {
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1532
|
+
lines.push(` ${ord + 1}. ${title}:`);
|
|
1533
|
+
lines.push(` ${styleText$1("cyan", command)}`);
|
|
1534
|
+
lines.push("");
|
|
1709
1535
|
});
|
|
1710
|
-
|
|
1711
|
-
|
|
1536
|
+
lines.push(`${styleText$1(["bold", "underline"], "NOTES")}`);
|
|
1537
|
+
lines.push("");
|
|
1712
1538
|
notes.forEach((note) => {
|
|
1713
|
-
|
|
1539
|
+
lines.push(` * ${styleText$1("gray", note)}`);
|
|
1714
1540
|
});
|
|
1541
|
+
return lines.join("\n");
|
|
1542
|
+
}
|
|
1543
|
+
function showHelp() {
|
|
1544
|
+
logger.log(generateHelpText());
|
|
1715
1545
|
}
|
|
1716
|
-
var introduction, examples, notes;
|
|
1717
|
-
var init_help = __esm({ "src/cli/commands/help.ts"() {
|
|
1718
|
-
init_arguments();
|
|
1719
|
-
init_utils();
|
|
1720
|
-
init_logger();
|
|
1721
|
-
introduction = `${colors.gray(`${description} (rolldown v${version})`)}
|
|
1722
1546
|
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
command: "rolldown src/main.ts -d dist -f cjs"
|
|
1732
|
-
},
|
|
1733
|
-
{
|
|
1734
|
-
title: "Bundle the `src/main.ts` and handle the `.png` assets to Data URL",
|
|
1735
|
-
command: "rolldown src/main.ts -d dist --moduleTypes .png=dataurl"
|
|
1736
|
-
},
|
|
1737
|
-
{
|
|
1738
|
-
title: "Bundle the `src/main.tsx` and minify the output with sourcemap",
|
|
1739
|
-
command: "rolldown src/main.tsx -d dist -m -s"
|
|
1740
|
-
},
|
|
1741
|
-
{
|
|
1742
|
-
title: "Create self-executing IIFE using external jQuery as `$` and `_`",
|
|
1743
|
-
command: "rolldown src/main.ts -d dist -n bundle -f iife -e jQuery,window._ -g jQuery=$"
|
|
1744
|
-
}
|
|
1745
|
-
];
|
|
1746
|
-
notes = [
|
|
1747
|
-
"Due to the API limitation, you need to pass `-s` for `.map` sourcemap file as the last argument.",
|
|
1748
|
-
"If you are using the configuration, please pass the `-c` as the last argument if you ignore the default configuration file.",
|
|
1749
|
-
"CLI options will override the configuration file.",
|
|
1750
|
-
"For more information, please visit https://rolldown.rs/."
|
|
1751
|
-
];
|
|
1752
|
-
} });
|
|
1547
|
+
//#endregion
|
|
1548
|
+
//#region src/cli/version-check.ts
|
|
1549
|
+
function checkNodeVersion(nodeVersion) {
|
|
1550
|
+
const currentVersion = nodeVersion.split(".");
|
|
1551
|
+
const major = parseInt(currentVersion[0], 10);
|
|
1552
|
+
const minor = parseInt(currentVersion[1], 10);
|
|
1553
|
+
return major === 20 && minor >= 19 || major === 22 && minor >= 12 || major > 22;
|
|
1554
|
+
}
|
|
1753
1555
|
|
|
1754
1556
|
//#endregion
|
|
1755
1557
|
//#region src/cli/index.ts
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
await bundleWithConfig(cliOptions.config, cliOptions);
|
|
1765
|
-
return;
|
|
1766
|
-
}
|
|
1767
|
-
if ("input" in cliOptions.input) {
|
|
1768
|
-
await bundleWithCliOptions(cliOptions);
|
|
1769
|
-
return;
|
|
1770
|
-
}
|
|
1771
|
-
if (cliOptions.version) {
|
|
1772
|
-
logger.log(`rolldown v${version}`);
|
|
1773
|
-
return;
|
|
1558
|
+
if (!checkNodeVersion(process$1.versions.node)) logger.warn(`You are using Node.js ${process$1.versions.node}. Rolldown requires Node.js version 20.19+ or 22.12+. Please upgrade your Node.js version.`);
|
|
1559
|
+
async function main() {
|
|
1560
|
+
const { rawArgs, ...cliOptions } = parseCliArguments();
|
|
1561
|
+
if (cliOptions.environment) {
|
|
1562
|
+
const environment = Array.isArray(cliOptions.environment) ? cliOptions.environment : [cliOptions.environment];
|
|
1563
|
+
for (const argument of environment) for (const pair of argument.split(",")) {
|
|
1564
|
+
const [key, ...value] = pair.split(":");
|
|
1565
|
+
process$1.env[key] = value.length === 0 ? String(true) : value.join(":");
|
|
1774
1566
|
}
|
|
1775
|
-
showHelp();
|
|
1776
1567
|
}
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
}
|
|
1781
|
-
|
|
1568
|
+
if (cliOptions.config || cliOptions.config === "") {
|
|
1569
|
+
await bundleWithConfig(cliOptions.config, cliOptions, rawArgs);
|
|
1570
|
+
return;
|
|
1571
|
+
}
|
|
1572
|
+
if ("input" in cliOptions.input) {
|
|
1573
|
+
await bundleWithCliOptions(cliOptions);
|
|
1574
|
+
return;
|
|
1575
|
+
}
|
|
1576
|
+
if (cliOptions.version) {
|
|
1577
|
+
logger.log(`rolldown v${version}`);
|
|
1578
|
+
return;
|
|
1579
|
+
}
|
|
1580
|
+
showHelp();
|
|
1581
|
+
}
|
|
1582
|
+
main().catch((err) => {
|
|
1583
|
+
logger.error(err);
|
|
1584
|
+
process$1.exit(1);
|
|
1585
|
+
});
|
|
1782
1586
|
|
|
1783
1587
|
//#endregion
|
|
1784
|
-
export
|
|
1588
|
+
export { };
|