@batijs/cli 0.0.327 → 0.0.329
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/boilerplates/@batijs/auth0/files/$.env.js +5 -5
- package/dist/boilerplates/@batijs/auth0/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/authjs/files/$package.json.js +5 -5
- package/dist/boilerplates/@batijs/aws/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/aws/files/$package.json.js +11 -8
- package/dist/boilerplates/@batijs/aws/files/$tsconfig.json.js +3 -3
- package/dist/boilerplates/@batijs/aws/files/tests/aws_handler.spec.ts +1 -1
- package/dist/boilerplates/@batijs/biome/files/$package.json.js +4 -4
- package/dist/boilerplates/@batijs/cloudflare/files/$package.json.js +7 -7
- package/dist/boilerplates/@batijs/cloudflare/files/$tsconfig.json.js +3 -3
- package/dist/boilerplates/@batijs/cloudflare/files/$vite.config.ts.js +5 -5
- package/dist/boilerplates/@batijs/compiled/files/$package.json.js +5 -5
- package/dist/boilerplates/@batijs/compiled/files/$vite.config.ts.js +5 -5
- package/dist/boilerplates/@batijs/d1/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/d1/files/$package.json.js +8 -8
- package/dist/boilerplates/@batijs/d1/files/$tsconfig.json.js +3 -3
- package/dist/boilerplates/@batijs/d1/files/$wrangler.toml.js +1 -1
- package/dist/boilerplates/@batijs/d1-sqlite/files/$package.json.js +7 -7
- package/dist/boilerplates/@batijs/drizzle/files/$.env.js +3 -3
- package/dist/boilerplates/@batijs/drizzle/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/drizzle/files/$package.json.js +7 -7
- package/dist/boilerplates/@batijs/edgedb/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/edgedb/files/$package.json.js +4 -4
- package/dist/boilerplates/@batijs/eslint/files/$package.json.js +8 -8
- package/dist/boilerplates/@batijs/express/files/$package.json.js +8 -8
- package/dist/boilerplates/@batijs/fastify/files/$package.json.js +8 -8
- package/dist/boilerplates/@batijs/firebase-auth/files/$.env.js +3 -3
- package/dist/boilerplates/@batijs/firebase-auth/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/firebase-auth/files/$package.json.js +8 -8
- package/dist/boilerplates/@batijs/google-analytics/files/$.env.js +3 -3
- package/dist/boilerplates/@batijs/h3/files/$package.json.js +9 -9
- package/dist/boilerplates/@batijs/hattip/files/$package.json.js +9 -9
- package/dist/boilerplates/@batijs/hono/files/$package.json.js +12 -12
- package/dist/boilerplates/@batijs/hono/files/$vite.config.ts.js +5 -5
- package/dist/boilerplates/@batijs/hono/files/hono-entry.node.ts +3 -1
- package/dist/boilerplates/@batijs/lucia-auth/files/$.env.js +4 -4
- package/dist/boilerplates/@batijs/lucia-auth/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/lucia-auth/files/$package.json.js +11 -11
- package/dist/boilerplates/@batijs/mantine/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/mantine/files/$package.json.js +10 -10
- package/dist/boilerplates/@batijs/panda-css/files/$package.json.js +5 -5
- package/dist/boilerplates/@batijs/prettier/files/$package.json.js +4 -4
- package/dist/boilerplates/@batijs/prisma/files/$.env.js +3 -3
- package/dist/boilerplates/@batijs/prisma/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/prisma/files/$package.json.js +4 -4
- package/dist/boilerplates/@batijs/react/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/react/files/$package.json.js +10 -10
- package/dist/boilerplates/@batijs/react/files/$tsconfig.json.js +3 -3
- package/dist/boilerplates/@batijs/react/files/$vite.config.ts.js +5 -5
- package/dist/boilerplates/@batijs/react-sentry/files/$package.json.js +7 -7
- package/dist/boilerplates/@batijs/sentry/files/$.env.js +4 -4
- package/dist/boilerplates/@batijs/sentry/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/sentry/files/$package.json.js +5 -5
- package/dist/boilerplates/@batijs/sentry/files/$vite.config.ts.js +7 -7
- package/dist/boilerplates/@batijs/sentry/files/pages/$+client.ts.js +9 -9
- package/dist/boilerplates/@batijs/shadcn-ui/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/shadcn-ui/files/$package.json.js +5 -5
- package/dist/boilerplates/@batijs/shadcn-ui/files/$tsconfig.json.js +3 -3
- package/dist/boilerplates/@batijs/shadcn-ui/files/$vite.config.ts.js +5 -5
- package/dist/boilerplates/@batijs/shared/files/$README.md.js +9 -9
- package/dist/boilerplates/@batijs/shared/files/package.json +5 -5
- package/dist/boilerplates/@batijs/shared/files/vite.config.ts +3 -3
- package/dist/boilerplates/@batijs/shared-server/files/$package.json.js +8 -8
- package/dist/boilerplates/@batijs/solid/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/solid/files/$package.json.js +6 -6
- package/dist/boilerplates/@batijs/solid/files/$tsconfig.json.js +3 -3
- package/dist/boilerplates/@batijs/solid/files/$vite.config.ts.js +5 -5
- package/dist/boilerplates/@batijs/solid-sentry/files/$package.json.js +6 -6
- package/dist/boilerplates/@batijs/sqlite/files/$.env.js +3 -3
- package/dist/boilerplates/@batijs/sqlite/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/sqlite/files/$package.json.js +5 -5
- package/dist/boilerplates/@batijs/tailwindcss/files/$package.json.js +7 -7
- package/dist/boilerplates/@batijs/telefunc/files/$package.json.js +8 -8
- package/dist/boilerplates/@batijs/telefunc/files/$vite.config.ts.js +5 -5
- package/dist/boilerplates/@batijs/trpc/files/$package.json.js +7 -7
- package/dist/boilerplates/@batijs/trpc/types/trpc/client.d.ts +4 -4
- package/dist/boilerplates/@batijs/ts-rest/files/$package.json.js +6 -6
- package/dist/boilerplates/@batijs/vercel/files/$package.json.js +6 -6
- package/dist/boilerplates/@batijs/vercel/files/$tsconfig.json.js +3 -3
- package/dist/boilerplates/@batijs/vercel/files/$vite.config.ts.js +5 -5
- package/dist/boilerplates/@batijs/vue/files/$README.md.js +3 -3
- package/dist/boilerplates/@batijs/vue/files/$package.json.js +7 -7
- package/dist/boilerplates/@batijs/vue/files/$tsconfig.json.js +3 -3
- package/dist/boilerplates/@batijs/vue/files/$vite.config.ts.js +6 -6
- package/dist/boilerplates/@batijs/vue-sentry/files/$package.json.js +6 -6
- package/dist/{chunk-TTE45OFP.js → chunk-BS3TII3O.js} +71422 -71235
- package/dist/index.js +1249 -158
- package/dist/prompt-Z3APRUMB.js +752 -0
- package/package.json +8 -8
- package/dist/chunk-7ZHD2YFR.js +0 -1100
- package/dist/prompt-TICE27HC.js +0 -853
package/dist/index.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
C5e,
|
|
8
|
-
CXr,
|
|
9
|
-
STs,
|
|
3
|
+
I5e,
|
|
4
|
+
Ubs,
|
|
5
|
+
WXr,
|
|
10
6
|
export_which,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
} from "./chunk-
|
|
7
|
+
uit,
|
|
8
|
+
wus
|
|
9
|
+
} from "./chunk-BS3TII3O.js";
|
|
14
10
|
import "./chunk-LU7IBQI7.js";
|
|
15
11
|
|
|
16
12
|
// index.ts
|
|
@@ -34,8 +30,8 @@ async function mergeDts({
|
|
|
34
30
|
filepath,
|
|
35
31
|
meta
|
|
36
32
|
}) {
|
|
37
|
-
const previousAst =
|
|
38
|
-
const currentAst =
|
|
33
|
+
const previousAst = I5e(previousContent);
|
|
34
|
+
const currentAst = I5e(fileContent);
|
|
39
35
|
for (const imp of previousAst.imports.$items) {
|
|
40
36
|
currentAst.imports[imp.local] = imp;
|
|
41
37
|
}
|
|
@@ -52,7 +48,7 @@ async function mergeDts({
|
|
|
52
48
|
currentAst.$ast.body.splice(index, 0, node);
|
|
53
49
|
}
|
|
54
50
|
}
|
|
55
|
-
const res = await
|
|
51
|
+
const res = await wus(currentAst.generate().code, meta, {
|
|
56
52
|
filepath
|
|
57
53
|
});
|
|
58
54
|
return clearExports(res.code, meta);
|
|
@@ -73,7 +69,7 @@ async function executeOperationFile(op, {
|
|
|
73
69
|
}) {
|
|
74
70
|
const code = await readFile(op.sourceAbsolute, { encoding: "utf-8" });
|
|
75
71
|
const filepath = relative(op.source, op.sourceAbsolute);
|
|
76
|
-
const result = await
|
|
72
|
+
const result = await wus(code, meta, {
|
|
77
73
|
filepath
|
|
78
74
|
});
|
|
79
75
|
let fileContent = result.code;
|
|
@@ -111,7 +107,7 @@ async function transformFileAfterExec(filepath, fileContent) {
|
|
|
111
107
|
case ".js":
|
|
112
108
|
case ".tsx":
|
|
113
109
|
case ".jsx":
|
|
114
|
-
return
|
|
110
|
+
return uit(fileContent, {
|
|
115
111
|
filepath
|
|
116
112
|
});
|
|
117
113
|
case ".env":
|
|
@@ -137,8 +133,8 @@ async function transformFileAfterExec(filepath, fileContent) {
|
|
|
137
133
|
}
|
|
138
134
|
throw new Error(`Unsupported file extension ${parsed.base} (${filepath})`);
|
|
139
135
|
}
|
|
140
|
-
async function importTransformer(
|
|
141
|
-
const importFile = isWin ? "file://" +
|
|
136
|
+
async function importTransformer(p2) {
|
|
137
|
+
const importFile = isWin ? "file://" + p2 : p2;
|
|
142
138
|
const f = await import(importFile);
|
|
143
139
|
return f.default;
|
|
144
140
|
}
|
|
@@ -162,8 +158,8 @@ async function executeOperationTransform(op, {
|
|
|
162
158
|
};
|
|
163
159
|
}
|
|
164
160
|
function orderBy(array, getter) {
|
|
165
|
-
return array.slice().sort((
|
|
166
|
-
const valueA = getter(
|
|
161
|
+
return array.slice().sort((a2, b) => {
|
|
162
|
+
const valueA = getter(a2);
|
|
167
163
|
const valueB = getter(b);
|
|
168
164
|
if (valueA < valueB) return -1;
|
|
169
165
|
if (valueA > valueB) return 1;
|
|
@@ -256,7 +252,7 @@ function computeDeepUnimportedFiles(importedByVolatileFile, unimportedFiles) {
|
|
|
256
252
|
if (found) {
|
|
257
253
|
redo = true;
|
|
258
254
|
unimportedFiles.push(relationImport.importTargetRelationFile);
|
|
259
|
-
importedByVolatileFile = importedByVolatileFile.filter((
|
|
255
|
+
importedByVolatileFile = importedByVolatileFile.filter((i2) => i2 !== relationImport);
|
|
260
256
|
}
|
|
261
257
|
}
|
|
262
258
|
if (redo) {
|
|
@@ -333,21 +329,21 @@ async function main(options, meta) {
|
|
|
333
329
|
}
|
|
334
330
|
const rearranger = new OperationsRearranger();
|
|
335
331
|
for (const source of sources) {
|
|
336
|
-
for await (const
|
|
337
|
-
const target = toDist(
|
|
332
|
+
for await (const p2 of walk(source)) {
|
|
333
|
+
const target = toDist(p2, source, options.dist);
|
|
338
334
|
const targetAbsolute = path.isAbsolute(target) ? target : path.resolve(target);
|
|
339
|
-
const parsed = path.parse(
|
|
335
|
+
const parsed = path.parse(p2);
|
|
340
336
|
if (parsed.name.match(reIgnoreFile)) {
|
|
341
337
|
continue;
|
|
342
338
|
} else if (parsed.name.startsWith("$") && parsed.ext.match(/\.tsx?$/)) {
|
|
343
339
|
throw new Error(
|
|
344
|
-
`Typescript file needs to be compiled before it can be executed: '${
|
|
340
|
+
`Typescript file needs to be compiled before it can be executed: '${p2}'.
|
|
345
341
|
Please report this issue to https://github.com/vikejs/bati`
|
|
346
342
|
);
|
|
347
343
|
} else if ((parsed.name.startsWith("!$") || parsed.name.startsWith("$")) && parsed.ext.match(/\.jsx?$/)) {
|
|
348
344
|
rearranger.addFile({
|
|
349
345
|
source,
|
|
350
|
-
sourceAbsolute:
|
|
346
|
+
sourceAbsolute: p2,
|
|
351
347
|
destination: target,
|
|
352
348
|
destinationAbsolute: targetAbsolute,
|
|
353
349
|
kind: "transform",
|
|
@@ -357,7 +353,7 @@ Please report this issue to https://github.com/vikejs/bati`
|
|
|
357
353
|
} else {
|
|
358
354
|
rearranger.addFile({
|
|
359
355
|
source,
|
|
360
|
-
sourceAbsolute:
|
|
356
|
+
sourceAbsolute: p2,
|
|
361
357
|
destination: target,
|
|
362
358
|
destinationAbsolute: targetAbsolute,
|
|
363
359
|
kind: "file",
|
|
@@ -1029,8 +1025,8 @@ var BatiSet = class extends Set {
|
|
|
1029
1025
|
this.#servers = new Set(allFeatures.filter((f) => f.category === "Server").map((f) => f.flag));
|
|
1030
1026
|
this.#databases = new Set(allFeatures.filter((f) => f.category === "Database").map((f) => f.flag));
|
|
1031
1027
|
}
|
|
1032
|
-
hasOneOf(
|
|
1033
|
-
for (const x of this) if (
|
|
1028
|
+
hasOneOf(a2) {
|
|
1029
|
+
for (const x of this) if (a2.has(x)) return true;
|
|
1034
1030
|
return false;
|
|
1035
1031
|
}
|
|
1036
1032
|
get hasServer() {
|
|
@@ -1062,7 +1058,7 @@ var RulesMessage = /* @__PURE__ */ ((RulesMessage2) => {
|
|
|
1062
1058
|
})(RulesMessage || {});
|
|
1063
1059
|
function requires(message, ifPresent, mustAlsoInclude) {
|
|
1064
1060
|
const m = Array.from(prepare(mustAlsoInclude));
|
|
1065
|
-
return (fts) => fts.has(ifPresent) && !m.every((
|
|
1061
|
+
return (fts) => fts.has(ifPresent) && !m.every((r2) => fts.has(r2)) && message;
|
|
1066
1062
|
}
|
|
1067
1063
|
function includes(message, ifPresent) {
|
|
1068
1064
|
return (fts) => fts.has(ifPresent) && message;
|
|
@@ -1071,14 +1067,14 @@ function filter(message, callback) {
|
|
|
1071
1067
|
return (fts) => callback(fts) && message;
|
|
1072
1068
|
}
|
|
1073
1069
|
function prepare(fts) {
|
|
1074
|
-
const
|
|
1070
|
+
const s2 = /* @__PURE__ */ new Set();
|
|
1075
1071
|
for (const f of fts) {
|
|
1076
1072
|
if (flags.includes(f)) {
|
|
1077
|
-
|
|
1073
|
+
s2.add(features.find((feat) => feat.flag === f).category);
|
|
1078
1074
|
}
|
|
1079
|
-
|
|
1075
|
+
s2.add(f);
|
|
1080
1076
|
}
|
|
1081
|
-
return
|
|
1077
|
+
return s2;
|
|
1082
1078
|
}
|
|
1083
1079
|
var rules_default = [
|
|
1084
1080
|
requires(0, "Auth", ["Server"]),
|
|
@@ -1148,6 +1144,1101 @@ function execRules(fts, rulesMessages2) {
|
|
|
1148
1144
|
return messages;
|
|
1149
1145
|
}
|
|
1150
1146
|
|
|
1147
|
+
// ../../node_modules/.pnpm/consola@3.4.0/node_modules/consola/dist/core.mjs
|
|
1148
|
+
var LogLevels = {
|
|
1149
|
+
silent: Number.NEGATIVE_INFINITY,
|
|
1150
|
+
fatal: 0,
|
|
1151
|
+
error: 0,
|
|
1152
|
+
warn: 1,
|
|
1153
|
+
log: 2,
|
|
1154
|
+
info: 3,
|
|
1155
|
+
success: 3,
|
|
1156
|
+
fail: 3,
|
|
1157
|
+
ready: 3,
|
|
1158
|
+
start: 3,
|
|
1159
|
+
box: 3,
|
|
1160
|
+
debug: 4,
|
|
1161
|
+
trace: 5,
|
|
1162
|
+
verbose: Number.POSITIVE_INFINITY
|
|
1163
|
+
};
|
|
1164
|
+
var LogTypes = {
|
|
1165
|
+
// Silent
|
|
1166
|
+
silent: {
|
|
1167
|
+
level: -1
|
|
1168
|
+
},
|
|
1169
|
+
// Level 0
|
|
1170
|
+
fatal: {
|
|
1171
|
+
level: LogLevels.fatal
|
|
1172
|
+
},
|
|
1173
|
+
error: {
|
|
1174
|
+
level: LogLevels.error
|
|
1175
|
+
},
|
|
1176
|
+
// Level 1
|
|
1177
|
+
warn: {
|
|
1178
|
+
level: LogLevels.warn
|
|
1179
|
+
},
|
|
1180
|
+
// Level 2
|
|
1181
|
+
log: {
|
|
1182
|
+
level: LogLevels.log
|
|
1183
|
+
},
|
|
1184
|
+
// Level 3
|
|
1185
|
+
info: {
|
|
1186
|
+
level: LogLevels.info
|
|
1187
|
+
},
|
|
1188
|
+
success: {
|
|
1189
|
+
level: LogLevels.success
|
|
1190
|
+
},
|
|
1191
|
+
fail: {
|
|
1192
|
+
level: LogLevels.fail
|
|
1193
|
+
},
|
|
1194
|
+
ready: {
|
|
1195
|
+
level: LogLevels.info
|
|
1196
|
+
},
|
|
1197
|
+
start: {
|
|
1198
|
+
level: LogLevels.info
|
|
1199
|
+
},
|
|
1200
|
+
box: {
|
|
1201
|
+
level: LogLevels.info
|
|
1202
|
+
},
|
|
1203
|
+
// Level 4
|
|
1204
|
+
debug: {
|
|
1205
|
+
level: LogLevels.debug
|
|
1206
|
+
},
|
|
1207
|
+
// Level 5
|
|
1208
|
+
trace: {
|
|
1209
|
+
level: LogLevels.trace
|
|
1210
|
+
},
|
|
1211
|
+
// Verbose
|
|
1212
|
+
verbose: {
|
|
1213
|
+
level: LogLevels.verbose
|
|
1214
|
+
}
|
|
1215
|
+
};
|
|
1216
|
+
function isPlainObject$1(value) {
|
|
1217
|
+
if (value === null || typeof value !== "object") {
|
|
1218
|
+
return false;
|
|
1219
|
+
}
|
|
1220
|
+
const prototype = Object.getPrototypeOf(value);
|
|
1221
|
+
if (prototype !== null && prototype !== Object.prototype && Object.getPrototypeOf(prototype) !== null) {
|
|
1222
|
+
return false;
|
|
1223
|
+
}
|
|
1224
|
+
if (Symbol.iterator in value) {
|
|
1225
|
+
return false;
|
|
1226
|
+
}
|
|
1227
|
+
if (Symbol.toStringTag in value) {
|
|
1228
|
+
return Object.prototype.toString.call(value) === "[object Module]";
|
|
1229
|
+
}
|
|
1230
|
+
return true;
|
|
1231
|
+
}
|
|
1232
|
+
function _defu(baseObject, defaults, namespace = ".", merger) {
|
|
1233
|
+
if (!isPlainObject$1(defaults)) {
|
|
1234
|
+
return _defu(baseObject, {}, namespace, merger);
|
|
1235
|
+
}
|
|
1236
|
+
const object = Object.assign({}, defaults);
|
|
1237
|
+
for (const key in baseObject) {
|
|
1238
|
+
if (key === "__proto__" || key === "constructor") {
|
|
1239
|
+
continue;
|
|
1240
|
+
}
|
|
1241
|
+
const value = baseObject[key];
|
|
1242
|
+
if (value === null || value === void 0) {
|
|
1243
|
+
continue;
|
|
1244
|
+
}
|
|
1245
|
+
if (merger && merger(object, key, value, namespace)) {
|
|
1246
|
+
continue;
|
|
1247
|
+
}
|
|
1248
|
+
if (Array.isArray(value) && Array.isArray(object[key])) {
|
|
1249
|
+
object[key] = [...value, ...object[key]];
|
|
1250
|
+
} else if (isPlainObject$1(value) && isPlainObject$1(object[key])) {
|
|
1251
|
+
object[key] = _defu(
|
|
1252
|
+
value,
|
|
1253
|
+
object[key],
|
|
1254
|
+
(namespace ? `${namespace}.` : "") + key.toString(),
|
|
1255
|
+
merger
|
|
1256
|
+
);
|
|
1257
|
+
} else {
|
|
1258
|
+
object[key] = value;
|
|
1259
|
+
}
|
|
1260
|
+
}
|
|
1261
|
+
return object;
|
|
1262
|
+
}
|
|
1263
|
+
function createDefu(merger) {
|
|
1264
|
+
return (...arguments_) => (
|
|
1265
|
+
// eslint-disable-next-line unicorn/no-array-reduce
|
|
1266
|
+
arguments_.reduce((p2, c2) => _defu(p2, c2, "", merger), {})
|
|
1267
|
+
);
|
|
1268
|
+
}
|
|
1269
|
+
var defu = createDefu();
|
|
1270
|
+
function isPlainObject(obj) {
|
|
1271
|
+
return Object.prototype.toString.call(obj) === "[object Object]";
|
|
1272
|
+
}
|
|
1273
|
+
function isLogObj(arg) {
|
|
1274
|
+
if (!isPlainObject(arg)) {
|
|
1275
|
+
return false;
|
|
1276
|
+
}
|
|
1277
|
+
if (!arg.message && !arg.args) {
|
|
1278
|
+
return false;
|
|
1279
|
+
}
|
|
1280
|
+
if (arg.stack) {
|
|
1281
|
+
return false;
|
|
1282
|
+
}
|
|
1283
|
+
return true;
|
|
1284
|
+
}
|
|
1285
|
+
var paused = false;
|
|
1286
|
+
var queue = [];
|
|
1287
|
+
var Consola = class _Consola {
|
|
1288
|
+
options;
|
|
1289
|
+
_lastLog;
|
|
1290
|
+
_mockFn;
|
|
1291
|
+
/**
|
|
1292
|
+
* Creates an instance of Consola with specified options or defaults.
|
|
1293
|
+
*
|
|
1294
|
+
* @param {Partial<ConsolaOptions>} [options={}] - Configuration options for the Consola instance.
|
|
1295
|
+
*/
|
|
1296
|
+
constructor(options = {}) {
|
|
1297
|
+
const types = options.types || LogTypes;
|
|
1298
|
+
this.options = defu(
|
|
1299
|
+
{
|
|
1300
|
+
...options,
|
|
1301
|
+
defaults: { ...options.defaults },
|
|
1302
|
+
level: _normalizeLogLevel(options.level, types),
|
|
1303
|
+
reporters: [...options.reporters || []]
|
|
1304
|
+
},
|
|
1305
|
+
{
|
|
1306
|
+
types: LogTypes,
|
|
1307
|
+
throttle: 1e3,
|
|
1308
|
+
throttleMin: 5,
|
|
1309
|
+
formatOptions: {
|
|
1310
|
+
date: true,
|
|
1311
|
+
colors: false,
|
|
1312
|
+
compact: true
|
|
1313
|
+
}
|
|
1314
|
+
}
|
|
1315
|
+
);
|
|
1316
|
+
for (const type in types) {
|
|
1317
|
+
const defaults = {
|
|
1318
|
+
type,
|
|
1319
|
+
...this.options.defaults,
|
|
1320
|
+
...types[type]
|
|
1321
|
+
};
|
|
1322
|
+
this[type] = this._wrapLogFn(defaults);
|
|
1323
|
+
this[type].raw = this._wrapLogFn(
|
|
1324
|
+
defaults,
|
|
1325
|
+
true
|
|
1326
|
+
);
|
|
1327
|
+
}
|
|
1328
|
+
if (this.options.mockFn) {
|
|
1329
|
+
this.mockTypes();
|
|
1330
|
+
}
|
|
1331
|
+
this._lastLog = {};
|
|
1332
|
+
}
|
|
1333
|
+
/**
|
|
1334
|
+
* Gets the current log level of the Consola instance.
|
|
1335
|
+
*
|
|
1336
|
+
* @returns {number} The current log level.
|
|
1337
|
+
*/
|
|
1338
|
+
get level() {
|
|
1339
|
+
return this.options.level;
|
|
1340
|
+
}
|
|
1341
|
+
/**
|
|
1342
|
+
* Sets the minimum log level that will be output by the instance.
|
|
1343
|
+
*
|
|
1344
|
+
* @param {number} level - The new log level to set.
|
|
1345
|
+
*/
|
|
1346
|
+
set level(level) {
|
|
1347
|
+
this.options.level = _normalizeLogLevel(
|
|
1348
|
+
level,
|
|
1349
|
+
this.options.types,
|
|
1350
|
+
this.options.level
|
|
1351
|
+
);
|
|
1352
|
+
}
|
|
1353
|
+
/**
|
|
1354
|
+
* Displays a prompt to the user and returns the response.
|
|
1355
|
+
* Throw an error if `prompt` is not supported by the current configuration.
|
|
1356
|
+
*
|
|
1357
|
+
* @template T
|
|
1358
|
+
* @param {string} message - The message to display in the prompt.
|
|
1359
|
+
* @param {T} [opts] - Optional options for the prompt. See {@link PromptOptions}.
|
|
1360
|
+
* @returns {promise<T>} A promise that infer with the prompt options. See {@link PromptOptions}.
|
|
1361
|
+
*/
|
|
1362
|
+
prompt(message, opts) {
|
|
1363
|
+
if (!this.options.prompt) {
|
|
1364
|
+
throw new Error("prompt is not supported!");
|
|
1365
|
+
}
|
|
1366
|
+
return this.options.prompt(message, opts);
|
|
1367
|
+
}
|
|
1368
|
+
/**
|
|
1369
|
+
* Creates a new instance of Consola, inheriting options from the current instance, with possible overrides.
|
|
1370
|
+
*
|
|
1371
|
+
* @param {Partial<ConsolaOptions>} options - Optional overrides for the new instance. See {@link ConsolaOptions}.
|
|
1372
|
+
* @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.
|
|
1373
|
+
*/
|
|
1374
|
+
create(options) {
|
|
1375
|
+
const instance = new _Consola({
|
|
1376
|
+
...this.options,
|
|
1377
|
+
...options
|
|
1378
|
+
});
|
|
1379
|
+
if (this._mockFn) {
|
|
1380
|
+
instance.mockTypes(this._mockFn);
|
|
1381
|
+
}
|
|
1382
|
+
return instance;
|
|
1383
|
+
}
|
|
1384
|
+
/**
|
|
1385
|
+
* Creates a new Consola instance with the specified default log object properties.
|
|
1386
|
+
*
|
|
1387
|
+
* @param {InputLogObject} defaults - Default properties to include in any log from the new instance. See {@link InputLogObject}.
|
|
1388
|
+
* @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.
|
|
1389
|
+
*/
|
|
1390
|
+
withDefaults(defaults) {
|
|
1391
|
+
return this.create({
|
|
1392
|
+
...this.options,
|
|
1393
|
+
defaults: {
|
|
1394
|
+
...this.options.defaults,
|
|
1395
|
+
...defaults
|
|
1396
|
+
}
|
|
1397
|
+
});
|
|
1398
|
+
}
|
|
1399
|
+
/**
|
|
1400
|
+
* Creates a new Consola instance with a specified tag, which will be included in every log.
|
|
1401
|
+
*
|
|
1402
|
+
* @param {string} tag - The tag to include in each log of the new instance.
|
|
1403
|
+
* @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.
|
|
1404
|
+
*/
|
|
1405
|
+
withTag(tag) {
|
|
1406
|
+
return this.withDefaults({
|
|
1407
|
+
tag: this.options.defaults.tag ? this.options.defaults.tag + ":" + tag : tag
|
|
1408
|
+
});
|
|
1409
|
+
}
|
|
1410
|
+
/**
|
|
1411
|
+
* Adds a custom reporter to the Consola instance.
|
|
1412
|
+
* Reporters will be called for each log message, depending on their implementation and log level.
|
|
1413
|
+
*
|
|
1414
|
+
* @param {ConsolaReporter} reporter - The reporter to add. See {@link ConsolaReporter}.
|
|
1415
|
+
* @returns {Consola} The current Consola instance.
|
|
1416
|
+
*/
|
|
1417
|
+
addReporter(reporter) {
|
|
1418
|
+
this.options.reporters.push(reporter);
|
|
1419
|
+
return this;
|
|
1420
|
+
}
|
|
1421
|
+
/**
|
|
1422
|
+
* Removes a custom reporter from the Consola instance.
|
|
1423
|
+
* If no reporter is specified, all reporters will be removed.
|
|
1424
|
+
*
|
|
1425
|
+
* @param {ConsolaReporter} reporter - The reporter to remove. See {@link ConsolaReporter}.
|
|
1426
|
+
* @returns {Consola} The current Consola instance.
|
|
1427
|
+
*/
|
|
1428
|
+
removeReporter(reporter) {
|
|
1429
|
+
if (reporter) {
|
|
1430
|
+
const i2 = this.options.reporters.indexOf(reporter);
|
|
1431
|
+
if (i2 !== -1) {
|
|
1432
|
+
return this.options.reporters.splice(i2, 1);
|
|
1433
|
+
}
|
|
1434
|
+
} else {
|
|
1435
|
+
this.options.reporters.splice(0);
|
|
1436
|
+
}
|
|
1437
|
+
return this;
|
|
1438
|
+
}
|
|
1439
|
+
/**
|
|
1440
|
+
* Replaces all reporters of the Consola instance with the specified array of reporters.
|
|
1441
|
+
*
|
|
1442
|
+
* @param {ConsolaReporter[]} reporters - The new reporters to set. See {@link ConsolaReporter}.
|
|
1443
|
+
* @returns {Consola} The current Consola instance.
|
|
1444
|
+
*/
|
|
1445
|
+
setReporters(reporters) {
|
|
1446
|
+
this.options.reporters = Array.isArray(reporters) ? reporters : [reporters];
|
|
1447
|
+
return this;
|
|
1448
|
+
}
|
|
1449
|
+
wrapAll() {
|
|
1450
|
+
this.wrapConsole();
|
|
1451
|
+
this.wrapStd();
|
|
1452
|
+
}
|
|
1453
|
+
restoreAll() {
|
|
1454
|
+
this.restoreConsole();
|
|
1455
|
+
this.restoreStd();
|
|
1456
|
+
}
|
|
1457
|
+
/**
|
|
1458
|
+
* Overrides console methods with Consola logging methods for consistent logging.
|
|
1459
|
+
*/
|
|
1460
|
+
wrapConsole() {
|
|
1461
|
+
for (const type in this.options.types) {
|
|
1462
|
+
if (!console["__" + type]) {
|
|
1463
|
+
console["__" + type] = console[type];
|
|
1464
|
+
}
|
|
1465
|
+
console[type] = this[type].raw;
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
/**
|
|
1469
|
+
* Restores the original console methods, removing Consola overrides.
|
|
1470
|
+
*/
|
|
1471
|
+
restoreConsole() {
|
|
1472
|
+
for (const type in this.options.types) {
|
|
1473
|
+
if (console["__" + type]) {
|
|
1474
|
+
console[type] = console["__" + type];
|
|
1475
|
+
delete console["__" + type];
|
|
1476
|
+
}
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
/**
|
|
1480
|
+
* Overrides standard output and error streams to redirect them through Consola.
|
|
1481
|
+
*/
|
|
1482
|
+
wrapStd() {
|
|
1483
|
+
this._wrapStream(this.options.stdout, "log");
|
|
1484
|
+
this._wrapStream(this.options.stderr, "log");
|
|
1485
|
+
}
|
|
1486
|
+
_wrapStream(stream, type) {
|
|
1487
|
+
if (!stream) {
|
|
1488
|
+
return;
|
|
1489
|
+
}
|
|
1490
|
+
if (!stream.__write) {
|
|
1491
|
+
stream.__write = stream.write;
|
|
1492
|
+
}
|
|
1493
|
+
stream.write = (data) => {
|
|
1494
|
+
this[type].raw(String(data).trim());
|
|
1495
|
+
};
|
|
1496
|
+
}
|
|
1497
|
+
/**
|
|
1498
|
+
* Restores the original standard output and error streams, removing the Consola redirection.
|
|
1499
|
+
*/
|
|
1500
|
+
restoreStd() {
|
|
1501
|
+
this._restoreStream(this.options.stdout);
|
|
1502
|
+
this._restoreStream(this.options.stderr);
|
|
1503
|
+
}
|
|
1504
|
+
_restoreStream(stream) {
|
|
1505
|
+
if (!stream) {
|
|
1506
|
+
return;
|
|
1507
|
+
}
|
|
1508
|
+
if (stream.__write) {
|
|
1509
|
+
stream.write = stream.__write;
|
|
1510
|
+
delete stream.__write;
|
|
1511
|
+
}
|
|
1512
|
+
}
|
|
1513
|
+
/**
|
|
1514
|
+
* Pauses logging, queues incoming logs until resumed.
|
|
1515
|
+
*/
|
|
1516
|
+
pauseLogs() {
|
|
1517
|
+
paused = true;
|
|
1518
|
+
}
|
|
1519
|
+
/**
|
|
1520
|
+
* Resumes logging, processing any queued logs.
|
|
1521
|
+
*/
|
|
1522
|
+
resumeLogs() {
|
|
1523
|
+
paused = false;
|
|
1524
|
+
const _queue = queue.splice(0);
|
|
1525
|
+
for (const item of _queue) {
|
|
1526
|
+
item[0]._logFn(item[1], item[2]);
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1529
|
+
/**
|
|
1530
|
+
* Replaces logging methods with mocks if a mock function is provided.
|
|
1531
|
+
*
|
|
1532
|
+
* @param {ConsolaOptions["mockFn"]} mockFn - The function to use for mocking logging methods. See {@link ConsolaOptions["mockFn"]}.
|
|
1533
|
+
*/
|
|
1534
|
+
mockTypes(mockFn) {
|
|
1535
|
+
const _mockFn = mockFn || this.options.mockFn;
|
|
1536
|
+
this._mockFn = _mockFn;
|
|
1537
|
+
if (typeof _mockFn !== "function") {
|
|
1538
|
+
return;
|
|
1539
|
+
}
|
|
1540
|
+
for (const type in this.options.types) {
|
|
1541
|
+
this[type] = _mockFn(type, this.options.types[type]) || this[type];
|
|
1542
|
+
this[type].raw = this[type];
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
_wrapLogFn(defaults, isRaw) {
|
|
1546
|
+
return (...args) => {
|
|
1547
|
+
if (paused) {
|
|
1548
|
+
queue.push([this, defaults, args, isRaw]);
|
|
1549
|
+
return;
|
|
1550
|
+
}
|
|
1551
|
+
return this._logFn(defaults, args, isRaw);
|
|
1552
|
+
};
|
|
1553
|
+
}
|
|
1554
|
+
_logFn(defaults, args, isRaw) {
|
|
1555
|
+
if ((defaults.level || 0) > this.level) {
|
|
1556
|
+
return false;
|
|
1557
|
+
}
|
|
1558
|
+
const logObj = {
|
|
1559
|
+
date: /* @__PURE__ */ new Date(),
|
|
1560
|
+
args: [],
|
|
1561
|
+
...defaults,
|
|
1562
|
+
level: _normalizeLogLevel(defaults.level, this.options.types)
|
|
1563
|
+
};
|
|
1564
|
+
if (!isRaw && args.length === 1 && isLogObj(args[0])) {
|
|
1565
|
+
Object.assign(logObj, args[0]);
|
|
1566
|
+
} else {
|
|
1567
|
+
logObj.args = [...args];
|
|
1568
|
+
}
|
|
1569
|
+
if (logObj.message) {
|
|
1570
|
+
logObj.args.unshift(logObj.message);
|
|
1571
|
+
delete logObj.message;
|
|
1572
|
+
}
|
|
1573
|
+
if (logObj.additional) {
|
|
1574
|
+
if (!Array.isArray(logObj.additional)) {
|
|
1575
|
+
logObj.additional = logObj.additional.split("\n");
|
|
1576
|
+
}
|
|
1577
|
+
logObj.args.push("\n" + logObj.additional.join("\n"));
|
|
1578
|
+
delete logObj.additional;
|
|
1579
|
+
}
|
|
1580
|
+
logObj.type = typeof logObj.type === "string" ? logObj.type.toLowerCase() : "log";
|
|
1581
|
+
logObj.tag = typeof logObj.tag === "string" ? logObj.tag : "";
|
|
1582
|
+
const resolveLog = (newLog = false) => {
|
|
1583
|
+
const repeated = (this._lastLog.count || 0) - this.options.throttleMin;
|
|
1584
|
+
if (this._lastLog.object && repeated > 0) {
|
|
1585
|
+
const args2 = [...this._lastLog.object.args];
|
|
1586
|
+
if (repeated > 1) {
|
|
1587
|
+
args2.push(`(repeated ${repeated} times)`);
|
|
1588
|
+
}
|
|
1589
|
+
this._log({ ...this._lastLog.object, args: args2 });
|
|
1590
|
+
this._lastLog.count = 1;
|
|
1591
|
+
}
|
|
1592
|
+
if (newLog) {
|
|
1593
|
+
this._lastLog.object = logObj;
|
|
1594
|
+
this._log(logObj);
|
|
1595
|
+
}
|
|
1596
|
+
};
|
|
1597
|
+
clearTimeout(this._lastLog.timeout);
|
|
1598
|
+
const diffTime = this._lastLog.time && logObj.date ? logObj.date.getTime() - this._lastLog.time.getTime() : 0;
|
|
1599
|
+
this._lastLog.time = logObj.date;
|
|
1600
|
+
if (diffTime < this.options.throttle) {
|
|
1601
|
+
try {
|
|
1602
|
+
const serializedLog = JSON.stringify([
|
|
1603
|
+
logObj.type,
|
|
1604
|
+
logObj.tag,
|
|
1605
|
+
logObj.args
|
|
1606
|
+
]);
|
|
1607
|
+
const isSameLog = this._lastLog.serialized === serializedLog;
|
|
1608
|
+
this._lastLog.serialized = serializedLog;
|
|
1609
|
+
if (isSameLog) {
|
|
1610
|
+
this._lastLog.count = (this._lastLog.count || 0) + 1;
|
|
1611
|
+
if (this._lastLog.count > this.options.throttleMin) {
|
|
1612
|
+
this._lastLog.timeout = setTimeout(
|
|
1613
|
+
resolveLog,
|
|
1614
|
+
this.options.throttle
|
|
1615
|
+
);
|
|
1616
|
+
return;
|
|
1617
|
+
}
|
|
1618
|
+
}
|
|
1619
|
+
} catch {
|
|
1620
|
+
}
|
|
1621
|
+
}
|
|
1622
|
+
resolveLog(true);
|
|
1623
|
+
}
|
|
1624
|
+
_log(logObj) {
|
|
1625
|
+
for (const reporter of this.options.reporters) {
|
|
1626
|
+
reporter.log(logObj, {
|
|
1627
|
+
options: this.options
|
|
1628
|
+
});
|
|
1629
|
+
}
|
|
1630
|
+
}
|
|
1631
|
+
};
|
|
1632
|
+
function _normalizeLogLevel(input, types = {}, defaultLevel = 3) {
|
|
1633
|
+
if (input === void 0) {
|
|
1634
|
+
return defaultLevel;
|
|
1635
|
+
}
|
|
1636
|
+
if (typeof input === "number") {
|
|
1637
|
+
return input;
|
|
1638
|
+
}
|
|
1639
|
+
if (types[input] && types[input].level !== void 0) {
|
|
1640
|
+
return types[input].level;
|
|
1641
|
+
}
|
|
1642
|
+
return defaultLevel;
|
|
1643
|
+
}
|
|
1644
|
+
Consola.prototype.add = Consola.prototype.addReporter;
|
|
1645
|
+
Consola.prototype.remove = Consola.prototype.removeReporter;
|
|
1646
|
+
Consola.prototype.clear = Consola.prototype.removeReporter;
|
|
1647
|
+
Consola.prototype.withScope = Consola.prototype.withTag;
|
|
1648
|
+
Consola.prototype.mock = Consola.prototype.mockTypes;
|
|
1649
|
+
Consola.prototype.pause = Consola.prototype.pauseLogs;
|
|
1650
|
+
Consola.prototype.resume = Consola.prototype.resumeLogs;
|
|
1651
|
+
function createConsola(options = {}) {
|
|
1652
|
+
return new Consola(options);
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
// ../../node_modules/.pnpm/consola@3.4.0/node_modules/consola/dist/shared/consola.Cs5FdtHD.mjs
|
|
1656
|
+
import { formatWithOptions } from "node:util";
|
|
1657
|
+
import { sep } from "node:path";
|
|
1658
|
+
function parseStack(stack) {
|
|
1659
|
+
const cwd = process.cwd() + sep;
|
|
1660
|
+
const lines = stack.split("\n").splice(1).map((l2) => l2.trim().replace("file://", "").replace(cwd, ""));
|
|
1661
|
+
return lines;
|
|
1662
|
+
}
|
|
1663
|
+
function writeStream(data, stream) {
|
|
1664
|
+
const write = stream.__write || stream.write;
|
|
1665
|
+
return write.call(stream, data);
|
|
1666
|
+
}
|
|
1667
|
+
var bracket = (x) => x ? `[${x}]` : "";
|
|
1668
|
+
var BasicReporter = class {
|
|
1669
|
+
formatStack(stack, opts) {
|
|
1670
|
+
const indent = " ".repeat((opts?.errorLevel || 0) + 1);
|
|
1671
|
+
return indent + parseStack(stack).join(`
|
|
1672
|
+
${indent}`);
|
|
1673
|
+
}
|
|
1674
|
+
formatError(err, opts) {
|
|
1675
|
+
const message = err.message ?? formatWithOptions(opts, err);
|
|
1676
|
+
const stack = err.stack ? this.formatStack(err.stack, opts) : "";
|
|
1677
|
+
const level = opts?.errorLevel || 0;
|
|
1678
|
+
const causedPrefix = level > 0 ? `${" ".repeat(level)}[cause]: ` : "";
|
|
1679
|
+
const causedError = err.cause ? "\n\n" + this.formatError(err.cause, { ...opts, errorLevel: level + 1 }) : "";
|
|
1680
|
+
return causedPrefix + message + "\n" + stack + causedError;
|
|
1681
|
+
}
|
|
1682
|
+
formatArgs(args, opts) {
|
|
1683
|
+
const _args = args.map((arg) => {
|
|
1684
|
+
if (arg && typeof arg.stack === "string") {
|
|
1685
|
+
return this.formatError(arg, opts);
|
|
1686
|
+
}
|
|
1687
|
+
return arg;
|
|
1688
|
+
});
|
|
1689
|
+
return formatWithOptions(opts, ..._args);
|
|
1690
|
+
}
|
|
1691
|
+
formatDate(date, opts) {
|
|
1692
|
+
return opts.date ? date.toLocaleTimeString() : "";
|
|
1693
|
+
}
|
|
1694
|
+
filterAndJoin(arr) {
|
|
1695
|
+
return arr.filter(Boolean).join(" ");
|
|
1696
|
+
}
|
|
1697
|
+
formatLogObj(logObj, opts) {
|
|
1698
|
+
const message = this.formatArgs(logObj.args, opts);
|
|
1699
|
+
if (logObj.type === "box") {
|
|
1700
|
+
return "\n" + [
|
|
1701
|
+
bracket(logObj.tag),
|
|
1702
|
+
logObj.title && logObj.title,
|
|
1703
|
+
...message.split("\n")
|
|
1704
|
+
].filter(Boolean).map((l2) => " > " + l2).join("\n") + "\n";
|
|
1705
|
+
}
|
|
1706
|
+
return this.filterAndJoin([
|
|
1707
|
+
bracket(logObj.type),
|
|
1708
|
+
bracket(logObj.tag),
|
|
1709
|
+
message
|
|
1710
|
+
]);
|
|
1711
|
+
}
|
|
1712
|
+
log(logObj, ctx) {
|
|
1713
|
+
const line = this.formatLogObj(logObj, {
|
|
1714
|
+
columns: ctx.options.stdout.columns || 0,
|
|
1715
|
+
...ctx.options.formatOptions
|
|
1716
|
+
});
|
|
1717
|
+
return writeStream(
|
|
1718
|
+
line + "\n",
|
|
1719
|
+
logObj.level < 2 ? ctx.options.stderr || process.stderr : ctx.options.stdout || process.stdout
|
|
1720
|
+
);
|
|
1721
|
+
}
|
|
1722
|
+
};
|
|
1723
|
+
|
|
1724
|
+
// ../../node_modules/.pnpm/consola@3.4.0/node_modules/consola/dist/index.mjs
|
|
1725
|
+
import p$1 from "node:process";
|
|
1726
|
+
|
|
1727
|
+
// ../../node_modules/.pnpm/consola@3.4.0/node_modules/consola/dist/shared/consola.lX6kr4n8.mjs
|
|
1728
|
+
import * as tty from "node:tty";
|
|
1729
|
+
var {
|
|
1730
|
+
env = {},
|
|
1731
|
+
argv = [],
|
|
1732
|
+
platform = ""
|
|
1733
|
+
} = typeof process === "undefined" ? {} : process;
|
|
1734
|
+
var isDisabled = "NO_COLOR" in env || argv.includes("--no-color");
|
|
1735
|
+
var isForced = "FORCE_COLOR" in env || argv.includes("--color");
|
|
1736
|
+
var isWindows = platform === "win32";
|
|
1737
|
+
var isDumbTerminal = env.TERM === "dumb";
|
|
1738
|
+
var isCompatibleTerminal = tty && tty.isatty && tty.isatty(1) && env.TERM && !isDumbTerminal;
|
|
1739
|
+
var isCI = "CI" in env && ("GITHUB_ACTIONS" in env || "GITLAB_CI" in env || "CIRCLECI" in env);
|
|
1740
|
+
var isColorSupported = !isDisabled && (isForced || isWindows && !isDumbTerminal || isCompatibleTerminal || isCI);
|
|
1741
|
+
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)) {
|
|
1742
|
+
return head + (next < 0 ? tail : replaceClose(next, tail, close, replace));
|
|
1743
|
+
}
|
|
1744
|
+
function clearBleed(index, string, open, close, replace) {
|
|
1745
|
+
return index < 0 ? open + string + close : open + replaceClose(index, string, close, replace) + close;
|
|
1746
|
+
}
|
|
1747
|
+
function filterEmpty(open, close, replace = open, at = open.length + 1) {
|
|
1748
|
+
return (string) => string || !(string === "" || string === void 0) ? clearBleed(
|
|
1749
|
+
("" + string).indexOf(close, at),
|
|
1750
|
+
string,
|
|
1751
|
+
open,
|
|
1752
|
+
close,
|
|
1753
|
+
replace
|
|
1754
|
+
) : "";
|
|
1755
|
+
}
|
|
1756
|
+
function init(open, close, replace) {
|
|
1757
|
+
return filterEmpty(`\x1B[${open}m`, `\x1B[${close}m`, replace);
|
|
1758
|
+
}
|
|
1759
|
+
var colorDefs = {
|
|
1760
|
+
reset: init(0, 0),
|
|
1761
|
+
bold: init(1, 22, "\x1B[22m\x1B[1m"),
|
|
1762
|
+
dim: init(2, 22, "\x1B[22m\x1B[2m"),
|
|
1763
|
+
italic: init(3, 23),
|
|
1764
|
+
underline: init(4, 24),
|
|
1765
|
+
inverse: init(7, 27),
|
|
1766
|
+
hidden: init(8, 28),
|
|
1767
|
+
strikethrough: init(9, 29),
|
|
1768
|
+
black: init(30, 39),
|
|
1769
|
+
red: init(31, 39),
|
|
1770
|
+
green: init(32, 39),
|
|
1771
|
+
yellow: init(33, 39),
|
|
1772
|
+
blue: init(34, 39),
|
|
1773
|
+
magenta: init(35, 39),
|
|
1774
|
+
cyan: init(36, 39),
|
|
1775
|
+
white: init(37, 39),
|
|
1776
|
+
gray: init(90, 39),
|
|
1777
|
+
bgBlack: init(40, 49),
|
|
1778
|
+
bgRed: init(41, 49),
|
|
1779
|
+
bgGreen: init(42, 49),
|
|
1780
|
+
bgYellow: init(43, 49),
|
|
1781
|
+
bgBlue: init(44, 49),
|
|
1782
|
+
bgMagenta: init(45, 49),
|
|
1783
|
+
bgCyan: init(46, 49),
|
|
1784
|
+
bgWhite: init(47, 49),
|
|
1785
|
+
blackBright: init(90, 39),
|
|
1786
|
+
redBright: init(91, 39),
|
|
1787
|
+
greenBright: init(92, 39),
|
|
1788
|
+
yellowBright: init(93, 39),
|
|
1789
|
+
blueBright: init(94, 39),
|
|
1790
|
+
magentaBright: init(95, 39),
|
|
1791
|
+
cyanBright: init(96, 39),
|
|
1792
|
+
whiteBright: init(97, 39),
|
|
1793
|
+
bgBlackBright: init(100, 49),
|
|
1794
|
+
bgRedBright: init(101, 49),
|
|
1795
|
+
bgGreenBright: init(102, 49),
|
|
1796
|
+
bgYellowBright: init(103, 49),
|
|
1797
|
+
bgBlueBright: init(104, 49),
|
|
1798
|
+
bgMagentaBright: init(105, 49),
|
|
1799
|
+
bgCyanBright: init(106, 49),
|
|
1800
|
+
bgWhiteBright: init(107, 49)
|
|
1801
|
+
};
|
|
1802
|
+
function createColors(useColor = isColorSupported) {
|
|
1803
|
+
return useColor ? colorDefs : Object.fromEntries(Object.keys(colorDefs).map((key) => [key, String]));
|
|
1804
|
+
}
|
|
1805
|
+
var colors = createColors();
|
|
1806
|
+
function getColor(color, fallback = "reset") {
|
|
1807
|
+
return colors[color] || colors[fallback];
|
|
1808
|
+
}
|
|
1809
|
+
var ansiRegex = [
|
|
1810
|
+
String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`,
|
|
1811
|
+
String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`
|
|
1812
|
+
].join("|");
|
|
1813
|
+
function stripAnsi(text) {
|
|
1814
|
+
return text.replace(new RegExp(ansiRegex, "g"), "");
|
|
1815
|
+
}
|
|
1816
|
+
var boxStylePresets = {
|
|
1817
|
+
solid: {
|
|
1818
|
+
tl: "\u250C",
|
|
1819
|
+
tr: "\u2510",
|
|
1820
|
+
bl: "\u2514",
|
|
1821
|
+
br: "\u2518",
|
|
1822
|
+
h: "\u2500",
|
|
1823
|
+
v: "\u2502"
|
|
1824
|
+
},
|
|
1825
|
+
double: {
|
|
1826
|
+
tl: "\u2554",
|
|
1827
|
+
tr: "\u2557",
|
|
1828
|
+
bl: "\u255A",
|
|
1829
|
+
br: "\u255D",
|
|
1830
|
+
h: "\u2550",
|
|
1831
|
+
v: "\u2551"
|
|
1832
|
+
},
|
|
1833
|
+
doubleSingle: {
|
|
1834
|
+
tl: "\u2553",
|
|
1835
|
+
tr: "\u2556",
|
|
1836
|
+
bl: "\u2559",
|
|
1837
|
+
br: "\u255C",
|
|
1838
|
+
h: "\u2500",
|
|
1839
|
+
v: "\u2551"
|
|
1840
|
+
},
|
|
1841
|
+
doubleSingleRounded: {
|
|
1842
|
+
tl: "\u256D",
|
|
1843
|
+
tr: "\u256E",
|
|
1844
|
+
bl: "\u2570",
|
|
1845
|
+
br: "\u256F",
|
|
1846
|
+
h: "\u2500",
|
|
1847
|
+
v: "\u2551"
|
|
1848
|
+
},
|
|
1849
|
+
singleThick: {
|
|
1850
|
+
tl: "\u250F",
|
|
1851
|
+
tr: "\u2513",
|
|
1852
|
+
bl: "\u2517",
|
|
1853
|
+
br: "\u251B",
|
|
1854
|
+
h: "\u2501",
|
|
1855
|
+
v: "\u2503"
|
|
1856
|
+
},
|
|
1857
|
+
singleDouble: {
|
|
1858
|
+
tl: "\u2552",
|
|
1859
|
+
tr: "\u2555",
|
|
1860
|
+
bl: "\u2558",
|
|
1861
|
+
br: "\u255B",
|
|
1862
|
+
h: "\u2550",
|
|
1863
|
+
v: "\u2502"
|
|
1864
|
+
},
|
|
1865
|
+
singleDoubleRounded: {
|
|
1866
|
+
tl: "\u256D",
|
|
1867
|
+
tr: "\u256E",
|
|
1868
|
+
bl: "\u2570",
|
|
1869
|
+
br: "\u256F",
|
|
1870
|
+
h: "\u2550",
|
|
1871
|
+
v: "\u2502"
|
|
1872
|
+
},
|
|
1873
|
+
rounded: {
|
|
1874
|
+
tl: "\u256D",
|
|
1875
|
+
tr: "\u256E",
|
|
1876
|
+
bl: "\u2570",
|
|
1877
|
+
br: "\u256F",
|
|
1878
|
+
h: "\u2500",
|
|
1879
|
+
v: "\u2502"
|
|
1880
|
+
}
|
|
1881
|
+
};
|
|
1882
|
+
var defaultStyle = {
|
|
1883
|
+
borderColor: "white",
|
|
1884
|
+
borderStyle: "rounded",
|
|
1885
|
+
valign: "center",
|
|
1886
|
+
padding: 2,
|
|
1887
|
+
marginLeft: 1,
|
|
1888
|
+
marginTop: 1,
|
|
1889
|
+
marginBottom: 1
|
|
1890
|
+
};
|
|
1891
|
+
function box(text, _opts = {}) {
|
|
1892
|
+
const opts = {
|
|
1893
|
+
..._opts,
|
|
1894
|
+
style: {
|
|
1895
|
+
...defaultStyle,
|
|
1896
|
+
..._opts.style
|
|
1897
|
+
}
|
|
1898
|
+
};
|
|
1899
|
+
const textLines = text.split("\n");
|
|
1900
|
+
const boxLines = [];
|
|
1901
|
+
const _color = getColor(opts.style.borderColor);
|
|
1902
|
+
const borderStyle = {
|
|
1903
|
+
...typeof opts.style.borderStyle === "string" ? boxStylePresets[opts.style.borderStyle] || boxStylePresets.solid : opts.style.borderStyle
|
|
1904
|
+
};
|
|
1905
|
+
if (_color) {
|
|
1906
|
+
for (const key in borderStyle) {
|
|
1907
|
+
borderStyle[key] = _color(
|
|
1908
|
+
borderStyle[key]
|
|
1909
|
+
);
|
|
1910
|
+
}
|
|
1911
|
+
}
|
|
1912
|
+
const paddingOffset = opts.style.padding % 2 === 0 ? opts.style.padding : opts.style.padding + 1;
|
|
1913
|
+
const height = textLines.length + paddingOffset;
|
|
1914
|
+
const width = Math.max(...textLines.map((line) => stripAnsi(line).length)) + paddingOffset;
|
|
1915
|
+
const widthOffset = width + paddingOffset;
|
|
1916
|
+
const leftSpace = opts.style.marginLeft > 0 ? " ".repeat(opts.style.marginLeft) : "";
|
|
1917
|
+
if (opts.style.marginTop > 0) {
|
|
1918
|
+
boxLines.push("".repeat(opts.style.marginTop));
|
|
1919
|
+
}
|
|
1920
|
+
if (opts.title) {
|
|
1921
|
+
const title = _color ? _color(opts.title) : opts.title;
|
|
1922
|
+
const left = borderStyle.h.repeat(
|
|
1923
|
+
Math.floor((width - stripAnsi(opts.title).length) / 2)
|
|
1924
|
+
);
|
|
1925
|
+
const right = borderStyle.h.repeat(
|
|
1926
|
+
width - stripAnsi(opts.title).length - stripAnsi(left).length + paddingOffset
|
|
1927
|
+
);
|
|
1928
|
+
boxLines.push(
|
|
1929
|
+
`${leftSpace}${borderStyle.tl}${left}${title}${right}${borderStyle.tr}`
|
|
1930
|
+
);
|
|
1931
|
+
} else {
|
|
1932
|
+
boxLines.push(
|
|
1933
|
+
`${leftSpace}${borderStyle.tl}${borderStyle.h.repeat(widthOffset)}${borderStyle.tr}`
|
|
1934
|
+
);
|
|
1935
|
+
}
|
|
1936
|
+
const valignOffset = opts.style.valign === "center" ? Math.floor((height - textLines.length) / 2) : opts.style.valign === "top" ? height - textLines.length - paddingOffset : height - textLines.length;
|
|
1937
|
+
for (let i2 = 0; i2 < height; i2++) {
|
|
1938
|
+
if (i2 < valignOffset || i2 >= valignOffset + textLines.length) {
|
|
1939
|
+
boxLines.push(
|
|
1940
|
+
`${leftSpace}${borderStyle.v}${" ".repeat(widthOffset)}${borderStyle.v}`
|
|
1941
|
+
);
|
|
1942
|
+
} else {
|
|
1943
|
+
const line = textLines[i2 - valignOffset];
|
|
1944
|
+
const left = " ".repeat(paddingOffset);
|
|
1945
|
+
const right = " ".repeat(width - stripAnsi(line).length);
|
|
1946
|
+
boxLines.push(
|
|
1947
|
+
`${leftSpace}${borderStyle.v}${left}${line}${right}${borderStyle.v}`
|
|
1948
|
+
);
|
|
1949
|
+
}
|
|
1950
|
+
}
|
|
1951
|
+
boxLines.push(
|
|
1952
|
+
`${leftSpace}${borderStyle.bl}${borderStyle.h.repeat(widthOffset)}${borderStyle.br}`
|
|
1953
|
+
);
|
|
1954
|
+
if (opts.style.marginBottom > 0) {
|
|
1955
|
+
boxLines.push("".repeat(opts.style.marginBottom));
|
|
1956
|
+
}
|
|
1957
|
+
return boxLines.join("\n");
|
|
1958
|
+
}
|
|
1959
|
+
|
|
1960
|
+
// ../../node_modules/.pnpm/consola@3.4.0/node_modules/consola/dist/index.mjs
|
|
1961
|
+
var r = /* @__PURE__ */ Object.create(null);
|
|
1962
|
+
var i = (e) => globalThis.process?.env || import.meta.env || globalThis.Deno?.env.toObject() || globalThis.__env__ || (e ? r : globalThis);
|
|
1963
|
+
var s$1 = new Proxy(r, { get(e, o) {
|
|
1964
|
+
return i()[o] ?? r[o];
|
|
1965
|
+
}, has(e, o) {
|
|
1966
|
+
const E = i();
|
|
1967
|
+
return o in E || o in r;
|
|
1968
|
+
}, set(e, o, E) {
|
|
1969
|
+
const b = i(true);
|
|
1970
|
+
return b[o] = E, true;
|
|
1971
|
+
}, deleteProperty(e, o) {
|
|
1972
|
+
if (!o) return false;
|
|
1973
|
+
const E = i(true);
|
|
1974
|
+
return delete E[o], true;
|
|
1975
|
+
}, ownKeys() {
|
|
1976
|
+
const e = i(true);
|
|
1977
|
+
return Object.keys(e);
|
|
1978
|
+
} });
|
|
1979
|
+
var t = typeof process < "u" && process.env && process.env.NODE_ENV || "";
|
|
1980
|
+
var B = [["APPVEYOR"], ["AWS_AMPLIFY", "AWS_APP_ID", { ci: true }], ["AZURE_PIPELINES", "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"], ["AZURE_STATIC", "INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"], ["APPCIRCLE", "AC_APPCIRCLE"], ["BAMBOO", "bamboo_planKey"], ["BITBUCKET", "BITBUCKET_COMMIT"], ["BITRISE", "BITRISE_IO"], ["BUDDY", "BUDDY_WORKSPACE_ID"], ["BUILDKITE"], ["CIRCLE", "CIRCLECI"], ["CIRRUS", "CIRRUS_CI"], ["CLOUDFLARE_PAGES", "CF_PAGES", { ci: true }], ["CODEBUILD", "CODEBUILD_BUILD_ARN"], ["CODEFRESH", "CF_BUILD_ID"], ["DRONE"], ["DRONE", "DRONE_BUILD_EVENT"], ["DSARI"], ["GITHUB_ACTIONS"], ["GITLAB", "GITLAB_CI"], ["GITLAB", "CI_MERGE_REQUEST_ID"], ["GOCD", "GO_PIPELINE_LABEL"], ["LAYERCI"], ["HUDSON", "HUDSON_URL"], ["JENKINS", "JENKINS_URL"], ["MAGNUM"], ["NETLIFY"], ["NETLIFY", "NETLIFY_LOCAL", { ci: false }], ["NEVERCODE"], ["RENDER"], ["SAIL", "SAILCI"], ["SEMAPHORE"], ["SCREWDRIVER"], ["SHIPPABLE"], ["SOLANO", "TDDIUM"], ["STRIDER"], ["TEAMCITY", "TEAMCITY_VERSION"], ["TRAVIS"], ["VERCEL", "NOW_BUILDER"], ["VERCEL", "VERCEL", { ci: false }], ["VERCEL", "VERCEL_ENV", { ci: false }], ["APPCENTER", "APPCENTER_BUILD_ID"], ["CODESANDBOX", "CODESANDBOX_SSE", { ci: false }], ["STACKBLITZ"], ["STORMKIT"], ["CLEAVR"], ["ZEABUR"], ["CODESPHERE", "CODESPHERE_APP_ID", { ci: true }], ["RAILWAY", "RAILWAY_PROJECT_ID"], ["RAILWAY", "RAILWAY_SERVICE_ID"], ["DENO-DEPLOY", "DENO_DEPLOYMENT_ID"], ["FIREBASE_APP_HOSTING", "FIREBASE_APP_HOSTING", { ci: true }]];
|
|
1981
|
+
function p() {
|
|
1982
|
+
if (globalThis.process?.env) for (const e of B) {
|
|
1983
|
+
const o = e[1] || e[0];
|
|
1984
|
+
if (globalThis.process?.env[o]) return { name: e[0].toLowerCase(), ...e[2] };
|
|
1985
|
+
}
|
|
1986
|
+
return globalThis.process?.env?.SHELL === "/bin/jsh" && globalThis.process?.versions?.webcontainer ? { name: "stackblitz", ci: false } : { name: "", ci: false };
|
|
1987
|
+
}
|
|
1988
|
+
var l = p();
|
|
1989
|
+
l.name;
|
|
1990
|
+
function n(e) {
|
|
1991
|
+
return e ? e !== "false" : false;
|
|
1992
|
+
}
|
|
1993
|
+
var I = globalThis.process?.platform || "";
|
|
1994
|
+
var T = n(s$1.CI) || l.ci !== false;
|
|
1995
|
+
var R = n(globalThis.process?.stdout && globalThis.process?.stdout.isTTY);
|
|
1996
|
+
var U = n(s$1.DEBUG);
|
|
1997
|
+
var A = t === "test" || n(s$1.TEST);
|
|
1998
|
+
n(s$1.MINIMAL) || T || A || !R;
|
|
1999
|
+
var _ = /^win/i.test(I);
|
|
2000
|
+
!n(s$1.NO_COLOR) && (n(s$1.FORCE_COLOR) || (R || _) && s$1.TERM !== "dumb" || T);
|
|
2001
|
+
var C = (globalThis.process?.versions?.node || "").replace(/^v/, "") || null;
|
|
2002
|
+
Number(C?.split(".")[0]) || null;
|
|
2003
|
+
var y = globalThis.process || /* @__PURE__ */ Object.create(null);
|
|
2004
|
+
var c = { versions: {} };
|
|
2005
|
+
new Proxy(y, { get(e, o) {
|
|
2006
|
+
if (o === "env") return s$1;
|
|
2007
|
+
if (o in e) return e[o];
|
|
2008
|
+
if (o in c) return c[o];
|
|
2009
|
+
} });
|
|
2010
|
+
var L = globalThis.process?.release?.name === "node";
|
|
2011
|
+
var a = !!globalThis.Bun || !!globalThis.process?.versions?.bun;
|
|
2012
|
+
var D = !!globalThis.Deno;
|
|
2013
|
+
var O = !!globalThis.fastly;
|
|
2014
|
+
var S = !!globalThis.Netlify;
|
|
2015
|
+
var N = !!globalThis.EdgeRuntime;
|
|
2016
|
+
var P = globalThis.navigator?.userAgent === "Cloudflare-Workers";
|
|
2017
|
+
var F = [[S, "netlify"], [N, "edge-light"], [P, "workerd"], [O, "fastly"], [D, "deno"], [a, "bun"], [L, "node"]];
|
|
2018
|
+
function G() {
|
|
2019
|
+
const e = F.find((o) => o[0]);
|
|
2020
|
+
if (e) return { name: e[1] };
|
|
2021
|
+
}
|
|
2022
|
+
var u = G();
|
|
2023
|
+
u?.name || "";
|
|
2024
|
+
function ansiRegex2({ onlyFirst = false } = {}) {
|
|
2025
|
+
const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
|
|
2026
|
+
const pattern = [
|
|
2027
|
+
`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
|
|
2028
|
+
"(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
|
|
2029
|
+
].join("|");
|
|
2030
|
+
return new RegExp(pattern, onlyFirst ? void 0 : "g");
|
|
2031
|
+
}
|
|
2032
|
+
var regex = ansiRegex2();
|
|
2033
|
+
function stripAnsi2(string) {
|
|
2034
|
+
if (typeof string !== "string") {
|
|
2035
|
+
throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
|
|
2036
|
+
}
|
|
2037
|
+
return string.replace(regex, "");
|
|
2038
|
+
}
|
|
2039
|
+
function isAmbiguous(x) {
|
|
2040
|
+
return x === 161 || x === 164 || x === 167 || x === 168 || x === 170 || x === 173 || x === 174 || x >= 176 && x <= 180 || x >= 182 && x <= 186 || x >= 188 && x <= 191 || x === 198 || x === 208 || x === 215 || x === 216 || x >= 222 && x <= 225 || x === 230 || x >= 232 && x <= 234 || x === 236 || x === 237 || x === 240 || x === 242 || x === 243 || x >= 247 && x <= 250 || x === 252 || x === 254 || x === 257 || x === 273 || x === 275 || x === 283 || x === 294 || x === 295 || x === 299 || x >= 305 && x <= 307 || x === 312 || x >= 319 && x <= 322 || x === 324 || x >= 328 && x <= 331 || x === 333 || x === 338 || x === 339 || x === 358 || x === 359 || x === 363 || x === 462 || x === 464 || x === 466 || x === 468 || x === 470 || x === 472 || x === 474 || x === 476 || x === 593 || x === 609 || x === 708 || x === 711 || x >= 713 && x <= 715 || x === 717 || x === 720 || x >= 728 && x <= 731 || x === 733 || x === 735 || x >= 768 && x <= 879 || x >= 913 && x <= 929 || x >= 931 && x <= 937 || x >= 945 && x <= 961 || x >= 963 && x <= 969 || x === 1025 || x >= 1040 && x <= 1103 || x === 1105 || x === 8208 || x >= 8211 && x <= 8214 || x === 8216 || x === 8217 || x === 8220 || x === 8221 || x >= 8224 && x <= 8226 || x >= 8228 && x <= 8231 || x === 8240 || x === 8242 || x === 8243 || x === 8245 || x === 8251 || x === 8254 || x === 8308 || x === 8319 || x >= 8321 && x <= 8324 || x === 8364 || x === 8451 || x === 8453 || x === 8457 || x === 8467 || x === 8470 || x === 8481 || x === 8482 || x === 8486 || x === 8491 || x === 8531 || x === 8532 || x >= 8539 && x <= 8542 || x >= 8544 && x <= 8555 || x >= 8560 && x <= 8569 || x === 8585 || x >= 8592 && x <= 8601 || x === 8632 || x === 8633 || x === 8658 || x === 8660 || x === 8679 || x === 8704 || x === 8706 || x === 8707 || x === 8711 || x === 8712 || x === 8715 || x === 8719 || x === 8721 || x === 8725 || x === 8730 || x >= 8733 && x <= 8736 || x === 8739 || x === 8741 || x >= 8743 && x <= 8748 || x === 8750 || x >= 8756 && x <= 8759 || x === 8764 || x === 8765 || x === 8776 || x === 8780 || x === 8786 || x === 8800 || x === 8801 || x >= 8804 && x <= 8807 || x === 8810 || x === 8811 || x === 8814 || x === 8815 || x === 8834 || x === 8835 || x === 8838 || x === 8839 || x === 8853 || x === 8857 || x === 8869 || x === 8895 || x === 8978 || x >= 9312 && x <= 9449 || x >= 9451 && x <= 9547 || x >= 9552 && x <= 9587 || x >= 9600 && x <= 9615 || x >= 9618 && x <= 9621 || x === 9632 || x === 9633 || x >= 9635 && x <= 9641 || x === 9650 || x === 9651 || x === 9654 || x === 9655 || x === 9660 || x === 9661 || x === 9664 || x === 9665 || x >= 9670 && x <= 9672 || x === 9675 || x >= 9678 && x <= 9681 || x >= 9698 && x <= 9701 || x === 9711 || x === 9733 || x === 9734 || x === 9737 || x === 9742 || x === 9743 || x === 9756 || x === 9758 || x === 9792 || x === 9794 || x === 9824 || x === 9825 || x >= 9827 && x <= 9829 || x >= 9831 && x <= 9834 || x === 9836 || x === 9837 || x === 9839 || x === 9886 || x === 9887 || x === 9919 || x >= 9926 && x <= 9933 || x >= 9935 && x <= 9939 || x >= 9941 && x <= 9953 || x === 9955 || x === 9960 || x === 9961 || x >= 9963 && x <= 9969 || x === 9972 || x >= 9974 && x <= 9977 || x === 9979 || x === 9980 || x === 9982 || x === 9983 || x === 10045 || x >= 10102 && x <= 10111 || x >= 11094 && x <= 11097 || x >= 12872 && x <= 12879 || x >= 57344 && x <= 63743 || x >= 65024 && x <= 65039 || x === 65533 || x >= 127232 && x <= 127242 || x >= 127248 && x <= 127277 || x >= 127280 && x <= 127337 || x >= 127344 && x <= 127373 || x === 127375 || x === 127376 || x >= 127387 && x <= 127404 || x >= 917760 && x <= 917999 || x >= 983040 && x <= 1048573 || x >= 1048576 && x <= 1114109;
|
|
2041
|
+
}
|
|
2042
|
+
function isFullWidth(x) {
|
|
2043
|
+
return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
|
|
2044
|
+
}
|
|
2045
|
+
function isWide(x) {
|
|
2046
|
+
return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
|
|
2047
|
+
}
|
|
2048
|
+
function validate(codePoint) {
|
|
2049
|
+
if (!Number.isSafeInteger(codePoint)) {
|
|
2050
|
+
throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
|
|
2051
|
+
}
|
|
2052
|
+
}
|
|
2053
|
+
function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
|
|
2054
|
+
validate(codePoint);
|
|
2055
|
+
if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
|
|
2056
|
+
return 2;
|
|
2057
|
+
}
|
|
2058
|
+
return 1;
|
|
2059
|
+
}
|
|
2060
|
+
var emojiRegex = () => {
|
|
2061
|
+
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;
|
|
2062
|
+
};
|
|
2063
|
+
var segmenter = globalThis.Intl?.Segmenter ? new Intl.Segmenter() : { segment: (str) => str.split("") };
|
|
2064
|
+
var defaultIgnorableCodePointRegex = /^\p{Default_Ignorable_Code_Point}$/u;
|
|
2065
|
+
function stringWidth$1(string, options = {}) {
|
|
2066
|
+
if (typeof string !== "string" || string.length === 0) {
|
|
2067
|
+
return 0;
|
|
2068
|
+
}
|
|
2069
|
+
const {
|
|
2070
|
+
ambiguousIsNarrow = true,
|
|
2071
|
+
countAnsiEscapeCodes = false
|
|
2072
|
+
} = options;
|
|
2073
|
+
if (!countAnsiEscapeCodes) {
|
|
2074
|
+
string = stripAnsi2(string);
|
|
2075
|
+
}
|
|
2076
|
+
if (string.length === 0) {
|
|
2077
|
+
return 0;
|
|
2078
|
+
}
|
|
2079
|
+
let width = 0;
|
|
2080
|
+
const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
|
|
2081
|
+
for (const { segment: character } of segmenter.segment(string)) {
|
|
2082
|
+
const codePoint = character.codePointAt(0);
|
|
2083
|
+
if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
|
|
2084
|
+
continue;
|
|
2085
|
+
}
|
|
2086
|
+
if (codePoint >= 8203 && codePoint <= 8207 || codePoint === 65279) {
|
|
2087
|
+
continue;
|
|
2088
|
+
}
|
|
2089
|
+
if (codePoint >= 768 && codePoint <= 879 || codePoint >= 6832 && codePoint <= 6911 || codePoint >= 7616 && codePoint <= 7679 || codePoint >= 8400 && codePoint <= 8447 || codePoint >= 65056 && codePoint <= 65071) {
|
|
2090
|
+
continue;
|
|
2091
|
+
}
|
|
2092
|
+
if (codePoint >= 55296 && codePoint <= 57343) {
|
|
2093
|
+
continue;
|
|
2094
|
+
}
|
|
2095
|
+
if (codePoint >= 65024 && codePoint <= 65039) {
|
|
2096
|
+
continue;
|
|
2097
|
+
}
|
|
2098
|
+
if (defaultIgnorableCodePointRegex.test(character)) {
|
|
2099
|
+
continue;
|
|
2100
|
+
}
|
|
2101
|
+
if (emojiRegex().test(character)) {
|
|
2102
|
+
width += 2;
|
|
2103
|
+
continue;
|
|
2104
|
+
}
|
|
2105
|
+
width += eastAsianWidth(codePoint, eastAsianWidthOptions);
|
|
2106
|
+
}
|
|
2107
|
+
return width;
|
|
2108
|
+
}
|
|
2109
|
+
function isUnicodeSupported() {
|
|
2110
|
+
const { env: env3 } = p$1;
|
|
2111
|
+
const { TERM, TERM_PROGRAM } = env3;
|
|
2112
|
+
if (p$1.platform !== "win32") {
|
|
2113
|
+
return TERM !== "linux";
|
|
2114
|
+
}
|
|
2115
|
+
return Boolean(env3.WT_SESSION) || Boolean(env3.TERMINUS_SUBLIME) || env3.ConEmuTask === "{cmd::Cmder}" || TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env3.TERMINAL_EMULATOR === "JetBrains-JediTerm";
|
|
2116
|
+
}
|
|
2117
|
+
var TYPE_COLOR_MAP = {
|
|
2118
|
+
info: "cyan",
|
|
2119
|
+
fail: "red",
|
|
2120
|
+
success: "green",
|
|
2121
|
+
ready: "green",
|
|
2122
|
+
start: "magenta"
|
|
2123
|
+
};
|
|
2124
|
+
var LEVEL_COLOR_MAP = {
|
|
2125
|
+
0: "red",
|
|
2126
|
+
1: "yellow"
|
|
2127
|
+
};
|
|
2128
|
+
var unicode = isUnicodeSupported();
|
|
2129
|
+
var s = (c2, fallback) => unicode ? c2 : fallback;
|
|
2130
|
+
var TYPE_ICONS = {
|
|
2131
|
+
error: s("\u2716", "\xD7"),
|
|
2132
|
+
fatal: s("\u2716", "\xD7"),
|
|
2133
|
+
ready: s("\u2714", "\u221A"),
|
|
2134
|
+
warn: s("\u26A0", "\u203C"),
|
|
2135
|
+
info: s("\u2139", "i"),
|
|
2136
|
+
success: s("\u2714", "\u221A"),
|
|
2137
|
+
debug: s("\u2699", "D"),
|
|
2138
|
+
trace: s("\u2192", "\u2192"),
|
|
2139
|
+
fail: s("\u2716", "\xD7"),
|
|
2140
|
+
start: s("\u25D0", "o"),
|
|
2141
|
+
log: ""
|
|
2142
|
+
};
|
|
2143
|
+
function stringWidth(str) {
|
|
2144
|
+
const hasICU = typeof Intl === "object";
|
|
2145
|
+
if (!hasICU || !Intl.Segmenter) {
|
|
2146
|
+
return stripAnsi(str).length;
|
|
2147
|
+
}
|
|
2148
|
+
return stringWidth$1(str);
|
|
2149
|
+
}
|
|
2150
|
+
var FancyReporter = class extends BasicReporter {
|
|
2151
|
+
formatStack(stack, opts) {
|
|
2152
|
+
const indent = " ".repeat((opts?.errorLevel || 0) + 1);
|
|
2153
|
+
return `
|
|
2154
|
+
${indent}` + parseStack(stack).map(
|
|
2155
|
+
(line) => " " + line.replace(/^at +/, (m) => colors.gray(m)).replace(/\((.+)\)/, (_2, m) => `(${colors.cyan(m)})`)
|
|
2156
|
+
).join(`
|
|
2157
|
+
${indent}`);
|
|
2158
|
+
}
|
|
2159
|
+
formatType(logObj, isBadge, opts) {
|
|
2160
|
+
const typeColor = TYPE_COLOR_MAP[logObj.type] || LEVEL_COLOR_MAP[logObj.level] || "gray";
|
|
2161
|
+
if (isBadge) {
|
|
2162
|
+
return getBgColor(typeColor)(
|
|
2163
|
+
colors.black(` ${logObj.type.toUpperCase()} `)
|
|
2164
|
+
);
|
|
2165
|
+
}
|
|
2166
|
+
const _type = typeof TYPE_ICONS[logObj.type] === "string" ? TYPE_ICONS[logObj.type] : logObj.icon || logObj.type;
|
|
2167
|
+
return _type ? getColor2(typeColor)(_type) : "";
|
|
2168
|
+
}
|
|
2169
|
+
formatLogObj(logObj, opts) {
|
|
2170
|
+
const [message, ...additional] = this.formatArgs(logObj.args, opts).split(
|
|
2171
|
+
"\n"
|
|
2172
|
+
);
|
|
2173
|
+
if (logObj.type === "box") {
|
|
2174
|
+
return box(
|
|
2175
|
+
characterFormat(
|
|
2176
|
+
message + (additional.length > 0 ? "\n" + additional.join("\n") : "")
|
|
2177
|
+
),
|
|
2178
|
+
{
|
|
2179
|
+
title: logObj.title ? characterFormat(logObj.title) : void 0,
|
|
2180
|
+
style: logObj.style
|
|
2181
|
+
}
|
|
2182
|
+
);
|
|
2183
|
+
}
|
|
2184
|
+
const date = this.formatDate(logObj.date, opts);
|
|
2185
|
+
const coloredDate = date && colors.gray(date);
|
|
2186
|
+
const isBadge = logObj.badge ?? logObj.level < 2;
|
|
2187
|
+
const type = this.formatType(logObj, isBadge, opts);
|
|
2188
|
+
const tag = logObj.tag ? colors.gray(logObj.tag) : "";
|
|
2189
|
+
let line;
|
|
2190
|
+
const left = this.filterAndJoin([type, characterFormat(message)]);
|
|
2191
|
+
const right = this.filterAndJoin(opts.columns ? [tag, coloredDate] : [tag]);
|
|
2192
|
+
const space = (opts.columns || 0) - stringWidth(left) - stringWidth(right) - 2;
|
|
2193
|
+
line = space > 0 && (opts.columns || 0) >= 80 ? left + " ".repeat(space) + right : (right ? `${colors.gray(`[${right}]`)} ` : "") + left;
|
|
2194
|
+
line += characterFormat(
|
|
2195
|
+
additional.length > 0 ? "\n" + additional.join("\n") : ""
|
|
2196
|
+
);
|
|
2197
|
+
if (logObj.type === "trace") {
|
|
2198
|
+
const _err = new Error("Trace: " + logObj.message);
|
|
2199
|
+
line += this.formatStack(_err.stack || "");
|
|
2200
|
+
}
|
|
2201
|
+
return isBadge ? "\n" + line + "\n" : line;
|
|
2202
|
+
}
|
|
2203
|
+
};
|
|
2204
|
+
function characterFormat(str) {
|
|
2205
|
+
return str.replace(/`([^`]+)`/gm, (_2, m) => colors.cyan(m)).replace(/\s+_([^_]+)_\s+/gm, (_2, m) => ` ${colors.underline(m)} `);
|
|
2206
|
+
}
|
|
2207
|
+
function getColor2(color = "white") {
|
|
2208
|
+
return colors[color] || colors.white;
|
|
2209
|
+
}
|
|
2210
|
+
function getBgColor(color = "bgWhite") {
|
|
2211
|
+
return colors[`bg${color[0].toUpperCase()}${color.slice(1)}`] || colors.bgWhite;
|
|
2212
|
+
}
|
|
2213
|
+
function createConsola2(options = {}) {
|
|
2214
|
+
let level = _getDefaultLogLevel();
|
|
2215
|
+
if (process.env.CONSOLA_LEVEL) {
|
|
2216
|
+
level = Number.parseInt(process.env.CONSOLA_LEVEL) ?? level;
|
|
2217
|
+
}
|
|
2218
|
+
const consola2 = createConsola({
|
|
2219
|
+
level,
|
|
2220
|
+
defaults: { level },
|
|
2221
|
+
stdout: process.stdout,
|
|
2222
|
+
stderr: process.stderr,
|
|
2223
|
+
prompt: (...args) => import("./prompt-Z3APRUMB.js").then((m) => m.prompt(...args)),
|
|
2224
|
+
reporters: options.reporters || [
|
|
2225
|
+
options.fancy ?? !(T || A) ? new FancyReporter() : new BasicReporter()
|
|
2226
|
+
],
|
|
2227
|
+
...options
|
|
2228
|
+
});
|
|
2229
|
+
return consola2;
|
|
2230
|
+
}
|
|
2231
|
+
function _getDefaultLogLevel() {
|
|
2232
|
+
if (U) {
|
|
2233
|
+
return LogLevels.debug;
|
|
2234
|
+
}
|
|
2235
|
+
if (A) {
|
|
2236
|
+
return LogLevels.warn;
|
|
2237
|
+
}
|
|
2238
|
+
return LogLevels.info;
|
|
2239
|
+
}
|
|
2240
|
+
var consola = createConsola2();
|
|
2241
|
+
|
|
1151
2242
|
// ../../node_modules/.pnpm/citty@0.1.6/node_modules/citty/dist/index.mjs
|
|
1152
2243
|
function toArray(val) {
|
|
1153
2244
|
if (Array.isArray(val)) {
|
|
@@ -1158,13 +2249,13 @@ function toArray(val) {
|
|
|
1158
2249
|
function formatLineColumns(lines, linePrefix = "") {
|
|
1159
2250
|
const maxLengh = [];
|
|
1160
2251
|
for (const line of lines) {
|
|
1161
|
-
for (const [
|
|
1162
|
-
maxLengh[
|
|
2252
|
+
for (const [i2, element] of line.entries()) {
|
|
2253
|
+
maxLengh[i2] = Math.max(maxLengh[i2] || 0, element.length);
|
|
1163
2254
|
}
|
|
1164
2255
|
}
|
|
1165
2256
|
return lines.map(
|
|
1166
|
-
(
|
|
1167
|
-
(
|
|
2257
|
+
(l2) => l2.map(
|
|
2258
|
+
(c2, i2) => linePrefix + c2[i2 === 0 ? "padStart" : "padEnd"](maxLengh[i2])
|
|
1168
2259
|
).join(" ")
|
|
1169
2260
|
).join("\n");
|
|
1170
2261
|
}
|
|
@@ -1233,13 +2324,13 @@ function lowerFirst(str) {
|
|
|
1233
2324
|
return str ? str[0].toLowerCase() + str.slice(1) : "";
|
|
1234
2325
|
}
|
|
1235
2326
|
function pascalCase(str, opts) {
|
|
1236
|
-
return str ? (Array.isArray(str) ? str : splitByCase(str)).map((
|
|
2327
|
+
return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p2) => upperFirst(opts?.normalize ? p2.toLowerCase() : p2)).join("") : "";
|
|
1237
2328
|
}
|
|
1238
2329
|
function camelCase(str, opts) {
|
|
1239
2330
|
return lowerFirst(pascalCase(str || "", opts));
|
|
1240
2331
|
}
|
|
1241
2332
|
function kebabCase(str, joiner) {
|
|
1242
|
-
return str ? (Array.isArray(str) ? str : splitByCase(str)).map((
|
|
2333
|
+
return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p2) => p2.toLowerCase()).join(joiner ?? "-") : "";
|
|
1243
2334
|
}
|
|
1244
2335
|
function toArr(any) {
|
|
1245
2336
|
return any == void 0 ? [] : Array.isArray(any) ? any : [any];
|
|
@@ -1257,7 +2348,7 @@ function parseRawArgs(args = [], opts = {}) {
|
|
|
1257
2348
|
let name;
|
|
1258
2349
|
let val;
|
|
1259
2350
|
const out = { _: [] };
|
|
1260
|
-
let
|
|
2351
|
+
let i2 = 0;
|
|
1261
2352
|
let j = 0;
|
|
1262
2353
|
let idx = 0;
|
|
1263
2354
|
const len = args.length;
|
|
@@ -1270,19 +2361,19 @@ function parseRawArgs(args = [], opts = {}) {
|
|
|
1270
2361
|
if (alibi) {
|
|
1271
2362
|
for (k in opts.alias) {
|
|
1272
2363
|
arr = opts.alias[k] = toArr(opts.alias[k]);
|
|
1273
|
-
for (
|
|
1274
|
-
(opts.alias[arr[
|
|
2364
|
+
for (i2 = 0; i2 < arr.length; i2++) {
|
|
2365
|
+
(opts.alias[arr[i2]] = arr.concat(k)).splice(i2, 1);
|
|
1275
2366
|
}
|
|
1276
2367
|
}
|
|
1277
2368
|
}
|
|
1278
|
-
for (
|
|
1279
|
-
arr = opts.alias[opts.boolean[
|
|
2369
|
+
for (i2 = opts.boolean.length; i2-- > 0; ) {
|
|
2370
|
+
arr = opts.alias[opts.boolean[i2]] || [];
|
|
1280
2371
|
for (j = arr.length; j-- > 0; ) {
|
|
1281
2372
|
opts.boolean.push(arr[j]);
|
|
1282
2373
|
}
|
|
1283
2374
|
}
|
|
1284
|
-
for (
|
|
1285
|
-
arr = opts.alias[opts.string[
|
|
2375
|
+
for (i2 = opts.string.length; i2-- > 0; ) {
|
|
2376
|
+
arr = opts.alias[opts.string[i2]] || [];
|
|
1286
2377
|
for (j = arr.length; j-- > 0; ) {
|
|
1287
2378
|
opts.string.push(arr[j]);
|
|
1288
2379
|
}
|
|
@@ -1293,17 +2384,17 @@ function parseRawArgs(args = [], opts = {}) {
|
|
|
1293
2384
|
arr = opts.alias[k] = opts.alias[k] || [];
|
|
1294
2385
|
if (opts[name] !== void 0) {
|
|
1295
2386
|
opts[name].push(k);
|
|
1296
|
-
for (
|
|
1297
|
-
opts[name].push(arr[
|
|
2387
|
+
for (i2 = 0; i2 < arr.length; i2++) {
|
|
2388
|
+
opts[name].push(arr[i2]);
|
|
1298
2389
|
}
|
|
1299
2390
|
}
|
|
1300
2391
|
}
|
|
1301
2392
|
}
|
|
1302
2393
|
const keys = strict ? Object.keys(opts.alias) : [];
|
|
1303
|
-
for (
|
|
1304
|
-
arg = args[
|
|
2394
|
+
for (i2 = 0; i2 < len; i2++) {
|
|
2395
|
+
arg = args[i2];
|
|
1305
2396
|
if (arg === "--") {
|
|
1306
|
-
out._ = out._.concat(args.slice(++
|
|
2397
|
+
out._ = out._.concat(args.slice(++i2));
|
|
1307
2398
|
break;
|
|
1308
2399
|
}
|
|
1309
2400
|
for (j = 0; j < arg.length; j++) {
|
|
@@ -1326,7 +2417,7 @@ function parseRawArgs(args = [], opts = {}) {
|
|
|
1326
2417
|
}
|
|
1327
2418
|
}
|
|
1328
2419
|
name = arg.substring(j, idx);
|
|
1329
|
-
val = arg.slice(Math.max(0, ++idx)) ||
|
|
2420
|
+
val = arg.slice(Math.max(0, ++idx)) || i2 + 1 === len || ("" + args[i2 + 1]).charCodeAt(0) === 45 || args[++i2];
|
|
1330
2421
|
arr = j === 2 ? [name] : name;
|
|
1331
2422
|
for (idx = 0; idx < arr.length; idx++) {
|
|
1332
2423
|
name = arr[idx];
|
|
@@ -1512,9 +2603,9 @@ async function renderUsage(cmd, parent) {
|
|
|
1512
2603
|
} else {
|
|
1513
2604
|
const isRequired = arg.required === true && arg.default === void 0;
|
|
1514
2605
|
const argStr = (arg.type === "boolean" && arg.default === true ? [
|
|
1515
|
-
...(arg.alias || []).map((
|
|
2606
|
+
...(arg.alias || []).map((a2) => `--no-${a2}`),
|
|
1516
2607
|
`--no-${arg.name}`
|
|
1517
|
-
].join(", ") : [...(arg.alias || []).map((
|
|
2608
|
+
].join(", ") : [...(arg.alias || []).map((a2) => `-${a2}`), `--${arg.name}`].join(
|
|
1518
2609
|
", "
|
|
1519
2610
|
)) + (arg.type === "string" && (arg.valueHint || arg.default) ? `=${arg.valueHint ? `<${arg.valueHint}>` : `"${arg.default || ""}"`}` : "");
|
|
1520
2611
|
argLines.push([
|
|
@@ -1568,7 +2659,7 @@ async function renderUsage(cmd, parent) {
|
|
|
1568
2659
|
`Use \`${commandName} <command> --help\` for more information about a command.`
|
|
1569
2660
|
);
|
|
1570
2661
|
}
|
|
1571
|
-
return usageLines.filter((
|
|
2662
|
+
return usageLines.filter((l2) => typeof l2 === "string").join("\n");
|
|
1572
2663
|
}
|
|
1573
2664
|
async function runMain(cmd, opts = {}) {
|
|
1574
2665
|
const rawArgs = opts.rawArgs || process.argv.slice(2);
|
|
@@ -1600,73 +2691,73 @@ async function runMain(cmd, opts = {}) {
|
|
|
1600
2691
|
}
|
|
1601
2692
|
|
|
1602
2693
|
// ../../node_modules/.pnpm/colorette@2.0.20/node_modules/colorette/index.js
|
|
1603
|
-
import * as
|
|
2694
|
+
import * as tty2 from "tty";
|
|
1604
2695
|
var {
|
|
1605
|
-
env = {},
|
|
1606
|
-
argv = [],
|
|
1607
|
-
platform = ""
|
|
2696
|
+
env: env2 = {},
|
|
2697
|
+
argv: argv2 = [],
|
|
2698
|
+
platform: platform2 = ""
|
|
1608
2699
|
} = typeof process === "undefined" ? {} : process;
|
|
1609
|
-
var
|
|
1610
|
-
var
|
|
1611
|
-
var
|
|
1612
|
-
var
|
|
1613
|
-
var
|
|
1614
|
-
var
|
|
1615
|
-
var
|
|
1616
|
-
var
|
|
1617
|
-
var
|
|
1618
|
-
var
|
|
2700
|
+
var isDisabled2 = "NO_COLOR" in env2 || argv2.includes("--no-color");
|
|
2701
|
+
var isForced2 = "FORCE_COLOR" in env2 || argv2.includes("--color");
|
|
2702
|
+
var isWindows2 = platform2 === "win32";
|
|
2703
|
+
var isDumbTerminal2 = env2.TERM === "dumb";
|
|
2704
|
+
var isCompatibleTerminal2 = tty2 && tty2.isatty && tty2.isatty(1) && env2.TERM && !isDumbTerminal2;
|
|
2705
|
+
var isCI2 = "CI" in env2 && ("GITHUB_ACTIONS" in env2 || "GITLAB_CI" in env2 || "CIRCLECI" in env2);
|
|
2706
|
+
var isColorSupported2 = !isDisabled2 && (isForced2 || isWindows2 && !isDumbTerminal2 || isCompatibleTerminal2 || isCI2);
|
|
2707
|
+
var replaceClose2 = (index, string, close, replace, head = string.substring(0, index) + replace, tail = string.substring(index + close.length), next = tail.indexOf(close)) => head + (next < 0 ? tail : replaceClose2(next, tail, close, replace));
|
|
2708
|
+
var clearBleed2 = (index, string, open, close, replace) => index < 0 ? open + string + close : open + replaceClose2(index, string, close, replace) + close;
|
|
2709
|
+
var filterEmpty2 = (open, close, replace = open, at = open.length + 1) => (string) => string || !(string === "" || string === void 0) ? clearBleed2(
|
|
1619
2710
|
("" + string).indexOf(close, at),
|
|
1620
2711
|
string,
|
|
1621
2712
|
open,
|
|
1622
2713
|
close,
|
|
1623
2714
|
replace
|
|
1624
2715
|
) : "";
|
|
1625
|
-
var
|
|
2716
|
+
var init2 = (open, close, replace) => filterEmpty2(`\x1B[${open}m`, `\x1B[${close}m`, replace);
|
|
1626
2717
|
var colors2 = {
|
|
1627
|
-
reset:
|
|
1628
|
-
bold:
|
|
1629
|
-
dim:
|
|
1630
|
-
italic:
|
|
1631
|
-
underline:
|
|
1632
|
-
inverse:
|
|
1633
|
-
hidden:
|
|
1634
|
-
strikethrough:
|
|
1635
|
-
black:
|
|
1636
|
-
red:
|
|
1637
|
-
green:
|
|
1638
|
-
yellow:
|
|
1639
|
-
blue:
|
|
1640
|
-
magenta:
|
|
1641
|
-
cyan:
|
|
1642
|
-
white:
|
|
1643
|
-
gray:
|
|
1644
|
-
bgBlack:
|
|
1645
|
-
bgRed:
|
|
1646
|
-
bgGreen:
|
|
1647
|
-
bgYellow:
|
|
1648
|
-
bgBlue:
|
|
1649
|
-
bgMagenta:
|
|
1650
|
-
bgCyan:
|
|
1651
|
-
bgWhite:
|
|
1652
|
-
blackBright:
|
|
1653
|
-
redBright:
|
|
1654
|
-
greenBright:
|
|
1655
|
-
yellowBright:
|
|
1656
|
-
blueBright:
|
|
1657
|
-
magentaBright:
|
|
1658
|
-
cyanBright:
|
|
1659
|
-
whiteBright:
|
|
1660
|
-
bgBlackBright:
|
|
1661
|
-
bgRedBright:
|
|
1662
|
-
bgGreenBright:
|
|
1663
|
-
bgYellowBright:
|
|
1664
|
-
bgBlueBright:
|
|
1665
|
-
bgMagentaBright:
|
|
1666
|
-
bgCyanBright:
|
|
1667
|
-
bgWhiteBright:
|
|
2718
|
+
reset: init2(0, 0),
|
|
2719
|
+
bold: init2(1, 22, "\x1B[22m\x1B[1m"),
|
|
2720
|
+
dim: init2(2, 22, "\x1B[22m\x1B[2m"),
|
|
2721
|
+
italic: init2(3, 23),
|
|
2722
|
+
underline: init2(4, 24),
|
|
2723
|
+
inverse: init2(7, 27),
|
|
2724
|
+
hidden: init2(8, 28),
|
|
2725
|
+
strikethrough: init2(9, 29),
|
|
2726
|
+
black: init2(30, 39),
|
|
2727
|
+
red: init2(31, 39),
|
|
2728
|
+
green: init2(32, 39),
|
|
2729
|
+
yellow: init2(33, 39),
|
|
2730
|
+
blue: init2(34, 39),
|
|
2731
|
+
magenta: init2(35, 39),
|
|
2732
|
+
cyan: init2(36, 39),
|
|
2733
|
+
white: init2(37, 39),
|
|
2734
|
+
gray: init2(90, 39),
|
|
2735
|
+
bgBlack: init2(40, 49),
|
|
2736
|
+
bgRed: init2(41, 49),
|
|
2737
|
+
bgGreen: init2(42, 49),
|
|
2738
|
+
bgYellow: init2(43, 49),
|
|
2739
|
+
bgBlue: init2(44, 49),
|
|
2740
|
+
bgMagenta: init2(45, 49),
|
|
2741
|
+
bgCyan: init2(46, 49),
|
|
2742
|
+
bgWhite: init2(47, 49),
|
|
2743
|
+
blackBright: init2(90, 39),
|
|
2744
|
+
redBright: init2(91, 39),
|
|
2745
|
+
greenBright: init2(92, 39),
|
|
2746
|
+
yellowBright: init2(93, 39),
|
|
2747
|
+
blueBright: init2(94, 39),
|
|
2748
|
+
magentaBright: init2(95, 39),
|
|
2749
|
+
cyanBright: init2(96, 39),
|
|
2750
|
+
whiteBright: init2(97, 39),
|
|
2751
|
+
bgBlackBright: init2(100, 49),
|
|
2752
|
+
bgRedBright: init2(101, 49),
|
|
2753
|
+
bgGreenBright: init2(102, 49),
|
|
2754
|
+
bgYellowBright: init2(103, 49),
|
|
2755
|
+
bgBlueBright: init2(104, 49),
|
|
2756
|
+
bgMagentaBright: init2(105, 49),
|
|
2757
|
+
bgCyanBright: init2(106, 49),
|
|
2758
|
+
bgWhiteBright: init2(107, 49)
|
|
1668
2759
|
};
|
|
1669
|
-
var
|
|
2760
|
+
var createColors2 = ({ useColor = isColorSupported2 } = {}) => useColor ? colors2 : Object.keys(colors2).reduce(
|
|
1670
2761
|
(colors3, key) => ({ ...colors3, [key]: String }),
|
|
1671
2762
|
{}
|
|
1672
2763
|
);
|
|
@@ -1712,14 +2803,14 @@ var {
|
|
|
1712
2803
|
bgMagentaBright,
|
|
1713
2804
|
bgCyanBright,
|
|
1714
2805
|
bgWhiteBright
|
|
1715
|
-
} =
|
|
2806
|
+
} = createColors2();
|
|
1716
2807
|
|
|
1717
2808
|
// ../../node_modules/.pnpm/sift@17.1.3/node_modules/sift/es5m/index.js
|
|
1718
2809
|
var extendStatics = function(d, b) {
|
|
1719
2810
|
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
|
|
1720
2811
|
d2.__proto__ = b2;
|
|
1721
2812
|
} || function(d2, b2) {
|
|
1722
|
-
for (var
|
|
2813
|
+
for (var p2 in b2) if (Object.prototype.hasOwnProperty.call(b2, p2)) d2[p2] = b2[p2];
|
|
1723
2814
|
};
|
|
1724
2815
|
return extendStatics(d, b);
|
|
1725
2816
|
};
|
|
@@ -1763,31 +2854,31 @@ var isProperty = function(item, key) {
|
|
|
1763
2854
|
var isVanillaObject = function(value) {
|
|
1764
2855
|
return value && (value.constructor === Object || value.constructor === Array || value.constructor.toString() === "function Object() { [native code] }" || value.constructor.toString() === "function Array() { [native code] }") && !value.toJSON;
|
|
1765
2856
|
};
|
|
1766
|
-
var equals = function(
|
|
1767
|
-
if (
|
|
2857
|
+
var equals = function(a2, b) {
|
|
2858
|
+
if (a2 == null && a2 == b) {
|
|
1768
2859
|
return true;
|
|
1769
2860
|
}
|
|
1770
|
-
if (
|
|
2861
|
+
if (a2 === b) {
|
|
1771
2862
|
return true;
|
|
1772
2863
|
}
|
|
1773
|
-
if (Object.prototype.toString.call(
|
|
2864
|
+
if (Object.prototype.toString.call(a2) !== Object.prototype.toString.call(b)) {
|
|
1774
2865
|
return false;
|
|
1775
2866
|
}
|
|
1776
|
-
if (isArray(
|
|
1777
|
-
if (
|
|
2867
|
+
if (isArray(a2)) {
|
|
2868
|
+
if (a2.length !== b.length) {
|
|
1778
2869
|
return false;
|
|
1779
2870
|
}
|
|
1780
|
-
for (var
|
|
1781
|
-
if (!equals(
|
|
2871
|
+
for (var i2 = 0, length_1 = a2.length; i2 < length_1; i2++) {
|
|
2872
|
+
if (!equals(a2[i2], b[i2]))
|
|
1782
2873
|
return false;
|
|
1783
2874
|
}
|
|
1784
2875
|
return true;
|
|
1785
|
-
} else if (isObject(
|
|
1786
|
-
if (Object.keys(
|
|
2876
|
+
} else if (isObject(a2)) {
|
|
2877
|
+
if (Object.keys(a2).length !== Object.keys(b).length) {
|
|
1787
2878
|
return false;
|
|
1788
2879
|
}
|
|
1789
|
-
for (var key in
|
|
1790
|
-
if (!equals(
|
|
2880
|
+
for (var key in a2) {
|
|
2881
|
+
if (!equals(a2[key], b[key]))
|
|
1791
2882
|
return false;
|
|
1792
2883
|
}
|
|
1793
2884
|
return true;
|
|
@@ -1797,8 +2888,8 @@ var equals = function(a, b) {
|
|
|
1797
2888
|
var walkKeyPathValues = function(item, keyPath, next, depth, key, owner) {
|
|
1798
2889
|
var currentKey = keyPath[depth];
|
|
1799
2890
|
if (isArray(item) && isNaN(Number(currentKey)) && !isProperty(item, currentKey)) {
|
|
1800
|
-
for (var
|
|
1801
|
-
if (!walkKeyPathValues(item[
|
|
2891
|
+
for (var i2 = 0, length_1 = item.length; i2 < length_1; i2++) {
|
|
2892
|
+
if (!walkKeyPathValues(item[i2], keyPath, next, depth, i2, item)) {
|
|
1802
2893
|
return false;
|
|
1803
2894
|
}
|
|
1804
2895
|
}
|
|
@@ -1839,15 +2930,15 @@ var GroupOperation = (
|
|
|
1839
2930
|
GroupOperation2.prototype.reset = function() {
|
|
1840
2931
|
this.keep = false;
|
|
1841
2932
|
this.done = false;
|
|
1842
|
-
for (var
|
|
1843
|
-
this.children[
|
|
2933
|
+
for (var i2 = 0, length_2 = this.children.length; i2 < length_2; i2++) {
|
|
2934
|
+
this.children[i2].reset();
|
|
1844
2935
|
}
|
|
1845
2936
|
};
|
|
1846
2937
|
GroupOperation2.prototype.childrenNext = function(item, key, owner, root, leaf) {
|
|
1847
2938
|
var done = true;
|
|
1848
2939
|
var keep = true;
|
|
1849
|
-
for (var
|
|
1850
|
-
var childOperation = this.children[
|
|
2940
|
+
for (var i2 = 0, length_3 = this.children.length; i2 < length_3; i2++) {
|
|
2941
|
+
var childOperation = this.children[i2];
|
|
1851
2942
|
if (!childOperation.done) {
|
|
1852
2943
|
childOperation.next(item, key, owner, root, leaf);
|
|
1853
2944
|
}
|
|
@@ -1915,18 +3006,18 @@ var NestedOperation = (
|
|
|
1915
3006
|
return NestedOperation2;
|
|
1916
3007
|
}(GroupOperation)
|
|
1917
3008
|
);
|
|
1918
|
-
var createTester = function(
|
|
1919
|
-
if (
|
|
1920
|
-
return
|
|
3009
|
+
var createTester = function(a2, compare) {
|
|
3010
|
+
if (a2 instanceof Function) {
|
|
3011
|
+
return a2;
|
|
1921
3012
|
}
|
|
1922
|
-
if (
|
|
3013
|
+
if (a2 instanceof RegExp) {
|
|
1923
3014
|
return function(b) {
|
|
1924
|
-
var result = typeof b === "string" &&
|
|
1925
|
-
|
|
3015
|
+
var result = typeof b === "string" && a2.test(b);
|
|
3016
|
+
a2.lastIndex = 0;
|
|
1926
3017
|
return result;
|
|
1927
3018
|
};
|
|
1928
3019
|
}
|
|
1929
|
-
var comparableA = comparable(
|
|
3020
|
+
var comparableA = comparable(a2);
|
|
1930
3021
|
return function(b) {
|
|
1931
3022
|
return compare(comparableA, comparable(b));
|
|
1932
3023
|
};
|
|
@@ -2097,10 +3188,10 @@ var $ElemMatch = (
|
|
|
2097
3188
|
};
|
|
2098
3189
|
$ElemMatch2.prototype.next = function(item) {
|
|
2099
3190
|
if (isArray(item)) {
|
|
2100
|
-
for (var
|
|
3191
|
+
for (var i2 = 0, length_1 = item.length; i2 < length_1; i2++) {
|
|
2101
3192
|
this._queryOperation.reset();
|
|
2102
|
-
var child = item[
|
|
2103
|
-
this._queryOperation.next(child,
|
|
3193
|
+
var child = item[i2];
|
|
3194
|
+
this._queryOperation.next(child, i2, item, false);
|
|
2104
3195
|
this.keep = this.keep || this._queryOperation.keep;
|
|
2105
3196
|
}
|
|
2106
3197
|
this.done = true;
|
|
@@ -2180,15 +3271,15 @@ var $Or = (
|
|
|
2180
3271
|
$Or2.prototype.reset = function() {
|
|
2181
3272
|
this.done = false;
|
|
2182
3273
|
this.keep = false;
|
|
2183
|
-
for (var
|
|
2184
|
-
this._ops[
|
|
3274
|
+
for (var i2 = 0, length_2 = this._ops.length; i2 < length_2; i2++) {
|
|
3275
|
+
this._ops[i2].reset();
|
|
2185
3276
|
}
|
|
2186
3277
|
};
|
|
2187
3278
|
$Or2.prototype.next = function(item, key, owner) {
|
|
2188
3279
|
var done = false;
|
|
2189
3280
|
var success = false;
|
|
2190
|
-
for (var
|
|
2191
|
-
var op = this._ops[
|
|
3281
|
+
for (var i2 = 0, length_3 = this._ops.length; i2 < length_3; i2++) {
|
|
3282
|
+
var op = this._ops[i2];
|
|
2192
3283
|
op.next(item, key, owner);
|
|
2193
3284
|
if (op.keep) {
|
|
2194
3285
|
done = true;
|
|
@@ -2240,8 +3331,8 @@ var $In = (
|
|
|
2240
3331
|
$In2.prototype.next = function(item, key, owner) {
|
|
2241
3332
|
var done = false;
|
|
2242
3333
|
var success = false;
|
|
2243
|
-
for (var
|
|
2244
|
-
var test = this._testers[
|
|
3334
|
+
for (var i2 = 0, length_4 = this._testers.length; i2 < length_4; i2++) {
|
|
3335
|
+
var test = this._testers[i2];
|
|
2245
3336
|
if (test(item)) {
|
|
2246
3337
|
done = true;
|
|
2247
3338
|
success = true;
|
|
@@ -2497,7 +3588,7 @@ var createDefaultQueryTester = function(query, options) {
|
|
|
2497
3588
|
// package.json
|
|
2498
3589
|
var package_default = {
|
|
2499
3590
|
name: "@batijs/cli",
|
|
2500
|
-
version: "0.0.
|
|
3591
|
+
version: "0.0.329",
|
|
2501
3592
|
type: "module",
|
|
2502
3593
|
scripts: {
|
|
2503
3594
|
"check-types": "tsc --noEmit",
|
|
@@ -2513,7 +3604,7 @@ var package_default = {
|
|
|
2513
3604
|
devDependencies: {
|
|
2514
3605
|
"@batijs/build": "workspace:*",
|
|
2515
3606
|
"@batijs/compile": "workspace:*",
|
|
2516
|
-
"@types/node": "^18.19.
|
|
3607
|
+
"@types/node": "^18.19.74",
|
|
2517
3608
|
"@types/which": "^3.0.4",
|
|
2518
3609
|
citty: "^0.1.6",
|
|
2519
3610
|
colorette: "^2.0.20",
|
|
@@ -2521,10 +3612,10 @@ var package_default = {
|
|
|
2521
3612
|
execa: "^9.5.2",
|
|
2522
3613
|
rimraf: "^6.0.1",
|
|
2523
3614
|
sift: "^17.1.3",
|
|
2524
|
-
tsup: "^8.3.
|
|
3615
|
+
tsup: "^8.3.6",
|
|
2525
3616
|
typescript: "^5.7.3",
|
|
2526
3617
|
"unplugin-purge-polyfills": "^0.0.7",
|
|
2527
|
-
vite: "^6.0.
|
|
3618
|
+
vite: "^6.0.11"
|
|
2528
3619
|
},
|
|
2529
3620
|
dependencies: {
|
|
2530
3621
|
"@batijs/core": "workspace:*",
|
|
@@ -2601,7 +3692,7 @@ Choose one of them, or simply remove selected Server`
|
|
|
2601
3692
|
var __filename = fileURLToPath(import.meta.url);
|
|
2602
3693
|
var __dirname = dirname(__filename);
|
|
2603
3694
|
var isWin2 = process.platform === "win32";
|
|
2604
|
-
var pm =
|
|
3695
|
+
var pm = Ubs();
|
|
2605
3696
|
function boilerplatesDir() {
|
|
2606
3697
|
if (existsSync2(join(__dirname, "boilerplates", "boilerplates.json"))) {
|
|
2607
3698
|
return join(__dirname, "boilerplates");
|
|
@@ -2635,10 +3726,10 @@ function findDescription(key) {
|
|
|
2635
3726
|
}
|
|
2636
3727
|
}
|
|
2637
3728
|
function printOK(dist, flags2) {
|
|
2638
|
-
const arrow0 =
|
|
2639
|
-
const book0 =
|
|
2640
|
-
const list3 =
|
|
2641
|
-
const cmd3 =
|
|
3729
|
+
const arrow0 = WXr("\u2192", blueBright);
|
|
3730
|
+
const book0 = WXr("\u{1F4DA}", blueBright);
|
|
3731
|
+
const list3 = WXr("-", void 0, 3);
|
|
3732
|
+
const cmd3 = WXr("$", gray, 3);
|
|
2642
3733
|
console.log(bold(`${green("\u2713")} Project created at ${cyan(dist)} with:`));
|
|
2643
3734
|
console.log(list3(green("Vike")));
|
|
2644
3735
|
for (const key of flags2) {
|
|
@@ -2707,7 +3798,7 @@ function yn(value, default_) {
|
|
|
2707
3798
|
function generateRandomFilename(size) {
|
|
2708
3799
|
const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
2709
3800
|
let result = "";
|
|
2710
|
-
for (let
|
|
3801
|
+
for (let i2 = 0; i2 < size; i2++) {
|
|
2711
3802
|
const randomIndex = Math.floor(Math.random() * chars.length);
|
|
2712
3803
|
result += chars[randomIndex];
|
|
2713
3804
|
}
|