nococli 1.0.0

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.
@@ -0,0 +1,3395 @@
1
+ import { createRequire } from "node:module";
2
+ var __create = Object.create;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ function __accessProp(key) {
8
+ return this[key];
9
+ }
10
+ var __toESMCache_node;
11
+ var __toESMCache_esm;
12
+ var __toESM = (mod, isNodeMode, target) => {
13
+ var canCache = mod != null && typeof mod === "object";
14
+ if (canCache) {
15
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
16
+ var cached = cache.get(mod);
17
+ if (cached)
18
+ return cached;
19
+ }
20
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
21
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
22
+ for (let key of __getOwnPropNames(mod))
23
+ if (!__hasOwnProp.call(to, key))
24
+ __defProp(to, key, {
25
+ get: __accessProp.bind(mod, key),
26
+ enumerable: true
27
+ });
28
+ if (canCache)
29
+ cache.set(mod, to);
30
+ return to;
31
+ };
32
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
33
+ var __returnValue = (v) => v;
34
+ function __exportSetter(name, newValue) {
35
+ this[name] = __returnValue.bind(null, newValue);
36
+ }
37
+ var __export = (target, all) => {
38
+ for (var name in all)
39
+ __defProp(target, name, {
40
+ get: all[name],
41
+ enumerable: true,
42
+ configurable: true,
43
+ set: __exportSetter.bind(all, name)
44
+ });
45
+ };
46
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
47
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
48
+
49
+ // src/types.ts
50
+ var DEFAULT_AI_PATTERNS;
51
+ var init_types = __esm(() => {
52
+ DEFAULT_AI_PATTERNS = [
53
+ { name: "Claude Opus", pattern: "^Co-Authored-By: Claude Opus" },
54
+ { name: "GitHub Copilot", pattern: "^Co-Authored-By: GitHub Copilot" },
55
+ { name: "ChatGPT", pattern: "^Co-Authored-By: ChatGPT" },
56
+ { name: "Anthropic", pattern: "^Co-Authored-By: Anthropic" },
57
+ { name: "OpenAI", pattern: "^Co-Authored-By: OpenAI" },
58
+ { name: "Cursor AI", pattern: "^Co-Authored-By: Cursor AI" },
59
+ { name: "AI Assistant", pattern: "^Co-Authored-By: AI Assistant" }
60
+ ];
61
+ });
62
+
63
+ // node_modules/chalk/source/vendor/ansi-styles/index.js
64
+ function assembleStyles() {
65
+ const codes = new Map;
66
+ for (const [groupName, group] of Object.entries(styles)) {
67
+ for (const [styleName, style] of Object.entries(group)) {
68
+ styles[styleName] = {
69
+ open: `\x1B[${style[0]}m`,
70
+ close: `\x1B[${style[1]}m`
71
+ };
72
+ group[styleName] = styles[styleName];
73
+ codes.set(style[0], style[1]);
74
+ }
75
+ Object.defineProperty(styles, groupName, {
76
+ value: group,
77
+ enumerable: false
78
+ });
79
+ }
80
+ Object.defineProperty(styles, "codes", {
81
+ value: codes,
82
+ enumerable: false
83
+ });
84
+ styles.color.close = "\x1B[39m";
85
+ styles.bgColor.close = "\x1B[49m";
86
+ styles.color.ansi = wrapAnsi16();
87
+ styles.color.ansi256 = wrapAnsi256();
88
+ styles.color.ansi16m = wrapAnsi16m();
89
+ styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
90
+ styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
91
+ styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
92
+ Object.defineProperties(styles, {
93
+ rgbToAnsi256: {
94
+ value(red, green, blue) {
95
+ if (red === green && green === blue) {
96
+ if (red < 8) {
97
+ return 16;
98
+ }
99
+ if (red > 248) {
100
+ return 231;
101
+ }
102
+ return Math.round((red - 8) / 247 * 24) + 232;
103
+ }
104
+ return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
105
+ },
106
+ enumerable: false
107
+ },
108
+ hexToRgb: {
109
+ value(hex) {
110
+ const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
111
+ if (!matches) {
112
+ return [0, 0, 0];
113
+ }
114
+ let [colorString] = matches;
115
+ if (colorString.length === 3) {
116
+ colorString = [...colorString].map((character) => character + character).join("");
117
+ }
118
+ const integer = Number.parseInt(colorString, 16);
119
+ return [
120
+ integer >> 16 & 255,
121
+ integer >> 8 & 255,
122
+ integer & 255
123
+ ];
124
+ },
125
+ enumerable: false
126
+ },
127
+ hexToAnsi256: {
128
+ value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
129
+ enumerable: false
130
+ },
131
+ ansi256ToAnsi: {
132
+ value(code) {
133
+ if (code < 8) {
134
+ return 30 + code;
135
+ }
136
+ if (code < 16) {
137
+ return 90 + (code - 8);
138
+ }
139
+ let red;
140
+ let green;
141
+ let blue;
142
+ if (code >= 232) {
143
+ red = ((code - 232) * 10 + 8) / 255;
144
+ green = red;
145
+ blue = red;
146
+ } else {
147
+ code -= 16;
148
+ const remainder = code % 36;
149
+ red = Math.floor(code / 36) / 5;
150
+ green = Math.floor(remainder / 6) / 5;
151
+ blue = remainder % 6 / 5;
152
+ }
153
+ const value = Math.max(red, green, blue) * 2;
154
+ if (value === 0) {
155
+ return 30;
156
+ }
157
+ let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
158
+ if (value === 2) {
159
+ result += 60;
160
+ }
161
+ return result;
162
+ },
163
+ enumerable: false
164
+ },
165
+ rgbToAnsi: {
166
+ value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
167
+ enumerable: false
168
+ },
169
+ hexToAnsi: {
170
+ value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
171
+ enumerable: false
172
+ }
173
+ });
174
+ return styles;
175
+ }
176
+ var ANSI_BACKGROUND_OFFSET = 10, wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`, wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`, wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`, styles, modifierNames, foregroundColorNames, backgroundColorNames, colorNames, ansiStyles, ansi_styles_default;
177
+ var init_ansi_styles = __esm(() => {
178
+ styles = {
179
+ modifier: {
180
+ reset: [0, 0],
181
+ bold: [1, 22],
182
+ dim: [2, 22],
183
+ italic: [3, 23],
184
+ underline: [4, 24],
185
+ overline: [53, 55],
186
+ inverse: [7, 27],
187
+ hidden: [8, 28],
188
+ strikethrough: [9, 29]
189
+ },
190
+ color: {
191
+ black: [30, 39],
192
+ red: [31, 39],
193
+ green: [32, 39],
194
+ yellow: [33, 39],
195
+ blue: [34, 39],
196
+ magenta: [35, 39],
197
+ cyan: [36, 39],
198
+ white: [37, 39],
199
+ blackBright: [90, 39],
200
+ gray: [90, 39],
201
+ grey: [90, 39],
202
+ redBright: [91, 39],
203
+ greenBright: [92, 39],
204
+ yellowBright: [93, 39],
205
+ blueBright: [94, 39],
206
+ magentaBright: [95, 39],
207
+ cyanBright: [96, 39],
208
+ whiteBright: [97, 39]
209
+ },
210
+ bgColor: {
211
+ bgBlack: [40, 49],
212
+ bgRed: [41, 49],
213
+ bgGreen: [42, 49],
214
+ bgYellow: [43, 49],
215
+ bgBlue: [44, 49],
216
+ bgMagenta: [45, 49],
217
+ bgCyan: [46, 49],
218
+ bgWhite: [47, 49],
219
+ bgBlackBright: [100, 49],
220
+ bgGray: [100, 49],
221
+ bgGrey: [100, 49],
222
+ bgRedBright: [101, 49],
223
+ bgGreenBright: [102, 49],
224
+ bgYellowBright: [103, 49],
225
+ bgBlueBright: [104, 49],
226
+ bgMagentaBright: [105, 49],
227
+ bgCyanBright: [106, 49],
228
+ bgWhiteBright: [107, 49]
229
+ }
230
+ };
231
+ modifierNames = Object.keys(styles.modifier);
232
+ foregroundColorNames = Object.keys(styles.color);
233
+ backgroundColorNames = Object.keys(styles.bgColor);
234
+ colorNames = [...foregroundColorNames, ...backgroundColorNames];
235
+ ansiStyles = assembleStyles();
236
+ ansi_styles_default = ansiStyles;
237
+ });
238
+
239
+ // node_modules/chalk/source/vendor/supports-color/index.js
240
+ import process2 from "node:process";
241
+ import os from "node:os";
242
+ import tty from "node:tty";
243
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {
244
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
245
+ const position = argv.indexOf(prefix + flag);
246
+ const terminatorPosition = argv.indexOf("--");
247
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
248
+ }
249
+ function envForceColor() {
250
+ if ("FORCE_COLOR" in env) {
251
+ if (env.FORCE_COLOR === "true") {
252
+ return 1;
253
+ }
254
+ if (env.FORCE_COLOR === "false") {
255
+ return 0;
256
+ }
257
+ return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
258
+ }
259
+ }
260
+ function translateLevel(level) {
261
+ if (level === 0) {
262
+ return false;
263
+ }
264
+ return {
265
+ level,
266
+ hasBasic: true,
267
+ has256: level >= 2,
268
+ has16m: level >= 3
269
+ };
270
+ }
271
+ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
272
+ const noFlagForceColor = envForceColor();
273
+ if (noFlagForceColor !== undefined) {
274
+ flagForceColor = noFlagForceColor;
275
+ }
276
+ const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
277
+ if (forceColor === 0) {
278
+ return 0;
279
+ }
280
+ if (sniffFlags) {
281
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
282
+ return 3;
283
+ }
284
+ if (hasFlag("color=256")) {
285
+ return 2;
286
+ }
287
+ }
288
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
289
+ return 1;
290
+ }
291
+ if (haveStream && !streamIsTTY && forceColor === undefined) {
292
+ return 0;
293
+ }
294
+ const min = forceColor || 0;
295
+ if (env.TERM === "dumb") {
296
+ return min;
297
+ }
298
+ if (process2.platform === "win32") {
299
+ const osRelease = os.release().split(".");
300
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
301
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
302
+ }
303
+ return 1;
304
+ }
305
+ if ("CI" in env) {
306
+ if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => (key in env))) {
307
+ return 3;
308
+ }
309
+ if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
310
+ return 1;
311
+ }
312
+ return min;
313
+ }
314
+ if ("TEAMCITY_VERSION" in env) {
315
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
316
+ }
317
+ if (env.COLORTERM === "truecolor") {
318
+ return 3;
319
+ }
320
+ if (env.TERM === "xterm-kitty") {
321
+ return 3;
322
+ }
323
+ if (env.TERM === "xterm-ghostty") {
324
+ return 3;
325
+ }
326
+ if (env.TERM === "wezterm") {
327
+ return 3;
328
+ }
329
+ if ("TERM_PROGRAM" in env) {
330
+ const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
331
+ switch (env.TERM_PROGRAM) {
332
+ case "iTerm.app": {
333
+ return version >= 3 ? 3 : 2;
334
+ }
335
+ case "Apple_Terminal": {
336
+ return 2;
337
+ }
338
+ }
339
+ }
340
+ if (/-256(color)?$/i.test(env.TERM)) {
341
+ return 2;
342
+ }
343
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
344
+ return 1;
345
+ }
346
+ if ("COLORTERM" in env) {
347
+ return 1;
348
+ }
349
+ return min;
350
+ }
351
+ function createSupportsColor(stream, options = {}) {
352
+ const level = _supportsColor(stream, {
353
+ streamIsTTY: stream && stream.isTTY,
354
+ ...options
355
+ });
356
+ return translateLevel(level);
357
+ }
358
+ var env, flagForceColor, supportsColor, supports_color_default;
359
+ var init_supports_color = __esm(() => {
360
+ ({ env } = process2);
361
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
362
+ flagForceColor = 0;
363
+ } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
364
+ flagForceColor = 1;
365
+ }
366
+ supportsColor = {
367
+ stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
368
+ stderr: createSupportsColor({ isTTY: tty.isatty(2) })
369
+ };
370
+ supports_color_default = supportsColor;
371
+ });
372
+
373
+ // node_modules/chalk/source/utilities.js
374
+ function stringReplaceAll(string, substring, replacer) {
375
+ let index = string.indexOf(substring);
376
+ if (index === -1) {
377
+ return string;
378
+ }
379
+ const substringLength = substring.length;
380
+ let endIndex = 0;
381
+ let returnValue = "";
382
+ do {
383
+ returnValue += string.slice(endIndex, index) + substring + replacer;
384
+ endIndex = index + substringLength;
385
+ index = string.indexOf(substring, endIndex);
386
+ } while (index !== -1);
387
+ returnValue += string.slice(endIndex);
388
+ return returnValue;
389
+ }
390
+ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
391
+ let endIndex = 0;
392
+ let returnValue = "";
393
+ do {
394
+ const gotCR = string[index - 1] === "\r";
395
+ returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? `\r
396
+ ` : `
397
+ `) + postfix;
398
+ endIndex = index + 1;
399
+ index = string.indexOf(`
400
+ `, endIndex);
401
+ } while (index !== -1);
402
+ returnValue += string.slice(endIndex);
403
+ return returnValue;
404
+ }
405
+
406
+ // node_modules/chalk/source/index.js
407
+ function createChalk(options) {
408
+ return chalkFactory(options);
409
+ }
410
+ var stdoutColor, stderrColor, GENERATOR, STYLER, IS_EMPTY, levelMapping, styles2, applyOptions = (object, options = {}) => {
411
+ if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
412
+ throw new Error("The `level` option should be an integer from 0 to 3");
413
+ }
414
+ const colorLevel = stdoutColor ? stdoutColor.level : 0;
415
+ object.level = options.level === undefined ? colorLevel : options.level;
416
+ }, chalkFactory = (options) => {
417
+ const chalk = (...strings) => strings.join(" ");
418
+ applyOptions(chalk, options);
419
+ Object.setPrototypeOf(chalk, createChalk.prototype);
420
+ return chalk;
421
+ }, getModelAnsi = (model, level, type, ...arguments_) => {
422
+ if (model === "rgb") {
423
+ if (level === "ansi16m") {
424
+ return ansi_styles_default[type].ansi16m(...arguments_);
425
+ }
426
+ if (level === "ansi256") {
427
+ return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
428
+ }
429
+ return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
430
+ }
431
+ if (model === "hex") {
432
+ return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
433
+ }
434
+ return ansi_styles_default[type][model](...arguments_);
435
+ }, usedModels, proto, createStyler = (open, close, parent) => {
436
+ let openAll;
437
+ let closeAll;
438
+ if (parent === undefined) {
439
+ openAll = open;
440
+ closeAll = close;
441
+ } else {
442
+ openAll = parent.openAll + open;
443
+ closeAll = close + parent.closeAll;
444
+ }
445
+ return {
446
+ open,
447
+ close,
448
+ openAll,
449
+ closeAll,
450
+ parent
451
+ };
452
+ }, createBuilder = (self, _styler, _isEmpty) => {
453
+ const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
454
+ Object.setPrototypeOf(builder, proto);
455
+ builder[GENERATOR] = self;
456
+ builder[STYLER] = _styler;
457
+ builder[IS_EMPTY] = _isEmpty;
458
+ return builder;
459
+ }, applyStyle = (self, string) => {
460
+ if (self.level <= 0 || !string) {
461
+ return self[IS_EMPTY] ? "" : string;
462
+ }
463
+ let styler = self[STYLER];
464
+ if (styler === undefined) {
465
+ return string;
466
+ }
467
+ const { openAll, closeAll } = styler;
468
+ if (string.includes("\x1B")) {
469
+ while (styler !== undefined) {
470
+ string = stringReplaceAll(string, styler.close, styler.open);
471
+ styler = styler.parent;
472
+ }
473
+ }
474
+ const lfIndex = string.indexOf(`
475
+ `);
476
+ if (lfIndex !== -1) {
477
+ string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
478
+ }
479
+ return openAll + string + closeAll;
480
+ }, chalk, chalkStderr, source_default;
481
+ var init_source = __esm(() => {
482
+ init_ansi_styles();
483
+ init_supports_color();
484
+ ({ stdout: stdoutColor, stderr: stderrColor } = supports_color_default);
485
+ GENERATOR = Symbol("GENERATOR");
486
+ STYLER = Symbol("STYLER");
487
+ IS_EMPTY = Symbol("IS_EMPTY");
488
+ levelMapping = [
489
+ "ansi",
490
+ "ansi",
491
+ "ansi256",
492
+ "ansi16m"
493
+ ];
494
+ styles2 = Object.create(null);
495
+ Object.setPrototypeOf(createChalk.prototype, Function.prototype);
496
+ for (const [styleName, style] of Object.entries(ansi_styles_default)) {
497
+ styles2[styleName] = {
498
+ get() {
499
+ const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
500
+ Object.defineProperty(this, styleName, { value: builder });
501
+ return builder;
502
+ }
503
+ };
504
+ }
505
+ styles2.visible = {
506
+ get() {
507
+ const builder = createBuilder(this, this[STYLER], true);
508
+ Object.defineProperty(this, "visible", { value: builder });
509
+ return builder;
510
+ }
511
+ };
512
+ usedModels = ["rgb", "hex", "ansi256"];
513
+ for (const model of usedModels) {
514
+ styles2[model] = {
515
+ get() {
516
+ const { level } = this;
517
+ return function(...arguments_) {
518
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
519
+ return createBuilder(this, styler, this[IS_EMPTY]);
520
+ };
521
+ }
522
+ };
523
+ const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
524
+ styles2[bgModel] = {
525
+ get() {
526
+ const { level } = this;
527
+ return function(...arguments_) {
528
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
529
+ return createBuilder(this, styler, this[IS_EMPTY]);
530
+ };
531
+ }
532
+ };
533
+ }
534
+ proto = Object.defineProperties(() => {}, {
535
+ ...styles2,
536
+ level: {
537
+ enumerable: true,
538
+ get() {
539
+ return this[GENERATOR].level;
540
+ },
541
+ set(level) {
542
+ this[GENERATOR].level = level;
543
+ }
544
+ }
545
+ });
546
+ Object.defineProperties(createChalk.prototype, styles2);
547
+ chalk = createChalk();
548
+ chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
549
+ source_default = chalk;
550
+ });
551
+
552
+ // node_modules/mimic-function/index.js
553
+ function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
554
+ const { name } = to;
555
+ for (const property of Reflect.ownKeys(from)) {
556
+ copyProperty(to, from, property, ignoreNonConfigurable);
557
+ }
558
+ changePrototype(to, from);
559
+ changeToString(to, from, name);
560
+ return to;
561
+ }
562
+ var copyProperty = (to, from, property, ignoreNonConfigurable) => {
563
+ if (property === "length" || property === "prototype") {
564
+ return;
565
+ }
566
+ if (property === "arguments" || property === "caller") {
567
+ return;
568
+ }
569
+ const toDescriptor = Object.getOwnPropertyDescriptor(to, property);
570
+ const fromDescriptor = Object.getOwnPropertyDescriptor(from, property);
571
+ if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
572
+ return;
573
+ }
574
+ Object.defineProperty(to, property, fromDescriptor);
575
+ }, canCopyProperty = function(toDescriptor, fromDescriptor) {
576
+ return toDescriptor === undefined || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
577
+ }, changePrototype = (to, from) => {
578
+ const fromPrototype = Object.getPrototypeOf(from);
579
+ if (fromPrototype === Object.getPrototypeOf(to)) {
580
+ return;
581
+ }
582
+ Object.setPrototypeOf(to, fromPrototype);
583
+ }, wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/
584
+ ${fromBody}`, toStringDescriptor, toStringName, changeToString = (to, from, name) => {
585
+ const withName = name === "" ? "" : `with ${name.trim()}() `;
586
+ const newToString = wrappedToString.bind(null, withName, from.toString());
587
+ Object.defineProperty(newToString, "name", toStringName);
588
+ const { writable, enumerable, configurable } = toStringDescriptor;
589
+ Object.defineProperty(to, "toString", { value: newToString, writable, enumerable, configurable });
590
+ };
591
+ var init_mimic_function = __esm(() => {
592
+ toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
593
+ toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
594
+ });
595
+
596
+ // node_modules/onetime/index.js
597
+ var calledFunctions, onetime = (function_, options = {}) => {
598
+ if (typeof function_ !== "function") {
599
+ throw new TypeError("Expected a function");
600
+ }
601
+ let returnValue;
602
+ let callCount = 0;
603
+ const functionName = function_.displayName || function_.name || "<anonymous>";
604
+ const onetime2 = function(...arguments_) {
605
+ calledFunctions.set(onetime2, ++callCount);
606
+ if (callCount === 1) {
607
+ returnValue = function_.apply(this, arguments_);
608
+ function_ = undefined;
609
+ } else if (options.throw === true) {
610
+ throw new Error(`Function \`${functionName}\` can only be called once`);
611
+ }
612
+ return returnValue;
613
+ };
614
+ mimicFunction(onetime2, function_);
615
+ calledFunctions.set(onetime2, callCount);
616
+ return onetime2;
617
+ }, onetime_default;
618
+ var init_onetime = __esm(() => {
619
+ init_mimic_function();
620
+ calledFunctions = new WeakMap;
621
+ onetime.callCount = (function_) => {
622
+ if (!calledFunctions.has(function_)) {
623
+ throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
624
+ }
625
+ return calledFunctions.get(function_);
626
+ };
627
+ onetime_default = onetime;
628
+ });
629
+
630
+ // node_modules/signal-exit/dist/mjs/signals.js
631
+ var signals;
632
+ var init_signals = __esm(() => {
633
+ signals = [];
634
+ signals.push("SIGHUP", "SIGINT", "SIGTERM");
635
+ if (process.platform !== "win32") {
636
+ signals.push("SIGALRM", "SIGABRT", "SIGVTALRM", "SIGXCPU", "SIGXFSZ", "SIGUSR2", "SIGTRAP", "SIGSYS", "SIGQUIT", "SIGIOT");
637
+ }
638
+ if (process.platform === "linux") {
639
+ signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
640
+ }
641
+ });
642
+
643
+ // node_modules/signal-exit/dist/mjs/index.js
644
+ class Emitter {
645
+ emitted = {
646
+ afterExit: false,
647
+ exit: false
648
+ };
649
+ listeners = {
650
+ afterExit: [],
651
+ exit: []
652
+ };
653
+ count = 0;
654
+ id = Math.random();
655
+ constructor() {
656
+ if (global[kExitEmitter]) {
657
+ return global[kExitEmitter];
658
+ }
659
+ ObjectDefineProperty(global, kExitEmitter, {
660
+ value: this,
661
+ writable: false,
662
+ enumerable: false,
663
+ configurable: false
664
+ });
665
+ }
666
+ on(ev, fn) {
667
+ this.listeners[ev].push(fn);
668
+ }
669
+ removeListener(ev, fn) {
670
+ const list = this.listeners[ev];
671
+ const i = list.indexOf(fn);
672
+ if (i === -1) {
673
+ return;
674
+ }
675
+ if (i === 0 && list.length === 1) {
676
+ list.length = 0;
677
+ } else {
678
+ list.splice(i, 1);
679
+ }
680
+ }
681
+ emit(ev, code, signal) {
682
+ if (this.emitted[ev]) {
683
+ return false;
684
+ }
685
+ this.emitted[ev] = true;
686
+ let ret = false;
687
+ for (const fn of this.listeners[ev]) {
688
+ ret = fn(code, signal) === true || ret;
689
+ }
690
+ if (ev === "exit") {
691
+ ret = this.emit("afterExit", code, signal) || ret;
692
+ }
693
+ return ret;
694
+ }
695
+ }
696
+
697
+ class SignalExitBase {
698
+ }
699
+ var processOk = (process3) => !!process3 && typeof process3 === "object" && typeof process3.removeListener === "function" && typeof process3.emit === "function" && typeof process3.reallyExit === "function" && typeof process3.listeners === "function" && typeof process3.kill === "function" && typeof process3.pid === "number" && typeof process3.on === "function", kExitEmitter, global, ObjectDefineProperty, signalExitWrap = (handler) => {
700
+ return {
701
+ onExit(cb, opts) {
702
+ return handler.onExit(cb, opts);
703
+ },
704
+ load() {
705
+ return handler.load();
706
+ },
707
+ unload() {
708
+ return handler.unload();
709
+ }
710
+ };
711
+ }, SignalExitFallback, SignalExit, process3, onExit, load, unload;
712
+ var init_mjs = __esm(() => {
713
+ init_signals();
714
+ kExitEmitter = Symbol.for("signal-exit emitter");
715
+ global = globalThis;
716
+ ObjectDefineProperty = Object.defineProperty.bind(Object);
717
+ SignalExitFallback = class SignalExitFallback extends SignalExitBase {
718
+ onExit() {
719
+ return () => {};
720
+ }
721
+ load() {}
722
+ unload() {}
723
+ };
724
+ SignalExit = class SignalExit extends SignalExitBase {
725
+ #hupSig = process3.platform === "win32" ? "SIGINT" : "SIGHUP";
726
+ #emitter = new Emitter;
727
+ #process;
728
+ #originalProcessEmit;
729
+ #originalProcessReallyExit;
730
+ #sigListeners = {};
731
+ #loaded = false;
732
+ constructor(process3) {
733
+ super();
734
+ this.#process = process3;
735
+ this.#sigListeners = {};
736
+ for (const sig of signals) {
737
+ this.#sigListeners[sig] = () => {
738
+ const listeners = this.#process.listeners(sig);
739
+ let { count } = this.#emitter;
740
+ const p = process3;
741
+ if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") {
742
+ count += p.__signal_exit_emitter__.count;
743
+ }
744
+ if (listeners.length === count) {
745
+ this.unload();
746
+ const ret = this.#emitter.emit("exit", null, sig);
747
+ const s = sig === "SIGHUP" ? this.#hupSig : sig;
748
+ if (!ret)
749
+ process3.kill(process3.pid, s);
750
+ }
751
+ };
752
+ }
753
+ this.#originalProcessReallyExit = process3.reallyExit;
754
+ this.#originalProcessEmit = process3.emit;
755
+ }
756
+ onExit(cb, opts) {
757
+ if (!processOk(this.#process)) {
758
+ return () => {};
759
+ }
760
+ if (this.#loaded === false) {
761
+ this.load();
762
+ }
763
+ const ev = opts?.alwaysLast ? "afterExit" : "exit";
764
+ this.#emitter.on(ev, cb);
765
+ return () => {
766
+ this.#emitter.removeListener(ev, cb);
767
+ if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) {
768
+ this.unload();
769
+ }
770
+ };
771
+ }
772
+ load() {
773
+ if (this.#loaded) {
774
+ return;
775
+ }
776
+ this.#loaded = true;
777
+ this.#emitter.count += 1;
778
+ for (const sig of signals) {
779
+ try {
780
+ const fn = this.#sigListeners[sig];
781
+ if (fn)
782
+ this.#process.on(sig, fn);
783
+ } catch (_) {}
784
+ }
785
+ this.#process.emit = (ev, ...a) => {
786
+ return this.#processEmit(ev, ...a);
787
+ };
788
+ this.#process.reallyExit = (code) => {
789
+ return this.#processReallyExit(code);
790
+ };
791
+ }
792
+ unload() {
793
+ if (!this.#loaded) {
794
+ return;
795
+ }
796
+ this.#loaded = false;
797
+ signals.forEach((sig) => {
798
+ const listener = this.#sigListeners[sig];
799
+ if (!listener) {
800
+ throw new Error("Listener not defined for signal: " + sig);
801
+ }
802
+ try {
803
+ this.#process.removeListener(sig, listener);
804
+ } catch (_) {}
805
+ });
806
+ this.#process.emit = this.#originalProcessEmit;
807
+ this.#process.reallyExit = this.#originalProcessReallyExit;
808
+ this.#emitter.count -= 1;
809
+ }
810
+ #processReallyExit(code) {
811
+ if (!processOk(this.#process)) {
812
+ return 0;
813
+ }
814
+ this.#process.exitCode = code || 0;
815
+ this.#emitter.emit("exit", this.#process.exitCode, null);
816
+ return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
817
+ }
818
+ #processEmit(ev, ...args) {
819
+ const og = this.#originalProcessEmit;
820
+ if (ev === "exit" && processOk(this.#process)) {
821
+ if (typeof args[0] === "number") {
822
+ this.#process.exitCode = args[0];
823
+ }
824
+ const ret = og.call(this.#process, ev, ...args);
825
+ this.#emitter.emit("exit", this.#process.exitCode, null);
826
+ return ret;
827
+ } else {
828
+ return og.call(this.#process, ev, ...args);
829
+ }
830
+ }
831
+ };
832
+ process3 = globalThis.process;
833
+ ({
834
+ onExit,
835
+ load,
836
+ unload
837
+ } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback));
838
+ });
839
+
840
+ // node_modules/restore-cursor/index.js
841
+ import process4 from "node:process";
842
+ var terminal, restoreCursor, restore_cursor_default;
843
+ var init_restore_cursor = __esm(() => {
844
+ init_onetime();
845
+ init_mjs();
846
+ terminal = process4.stderr.isTTY ? process4.stderr : process4.stdout.isTTY ? process4.stdout : undefined;
847
+ restoreCursor = terminal ? onetime_default(() => {
848
+ onExit(() => {
849
+ terminal.write("\x1B[?25h");
850
+ }, { alwaysLast: true });
851
+ }) : () => {};
852
+ restore_cursor_default = restoreCursor;
853
+ });
854
+
855
+ // node_modules/cli-cursor/index.js
856
+ import process5 from "node:process";
857
+ var isHidden = false, cliCursor, cli_cursor_default;
858
+ var init_cli_cursor = __esm(() => {
859
+ init_restore_cursor();
860
+ cliCursor = {};
861
+ cliCursor.show = (writableStream = process5.stderr) => {
862
+ if (!writableStream.isTTY) {
863
+ return;
864
+ }
865
+ isHidden = false;
866
+ writableStream.write("\x1B[?25h");
867
+ };
868
+ cliCursor.hide = (writableStream = process5.stderr) => {
869
+ if (!writableStream.isTTY) {
870
+ return;
871
+ }
872
+ restore_cursor_default();
873
+ isHidden = true;
874
+ writableStream.write("\x1B[?25l");
875
+ };
876
+ cliCursor.toggle = (force, writableStream) => {
877
+ if (force !== undefined) {
878
+ isHidden = force;
879
+ }
880
+ if (isHidden) {
881
+ cliCursor.show(writableStream);
882
+ } else {
883
+ cliCursor.hide(writableStream);
884
+ }
885
+ };
886
+ cli_cursor_default = cliCursor;
887
+ });
888
+
889
+ // node_modules/cli-spinners/spinners.json
890
+ var require_spinners = __commonJS((exports, module) => {
891
+ module.exports = {
892
+ dots: {
893
+ interval: 80,
894
+ frames: [
895
+ "⠋",
896
+ "⠙",
897
+ "⠹",
898
+ "⠸",
899
+ "⠼",
900
+ "⠴",
901
+ "⠦",
902
+ "⠧",
903
+ "⠇",
904
+ "⠏"
905
+ ]
906
+ },
907
+ dots2: {
908
+ interval: 80,
909
+ frames: [
910
+ "⣾",
911
+ "⣽",
912
+ "⣻",
913
+ "⢿",
914
+ "⡿",
915
+ "⣟",
916
+ "⣯",
917
+ "⣷"
918
+ ]
919
+ },
920
+ dots3: {
921
+ interval: 80,
922
+ frames: [
923
+ "⠋",
924
+ "⠙",
925
+ "⠚",
926
+ "⠞",
927
+ "⠖",
928
+ "⠦",
929
+ "⠴",
930
+ "⠲",
931
+ "⠳",
932
+ "⠓"
933
+ ]
934
+ },
935
+ dots4: {
936
+ interval: 80,
937
+ frames: [
938
+ "⠄",
939
+ "⠆",
940
+ "⠇",
941
+ "⠋",
942
+ "⠙",
943
+ "⠸",
944
+ "⠰",
945
+ "⠠",
946
+ "⠰",
947
+ "⠸",
948
+ "⠙",
949
+ "⠋",
950
+ "⠇",
951
+ "⠆"
952
+ ]
953
+ },
954
+ dots5: {
955
+ interval: 80,
956
+ frames: [
957
+ "⠋",
958
+ "⠙",
959
+ "⠚",
960
+ "⠒",
961
+ "⠂",
962
+ "⠂",
963
+ "⠒",
964
+ "⠲",
965
+ "⠴",
966
+ "⠦",
967
+ "⠖",
968
+ "⠒",
969
+ "⠐",
970
+ "⠐",
971
+ "⠒",
972
+ "⠓",
973
+ "⠋"
974
+ ]
975
+ },
976
+ dots6: {
977
+ interval: 80,
978
+ frames: [
979
+ "⠁",
980
+ "⠉",
981
+ "⠙",
982
+ "⠚",
983
+ "⠒",
984
+ "⠂",
985
+ "⠂",
986
+ "⠒",
987
+ "⠲",
988
+ "⠴",
989
+ "⠤",
990
+ "⠄",
991
+ "⠄",
992
+ "⠤",
993
+ "⠴",
994
+ "⠲",
995
+ "⠒",
996
+ "⠂",
997
+ "⠂",
998
+ "⠒",
999
+ "⠚",
1000
+ "⠙",
1001
+ "⠉",
1002
+ "⠁"
1003
+ ]
1004
+ },
1005
+ dots7: {
1006
+ interval: 80,
1007
+ frames: [
1008
+ "⠈",
1009
+ "⠉",
1010
+ "⠋",
1011
+ "⠓",
1012
+ "⠒",
1013
+ "⠐",
1014
+ "⠐",
1015
+ "⠒",
1016
+ "⠖",
1017
+ "⠦",
1018
+ "⠤",
1019
+ "⠠",
1020
+ "⠠",
1021
+ "⠤",
1022
+ "⠦",
1023
+ "⠖",
1024
+ "⠒",
1025
+ "⠐",
1026
+ "⠐",
1027
+ "⠒",
1028
+ "⠓",
1029
+ "⠋",
1030
+ "⠉",
1031
+ "⠈"
1032
+ ]
1033
+ },
1034
+ dots8: {
1035
+ interval: 80,
1036
+ frames: [
1037
+ "⠁",
1038
+ "⠁",
1039
+ "⠉",
1040
+ "⠙",
1041
+ "⠚",
1042
+ "⠒",
1043
+ "⠂",
1044
+ "⠂",
1045
+ "⠒",
1046
+ "⠲",
1047
+ "⠴",
1048
+ "⠤",
1049
+ "⠄",
1050
+ "⠄",
1051
+ "⠤",
1052
+ "⠠",
1053
+ "⠠",
1054
+ "⠤",
1055
+ "⠦",
1056
+ "⠖",
1057
+ "⠒",
1058
+ "⠐",
1059
+ "⠐",
1060
+ "⠒",
1061
+ "⠓",
1062
+ "⠋",
1063
+ "⠉",
1064
+ "⠈",
1065
+ "⠈"
1066
+ ]
1067
+ },
1068
+ dots9: {
1069
+ interval: 80,
1070
+ frames: [
1071
+ "⢹",
1072
+ "⢺",
1073
+ "⢼",
1074
+ "⣸",
1075
+ "⣇",
1076
+ "⡧",
1077
+ "⡗",
1078
+ "⡏"
1079
+ ]
1080
+ },
1081
+ dots10: {
1082
+ interval: 80,
1083
+ frames: [
1084
+ "⢄",
1085
+ "⢂",
1086
+ "⢁",
1087
+ "⡁",
1088
+ "⡈",
1089
+ "⡐",
1090
+ "⡠"
1091
+ ]
1092
+ },
1093
+ dots11: {
1094
+ interval: 100,
1095
+ frames: [
1096
+ "⠁",
1097
+ "⠂",
1098
+ "⠄",
1099
+ "⡀",
1100
+ "⢀",
1101
+ "⠠",
1102
+ "⠐",
1103
+ "⠈"
1104
+ ]
1105
+ },
1106
+ dots12: {
1107
+ interval: 80,
1108
+ frames: [
1109
+ "⢀⠀",
1110
+ "⡀⠀",
1111
+ "⠄⠀",
1112
+ "⢂⠀",
1113
+ "⡂⠀",
1114
+ "⠅⠀",
1115
+ "⢃⠀",
1116
+ "⡃⠀",
1117
+ "⠍⠀",
1118
+ "⢋⠀",
1119
+ "⡋⠀",
1120
+ "⠍⠁",
1121
+ "⢋⠁",
1122
+ "⡋⠁",
1123
+ "⠍⠉",
1124
+ "⠋⠉",
1125
+ "⠋⠉",
1126
+ "⠉⠙",
1127
+ "⠉⠙",
1128
+ "⠉⠩",
1129
+ "⠈⢙",
1130
+ "⠈⡙",
1131
+ "⢈⠩",
1132
+ "⡀⢙",
1133
+ "⠄⡙",
1134
+ "⢂⠩",
1135
+ "⡂⢘",
1136
+ "⠅⡘",
1137
+ "⢃⠨",
1138
+ "⡃⢐",
1139
+ "⠍⡐",
1140
+ "⢋⠠",
1141
+ "⡋⢀",
1142
+ "⠍⡁",
1143
+ "⢋⠁",
1144
+ "⡋⠁",
1145
+ "⠍⠉",
1146
+ "⠋⠉",
1147
+ "⠋⠉",
1148
+ "⠉⠙",
1149
+ "⠉⠙",
1150
+ "⠉⠩",
1151
+ "⠈⢙",
1152
+ "⠈⡙",
1153
+ "⠈⠩",
1154
+ "⠀⢙",
1155
+ "⠀⡙",
1156
+ "⠀⠩",
1157
+ "⠀⢘",
1158
+ "⠀⡘",
1159
+ "⠀⠨",
1160
+ "⠀⢐",
1161
+ "⠀⡐",
1162
+ "⠀⠠",
1163
+ "⠀⢀",
1164
+ "⠀⡀"
1165
+ ]
1166
+ },
1167
+ dots13: {
1168
+ interval: 80,
1169
+ frames: [
1170
+ "⣼",
1171
+ "⣹",
1172
+ "⢻",
1173
+ "⠿",
1174
+ "⡟",
1175
+ "⣏",
1176
+ "⣧",
1177
+ "⣶"
1178
+ ]
1179
+ },
1180
+ dots8Bit: {
1181
+ interval: 80,
1182
+ frames: [
1183
+ "⠀",
1184
+ "⠁",
1185
+ "⠂",
1186
+ "⠃",
1187
+ "⠄",
1188
+ "⠅",
1189
+ "⠆",
1190
+ "⠇",
1191
+ "⡀",
1192
+ "⡁",
1193
+ "⡂",
1194
+ "⡃",
1195
+ "⡄",
1196
+ "⡅",
1197
+ "⡆",
1198
+ "⡇",
1199
+ "⠈",
1200
+ "⠉",
1201
+ "⠊",
1202
+ "⠋",
1203
+ "⠌",
1204
+ "⠍",
1205
+ "⠎",
1206
+ "⠏",
1207
+ "⡈",
1208
+ "⡉",
1209
+ "⡊",
1210
+ "⡋",
1211
+ "⡌",
1212
+ "⡍",
1213
+ "⡎",
1214
+ "⡏",
1215
+ "⠐",
1216
+ "⠑",
1217
+ "⠒",
1218
+ "⠓",
1219
+ "⠔",
1220
+ "⠕",
1221
+ "⠖",
1222
+ "⠗",
1223
+ "⡐",
1224
+ "⡑",
1225
+ "⡒",
1226
+ "⡓",
1227
+ "⡔",
1228
+ "⡕",
1229
+ "⡖",
1230
+ "⡗",
1231
+ "⠘",
1232
+ "⠙",
1233
+ "⠚",
1234
+ "⠛",
1235
+ "⠜",
1236
+ "⠝",
1237
+ "⠞",
1238
+ "⠟",
1239
+ "⡘",
1240
+ "⡙",
1241
+ "⡚",
1242
+ "⡛",
1243
+ "⡜",
1244
+ "⡝",
1245
+ "⡞",
1246
+ "⡟",
1247
+ "⠠",
1248
+ "⠡",
1249
+ "⠢",
1250
+ "⠣",
1251
+ "⠤",
1252
+ "⠥",
1253
+ "⠦",
1254
+ "⠧",
1255
+ "⡠",
1256
+ "⡡",
1257
+ "⡢",
1258
+ "⡣",
1259
+ "⡤",
1260
+ "⡥",
1261
+ "⡦",
1262
+ "⡧",
1263
+ "⠨",
1264
+ "⠩",
1265
+ "⠪",
1266
+ "⠫",
1267
+ "⠬",
1268
+ "⠭",
1269
+ "⠮",
1270
+ "⠯",
1271
+ "⡨",
1272
+ "⡩",
1273
+ "⡪",
1274
+ "⡫",
1275
+ "⡬",
1276
+ "⡭",
1277
+ "⡮",
1278
+ "⡯",
1279
+ "⠰",
1280
+ "⠱",
1281
+ "⠲",
1282
+ "⠳",
1283
+ "⠴",
1284
+ "⠵",
1285
+ "⠶",
1286
+ "⠷",
1287
+ "⡰",
1288
+ "⡱",
1289
+ "⡲",
1290
+ "⡳",
1291
+ "⡴",
1292
+ "⡵",
1293
+ "⡶",
1294
+ "⡷",
1295
+ "⠸",
1296
+ "⠹",
1297
+ "⠺",
1298
+ "⠻",
1299
+ "⠼",
1300
+ "⠽",
1301
+ "⠾",
1302
+ "⠿",
1303
+ "⡸",
1304
+ "⡹",
1305
+ "⡺",
1306
+ "⡻",
1307
+ "⡼",
1308
+ "⡽",
1309
+ "⡾",
1310
+ "⡿",
1311
+ "⢀",
1312
+ "⢁",
1313
+ "⢂",
1314
+ "⢃",
1315
+ "⢄",
1316
+ "⢅",
1317
+ "⢆",
1318
+ "⢇",
1319
+ "⣀",
1320
+ "⣁",
1321
+ "⣂",
1322
+ "⣃",
1323
+ "⣄",
1324
+ "⣅",
1325
+ "⣆",
1326
+ "⣇",
1327
+ "⢈",
1328
+ "⢉",
1329
+ "⢊",
1330
+ "⢋",
1331
+ "⢌",
1332
+ "⢍",
1333
+ "⢎",
1334
+ "⢏",
1335
+ "⣈",
1336
+ "⣉",
1337
+ "⣊",
1338
+ "⣋",
1339
+ "⣌",
1340
+ "⣍",
1341
+ "⣎",
1342
+ "⣏",
1343
+ "⢐",
1344
+ "⢑",
1345
+ "⢒",
1346
+ "⢓",
1347
+ "⢔",
1348
+ "⢕",
1349
+ "⢖",
1350
+ "⢗",
1351
+ "⣐",
1352
+ "⣑",
1353
+ "⣒",
1354
+ "⣓",
1355
+ "⣔",
1356
+ "⣕",
1357
+ "⣖",
1358
+ "⣗",
1359
+ "⢘",
1360
+ "⢙",
1361
+ "⢚",
1362
+ "⢛",
1363
+ "⢜",
1364
+ "⢝",
1365
+ "⢞",
1366
+ "⢟",
1367
+ "⣘",
1368
+ "⣙",
1369
+ "⣚",
1370
+ "⣛",
1371
+ "⣜",
1372
+ "⣝",
1373
+ "⣞",
1374
+ "⣟",
1375
+ "⢠",
1376
+ "⢡",
1377
+ "⢢",
1378
+ "⢣",
1379
+ "⢤",
1380
+ "⢥",
1381
+ "⢦",
1382
+ "⢧",
1383
+ "⣠",
1384
+ "⣡",
1385
+ "⣢",
1386
+ "⣣",
1387
+ "⣤",
1388
+ "⣥",
1389
+ "⣦",
1390
+ "⣧",
1391
+ "⢨",
1392
+ "⢩",
1393
+ "⢪",
1394
+ "⢫",
1395
+ "⢬",
1396
+ "⢭",
1397
+ "⢮",
1398
+ "⢯",
1399
+ "⣨",
1400
+ "⣩",
1401
+ "⣪",
1402
+ "⣫",
1403
+ "⣬",
1404
+ "⣭",
1405
+ "⣮",
1406
+ "⣯",
1407
+ "⢰",
1408
+ "⢱",
1409
+ "⢲",
1410
+ "⢳",
1411
+ "⢴",
1412
+ "⢵",
1413
+ "⢶",
1414
+ "⢷",
1415
+ "⣰",
1416
+ "⣱",
1417
+ "⣲",
1418
+ "⣳",
1419
+ "⣴",
1420
+ "⣵",
1421
+ "⣶",
1422
+ "⣷",
1423
+ "⢸",
1424
+ "⢹",
1425
+ "⢺",
1426
+ "⢻",
1427
+ "⢼",
1428
+ "⢽",
1429
+ "⢾",
1430
+ "⢿",
1431
+ "⣸",
1432
+ "⣹",
1433
+ "⣺",
1434
+ "⣻",
1435
+ "⣼",
1436
+ "⣽",
1437
+ "⣾",
1438
+ "⣿"
1439
+ ]
1440
+ },
1441
+ sand: {
1442
+ interval: 80,
1443
+ frames: [
1444
+ "⠁",
1445
+ "⠂",
1446
+ "⠄",
1447
+ "⡀",
1448
+ "⡈",
1449
+ "⡐",
1450
+ "⡠",
1451
+ "⣀",
1452
+ "⣁",
1453
+ "⣂",
1454
+ "⣄",
1455
+ "⣌",
1456
+ "⣔",
1457
+ "⣤",
1458
+ "⣥",
1459
+ "⣦",
1460
+ "⣮",
1461
+ "⣶",
1462
+ "⣷",
1463
+ "⣿",
1464
+ "⡿",
1465
+ "⠿",
1466
+ "⢟",
1467
+ "⠟",
1468
+ "⡛",
1469
+ "⠛",
1470
+ "⠫",
1471
+ "⢋",
1472
+ "⠋",
1473
+ "⠍",
1474
+ "⡉",
1475
+ "⠉",
1476
+ "⠑",
1477
+ "⠡",
1478
+ "⢁"
1479
+ ]
1480
+ },
1481
+ line: {
1482
+ interval: 130,
1483
+ frames: [
1484
+ "-",
1485
+ "\\",
1486
+ "|",
1487
+ "/"
1488
+ ]
1489
+ },
1490
+ line2: {
1491
+ interval: 100,
1492
+ frames: [
1493
+ "⠂",
1494
+ "-",
1495
+ "–",
1496
+ "—",
1497
+ "–",
1498
+ "-"
1499
+ ]
1500
+ },
1501
+ pipe: {
1502
+ interval: 100,
1503
+ frames: [
1504
+ "┤",
1505
+ "┘",
1506
+ "┴",
1507
+ "└",
1508
+ "├",
1509
+ "┌",
1510
+ "┬",
1511
+ "┐"
1512
+ ]
1513
+ },
1514
+ simpleDots: {
1515
+ interval: 400,
1516
+ frames: [
1517
+ ". ",
1518
+ ".. ",
1519
+ "...",
1520
+ " "
1521
+ ]
1522
+ },
1523
+ simpleDotsScrolling: {
1524
+ interval: 200,
1525
+ frames: [
1526
+ ". ",
1527
+ ".. ",
1528
+ "...",
1529
+ " ..",
1530
+ " .",
1531
+ " "
1532
+ ]
1533
+ },
1534
+ star: {
1535
+ interval: 70,
1536
+ frames: [
1537
+ "✶",
1538
+ "✸",
1539
+ "✹",
1540
+ "✺",
1541
+ "✹",
1542
+ "✷"
1543
+ ]
1544
+ },
1545
+ star2: {
1546
+ interval: 80,
1547
+ frames: [
1548
+ "+",
1549
+ "x",
1550
+ "*"
1551
+ ]
1552
+ },
1553
+ flip: {
1554
+ interval: 70,
1555
+ frames: [
1556
+ "_",
1557
+ "_",
1558
+ "_",
1559
+ "-",
1560
+ "`",
1561
+ "`",
1562
+ "'",
1563
+ "´",
1564
+ "-",
1565
+ "_",
1566
+ "_",
1567
+ "_"
1568
+ ]
1569
+ },
1570
+ hamburger: {
1571
+ interval: 100,
1572
+ frames: [
1573
+ "☱",
1574
+ "☲",
1575
+ "☴"
1576
+ ]
1577
+ },
1578
+ growVertical: {
1579
+ interval: 120,
1580
+ frames: [
1581
+ "▁",
1582
+ "▃",
1583
+ "▄",
1584
+ "▅",
1585
+ "▆",
1586
+ "▇",
1587
+ "▆",
1588
+ "▅",
1589
+ "▄",
1590
+ "▃"
1591
+ ]
1592
+ },
1593
+ growHorizontal: {
1594
+ interval: 120,
1595
+ frames: [
1596
+ "▏",
1597
+ "▎",
1598
+ "▍",
1599
+ "▌",
1600
+ "▋",
1601
+ "▊",
1602
+ "▉",
1603
+ "▊",
1604
+ "▋",
1605
+ "▌",
1606
+ "▍",
1607
+ "▎"
1608
+ ]
1609
+ },
1610
+ balloon: {
1611
+ interval: 140,
1612
+ frames: [
1613
+ " ",
1614
+ ".",
1615
+ "o",
1616
+ "O",
1617
+ "@",
1618
+ "*",
1619
+ " "
1620
+ ]
1621
+ },
1622
+ balloon2: {
1623
+ interval: 120,
1624
+ frames: [
1625
+ ".",
1626
+ "o",
1627
+ "O",
1628
+ "°",
1629
+ "O",
1630
+ "o",
1631
+ "."
1632
+ ]
1633
+ },
1634
+ noise: {
1635
+ interval: 100,
1636
+ frames: [
1637
+ "▓",
1638
+ "▒",
1639
+ "░"
1640
+ ]
1641
+ },
1642
+ bounce: {
1643
+ interval: 120,
1644
+ frames: [
1645
+ "⠁",
1646
+ "⠂",
1647
+ "⠄",
1648
+ "⠂"
1649
+ ]
1650
+ },
1651
+ boxBounce: {
1652
+ interval: 120,
1653
+ frames: [
1654
+ "▖",
1655
+ "▘",
1656
+ "▝",
1657
+ "▗"
1658
+ ]
1659
+ },
1660
+ boxBounce2: {
1661
+ interval: 100,
1662
+ frames: [
1663
+ "▌",
1664
+ "▀",
1665
+ "▐",
1666
+ "▄"
1667
+ ]
1668
+ },
1669
+ triangle: {
1670
+ interval: 50,
1671
+ frames: [
1672
+ "◢",
1673
+ "◣",
1674
+ "◤",
1675
+ "◥"
1676
+ ]
1677
+ },
1678
+ binary: {
1679
+ interval: 80,
1680
+ frames: [
1681
+ "010010",
1682
+ "001100",
1683
+ "100101",
1684
+ "111010",
1685
+ "111101",
1686
+ "010111",
1687
+ "101011",
1688
+ "111000",
1689
+ "110011",
1690
+ "110101"
1691
+ ]
1692
+ },
1693
+ arc: {
1694
+ interval: 100,
1695
+ frames: [
1696
+ "◜",
1697
+ "◠",
1698
+ "◝",
1699
+ "◞",
1700
+ "◡",
1701
+ "◟"
1702
+ ]
1703
+ },
1704
+ circle: {
1705
+ interval: 120,
1706
+ frames: [
1707
+ "◡",
1708
+ "⊙",
1709
+ "◠"
1710
+ ]
1711
+ },
1712
+ squareCorners: {
1713
+ interval: 180,
1714
+ frames: [
1715
+ "◰",
1716
+ "◳",
1717
+ "◲",
1718
+ "◱"
1719
+ ]
1720
+ },
1721
+ circleQuarters: {
1722
+ interval: 120,
1723
+ frames: [
1724
+ "◴",
1725
+ "◷",
1726
+ "◶",
1727
+ "◵"
1728
+ ]
1729
+ },
1730
+ circleHalves: {
1731
+ interval: 50,
1732
+ frames: [
1733
+ "◐",
1734
+ "◓",
1735
+ "◑",
1736
+ "◒"
1737
+ ]
1738
+ },
1739
+ squish: {
1740
+ interval: 100,
1741
+ frames: [
1742
+ "╫",
1743
+ "╪"
1744
+ ]
1745
+ },
1746
+ toggle: {
1747
+ interval: 250,
1748
+ frames: [
1749
+ "⊶",
1750
+ "⊷"
1751
+ ]
1752
+ },
1753
+ toggle2: {
1754
+ interval: 80,
1755
+ frames: [
1756
+ "▫",
1757
+ "▪"
1758
+ ]
1759
+ },
1760
+ toggle3: {
1761
+ interval: 120,
1762
+ frames: [
1763
+ "□",
1764
+ "■"
1765
+ ]
1766
+ },
1767
+ toggle4: {
1768
+ interval: 100,
1769
+ frames: [
1770
+ "■",
1771
+ "□",
1772
+ "▪",
1773
+ "▫"
1774
+ ]
1775
+ },
1776
+ toggle5: {
1777
+ interval: 100,
1778
+ frames: [
1779
+ "▮",
1780
+ "▯"
1781
+ ]
1782
+ },
1783
+ toggle6: {
1784
+ interval: 300,
1785
+ frames: [
1786
+ "ဝ",
1787
+ "၀"
1788
+ ]
1789
+ },
1790
+ toggle7: {
1791
+ interval: 80,
1792
+ frames: [
1793
+ "⦾",
1794
+ "⦿"
1795
+ ]
1796
+ },
1797
+ toggle8: {
1798
+ interval: 100,
1799
+ frames: [
1800
+ "◍",
1801
+ "◌"
1802
+ ]
1803
+ },
1804
+ toggle9: {
1805
+ interval: 100,
1806
+ frames: [
1807
+ "◉",
1808
+ "◎"
1809
+ ]
1810
+ },
1811
+ toggle10: {
1812
+ interval: 100,
1813
+ frames: [
1814
+ "㊂",
1815
+ "㊀",
1816
+ "㊁"
1817
+ ]
1818
+ },
1819
+ toggle11: {
1820
+ interval: 50,
1821
+ frames: [
1822
+ "⧇",
1823
+ "⧆"
1824
+ ]
1825
+ },
1826
+ toggle12: {
1827
+ interval: 120,
1828
+ frames: [
1829
+ "☗",
1830
+ "☖"
1831
+ ]
1832
+ },
1833
+ toggle13: {
1834
+ interval: 80,
1835
+ frames: [
1836
+ "=",
1837
+ "*",
1838
+ "-"
1839
+ ]
1840
+ },
1841
+ arrow: {
1842
+ interval: 100,
1843
+ frames: [
1844
+ "←",
1845
+ "↖",
1846
+ "↑",
1847
+ "↗",
1848
+ "→",
1849
+ "↘",
1850
+ "↓",
1851
+ "↙"
1852
+ ]
1853
+ },
1854
+ arrow2: {
1855
+ interval: 80,
1856
+ frames: [
1857
+ "⬆️ ",
1858
+ "↗️ ",
1859
+ "➡️ ",
1860
+ "↘️ ",
1861
+ "⬇️ ",
1862
+ "↙️ ",
1863
+ "⬅️ ",
1864
+ "↖️ "
1865
+ ]
1866
+ },
1867
+ arrow3: {
1868
+ interval: 120,
1869
+ frames: [
1870
+ "▹▹▹▹▹",
1871
+ "▸▹▹▹▹",
1872
+ "▹▸▹▹▹",
1873
+ "▹▹▸▹▹",
1874
+ "▹▹▹▸▹",
1875
+ "▹▹▹▹▸"
1876
+ ]
1877
+ },
1878
+ bouncingBar: {
1879
+ interval: 80,
1880
+ frames: [
1881
+ "[ ]",
1882
+ "[= ]",
1883
+ "[== ]",
1884
+ "[=== ]",
1885
+ "[====]",
1886
+ "[ ===]",
1887
+ "[ ==]",
1888
+ "[ =]",
1889
+ "[ ]",
1890
+ "[ =]",
1891
+ "[ ==]",
1892
+ "[ ===]",
1893
+ "[====]",
1894
+ "[=== ]",
1895
+ "[== ]",
1896
+ "[= ]"
1897
+ ]
1898
+ },
1899
+ bouncingBall: {
1900
+ interval: 80,
1901
+ frames: [
1902
+ "( ● )",
1903
+ "( ● )",
1904
+ "( ● )",
1905
+ "( ● )",
1906
+ "( ●)",
1907
+ "( ● )",
1908
+ "( ● )",
1909
+ "( ● )",
1910
+ "( ● )",
1911
+ "(● )"
1912
+ ]
1913
+ },
1914
+ smiley: {
1915
+ interval: 200,
1916
+ frames: [
1917
+ "😄 ",
1918
+ "😝 "
1919
+ ]
1920
+ },
1921
+ monkey: {
1922
+ interval: 300,
1923
+ frames: [
1924
+ "🙈 ",
1925
+ "🙈 ",
1926
+ "🙉 ",
1927
+ "🙊 "
1928
+ ]
1929
+ },
1930
+ hearts: {
1931
+ interval: 100,
1932
+ frames: [
1933
+ "💛 ",
1934
+ "💙 ",
1935
+ "💜 ",
1936
+ "💚 ",
1937
+ "❤️ "
1938
+ ]
1939
+ },
1940
+ clock: {
1941
+ interval: 100,
1942
+ frames: [
1943
+ "🕛 ",
1944
+ "🕐 ",
1945
+ "🕑 ",
1946
+ "🕒 ",
1947
+ "🕓 ",
1948
+ "🕔 ",
1949
+ "🕕 ",
1950
+ "🕖 ",
1951
+ "🕗 ",
1952
+ "🕘 ",
1953
+ "🕙 ",
1954
+ "🕚 "
1955
+ ]
1956
+ },
1957
+ earth: {
1958
+ interval: 180,
1959
+ frames: [
1960
+ "🌍 ",
1961
+ "🌎 ",
1962
+ "🌏 "
1963
+ ]
1964
+ },
1965
+ material: {
1966
+ interval: 17,
1967
+ frames: [
1968
+ "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1969
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1970
+ "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1971
+ "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1972
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1973
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1974
+ "███████▁▁▁▁▁▁▁▁▁▁▁▁▁",
1975
+ "████████▁▁▁▁▁▁▁▁▁▁▁▁",
1976
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1977
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1978
+ "██████████▁▁▁▁▁▁▁▁▁▁",
1979
+ "███████████▁▁▁▁▁▁▁▁▁",
1980
+ "█████████████▁▁▁▁▁▁▁",
1981
+ "██████████████▁▁▁▁▁▁",
1982
+ "██████████████▁▁▁▁▁▁",
1983
+ "▁██████████████▁▁▁▁▁",
1984
+ "▁██████████████▁▁▁▁▁",
1985
+ "▁██████████████▁▁▁▁▁",
1986
+ "▁▁██████████████▁▁▁▁",
1987
+ "▁▁▁██████████████▁▁▁",
1988
+ "▁▁▁▁█████████████▁▁▁",
1989
+ "▁▁▁▁██████████████▁▁",
1990
+ "▁▁▁▁██████████████▁▁",
1991
+ "▁▁▁▁▁██████████████▁",
1992
+ "▁▁▁▁▁██████████████▁",
1993
+ "▁▁▁▁▁██████████████▁",
1994
+ "▁▁▁▁▁▁██████████████",
1995
+ "▁▁▁▁▁▁██████████████",
1996
+ "▁▁▁▁▁▁▁█████████████",
1997
+ "▁▁▁▁▁▁▁█████████████",
1998
+ "▁▁▁▁▁▁▁▁████████████",
1999
+ "▁▁▁▁▁▁▁▁████████████",
2000
+ "▁▁▁▁▁▁▁▁▁███████████",
2001
+ "▁▁▁▁▁▁▁▁▁███████████",
2002
+ "▁▁▁▁▁▁▁▁▁▁██████████",
2003
+ "▁▁▁▁▁▁▁▁▁▁██████████",
2004
+ "▁▁▁▁▁▁▁▁▁▁▁▁████████",
2005
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
2006
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████",
2007
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
2008
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
2009
+ "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
2010
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
2011
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
2012
+ "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
2013
+ "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
2014
+ "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
2015
+ "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
2016
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁█",
2017
+ "████████▁▁▁▁▁▁▁▁▁▁▁▁",
2018
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
2019
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
2020
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
2021
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
2022
+ "███████████▁▁▁▁▁▁▁▁▁",
2023
+ "████████████▁▁▁▁▁▁▁▁",
2024
+ "████████████▁▁▁▁▁▁▁▁",
2025
+ "██████████████▁▁▁▁▁▁",
2026
+ "██████████████▁▁▁▁▁▁",
2027
+ "▁██████████████▁▁▁▁▁",
2028
+ "▁██████████████▁▁▁▁▁",
2029
+ "▁▁▁█████████████▁▁▁▁",
2030
+ "▁▁▁▁▁████████████▁▁▁",
2031
+ "▁▁▁▁▁████████████▁▁▁",
2032
+ "▁▁▁▁▁▁███████████▁▁▁",
2033
+ "▁▁▁▁▁▁▁▁█████████▁▁▁",
2034
+ "▁▁▁▁▁▁▁▁█████████▁▁▁",
2035
+ "▁▁▁▁▁▁▁▁▁█████████▁▁",
2036
+ "▁▁▁▁▁▁▁▁▁█████████▁▁",
2037
+ "▁▁▁▁▁▁▁▁▁▁█████████▁",
2038
+ "▁▁▁▁▁▁▁▁▁▁▁████████▁",
2039
+ "▁▁▁▁▁▁▁▁▁▁▁████████▁",
2040
+ "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
2041
+ "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
2042
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
2043
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
2044
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
2045
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
2046
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
2047
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
2048
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
2049
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
2050
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
2051
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
2052
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
2053
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
2054
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
2055
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
2056
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
2057
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
2058
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
2059
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"
2060
+ ]
2061
+ },
2062
+ moon: {
2063
+ interval: 80,
2064
+ frames: [
2065
+ "🌑 ",
2066
+ "🌒 ",
2067
+ "🌓 ",
2068
+ "🌔 ",
2069
+ "🌕 ",
2070
+ "🌖 ",
2071
+ "🌗 ",
2072
+ "🌘 "
2073
+ ]
2074
+ },
2075
+ runner: {
2076
+ interval: 140,
2077
+ frames: [
2078
+ "🚶 ",
2079
+ "🏃 "
2080
+ ]
2081
+ },
2082
+ pong: {
2083
+ interval: 80,
2084
+ frames: [
2085
+ "▐⠂ ▌",
2086
+ "▐⠈ ▌",
2087
+ "▐ ⠂ ▌",
2088
+ "▐ ⠠ ▌",
2089
+ "▐ ⡀ ▌",
2090
+ "▐ ⠠ ▌",
2091
+ "▐ ⠂ ▌",
2092
+ "▐ ⠈ ▌",
2093
+ "▐ ⠂ ▌",
2094
+ "▐ ⠠ ▌",
2095
+ "▐ ⡀ ▌",
2096
+ "▐ ⠠ ▌",
2097
+ "▐ ⠂ ▌",
2098
+ "▐ ⠈ ▌",
2099
+ "▐ ⠂▌",
2100
+ "▐ ⠠▌",
2101
+ "▐ ⡀▌",
2102
+ "▐ ⠠ ▌",
2103
+ "▐ ⠂ ▌",
2104
+ "▐ ⠈ ▌",
2105
+ "▐ ⠂ ▌",
2106
+ "▐ ⠠ ▌",
2107
+ "▐ ⡀ ▌",
2108
+ "▐ ⠠ ▌",
2109
+ "▐ ⠂ ▌",
2110
+ "▐ ⠈ ▌",
2111
+ "▐ ⠂ ▌",
2112
+ "▐ ⠠ ▌",
2113
+ "▐ ⡀ ▌",
2114
+ "▐⠠ ▌"
2115
+ ]
2116
+ },
2117
+ shark: {
2118
+ interval: 120,
2119
+ frames: [
2120
+ "▐|\\____________▌",
2121
+ "▐_|\\___________▌",
2122
+ "▐__|\\__________▌",
2123
+ "▐___|\\_________▌",
2124
+ "▐____|\\________▌",
2125
+ "▐_____|\\_______▌",
2126
+ "▐______|\\______▌",
2127
+ "▐_______|\\_____▌",
2128
+ "▐________|\\____▌",
2129
+ "▐_________|\\___▌",
2130
+ "▐__________|\\__▌",
2131
+ "▐___________|\\_▌",
2132
+ "▐____________|\\▌",
2133
+ "▐____________/|▌",
2134
+ "▐___________/|_▌",
2135
+ "▐__________/|__▌",
2136
+ "▐_________/|___▌",
2137
+ "▐________/|____▌",
2138
+ "▐_______/|_____▌",
2139
+ "▐______/|______▌",
2140
+ "▐_____/|_______▌",
2141
+ "▐____/|________▌",
2142
+ "▐___/|_________▌",
2143
+ "▐__/|__________▌",
2144
+ "▐_/|___________▌",
2145
+ "▐/|____________▌"
2146
+ ]
2147
+ },
2148
+ dqpb: {
2149
+ interval: 100,
2150
+ frames: [
2151
+ "d",
2152
+ "q",
2153
+ "p",
2154
+ "b"
2155
+ ]
2156
+ },
2157
+ weather: {
2158
+ interval: 100,
2159
+ frames: [
2160
+ "☀️ ",
2161
+ "☀️ ",
2162
+ "☀️ ",
2163
+ "🌤 ",
2164
+ "⛅️ ",
2165
+ "🌥 ",
2166
+ "☁️ ",
2167
+ "🌧 ",
2168
+ "🌨 ",
2169
+ "🌧 ",
2170
+ "🌨 ",
2171
+ "🌧 ",
2172
+ "🌨 ",
2173
+ "⛈ ",
2174
+ "🌨 ",
2175
+ "🌧 ",
2176
+ "🌨 ",
2177
+ "☁️ ",
2178
+ "🌥 ",
2179
+ "⛅️ ",
2180
+ "🌤 ",
2181
+ "☀️ ",
2182
+ "☀️ "
2183
+ ]
2184
+ },
2185
+ christmas: {
2186
+ interval: 400,
2187
+ frames: [
2188
+ "🌲",
2189
+ "🎄"
2190
+ ]
2191
+ },
2192
+ grenade: {
2193
+ interval: 80,
2194
+ frames: [
2195
+ "، ",
2196
+ "′ ",
2197
+ " ´ ",
2198
+ " ‾ ",
2199
+ " ⸌",
2200
+ " ⸊",
2201
+ " |",
2202
+ " ⁎",
2203
+ " ⁕",
2204
+ " ෴ ",
2205
+ " ⁓",
2206
+ " ",
2207
+ " ",
2208
+ " "
2209
+ ]
2210
+ },
2211
+ point: {
2212
+ interval: 125,
2213
+ frames: [
2214
+ "∙∙∙",
2215
+ "●∙∙",
2216
+ "∙●∙",
2217
+ "∙∙●",
2218
+ "∙∙∙"
2219
+ ]
2220
+ },
2221
+ layer: {
2222
+ interval: 150,
2223
+ frames: [
2224
+ "-",
2225
+ "=",
2226
+ "≡"
2227
+ ]
2228
+ },
2229
+ betaWave: {
2230
+ interval: 80,
2231
+ frames: [
2232
+ "ρββββββ",
2233
+ "βρβββββ",
2234
+ "ββρββββ",
2235
+ "βββρβββ",
2236
+ "ββββρββ",
2237
+ "βββββρβ",
2238
+ "ββββββρ"
2239
+ ]
2240
+ },
2241
+ fingerDance: {
2242
+ interval: 160,
2243
+ frames: [
2244
+ "🤘 ",
2245
+ "🤟 ",
2246
+ "🖖 ",
2247
+ "✋ ",
2248
+ "🤚 ",
2249
+ "👆 "
2250
+ ]
2251
+ },
2252
+ fistBump: {
2253
+ interval: 80,
2254
+ frames: [
2255
+ "🤜    🤛 ",
2256
+ "🤜    🤛 ",
2257
+ "🤜    🤛 ",
2258
+ " 🤜  🤛  ",
2259
+ "  🤜🤛   ",
2260
+ " 🤜✨🤛   ",
2261
+ "🤜 ✨ 🤛  "
2262
+ ]
2263
+ },
2264
+ soccerHeader: {
2265
+ interval: 80,
2266
+ frames: [
2267
+ " 🧑⚽️ 🧑 ",
2268
+ "🧑 ⚽️ 🧑 ",
2269
+ "🧑 ⚽️ 🧑 ",
2270
+ "🧑 ⚽️ 🧑 ",
2271
+ "🧑 ⚽️ 🧑 ",
2272
+ "🧑 ⚽️ 🧑 ",
2273
+ "🧑 ⚽️🧑 ",
2274
+ "🧑 ⚽️ 🧑 ",
2275
+ "🧑 ⚽️ 🧑 ",
2276
+ "🧑 ⚽️ 🧑 ",
2277
+ "🧑 ⚽️ 🧑 ",
2278
+ "🧑 ⚽️ 🧑 "
2279
+ ]
2280
+ },
2281
+ mindblown: {
2282
+ interval: 160,
2283
+ frames: [
2284
+ "😐 ",
2285
+ "😐 ",
2286
+ "😮 ",
2287
+ "😮 ",
2288
+ "😦 ",
2289
+ "😦 ",
2290
+ "😧 ",
2291
+ "😧 ",
2292
+ "🤯 ",
2293
+ "💥 ",
2294
+ "✨ ",
2295
+ "  ",
2296
+ "  ",
2297
+ "  "
2298
+ ]
2299
+ },
2300
+ speaker: {
2301
+ interval: 160,
2302
+ frames: [
2303
+ "🔈 ",
2304
+ "🔉 ",
2305
+ "🔊 ",
2306
+ "🔉 "
2307
+ ]
2308
+ },
2309
+ orangePulse: {
2310
+ interval: 100,
2311
+ frames: [
2312
+ "🔸 ",
2313
+ "🔶 ",
2314
+ "🟠 ",
2315
+ "🟠 ",
2316
+ "🔶 "
2317
+ ]
2318
+ },
2319
+ bluePulse: {
2320
+ interval: 100,
2321
+ frames: [
2322
+ "🔹 ",
2323
+ "🔷 ",
2324
+ "🔵 ",
2325
+ "🔵 ",
2326
+ "🔷 "
2327
+ ]
2328
+ },
2329
+ orangeBluePulse: {
2330
+ interval: 100,
2331
+ frames: [
2332
+ "🔸 ",
2333
+ "🔶 ",
2334
+ "🟠 ",
2335
+ "🟠 ",
2336
+ "🔶 ",
2337
+ "🔹 ",
2338
+ "🔷 ",
2339
+ "🔵 ",
2340
+ "🔵 ",
2341
+ "🔷 "
2342
+ ]
2343
+ },
2344
+ timeTravel: {
2345
+ interval: 100,
2346
+ frames: [
2347
+ "🕛 ",
2348
+ "🕚 ",
2349
+ "🕙 ",
2350
+ "🕘 ",
2351
+ "🕗 ",
2352
+ "🕖 ",
2353
+ "🕕 ",
2354
+ "🕔 ",
2355
+ "🕓 ",
2356
+ "🕒 ",
2357
+ "🕑 ",
2358
+ "🕐 "
2359
+ ]
2360
+ },
2361
+ aesthetic: {
2362
+ interval: 80,
2363
+ frames: [
2364
+ "▰▱▱▱▱▱▱",
2365
+ "▰▰▱▱▱▱▱",
2366
+ "▰▰▰▱▱▱▱",
2367
+ "▰▰▰▰▱▱▱",
2368
+ "▰▰▰▰▰▱▱",
2369
+ "▰▰▰▰▰▰▱",
2370
+ "▰▰▰▰▰▰▰",
2371
+ "▰▱▱▱▱▱▱"
2372
+ ]
2373
+ },
2374
+ dwarfFortress: {
2375
+ interval: 80,
2376
+ frames: [
2377
+ " ██████£££ ",
2378
+ "☺██████£££ ",
2379
+ "☺██████£££ ",
2380
+ "☺▓█████£££ ",
2381
+ "☺▓█████£££ ",
2382
+ "☺▒█████£££ ",
2383
+ "☺▒█████£££ ",
2384
+ "☺░█████£££ ",
2385
+ "☺░█████£££ ",
2386
+ "☺ █████£££ ",
2387
+ " ☺█████£££ ",
2388
+ " ☺█████£££ ",
2389
+ " ☺▓████£££ ",
2390
+ " ☺▓████£££ ",
2391
+ " ☺▒████£££ ",
2392
+ " ☺▒████£££ ",
2393
+ " ☺░████£££ ",
2394
+ " ☺░████£££ ",
2395
+ " ☺ ████£££ ",
2396
+ " ☺████£££ ",
2397
+ " ☺████£££ ",
2398
+ " ☺▓███£££ ",
2399
+ " ☺▓███£££ ",
2400
+ " ☺▒███£££ ",
2401
+ " ☺▒███£££ ",
2402
+ " ☺░███£££ ",
2403
+ " ☺░███£££ ",
2404
+ " ☺ ███£££ ",
2405
+ " ☺███£££ ",
2406
+ " ☺███£££ ",
2407
+ " ☺▓██£££ ",
2408
+ " ☺▓██£££ ",
2409
+ " ☺▒██£££ ",
2410
+ " ☺▒██£££ ",
2411
+ " ☺░██£££ ",
2412
+ " ☺░██£££ ",
2413
+ " ☺ ██£££ ",
2414
+ " ☺██£££ ",
2415
+ " ☺██£££ ",
2416
+ " ☺▓█£££ ",
2417
+ " ☺▓█£££ ",
2418
+ " ☺▒█£££ ",
2419
+ " ☺▒█£££ ",
2420
+ " ☺░█£££ ",
2421
+ " ☺░█£££ ",
2422
+ " ☺ █£££ ",
2423
+ " ☺█£££ ",
2424
+ " ☺█£££ ",
2425
+ " ☺▓£££ ",
2426
+ " ☺▓£££ ",
2427
+ " ☺▒£££ ",
2428
+ " ☺▒£££ ",
2429
+ " ☺░£££ ",
2430
+ " ☺░£££ ",
2431
+ " ☺ £££ ",
2432
+ " ☺£££ ",
2433
+ " ☺£££ ",
2434
+ " ☺▓££ ",
2435
+ " ☺▓££ ",
2436
+ " ☺▒££ ",
2437
+ " ☺▒££ ",
2438
+ " ☺░££ ",
2439
+ " ☺░££ ",
2440
+ " ☺ ££ ",
2441
+ " ☺££ ",
2442
+ " ☺££ ",
2443
+ " ☺▓£ ",
2444
+ " ☺▓£ ",
2445
+ " ☺▒£ ",
2446
+ " ☺▒£ ",
2447
+ " ☺░£ ",
2448
+ " ☺░£ ",
2449
+ " ☺ £ ",
2450
+ " ☺£ ",
2451
+ " ☺£ ",
2452
+ " ☺▓ ",
2453
+ " ☺▓ ",
2454
+ " ☺▒ ",
2455
+ " ☺▒ ",
2456
+ " ☺░ ",
2457
+ " ☺░ ",
2458
+ " ☺ ",
2459
+ " ☺ &",
2460
+ " ☺ ☼&",
2461
+ " ☺ ☼ &",
2462
+ " ☺☼ &",
2463
+ " ☺☼ & ",
2464
+ " ‼ & ",
2465
+ " ☺ & ",
2466
+ " ‼ & ",
2467
+ " ☺ & ",
2468
+ " ‼ & ",
2469
+ " ☺ & ",
2470
+ "‼ & ",
2471
+ " & ",
2472
+ " & ",
2473
+ " & ░ ",
2474
+ " & ▒ ",
2475
+ " & ▓ ",
2476
+ " & £ ",
2477
+ " & ░£ ",
2478
+ " & ▒£ ",
2479
+ " & ▓£ ",
2480
+ " & ££ ",
2481
+ " & ░££ ",
2482
+ " & ▒££ ",
2483
+ "& ▓££ ",
2484
+ "& £££ ",
2485
+ " ░£££ ",
2486
+ " ▒£££ ",
2487
+ " ▓£££ ",
2488
+ " █£££ ",
2489
+ " ░█£££ ",
2490
+ " ▒█£££ ",
2491
+ " ▓█£££ ",
2492
+ " ██£££ ",
2493
+ " ░██£££ ",
2494
+ " ▒██£££ ",
2495
+ " ▓██£££ ",
2496
+ " ███£££ ",
2497
+ " ░███£££ ",
2498
+ " ▒███£££ ",
2499
+ " ▓███£££ ",
2500
+ " ████£££ ",
2501
+ " ░████£££ ",
2502
+ " ▒████£££ ",
2503
+ " ▓████£££ ",
2504
+ " █████£££ ",
2505
+ " ░█████£££ ",
2506
+ " ▒█████£££ ",
2507
+ " ▓█████£££ ",
2508
+ " ██████£££ ",
2509
+ " ██████£££ "
2510
+ ]
2511
+ }
2512
+ };
2513
+ });
2514
+
2515
+ // node_modules/cli-spinners/index.js
2516
+ var require_cli_spinners = __commonJS((exports, module) => {
2517
+ var spinners = Object.assign({}, require_spinners());
2518
+ var spinnersList = Object.keys(spinners);
2519
+ Object.defineProperty(spinners, "random", {
2520
+ get() {
2521
+ const randomIndex = Math.floor(Math.random() * spinnersList.length);
2522
+ const spinnerName = spinnersList[randomIndex];
2523
+ return spinners[spinnerName];
2524
+ }
2525
+ });
2526
+ module.exports = spinners;
2527
+ });
2528
+
2529
+ // node_modules/log-symbols/node_modules/is-unicode-supported/index.js
2530
+ import process6 from "node:process";
2531
+ function isUnicodeSupported() {
2532
+ if (process6.platform !== "win32") {
2533
+ return process6.env.TERM !== "linux";
2534
+ }
2535
+ return Boolean(process6.env.CI) || Boolean(process6.env.WT_SESSION) || Boolean(process6.env.TERMINUS_SUBLIME) || process6.env.ConEmuTask === "{cmd::Cmder}" || process6.env.TERM_PROGRAM === "Terminus-Sublime" || process6.env.TERM_PROGRAM === "vscode" || process6.env.TERM === "xterm-256color" || process6.env.TERM === "alacritty" || process6.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
2536
+ }
2537
+ var init_is_unicode_supported = () => {};
2538
+
2539
+ // node_modules/log-symbols/index.js
2540
+ var main, fallback, logSymbols, log_symbols_default;
2541
+ var init_log_symbols = __esm(() => {
2542
+ init_source();
2543
+ init_is_unicode_supported();
2544
+ main = {
2545
+ info: source_default.blue("ℹ"),
2546
+ success: source_default.green("✔"),
2547
+ warning: source_default.yellow("⚠"),
2548
+ error: source_default.red("✖")
2549
+ };
2550
+ fallback = {
2551
+ info: source_default.blue("i"),
2552
+ success: source_default.green("√"),
2553
+ warning: source_default.yellow("‼"),
2554
+ error: source_default.red("×")
2555
+ };
2556
+ logSymbols = isUnicodeSupported() ? main : fallback;
2557
+ log_symbols_default = logSymbols;
2558
+ });
2559
+
2560
+ // node_modules/ansi-regex/index.js
2561
+ function ansiRegex({ onlyFirst = false } = {}) {
2562
+ const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
2563
+ const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
2564
+ const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
2565
+ const pattern = `${osc}|${csi}`;
2566
+ return new RegExp(pattern, onlyFirst ? undefined : "g");
2567
+ }
2568
+
2569
+ // node_modules/strip-ansi/index.js
2570
+ function stripAnsi(string) {
2571
+ if (typeof string !== "string") {
2572
+ throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
2573
+ }
2574
+ if (!string.includes("\x1B") && !string.includes("›")) {
2575
+ return string;
2576
+ }
2577
+ return string.replace(regex, "");
2578
+ }
2579
+ var regex;
2580
+ var init_strip_ansi = __esm(() => {
2581
+ regex = ansiRegex();
2582
+ });
2583
+
2584
+ // node_modules/get-east-asian-width/lookup-data.js
2585
+ var ambiguousRanges, fullwidthRanges, halfwidthRanges, narrowRanges, wideRanges;
2586
+ var init_lookup_data = __esm(() => {
2587
+ ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];
2588
+ fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
2589
+ halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];
2590
+ narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];
2591
+ wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
2592
+ });
2593
+
2594
+ // node_modules/get-east-asian-width/utilities.js
2595
+ var isInRange = (ranges, codePoint) => {
2596
+ let low = 0;
2597
+ let high = Math.floor(ranges.length / 2) - 1;
2598
+ while (low <= high) {
2599
+ const mid = Math.floor((low + high) / 2);
2600
+ const i = mid * 2;
2601
+ if (codePoint < ranges[i]) {
2602
+ high = mid - 1;
2603
+ } else if (codePoint > ranges[i + 1]) {
2604
+ low = mid + 1;
2605
+ } else {
2606
+ return true;
2607
+ }
2608
+ }
2609
+ return false;
2610
+ };
2611
+
2612
+ // node_modules/get-east-asian-width/lookup.js
2613
+ function findWideFastPathRange(ranges) {
2614
+ let fastPathStart = ranges[0];
2615
+ let fastPathEnd = ranges[1];
2616
+ for (let index = 0;index < ranges.length; index += 2) {
2617
+ const start = ranges[index];
2618
+ const end = ranges[index + 1];
2619
+ if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
2620
+ return [start, end];
2621
+ }
2622
+ if (end - start > fastPathEnd - fastPathStart) {
2623
+ fastPathStart = start;
2624
+ fastPathEnd = end;
2625
+ }
2626
+ }
2627
+ return [fastPathStart, fastPathEnd];
2628
+ }
2629
+ var minimumAmbiguousCodePoint, maximumAmbiguousCodePoint, minimumFullWidthCodePoint, maximumFullWidthCodePoint, minimumHalfWidthCodePoint, maximumHalfWidthCodePoint, minimumNarrowCodePoint, maximumNarrowCodePoint, minimumWideCodePoint, maximumWideCodePoint, commonCjkCodePoint = 19968, wideFastPathStart, wideFastPathEnd, isAmbiguous = (codePoint) => {
2630
+ if (codePoint < minimumAmbiguousCodePoint || codePoint > maximumAmbiguousCodePoint) {
2631
+ return false;
2632
+ }
2633
+ return isInRange(ambiguousRanges, codePoint);
2634
+ }, isFullWidth = (codePoint) => {
2635
+ if (codePoint < minimumFullWidthCodePoint || codePoint > maximumFullWidthCodePoint) {
2636
+ return false;
2637
+ }
2638
+ return isInRange(fullwidthRanges, codePoint);
2639
+ }, isWide = (codePoint) => {
2640
+ if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
2641
+ return true;
2642
+ }
2643
+ if (codePoint < minimumWideCodePoint || codePoint > maximumWideCodePoint) {
2644
+ return false;
2645
+ }
2646
+ return isInRange(wideRanges, codePoint);
2647
+ };
2648
+ var init_lookup = __esm(() => {
2649
+ init_lookup_data();
2650
+ minimumAmbiguousCodePoint = ambiguousRanges[0];
2651
+ maximumAmbiguousCodePoint = ambiguousRanges.at(-1);
2652
+ minimumFullWidthCodePoint = fullwidthRanges[0];
2653
+ maximumFullWidthCodePoint = fullwidthRanges.at(-1);
2654
+ minimumHalfWidthCodePoint = halfwidthRanges[0];
2655
+ maximumHalfWidthCodePoint = halfwidthRanges.at(-1);
2656
+ minimumNarrowCodePoint = narrowRanges[0];
2657
+ maximumNarrowCodePoint = narrowRanges.at(-1);
2658
+ minimumWideCodePoint = wideRanges[0];
2659
+ maximumWideCodePoint = wideRanges.at(-1);
2660
+ [wideFastPathStart, wideFastPathEnd] = findWideFastPathRange(wideRanges);
2661
+ });
2662
+
2663
+ // node_modules/get-east-asian-width/index.js
2664
+ function validate(codePoint) {
2665
+ if (!Number.isSafeInteger(codePoint)) {
2666
+ throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
2667
+ }
2668
+ }
2669
+ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
2670
+ validate(codePoint);
2671
+ if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
2672
+ return 2;
2673
+ }
2674
+ return 1;
2675
+ }
2676
+ var init_get_east_asian_width = __esm(() => {
2677
+ init_lookup();
2678
+ init_lookup();
2679
+ });
2680
+
2681
+ // node_modules/emoji-regex/index.js
2682
+ var require_emoji_regex = __commonJS((exports, module) => {
2683
+ module.exports = () => {
2684
+ 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-\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-\uDED8\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\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]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\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]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\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]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\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]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\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]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\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\uDD3C-\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-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\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\uDE70]|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\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;
2685
+ };
2686
+ });
2687
+
2688
+ // node_modules/string-width/index.js
2689
+ function stringWidth(string, options = {}) {
2690
+ if (typeof string !== "string" || string.length === 0) {
2691
+ return 0;
2692
+ }
2693
+ const {
2694
+ ambiguousIsNarrow = true,
2695
+ countAnsiEscapeCodes = false
2696
+ } = options;
2697
+ if (!countAnsiEscapeCodes) {
2698
+ string = stripAnsi(string);
2699
+ }
2700
+ if (string.length === 0) {
2701
+ return 0;
2702
+ }
2703
+ let width = 0;
2704
+ const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
2705
+ for (const { segment: character } of segmenter.segment(string)) {
2706
+ const codePoint = character.codePointAt(0);
2707
+ if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
2708
+ continue;
2709
+ }
2710
+ if (codePoint >= 8203 && codePoint <= 8207 || codePoint === 65279) {
2711
+ continue;
2712
+ }
2713
+ if (codePoint >= 768 && codePoint <= 879 || codePoint >= 6832 && codePoint <= 6911 || codePoint >= 7616 && codePoint <= 7679 || codePoint >= 8400 && codePoint <= 8447 || codePoint >= 65056 && codePoint <= 65071) {
2714
+ continue;
2715
+ }
2716
+ if (codePoint >= 55296 && codePoint <= 57343) {
2717
+ continue;
2718
+ }
2719
+ if (codePoint >= 65024 && codePoint <= 65039) {
2720
+ continue;
2721
+ }
2722
+ if (defaultIgnorableCodePointRegex.test(character)) {
2723
+ continue;
2724
+ }
2725
+ if (import_emoji_regex.default().test(character)) {
2726
+ width += 2;
2727
+ continue;
2728
+ }
2729
+ width += eastAsianWidth(codePoint, eastAsianWidthOptions);
2730
+ }
2731
+ return width;
2732
+ }
2733
+ var import_emoji_regex, segmenter, defaultIgnorableCodePointRegex;
2734
+ var init_string_width = __esm(() => {
2735
+ init_strip_ansi();
2736
+ init_get_east_asian_width();
2737
+ import_emoji_regex = __toESM(require_emoji_regex(), 1);
2738
+ segmenter = new Intl.Segmenter;
2739
+ defaultIgnorableCodePointRegex = /^\p{Default_Ignorable_Code_Point}$/u;
2740
+ });
2741
+
2742
+ // node_modules/is-interactive/index.js
2743
+ function isInteractive({ stream = process.stdout } = {}) {
2744
+ return Boolean(stream && stream.isTTY && process.env.TERM !== "dumb" && !("CI" in process.env));
2745
+ }
2746
+
2747
+ // node_modules/is-unicode-supported/index.js
2748
+ import process7 from "node:process";
2749
+ function isUnicodeSupported2() {
2750
+ const { env: env2 } = process7;
2751
+ const { TERM, TERM_PROGRAM } = env2;
2752
+ if (process7.platform !== "win32") {
2753
+ return TERM !== "linux";
2754
+ }
2755
+ return Boolean(env2.WT_SESSION) || Boolean(env2.TERMINUS_SUBLIME) || env2.ConEmuTask === "{cmd::Cmder}" || TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env2.TERMINAL_EMULATOR === "JetBrains-JediTerm";
2756
+ }
2757
+ var init_is_unicode_supported2 = () => {};
2758
+
2759
+ // node_modules/stdin-discarder/index.js
2760
+ import process8 from "node:process";
2761
+
2762
+ class StdinDiscarder {
2763
+ #activeCount = 0;
2764
+ start() {
2765
+ this.#activeCount++;
2766
+ if (this.#activeCount === 1) {
2767
+ this.#realStart();
2768
+ }
2769
+ }
2770
+ stop() {
2771
+ if (this.#activeCount <= 0) {
2772
+ throw new Error("`stop` called more times than `start`");
2773
+ }
2774
+ this.#activeCount--;
2775
+ if (this.#activeCount === 0) {
2776
+ this.#realStop();
2777
+ }
2778
+ }
2779
+ #realStart() {
2780
+ if (process8.platform === "win32" || !process8.stdin.isTTY) {
2781
+ return;
2782
+ }
2783
+ process8.stdin.setRawMode(true);
2784
+ process8.stdin.on("data", this.#handleInput);
2785
+ process8.stdin.resume();
2786
+ }
2787
+ #realStop() {
2788
+ if (!process8.stdin.isTTY) {
2789
+ return;
2790
+ }
2791
+ process8.stdin.off("data", this.#handleInput);
2792
+ process8.stdin.pause();
2793
+ process8.stdin.setRawMode(false);
2794
+ }
2795
+ #handleInput(chunk) {
2796
+ if (chunk[0] === ASCII_ETX_CODE) {
2797
+ process8.emit("SIGINT");
2798
+ }
2799
+ }
2800
+ }
2801
+ var ASCII_ETX_CODE = 3, stdinDiscarder, stdin_discarder_default;
2802
+ var init_stdin_discarder = __esm(() => {
2803
+ stdinDiscarder = new StdinDiscarder;
2804
+ stdin_discarder_default = stdinDiscarder;
2805
+ });
2806
+
2807
+ // node_modules/ora/index.js
2808
+ import process9 from "node:process";
2809
+
2810
+ class Ora {
2811
+ #linesToClear = 0;
2812
+ #isDiscardingStdin = false;
2813
+ #lineCount = 0;
2814
+ #frameIndex = -1;
2815
+ #lastSpinnerFrameTime = 0;
2816
+ #options;
2817
+ #spinner;
2818
+ #stream;
2819
+ #id;
2820
+ #initialInterval;
2821
+ #isEnabled;
2822
+ #isSilent;
2823
+ #indent;
2824
+ #text;
2825
+ #prefixText;
2826
+ #suffixText;
2827
+ color;
2828
+ constructor(options) {
2829
+ if (typeof options === "string") {
2830
+ options = {
2831
+ text: options
2832
+ };
2833
+ }
2834
+ this.#options = {
2835
+ color: "cyan",
2836
+ stream: process9.stderr,
2837
+ discardStdin: true,
2838
+ hideCursor: true,
2839
+ ...options
2840
+ };
2841
+ this.color = this.#options.color;
2842
+ this.spinner = this.#options.spinner;
2843
+ this.#initialInterval = this.#options.interval;
2844
+ this.#stream = this.#options.stream;
2845
+ this.#isEnabled = typeof this.#options.isEnabled === "boolean" ? this.#options.isEnabled : isInteractive({ stream: this.#stream });
2846
+ this.#isSilent = typeof this.#options.isSilent === "boolean" ? this.#options.isSilent : false;
2847
+ this.text = this.#options.text;
2848
+ this.prefixText = this.#options.prefixText;
2849
+ this.suffixText = this.#options.suffixText;
2850
+ this.indent = this.#options.indent;
2851
+ if (process9.env.NODE_ENV === "test") {
2852
+ this._stream = this.#stream;
2853
+ this._isEnabled = this.#isEnabled;
2854
+ Object.defineProperty(this, "_linesToClear", {
2855
+ get() {
2856
+ return this.#linesToClear;
2857
+ },
2858
+ set(newValue) {
2859
+ this.#linesToClear = newValue;
2860
+ }
2861
+ });
2862
+ Object.defineProperty(this, "_frameIndex", {
2863
+ get() {
2864
+ return this.#frameIndex;
2865
+ }
2866
+ });
2867
+ Object.defineProperty(this, "_lineCount", {
2868
+ get() {
2869
+ return this.#lineCount;
2870
+ }
2871
+ });
2872
+ }
2873
+ }
2874
+ get indent() {
2875
+ return this.#indent;
2876
+ }
2877
+ set indent(indent = 0) {
2878
+ if (!(indent >= 0 && Number.isInteger(indent))) {
2879
+ throw new Error("The `indent` option must be an integer from 0 and up");
2880
+ }
2881
+ this.#indent = indent;
2882
+ this.#updateLineCount();
2883
+ }
2884
+ get interval() {
2885
+ return this.#initialInterval ?? this.#spinner.interval ?? 100;
2886
+ }
2887
+ get spinner() {
2888
+ return this.#spinner;
2889
+ }
2890
+ set spinner(spinner) {
2891
+ this.#frameIndex = -1;
2892
+ this.#initialInterval = undefined;
2893
+ if (typeof spinner === "object") {
2894
+ if (spinner.frames === undefined) {
2895
+ throw new Error("The given spinner must have a `frames` property");
2896
+ }
2897
+ this.#spinner = spinner;
2898
+ } else if (!isUnicodeSupported2()) {
2899
+ this.#spinner = import_cli_spinners.default.line;
2900
+ } else if (spinner === undefined) {
2901
+ this.#spinner = import_cli_spinners.default.dots;
2902
+ } else if (spinner !== "default" && import_cli_spinners.default[spinner]) {
2903
+ this.#spinner = import_cli_spinners.default[spinner];
2904
+ } else {
2905
+ throw new Error(`There is no built-in spinner named '${spinner}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);
2906
+ }
2907
+ }
2908
+ get text() {
2909
+ return this.#text;
2910
+ }
2911
+ set text(value = "") {
2912
+ this.#text = value;
2913
+ this.#updateLineCount();
2914
+ }
2915
+ get prefixText() {
2916
+ return this.#prefixText;
2917
+ }
2918
+ set prefixText(value = "") {
2919
+ this.#prefixText = value;
2920
+ this.#updateLineCount();
2921
+ }
2922
+ get suffixText() {
2923
+ return this.#suffixText;
2924
+ }
2925
+ set suffixText(value = "") {
2926
+ this.#suffixText = value;
2927
+ this.#updateLineCount();
2928
+ }
2929
+ get isSpinning() {
2930
+ return this.#id !== undefined;
2931
+ }
2932
+ #getFullPrefixText(prefixText = this.#prefixText, postfix = " ") {
2933
+ if (typeof prefixText === "string" && prefixText !== "") {
2934
+ return prefixText + postfix;
2935
+ }
2936
+ if (typeof prefixText === "function") {
2937
+ return prefixText() + postfix;
2938
+ }
2939
+ return "";
2940
+ }
2941
+ #getFullSuffixText(suffixText = this.#suffixText, prefix = " ") {
2942
+ if (typeof suffixText === "string" && suffixText !== "") {
2943
+ return prefix + suffixText;
2944
+ }
2945
+ if (typeof suffixText === "function") {
2946
+ return prefix + suffixText();
2947
+ }
2948
+ return "";
2949
+ }
2950
+ #updateLineCount() {
2951
+ const columns = this.#stream.columns ?? 80;
2952
+ const fullPrefixText = this.#getFullPrefixText(this.#prefixText, "-");
2953
+ const fullSuffixText = this.#getFullSuffixText(this.#suffixText, "-");
2954
+ const fullText = " ".repeat(this.#indent) + fullPrefixText + "--" + this.#text + "--" + fullSuffixText;
2955
+ this.#lineCount = 0;
2956
+ for (const line of stripAnsi(fullText).split(`
2957
+ `)) {
2958
+ this.#lineCount += Math.max(1, Math.ceil(stringWidth(line, { countAnsiEscapeCodes: true }) / columns));
2959
+ }
2960
+ }
2961
+ get isEnabled() {
2962
+ return this.#isEnabled && !this.#isSilent;
2963
+ }
2964
+ set isEnabled(value) {
2965
+ if (typeof value !== "boolean") {
2966
+ throw new TypeError("The `isEnabled` option must be a boolean");
2967
+ }
2968
+ this.#isEnabled = value;
2969
+ }
2970
+ get isSilent() {
2971
+ return this.#isSilent;
2972
+ }
2973
+ set isSilent(value) {
2974
+ if (typeof value !== "boolean") {
2975
+ throw new TypeError("The `isSilent` option must be a boolean");
2976
+ }
2977
+ this.#isSilent = value;
2978
+ }
2979
+ frame() {
2980
+ const now = Date.now();
2981
+ if (this.#frameIndex === -1 || now - this.#lastSpinnerFrameTime >= this.interval) {
2982
+ this.#frameIndex = ++this.#frameIndex % this.#spinner.frames.length;
2983
+ this.#lastSpinnerFrameTime = now;
2984
+ }
2985
+ const { frames } = this.#spinner;
2986
+ let frame = frames[this.#frameIndex];
2987
+ if (this.color) {
2988
+ frame = source_default[this.color](frame);
2989
+ }
2990
+ const fullPrefixText = typeof this.#prefixText === "string" && this.#prefixText !== "" ? this.#prefixText + " " : "";
2991
+ const fullText = typeof this.text === "string" ? " " + this.text : "";
2992
+ const fullSuffixText = typeof this.#suffixText === "string" && this.#suffixText !== "" ? " " + this.#suffixText : "";
2993
+ return fullPrefixText + frame + fullText + fullSuffixText;
2994
+ }
2995
+ clear() {
2996
+ if (!this.#isEnabled || !this.#stream.isTTY) {
2997
+ return this;
2998
+ }
2999
+ this.#stream.cursorTo(0);
3000
+ for (let index = 0;index < this.#linesToClear; index++) {
3001
+ if (index > 0) {
3002
+ this.#stream.moveCursor(0, -1);
3003
+ }
3004
+ this.#stream.clearLine(1);
3005
+ }
3006
+ if (this.#indent || this.lastIndent !== this.#indent) {
3007
+ this.#stream.cursorTo(this.#indent);
3008
+ }
3009
+ this.lastIndent = this.#indent;
3010
+ this.#linesToClear = 0;
3011
+ return this;
3012
+ }
3013
+ render() {
3014
+ if (this.#isSilent) {
3015
+ return this;
3016
+ }
3017
+ this.clear();
3018
+ this.#stream.write(this.frame());
3019
+ this.#linesToClear = this.#lineCount;
3020
+ return this;
3021
+ }
3022
+ start(text) {
3023
+ if (text) {
3024
+ this.text = text;
3025
+ }
3026
+ if (this.#isSilent) {
3027
+ return this;
3028
+ }
3029
+ if (!this.#isEnabled) {
3030
+ if (this.text) {
3031
+ this.#stream.write(`- ${this.text}
3032
+ `);
3033
+ }
3034
+ return this;
3035
+ }
3036
+ if (this.isSpinning) {
3037
+ return this;
3038
+ }
3039
+ if (this.#options.hideCursor) {
3040
+ cli_cursor_default.hide(this.#stream);
3041
+ }
3042
+ if (this.#options.discardStdin && process9.stdin.isTTY) {
3043
+ this.#isDiscardingStdin = true;
3044
+ stdin_discarder_default.start();
3045
+ }
3046
+ this.render();
3047
+ this.#id = setInterval(this.render.bind(this), this.interval);
3048
+ return this;
3049
+ }
3050
+ stop() {
3051
+ if (!this.#isEnabled) {
3052
+ return this;
3053
+ }
3054
+ clearInterval(this.#id);
3055
+ this.#id = undefined;
3056
+ this.#frameIndex = 0;
3057
+ this.clear();
3058
+ if (this.#options.hideCursor) {
3059
+ cli_cursor_default.show(this.#stream);
3060
+ }
3061
+ if (this.#options.discardStdin && process9.stdin.isTTY && this.#isDiscardingStdin) {
3062
+ stdin_discarder_default.stop();
3063
+ this.#isDiscardingStdin = false;
3064
+ }
3065
+ return this;
3066
+ }
3067
+ succeed(text) {
3068
+ return this.stopAndPersist({ symbol: log_symbols_default.success, text });
3069
+ }
3070
+ fail(text) {
3071
+ return this.stopAndPersist({ symbol: log_symbols_default.error, text });
3072
+ }
3073
+ warn(text) {
3074
+ return this.stopAndPersist({ symbol: log_symbols_default.warning, text });
3075
+ }
3076
+ info(text) {
3077
+ return this.stopAndPersist({ symbol: log_symbols_default.info, text });
3078
+ }
3079
+ stopAndPersist(options = {}) {
3080
+ if (this.#isSilent) {
3081
+ return this;
3082
+ }
3083
+ const prefixText = options.prefixText ?? this.#prefixText;
3084
+ const fullPrefixText = this.#getFullPrefixText(prefixText, " ");
3085
+ const symbolText = options.symbol ?? " ";
3086
+ const text = options.text ?? this.text;
3087
+ const separatorText = symbolText ? " " : "";
3088
+ const fullText = typeof text === "string" ? separatorText + text : "";
3089
+ const suffixText = options.suffixText ?? this.#suffixText;
3090
+ const fullSuffixText = this.#getFullSuffixText(suffixText, " ");
3091
+ const textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + `
3092
+ `;
3093
+ this.stop();
3094
+ this.#stream.write(textToWrite);
3095
+ return this;
3096
+ }
3097
+ }
3098
+ function ora(options) {
3099
+ return new Ora(options);
3100
+ }
3101
+ var import_cli_spinners, import_cli_spinners2;
3102
+ var init_ora = __esm(() => {
3103
+ init_source();
3104
+ init_cli_cursor();
3105
+ init_log_symbols();
3106
+ init_strip_ansi();
3107
+ init_string_width();
3108
+ init_is_unicode_supported2();
3109
+ init_stdin_discarder();
3110
+ import_cli_spinners = __toESM(require_cli_spinners(), 1);
3111
+ import_cli_spinners2 = __toESM(require_cli_spinners(), 1);
3112
+ });
3113
+
3114
+ // src/utils/logger.ts
3115
+ class Logger {
3116
+ spinner = null;
3117
+ silent;
3118
+ constructor(silent = false) {
3119
+ this.silent = silent;
3120
+ }
3121
+ info(message) {
3122
+ if (this.silent)
3123
+ return;
3124
+ console.log(source_default.blue("ℹ"), message);
3125
+ }
3126
+ success(message) {
3127
+ if (this.silent)
3128
+ return;
3129
+ console.log(source_default.green("✓"), message);
3130
+ }
3131
+ warning(message) {
3132
+ if (this.silent)
3133
+ return;
3134
+ console.log(source_default.yellow("⚠"), message);
3135
+ }
3136
+ error(message) {
3137
+ if (this.silent)
3138
+ return;
3139
+ console.log(source_default.red("✗"), message);
3140
+ }
3141
+ debug(message) {
3142
+ if (this.silent)
3143
+ return;
3144
+ if (process.env.DEBUG) {
3145
+ console.log(source_default.gray("›"), source_default.gray(message));
3146
+ }
3147
+ }
3148
+ header(message) {
3149
+ if (this.silent)
3150
+ return;
3151
+ console.log("");
3152
+ console.log(source_default.bold.cyan(message));
3153
+ console.log(source_default.cyan("─".repeat(message.length)));
3154
+ }
3155
+ blank() {
3156
+ if (this.silent)
3157
+ return;
3158
+ console.log("");
3159
+ }
3160
+ start(text) {
3161
+ if (this.silent) {
3162
+ this.spinner = ora({ silent: true, text }).start();
3163
+ } else {
3164
+ this.spinner = ora({ text, color: "cyan" }).start();
3165
+ }
3166
+ return this.spinner;
3167
+ }
3168
+ succeed(text) {
3169
+ this.spinner?.succeed(text);
3170
+ this.spinner = null;
3171
+ }
3172
+ fail(text) {
3173
+ this.spinner?.fail(text);
3174
+ this.spinner = null;
3175
+ }
3176
+ stop() {
3177
+ this.spinner?.stop();
3178
+ this.spinner = null;
3179
+ }
3180
+ box(title, content) {
3181
+ if (this.silent)
3182
+ return;
3183
+ const lines = content.split(`
3184
+ `);
3185
+ const maxLength = Math.max(title.length, ...lines.map((l) => l.length));
3186
+ console.log("");
3187
+ console.log(source_default.cyan("┌" + "─".repeat(maxLength + 2) + "┐"));
3188
+ console.log(source_default.cyan("│") + " " + source_default.bold(title) + " ".repeat(maxLength - title.length + 1) + source_default.cyan("│"));
3189
+ console.log(source_default.cyan("├" + "─".repeat(maxLength + 2) + "┤"));
3190
+ for (const line of lines) {
3191
+ console.log(source_default.cyan("│") + " " + line + " ".repeat(maxLength - line.length + 1) + source_default.cyan("│"));
3192
+ }
3193
+ console.log(source_default.cyan("└" + "─".repeat(maxLength + 2) + "┘"));
3194
+ console.log("");
3195
+ }
3196
+ table(headers, rows) {
3197
+ if (this.silent)
3198
+ return;
3199
+ const colWidths = headers.map((h, i) => Math.max(h.length, ...rows.map((r) => r[i]?.length || 0)));
3200
+ const printRow = (row) => {
3201
+ console.log(row.map((cell, i) => cell.padEnd(colWidths[i])).join(" "));
3202
+ };
3203
+ console.log("");
3204
+ printRow(headers.map((h) => source_default.bold(h)));
3205
+ console.log(headers.map((_, i) => "─".repeat(colWidths[i])).join(" "));
3206
+ for (const row of rows) {
3207
+ printRow(row);
3208
+ }
3209
+ console.log("");
3210
+ }
3211
+ }
3212
+ var logger;
3213
+ var init_logger = __esm(() => {
3214
+ init_source();
3215
+ init_ora();
3216
+ logger = new Logger;
3217
+ });
3218
+
3219
+ // src/utils/paths.ts
3220
+ import path from "path";
3221
+ import os2 from "os";
3222
+ function getHomeDir() {
3223
+ return os2.homedir();
3224
+ }
3225
+ function getConfig() {
3226
+ const homeDir = getHomeDir();
3227
+ const templateDir = path.join(homeDir, ".git-templates");
3228
+ const hooksDir = path.join(templateDir, "hooks");
3229
+ const hookFile = path.join(hooksDir, "commit-msg");
3230
+ return {
3231
+ templateDir,
3232
+ hooksDir,
3233
+ hookFile
3234
+ };
3235
+ }
3236
+ function toGitPath(filePath) {
3237
+ return filePath.replace(/\\/g, "/");
3238
+ }
3239
+ var init_paths = () => {};
3240
+
3241
+ // src/utils/hook.ts
3242
+ function generateHookContent(options = {}) {
3243
+ const patterns = options.patterns || DEFAULT_AI_PATTERNS;
3244
+ const sedCommands = patterns.map((p) => `sed -i '/${p.pattern}/d' "$COMMIT_MSG_FILE"`).join(`
3245
+ `);
3246
+ return `#!/bin/bash
3247
+ # git-no-ai-author: Remove AI co-author signatures from commit messages
3248
+ # Generated by npx git-no-ai-author
3249
+ # See: https://github.com/yourusername/git-no-ai-author
3250
+
3251
+ COMMIT_MSG_FILE=$1
3252
+
3253
+ # AI patterns to remove from commit messages
3254
+ ${sedCommands}
3255
+
3256
+ # Remove trailing empty lines
3257
+ sed -i -e :a -e '/^$/{$d;N;ba' -e '}' "$COMMIT_MSG_FILE"
3258
+ `;
3259
+ }
3260
+ function getPatternNames() {
3261
+ return DEFAULT_AI_PATTERNS.map((p) => p.name);
3262
+ }
3263
+ var init_hook = __esm(() => {
3264
+ init_types();
3265
+ });
3266
+
3267
+ // src/utils/git.ts
3268
+ import { execSync } from "child_process";
3269
+ function getGitConfig(key) {
3270
+ try {
3271
+ const value = execSync(`git config --global ${key}`, {
3272
+ encoding: "utf-8",
3273
+ stdio: ["pipe", "pipe", "ignore"]
3274
+ }).trim();
3275
+ return { exists: true, value };
3276
+ } catch (error) {
3277
+ return { exists: false, value: null };
3278
+ }
3279
+ }
3280
+ function setGitConfig(key, value) {
3281
+ execSync(`git config --global ${key} '${value}'`, {
3282
+ encoding: "utf-8",
3283
+ stdio: ["pipe", "pipe", "ignore"]
3284
+ });
3285
+ }
3286
+ function unsetGitConfig(key) {
3287
+ try {
3288
+ execSync(`git config --global --unset ${key}`, {
3289
+ encoding: "utf-8",
3290
+ stdio: ["pipe", "pipe", "ignore"]
3291
+ });
3292
+ } catch {}
3293
+ }
3294
+ function getTemplateDir() {
3295
+ return getGitConfig("init.templatedir");
3296
+ }
3297
+ function setTemplateDir(templatePath) {
3298
+ const gitPath = toGitPath(templatePath);
3299
+ setGitConfig("init.templatedir", gitPath);
3300
+ }
3301
+ var init_git = __esm(() => {
3302
+ init_paths();
3303
+ });
3304
+
3305
+ // src/install.ts
3306
+ var exports_install = {};
3307
+ __export(exports_install, {
3308
+ main: () => main2,
3309
+ install: () => install
3310
+ });
3311
+ import fs from "fs/promises";
3312
+ async function install(options = {}) {
3313
+ const logger2 = new Logger(options.silent);
3314
+ const config = getConfig();
3315
+ try {
3316
+ logger2.start("Creating git templates directory...");
3317
+ await fs.mkdir(config.hooksDir, { recursive: true });
3318
+ const hookContent = generateHookContent();
3319
+ await fs.writeFile(config.hookFile, hookContent, { mode: 493 });
3320
+ logger2.succeed(`Hook created at ${config.hookFile}`);
3321
+ logger2.start("Configuring git templates...");
3322
+ const currentTemplate = getTemplateDir();
3323
+ const templateDirForGit = toGitPath(config.templateDir);
3324
+ if (currentTemplate.exists && currentTemplate.value !== templateDirForGit) {
3325
+ logger2.warning(`Current template directory: ${currentTemplate.value}`);
3326
+ logger2.info(`To use the new hook, run:`);
3327
+ logger2.blank();
3328
+ logger2.info(` git config --global init.templatedir '${templateDirForGit}'`);
3329
+ logger2.blank();
3330
+ return {
3331
+ success: true,
3332
+ message: "Hook installed but git config needs update",
3333
+ hookPath: config.hookFile,
3334
+ needsInit: true
3335
+ };
3336
+ }
3337
+ if (!currentTemplate.exists) {
3338
+ setTemplateDir(config.templateDir);
3339
+ logger2.succeed(`Git template directory set to ${templateDirForGit}`);
3340
+ } else {
3341
+ logger2.succeed(`Git template directory already configured`);
3342
+ }
3343
+ logger2.blank();
3344
+ logger2.success("✨ Installation complete!");
3345
+ return {
3346
+ success: true,
3347
+ message: "Successfully installed git-no-ai-author",
3348
+ hookPath: config.hookFile,
3349
+ needsInit: false
3350
+ };
3351
+ } catch (error) {
3352
+ logger2.fail("Installation failed");
3353
+ if (error instanceof Error) {
3354
+ logger2.error(error.message);
3355
+ }
3356
+ return {
3357
+ success: false,
3358
+ message: error instanceof Error ? error.message : "Unknown error"
3359
+ };
3360
+ }
3361
+ }
3362
+ async function main2() {
3363
+ const logger2 = new Logger;
3364
+ logger2.header("\uD83D\uDE80 git-no-ai-author");
3365
+ logger2.blank();
3366
+ const result = await install();
3367
+ if (result.success) {
3368
+ logger2.blank();
3369
+ logger2.info("The following AI signatures will be removed:");
3370
+ const patterns = getPatternNames();
3371
+ patterns.forEach((p) => logger2.info(` • ${p}`));
3372
+ logger2.blank();
3373
+ logger2.info("For existing repositories, run:");
3374
+ logger2.blank();
3375
+ logger2.info(" cd <your-repo> && git init");
3376
+ logger2.blank();
3377
+ process.exit(0);
3378
+ } else {
3379
+ logger2.blank();
3380
+ logger2.error("Installation failed. Please try again.");
3381
+ process.exit(1);
3382
+ }
3383
+ }
3384
+ var init_install = __esm(() => {
3385
+ init_logger();
3386
+ init_paths();
3387
+ init_hook();
3388
+ init_git();
3389
+ });
3390
+ init_install();
3391
+
3392
+ export {
3393
+ main2 as main,
3394
+ install
3395
+ };