nococli 1.0.0 → 1.0.1

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