@better-webhook/cli 3.8.0 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -6,6 +6,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __commonJS = (cb, mod) => function __require() {
10
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ };
9
12
  var __copyProps = (to, from, except, desc) => {
10
13
  if (from && typeof from === "object" || typeof from === "function") {
11
14
  for (let key of __getOwnPropNames(from))
@@ -23,16 +26,3108 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
23
26
  mod
24
27
  ));
25
28
 
29
+ // ../../node_modules/.pnpm/cli-spinners@2.9.2/node_modules/cli-spinners/spinners.json
30
+ var require_spinners = __commonJS({
31
+ "../../node_modules/.pnpm/cli-spinners@2.9.2/node_modules/cli-spinners/spinners.json"(exports2, module2) {
32
+ module2.exports = {
33
+ dots: {
34
+ interval: 80,
35
+ frames: [
36
+ "\u280B",
37
+ "\u2819",
38
+ "\u2839",
39
+ "\u2838",
40
+ "\u283C",
41
+ "\u2834",
42
+ "\u2826",
43
+ "\u2827",
44
+ "\u2807",
45
+ "\u280F"
46
+ ]
47
+ },
48
+ dots2: {
49
+ interval: 80,
50
+ frames: [
51
+ "\u28FE",
52
+ "\u28FD",
53
+ "\u28FB",
54
+ "\u28BF",
55
+ "\u287F",
56
+ "\u28DF",
57
+ "\u28EF",
58
+ "\u28F7"
59
+ ]
60
+ },
61
+ dots3: {
62
+ interval: 80,
63
+ frames: [
64
+ "\u280B",
65
+ "\u2819",
66
+ "\u281A",
67
+ "\u281E",
68
+ "\u2816",
69
+ "\u2826",
70
+ "\u2834",
71
+ "\u2832",
72
+ "\u2833",
73
+ "\u2813"
74
+ ]
75
+ },
76
+ dots4: {
77
+ interval: 80,
78
+ frames: [
79
+ "\u2804",
80
+ "\u2806",
81
+ "\u2807",
82
+ "\u280B",
83
+ "\u2819",
84
+ "\u2838",
85
+ "\u2830",
86
+ "\u2820",
87
+ "\u2830",
88
+ "\u2838",
89
+ "\u2819",
90
+ "\u280B",
91
+ "\u2807",
92
+ "\u2806"
93
+ ]
94
+ },
95
+ dots5: {
96
+ interval: 80,
97
+ frames: [
98
+ "\u280B",
99
+ "\u2819",
100
+ "\u281A",
101
+ "\u2812",
102
+ "\u2802",
103
+ "\u2802",
104
+ "\u2812",
105
+ "\u2832",
106
+ "\u2834",
107
+ "\u2826",
108
+ "\u2816",
109
+ "\u2812",
110
+ "\u2810",
111
+ "\u2810",
112
+ "\u2812",
113
+ "\u2813",
114
+ "\u280B"
115
+ ]
116
+ },
117
+ dots6: {
118
+ interval: 80,
119
+ frames: [
120
+ "\u2801",
121
+ "\u2809",
122
+ "\u2819",
123
+ "\u281A",
124
+ "\u2812",
125
+ "\u2802",
126
+ "\u2802",
127
+ "\u2812",
128
+ "\u2832",
129
+ "\u2834",
130
+ "\u2824",
131
+ "\u2804",
132
+ "\u2804",
133
+ "\u2824",
134
+ "\u2834",
135
+ "\u2832",
136
+ "\u2812",
137
+ "\u2802",
138
+ "\u2802",
139
+ "\u2812",
140
+ "\u281A",
141
+ "\u2819",
142
+ "\u2809",
143
+ "\u2801"
144
+ ]
145
+ },
146
+ dots7: {
147
+ interval: 80,
148
+ frames: [
149
+ "\u2808",
150
+ "\u2809",
151
+ "\u280B",
152
+ "\u2813",
153
+ "\u2812",
154
+ "\u2810",
155
+ "\u2810",
156
+ "\u2812",
157
+ "\u2816",
158
+ "\u2826",
159
+ "\u2824",
160
+ "\u2820",
161
+ "\u2820",
162
+ "\u2824",
163
+ "\u2826",
164
+ "\u2816",
165
+ "\u2812",
166
+ "\u2810",
167
+ "\u2810",
168
+ "\u2812",
169
+ "\u2813",
170
+ "\u280B",
171
+ "\u2809",
172
+ "\u2808"
173
+ ]
174
+ },
175
+ dots8: {
176
+ interval: 80,
177
+ frames: [
178
+ "\u2801",
179
+ "\u2801",
180
+ "\u2809",
181
+ "\u2819",
182
+ "\u281A",
183
+ "\u2812",
184
+ "\u2802",
185
+ "\u2802",
186
+ "\u2812",
187
+ "\u2832",
188
+ "\u2834",
189
+ "\u2824",
190
+ "\u2804",
191
+ "\u2804",
192
+ "\u2824",
193
+ "\u2820",
194
+ "\u2820",
195
+ "\u2824",
196
+ "\u2826",
197
+ "\u2816",
198
+ "\u2812",
199
+ "\u2810",
200
+ "\u2810",
201
+ "\u2812",
202
+ "\u2813",
203
+ "\u280B",
204
+ "\u2809",
205
+ "\u2808",
206
+ "\u2808"
207
+ ]
208
+ },
209
+ dots9: {
210
+ interval: 80,
211
+ frames: [
212
+ "\u28B9",
213
+ "\u28BA",
214
+ "\u28BC",
215
+ "\u28F8",
216
+ "\u28C7",
217
+ "\u2867",
218
+ "\u2857",
219
+ "\u284F"
220
+ ]
221
+ },
222
+ dots10: {
223
+ interval: 80,
224
+ frames: [
225
+ "\u2884",
226
+ "\u2882",
227
+ "\u2881",
228
+ "\u2841",
229
+ "\u2848",
230
+ "\u2850",
231
+ "\u2860"
232
+ ]
233
+ },
234
+ dots11: {
235
+ interval: 100,
236
+ frames: [
237
+ "\u2801",
238
+ "\u2802",
239
+ "\u2804",
240
+ "\u2840",
241
+ "\u2880",
242
+ "\u2820",
243
+ "\u2810",
244
+ "\u2808"
245
+ ]
246
+ },
247
+ dots12: {
248
+ interval: 80,
249
+ frames: [
250
+ "\u2880\u2800",
251
+ "\u2840\u2800",
252
+ "\u2804\u2800",
253
+ "\u2882\u2800",
254
+ "\u2842\u2800",
255
+ "\u2805\u2800",
256
+ "\u2883\u2800",
257
+ "\u2843\u2800",
258
+ "\u280D\u2800",
259
+ "\u288B\u2800",
260
+ "\u284B\u2800",
261
+ "\u280D\u2801",
262
+ "\u288B\u2801",
263
+ "\u284B\u2801",
264
+ "\u280D\u2809",
265
+ "\u280B\u2809",
266
+ "\u280B\u2809",
267
+ "\u2809\u2819",
268
+ "\u2809\u2819",
269
+ "\u2809\u2829",
270
+ "\u2808\u2899",
271
+ "\u2808\u2859",
272
+ "\u2888\u2829",
273
+ "\u2840\u2899",
274
+ "\u2804\u2859",
275
+ "\u2882\u2829",
276
+ "\u2842\u2898",
277
+ "\u2805\u2858",
278
+ "\u2883\u2828",
279
+ "\u2843\u2890",
280
+ "\u280D\u2850",
281
+ "\u288B\u2820",
282
+ "\u284B\u2880",
283
+ "\u280D\u2841",
284
+ "\u288B\u2801",
285
+ "\u284B\u2801",
286
+ "\u280D\u2809",
287
+ "\u280B\u2809",
288
+ "\u280B\u2809",
289
+ "\u2809\u2819",
290
+ "\u2809\u2819",
291
+ "\u2809\u2829",
292
+ "\u2808\u2899",
293
+ "\u2808\u2859",
294
+ "\u2808\u2829",
295
+ "\u2800\u2899",
296
+ "\u2800\u2859",
297
+ "\u2800\u2829",
298
+ "\u2800\u2898",
299
+ "\u2800\u2858",
300
+ "\u2800\u2828",
301
+ "\u2800\u2890",
302
+ "\u2800\u2850",
303
+ "\u2800\u2820",
304
+ "\u2800\u2880",
305
+ "\u2800\u2840"
306
+ ]
307
+ },
308
+ dots13: {
309
+ interval: 80,
310
+ frames: [
311
+ "\u28FC",
312
+ "\u28F9",
313
+ "\u28BB",
314
+ "\u283F",
315
+ "\u285F",
316
+ "\u28CF",
317
+ "\u28E7",
318
+ "\u28F6"
319
+ ]
320
+ },
321
+ dots8Bit: {
322
+ interval: 80,
323
+ frames: [
324
+ "\u2800",
325
+ "\u2801",
326
+ "\u2802",
327
+ "\u2803",
328
+ "\u2804",
329
+ "\u2805",
330
+ "\u2806",
331
+ "\u2807",
332
+ "\u2840",
333
+ "\u2841",
334
+ "\u2842",
335
+ "\u2843",
336
+ "\u2844",
337
+ "\u2845",
338
+ "\u2846",
339
+ "\u2847",
340
+ "\u2808",
341
+ "\u2809",
342
+ "\u280A",
343
+ "\u280B",
344
+ "\u280C",
345
+ "\u280D",
346
+ "\u280E",
347
+ "\u280F",
348
+ "\u2848",
349
+ "\u2849",
350
+ "\u284A",
351
+ "\u284B",
352
+ "\u284C",
353
+ "\u284D",
354
+ "\u284E",
355
+ "\u284F",
356
+ "\u2810",
357
+ "\u2811",
358
+ "\u2812",
359
+ "\u2813",
360
+ "\u2814",
361
+ "\u2815",
362
+ "\u2816",
363
+ "\u2817",
364
+ "\u2850",
365
+ "\u2851",
366
+ "\u2852",
367
+ "\u2853",
368
+ "\u2854",
369
+ "\u2855",
370
+ "\u2856",
371
+ "\u2857",
372
+ "\u2818",
373
+ "\u2819",
374
+ "\u281A",
375
+ "\u281B",
376
+ "\u281C",
377
+ "\u281D",
378
+ "\u281E",
379
+ "\u281F",
380
+ "\u2858",
381
+ "\u2859",
382
+ "\u285A",
383
+ "\u285B",
384
+ "\u285C",
385
+ "\u285D",
386
+ "\u285E",
387
+ "\u285F",
388
+ "\u2820",
389
+ "\u2821",
390
+ "\u2822",
391
+ "\u2823",
392
+ "\u2824",
393
+ "\u2825",
394
+ "\u2826",
395
+ "\u2827",
396
+ "\u2860",
397
+ "\u2861",
398
+ "\u2862",
399
+ "\u2863",
400
+ "\u2864",
401
+ "\u2865",
402
+ "\u2866",
403
+ "\u2867",
404
+ "\u2828",
405
+ "\u2829",
406
+ "\u282A",
407
+ "\u282B",
408
+ "\u282C",
409
+ "\u282D",
410
+ "\u282E",
411
+ "\u282F",
412
+ "\u2868",
413
+ "\u2869",
414
+ "\u286A",
415
+ "\u286B",
416
+ "\u286C",
417
+ "\u286D",
418
+ "\u286E",
419
+ "\u286F",
420
+ "\u2830",
421
+ "\u2831",
422
+ "\u2832",
423
+ "\u2833",
424
+ "\u2834",
425
+ "\u2835",
426
+ "\u2836",
427
+ "\u2837",
428
+ "\u2870",
429
+ "\u2871",
430
+ "\u2872",
431
+ "\u2873",
432
+ "\u2874",
433
+ "\u2875",
434
+ "\u2876",
435
+ "\u2877",
436
+ "\u2838",
437
+ "\u2839",
438
+ "\u283A",
439
+ "\u283B",
440
+ "\u283C",
441
+ "\u283D",
442
+ "\u283E",
443
+ "\u283F",
444
+ "\u2878",
445
+ "\u2879",
446
+ "\u287A",
447
+ "\u287B",
448
+ "\u287C",
449
+ "\u287D",
450
+ "\u287E",
451
+ "\u287F",
452
+ "\u2880",
453
+ "\u2881",
454
+ "\u2882",
455
+ "\u2883",
456
+ "\u2884",
457
+ "\u2885",
458
+ "\u2886",
459
+ "\u2887",
460
+ "\u28C0",
461
+ "\u28C1",
462
+ "\u28C2",
463
+ "\u28C3",
464
+ "\u28C4",
465
+ "\u28C5",
466
+ "\u28C6",
467
+ "\u28C7",
468
+ "\u2888",
469
+ "\u2889",
470
+ "\u288A",
471
+ "\u288B",
472
+ "\u288C",
473
+ "\u288D",
474
+ "\u288E",
475
+ "\u288F",
476
+ "\u28C8",
477
+ "\u28C9",
478
+ "\u28CA",
479
+ "\u28CB",
480
+ "\u28CC",
481
+ "\u28CD",
482
+ "\u28CE",
483
+ "\u28CF",
484
+ "\u2890",
485
+ "\u2891",
486
+ "\u2892",
487
+ "\u2893",
488
+ "\u2894",
489
+ "\u2895",
490
+ "\u2896",
491
+ "\u2897",
492
+ "\u28D0",
493
+ "\u28D1",
494
+ "\u28D2",
495
+ "\u28D3",
496
+ "\u28D4",
497
+ "\u28D5",
498
+ "\u28D6",
499
+ "\u28D7",
500
+ "\u2898",
501
+ "\u2899",
502
+ "\u289A",
503
+ "\u289B",
504
+ "\u289C",
505
+ "\u289D",
506
+ "\u289E",
507
+ "\u289F",
508
+ "\u28D8",
509
+ "\u28D9",
510
+ "\u28DA",
511
+ "\u28DB",
512
+ "\u28DC",
513
+ "\u28DD",
514
+ "\u28DE",
515
+ "\u28DF",
516
+ "\u28A0",
517
+ "\u28A1",
518
+ "\u28A2",
519
+ "\u28A3",
520
+ "\u28A4",
521
+ "\u28A5",
522
+ "\u28A6",
523
+ "\u28A7",
524
+ "\u28E0",
525
+ "\u28E1",
526
+ "\u28E2",
527
+ "\u28E3",
528
+ "\u28E4",
529
+ "\u28E5",
530
+ "\u28E6",
531
+ "\u28E7",
532
+ "\u28A8",
533
+ "\u28A9",
534
+ "\u28AA",
535
+ "\u28AB",
536
+ "\u28AC",
537
+ "\u28AD",
538
+ "\u28AE",
539
+ "\u28AF",
540
+ "\u28E8",
541
+ "\u28E9",
542
+ "\u28EA",
543
+ "\u28EB",
544
+ "\u28EC",
545
+ "\u28ED",
546
+ "\u28EE",
547
+ "\u28EF",
548
+ "\u28B0",
549
+ "\u28B1",
550
+ "\u28B2",
551
+ "\u28B3",
552
+ "\u28B4",
553
+ "\u28B5",
554
+ "\u28B6",
555
+ "\u28B7",
556
+ "\u28F0",
557
+ "\u28F1",
558
+ "\u28F2",
559
+ "\u28F3",
560
+ "\u28F4",
561
+ "\u28F5",
562
+ "\u28F6",
563
+ "\u28F7",
564
+ "\u28B8",
565
+ "\u28B9",
566
+ "\u28BA",
567
+ "\u28BB",
568
+ "\u28BC",
569
+ "\u28BD",
570
+ "\u28BE",
571
+ "\u28BF",
572
+ "\u28F8",
573
+ "\u28F9",
574
+ "\u28FA",
575
+ "\u28FB",
576
+ "\u28FC",
577
+ "\u28FD",
578
+ "\u28FE",
579
+ "\u28FF"
580
+ ]
581
+ },
582
+ sand: {
583
+ interval: 80,
584
+ frames: [
585
+ "\u2801",
586
+ "\u2802",
587
+ "\u2804",
588
+ "\u2840",
589
+ "\u2848",
590
+ "\u2850",
591
+ "\u2860",
592
+ "\u28C0",
593
+ "\u28C1",
594
+ "\u28C2",
595
+ "\u28C4",
596
+ "\u28CC",
597
+ "\u28D4",
598
+ "\u28E4",
599
+ "\u28E5",
600
+ "\u28E6",
601
+ "\u28EE",
602
+ "\u28F6",
603
+ "\u28F7",
604
+ "\u28FF",
605
+ "\u287F",
606
+ "\u283F",
607
+ "\u289F",
608
+ "\u281F",
609
+ "\u285B",
610
+ "\u281B",
611
+ "\u282B",
612
+ "\u288B",
613
+ "\u280B",
614
+ "\u280D",
615
+ "\u2849",
616
+ "\u2809",
617
+ "\u2811",
618
+ "\u2821",
619
+ "\u2881"
620
+ ]
621
+ },
622
+ line: {
623
+ interval: 130,
624
+ frames: [
625
+ "-",
626
+ "\\",
627
+ "|",
628
+ "/"
629
+ ]
630
+ },
631
+ line2: {
632
+ interval: 100,
633
+ frames: [
634
+ "\u2802",
635
+ "-",
636
+ "\u2013",
637
+ "\u2014",
638
+ "\u2013",
639
+ "-"
640
+ ]
641
+ },
642
+ pipe: {
643
+ interval: 100,
644
+ frames: [
645
+ "\u2524",
646
+ "\u2518",
647
+ "\u2534",
648
+ "\u2514",
649
+ "\u251C",
650
+ "\u250C",
651
+ "\u252C",
652
+ "\u2510"
653
+ ]
654
+ },
655
+ simpleDots: {
656
+ interval: 400,
657
+ frames: [
658
+ ". ",
659
+ ".. ",
660
+ "...",
661
+ " "
662
+ ]
663
+ },
664
+ simpleDotsScrolling: {
665
+ interval: 200,
666
+ frames: [
667
+ ". ",
668
+ ".. ",
669
+ "...",
670
+ " ..",
671
+ " .",
672
+ " "
673
+ ]
674
+ },
675
+ star: {
676
+ interval: 70,
677
+ frames: [
678
+ "\u2736",
679
+ "\u2738",
680
+ "\u2739",
681
+ "\u273A",
682
+ "\u2739",
683
+ "\u2737"
684
+ ]
685
+ },
686
+ star2: {
687
+ interval: 80,
688
+ frames: [
689
+ "+",
690
+ "x",
691
+ "*"
692
+ ]
693
+ },
694
+ flip: {
695
+ interval: 70,
696
+ frames: [
697
+ "_",
698
+ "_",
699
+ "_",
700
+ "-",
701
+ "`",
702
+ "`",
703
+ "'",
704
+ "\xB4",
705
+ "-",
706
+ "_",
707
+ "_",
708
+ "_"
709
+ ]
710
+ },
711
+ hamburger: {
712
+ interval: 100,
713
+ frames: [
714
+ "\u2631",
715
+ "\u2632",
716
+ "\u2634"
717
+ ]
718
+ },
719
+ growVertical: {
720
+ interval: 120,
721
+ frames: [
722
+ "\u2581",
723
+ "\u2583",
724
+ "\u2584",
725
+ "\u2585",
726
+ "\u2586",
727
+ "\u2587",
728
+ "\u2586",
729
+ "\u2585",
730
+ "\u2584",
731
+ "\u2583"
732
+ ]
733
+ },
734
+ growHorizontal: {
735
+ interval: 120,
736
+ frames: [
737
+ "\u258F",
738
+ "\u258E",
739
+ "\u258D",
740
+ "\u258C",
741
+ "\u258B",
742
+ "\u258A",
743
+ "\u2589",
744
+ "\u258A",
745
+ "\u258B",
746
+ "\u258C",
747
+ "\u258D",
748
+ "\u258E"
749
+ ]
750
+ },
751
+ balloon: {
752
+ interval: 140,
753
+ frames: [
754
+ " ",
755
+ ".",
756
+ "o",
757
+ "O",
758
+ "@",
759
+ "*",
760
+ " "
761
+ ]
762
+ },
763
+ balloon2: {
764
+ interval: 120,
765
+ frames: [
766
+ ".",
767
+ "o",
768
+ "O",
769
+ "\xB0",
770
+ "O",
771
+ "o",
772
+ "."
773
+ ]
774
+ },
775
+ noise: {
776
+ interval: 100,
777
+ frames: [
778
+ "\u2593",
779
+ "\u2592",
780
+ "\u2591"
781
+ ]
782
+ },
783
+ bounce: {
784
+ interval: 120,
785
+ frames: [
786
+ "\u2801",
787
+ "\u2802",
788
+ "\u2804",
789
+ "\u2802"
790
+ ]
791
+ },
792
+ boxBounce: {
793
+ interval: 120,
794
+ frames: [
795
+ "\u2596",
796
+ "\u2598",
797
+ "\u259D",
798
+ "\u2597"
799
+ ]
800
+ },
801
+ boxBounce2: {
802
+ interval: 100,
803
+ frames: [
804
+ "\u258C",
805
+ "\u2580",
806
+ "\u2590",
807
+ "\u2584"
808
+ ]
809
+ },
810
+ triangle: {
811
+ interval: 50,
812
+ frames: [
813
+ "\u25E2",
814
+ "\u25E3",
815
+ "\u25E4",
816
+ "\u25E5"
817
+ ]
818
+ },
819
+ binary: {
820
+ interval: 80,
821
+ frames: [
822
+ "010010",
823
+ "001100",
824
+ "100101",
825
+ "111010",
826
+ "111101",
827
+ "010111",
828
+ "101011",
829
+ "111000",
830
+ "110011",
831
+ "110101"
832
+ ]
833
+ },
834
+ arc: {
835
+ interval: 100,
836
+ frames: [
837
+ "\u25DC",
838
+ "\u25E0",
839
+ "\u25DD",
840
+ "\u25DE",
841
+ "\u25E1",
842
+ "\u25DF"
843
+ ]
844
+ },
845
+ circle: {
846
+ interval: 120,
847
+ frames: [
848
+ "\u25E1",
849
+ "\u2299",
850
+ "\u25E0"
851
+ ]
852
+ },
853
+ squareCorners: {
854
+ interval: 180,
855
+ frames: [
856
+ "\u25F0",
857
+ "\u25F3",
858
+ "\u25F2",
859
+ "\u25F1"
860
+ ]
861
+ },
862
+ circleQuarters: {
863
+ interval: 120,
864
+ frames: [
865
+ "\u25F4",
866
+ "\u25F7",
867
+ "\u25F6",
868
+ "\u25F5"
869
+ ]
870
+ },
871
+ circleHalves: {
872
+ interval: 50,
873
+ frames: [
874
+ "\u25D0",
875
+ "\u25D3",
876
+ "\u25D1",
877
+ "\u25D2"
878
+ ]
879
+ },
880
+ squish: {
881
+ interval: 100,
882
+ frames: [
883
+ "\u256B",
884
+ "\u256A"
885
+ ]
886
+ },
887
+ toggle: {
888
+ interval: 250,
889
+ frames: [
890
+ "\u22B6",
891
+ "\u22B7"
892
+ ]
893
+ },
894
+ toggle2: {
895
+ interval: 80,
896
+ frames: [
897
+ "\u25AB",
898
+ "\u25AA"
899
+ ]
900
+ },
901
+ toggle3: {
902
+ interval: 120,
903
+ frames: [
904
+ "\u25A1",
905
+ "\u25A0"
906
+ ]
907
+ },
908
+ toggle4: {
909
+ interval: 100,
910
+ frames: [
911
+ "\u25A0",
912
+ "\u25A1",
913
+ "\u25AA",
914
+ "\u25AB"
915
+ ]
916
+ },
917
+ toggle5: {
918
+ interval: 100,
919
+ frames: [
920
+ "\u25AE",
921
+ "\u25AF"
922
+ ]
923
+ },
924
+ toggle6: {
925
+ interval: 300,
926
+ frames: [
927
+ "\u101D",
928
+ "\u1040"
929
+ ]
930
+ },
931
+ toggle7: {
932
+ interval: 80,
933
+ frames: [
934
+ "\u29BE",
935
+ "\u29BF"
936
+ ]
937
+ },
938
+ toggle8: {
939
+ interval: 100,
940
+ frames: [
941
+ "\u25CD",
942
+ "\u25CC"
943
+ ]
944
+ },
945
+ toggle9: {
946
+ interval: 100,
947
+ frames: [
948
+ "\u25C9",
949
+ "\u25CE"
950
+ ]
951
+ },
952
+ toggle10: {
953
+ interval: 100,
954
+ frames: [
955
+ "\u3282",
956
+ "\u3280",
957
+ "\u3281"
958
+ ]
959
+ },
960
+ toggle11: {
961
+ interval: 50,
962
+ frames: [
963
+ "\u29C7",
964
+ "\u29C6"
965
+ ]
966
+ },
967
+ toggle12: {
968
+ interval: 120,
969
+ frames: [
970
+ "\u2617",
971
+ "\u2616"
972
+ ]
973
+ },
974
+ toggle13: {
975
+ interval: 80,
976
+ frames: [
977
+ "=",
978
+ "*",
979
+ "-"
980
+ ]
981
+ },
982
+ arrow: {
983
+ interval: 100,
984
+ frames: [
985
+ "\u2190",
986
+ "\u2196",
987
+ "\u2191",
988
+ "\u2197",
989
+ "\u2192",
990
+ "\u2198",
991
+ "\u2193",
992
+ "\u2199"
993
+ ]
994
+ },
995
+ arrow2: {
996
+ interval: 80,
997
+ frames: [
998
+ "\u2B06\uFE0F ",
999
+ "\u2197\uFE0F ",
1000
+ "\u27A1\uFE0F ",
1001
+ "\u2198\uFE0F ",
1002
+ "\u2B07\uFE0F ",
1003
+ "\u2199\uFE0F ",
1004
+ "\u2B05\uFE0F ",
1005
+ "\u2196\uFE0F "
1006
+ ]
1007
+ },
1008
+ arrow3: {
1009
+ interval: 120,
1010
+ frames: [
1011
+ "\u25B9\u25B9\u25B9\u25B9\u25B9",
1012
+ "\u25B8\u25B9\u25B9\u25B9\u25B9",
1013
+ "\u25B9\u25B8\u25B9\u25B9\u25B9",
1014
+ "\u25B9\u25B9\u25B8\u25B9\u25B9",
1015
+ "\u25B9\u25B9\u25B9\u25B8\u25B9",
1016
+ "\u25B9\u25B9\u25B9\u25B9\u25B8"
1017
+ ]
1018
+ },
1019
+ bouncingBar: {
1020
+ interval: 80,
1021
+ frames: [
1022
+ "[ ]",
1023
+ "[= ]",
1024
+ "[== ]",
1025
+ "[=== ]",
1026
+ "[====]",
1027
+ "[ ===]",
1028
+ "[ ==]",
1029
+ "[ =]",
1030
+ "[ ]",
1031
+ "[ =]",
1032
+ "[ ==]",
1033
+ "[ ===]",
1034
+ "[====]",
1035
+ "[=== ]",
1036
+ "[== ]",
1037
+ "[= ]"
1038
+ ]
1039
+ },
1040
+ bouncingBall: {
1041
+ interval: 80,
1042
+ frames: [
1043
+ "( \u25CF )",
1044
+ "( \u25CF )",
1045
+ "( \u25CF )",
1046
+ "( \u25CF )",
1047
+ "( \u25CF)",
1048
+ "( \u25CF )",
1049
+ "( \u25CF )",
1050
+ "( \u25CF )",
1051
+ "( \u25CF )",
1052
+ "(\u25CF )"
1053
+ ]
1054
+ },
1055
+ smiley: {
1056
+ interval: 200,
1057
+ frames: [
1058
+ "\u{1F604} ",
1059
+ "\u{1F61D} "
1060
+ ]
1061
+ },
1062
+ monkey: {
1063
+ interval: 300,
1064
+ frames: [
1065
+ "\u{1F648} ",
1066
+ "\u{1F648} ",
1067
+ "\u{1F649} ",
1068
+ "\u{1F64A} "
1069
+ ]
1070
+ },
1071
+ hearts: {
1072
+ interval: 100,
1073
+ frames: [
1074
+ "\u{1F49B} ",
1075
+ "\u{1F499} ",
1076
+ "\u{1F49C} ",
1077
+ "\u{1F49A} ",
1078
+ "\u2764\uFE0F "
1079
+ ]
1080
+ },
1081
+ clock: {
1082
+ interval: 100,
1083
+ frames: [
1084
+ "\u{1F55B} ",
1085
+ "\u{1F550} ",
1086
+ "\u{1F551} ",
1087
+ "\u{1F552} ",
1088
+ "\u{1F553} ",
1089
+ "\u{1F554} ",
1090
+ "\u{1F555} ",
1091
+ "\u{1F556} ",
1092
+ "\u{1F557} ",
1093
+ "\u{1F558} ",
1094
+ "\u{1F559} ",
1095
+ "\u{1F55A} "
1096
+ ]
1097
+ },
1098
+ earth: {
1099
+ interval: 180,
1100
+ frames: [
1101
+ "\u{1F30D} ",
1102
+ "\u{1F30E} ",
1103
+ "\u{1F30F} "
1104
+ ]
1105
+ },
1106
+ material: {
1107
+ interval: 17,
1108
+ frames: [
1109
+ "\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1110
+ "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1111
+ "\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1112
+ "\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1113
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1114
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1115
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1116
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1117
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1118
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1119
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1120
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1121
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1122
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
1123
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
1124
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
1125
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
1126
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
1127
+ "\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
1128
+ "\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
1129
+ "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
1130
+ "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
1131
+ "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
1132
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
1133
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
1134
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
1135
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1136
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1137
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1138
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1139
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1140
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1141
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1142
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1143
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1144
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1145
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1146
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1147
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588",
1148
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
1149
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
1150
+ "\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
1151
+ "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
1152
+ "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
1153
+ "\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
1154
+ "\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
1155
+ "\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
1156
+ "\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
1157
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
1158
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1159
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1160
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1161
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1162
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1163
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1164
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1165
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1166
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
1167
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
1168
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
1169
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
1170
+ "\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
1171
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
1172
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
1173
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
1174
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
1175
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
1176
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
1177
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
1178
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
1179
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
1180
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
1181
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
1182
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
1183
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1184
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
1185
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
1186
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
1187
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
1188
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
1189
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
1190
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
1191
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
1192
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
1193
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
1194
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
1195
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
1196
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
1197
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1198
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1199
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
1200
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"
1201
+ ]
1202
+ },
1203
+ moon: {
1204
+ interval: 80,
1205
+ frames: [
1206
+ "\u{1F311} ",
1207
+ "\u{1F312} ",
1208
+ "\u{1F313} ",
1209
+ "\u{1F314} ",
1210
+ "\u{1F315} ",
1211
+ "\u{1F316} ",
1212
+ "\u{1F317} ",
1213
+ "\u{1F318} "
1214
+ ]
1215
+ },
1216
+ runner: {
1217
+ interval: 140,
1218
+ frames: [
1219
+ "\u{1F6B6} ",
1220
+ "\u{1F3C3} "
1221
+ ]
1222
+ },
1223
+ pong: {
1224
+ interval: 80,
1225
+ frames: [
1226
+ "\u2590\u2802 \u258C",
1227
+ "\u2590\u2808 \u258C",
1228
+ "\u2590 \u2802 \u258C",
1229
+ "\u2590 \u2820 \u258C",
1230
+ "\u2590 \u2840 \u258C",
1231
+ "\u2590 \u2820 \u258C",
1232
+ "\u2590 \u2802 \u258C",
1233
+ "\u2590 \u2808 \u258C",
1234
+ "\u2590 \u2802 \u258C",
1235
+ "\u2590 \u2820 \u258C",
1236
+ "\u2590 \u2840 \u258C",
1237
+ "\u2590 \u2820 \u258C",
1238
+ "\u2590 \u2802 \u258C",
1239
+ "\u2590 \u2808 \u258C",
1240
+ "\u2590 \u2802\u258C",
1241
+ "\u2590 \u2820\u258C",
1242
+ "\u2590 \u2840\u258C",
1243
+ "\u2590 \u2820 \u258C",
1244
+ "\u2590 \u2802 \u258C",
1245
+ "\u2590 \u2808 \u258C",
1246
+ "\u2590 \u2802 \u258C",
1247
+ "\u2590 \u2820 \u258C",
1248
+ "\u2590 \u2840 \u258C",
1249
+ "\u2590 \u2820 \u258C",
1250
+ "\u2590 \u2802 \u258C",
1251
+ "\u2590 \u2808 \u258C",
1252
+ "\u2590 \u2802 \u258C",
1253
+ "\u2590 \u2820 \u258C",
1254
+ "\u2590 \u2840 \u258C",
1255
+ "\u2590\u2820 \u258C"
1256
+ ]
1257
+ },
1258
+ shark: {
1259
+ interval: 120,
1260
+ frames: [
1261
+ "\u2590|\\____________\u258C",
1262
+ "\u2590_|\\___________\u258C",
1263
+ "\u2590__|\\__________\u258C",
1264
+ "\u2590___|\\_________\u258C",
1265
+ "\u2590____|\\________\u258C",
1266
+ "\u2590_____|\\_______\u258C",
1267
+ "\u2590______|\\______\u258C",
1268
+ "\u2590_______|\\_____\u258C",
1269
+ "\u2590________|\\____\u258C",
1270
+ "\u2590_________|\\___\u258C",
1271
+ "\u2590__________|\\__\u258C",
1272
+ "\u2590___________|\\_\u258C",
1273
+ "\u2590____________|\\\u258C",
1274
+ "\u2590____________/|\u258C",
1275
+ "\u2590___________/|_\u258C",
1276
+ "\u2590__________/|__\u258C",
1277
+ "\u2590_________/|___\u258C",
1278
+ "\u2590________/|____\u258C",
1279
+ "\u2590_______/|_____\u258C",
1280
+ "\u2590______/|______\u258C",
1281
+ "\u2590_____/|_______\u258C",
1282
+ "\u2590____/|________\u258C",
1283
+ "\u2590___/|_________\u258C",
1284
+ "\u2590__/|__________\u258C",
1285
+ "\u2590_/|___________\u258C",
1286
+ "\u2590/|____________\u258C"
1287
+ ]
1288
+ },
1289
+ dqpb: {
1290
+ interval: 100,
1291
+ frames: [
1292
+ "d",
1293
+ "q",
1294
+ "p",
1295
+ "b"
1296
+ ]
1297
+ },
1298
+ weather: {
1299
+ interval: 100,
1300
+ frames: [
1301
+ "\u2600\uFE0F ",
1302
+ "\u2600\uFE0F ",
1303
+ "\u2600\uFE0F ",
1304
+ "\u{1F324} ",
1305
+ "\u26C5\uFE0F ",
1306
+ "\u{1F325} ",
1307
+ "\u2601\uFE0F ",
1308
+ "\u{1F327} ",
1309
+ "\u{1F328} ",
1310
+ "\u{1F327} ",
1311
+ "\u{1F328} ",
1312
+ "\u{1F327} ",
1313
+ "\u{1F328} ",
1314
+ "\u26C8 ",
1315
+ "\u{1F328} ",
1316
+ "\u{1F327} ",
1317
+ "\u{1F328} ",
1318
+ "\u2601\uFE0F ",
1319
+ "\u{1F325} ",
1320
+ "\u26C5\uFE0F ",
1321
+ "\u{1F324} ",
1322
+ "\u2600\uFE0F ",
1323
+ "\u2600\uFE0F "
1324
+ ]
1325
+ },
1326
+ christmas: {
1327
+ interval: 400,
1328
+ frames: [
1329
+ "\u{1F332}",
1330
+ "\u{1F384}"
1331
+ ]
1332
+ },
1333
+ grenade: {
1334
+ interval: 80,
1335
+ frames: [
1336
+ "\u060C ",
1337
+ "\u2032 ",
1338
+ " \xB4 ",
1339
+ " \u203E ",
1340
+ " \u2E0C",
1341
+ " \u2E0A",
1342
+ " |",
1343
+ " \u204E",
1344
+ " \u2055",
1345
+ " \u0DF4 ",
1346
+ " \u2053",
1347
+ " ",
1348
+ " ",
1349
+ " "
1350
+ ]
1351
+ },
1352
+ point: {
1353
+ interval: 125,
1354
+ frames: [
1355
+ "\u2219\u2219\u2219",
1356
+ "\u25CF\u2219\u2219",
1357
+ "\u2219\u25CF\u2219",
1358
+ "\u2219\u2219\u25CF",
1359
+ "\u2219\u2219\u2219"
1360
+ ]
1361
+ },
1362
+ layer: {
1363
+ interval: 150,
1364
+ frames: [
1365
+ "-",
1366
+ "=",
1367
+ "\u2261"
1368
+ ]
1369
+ },
1370
+ betaWave: {
1371
+ interval: 80,
1372
+ frames: [
1373
+ "\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2",
1374
+ "\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2",
1375
+ "\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2",
1376
+ "\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2",
1377
+ "\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2",
1378
+ "\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2",
1379
+ "\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"
1380
+ ]
1381
+ },
1382
+ fingerDance: {
1383
+ interval: 160,
1384
+ frames: [
1385
+ "\u{1F918} ",
1386
+ "\u{1F91F} ",
1387
+ "\u{1F596} ",
1388
+ "\u270B ",
1389
+ "\u{1F91A} ",
1390
+ "\u{1F446} "
1391
+ ]
1392
+ },
1393
+ fistBump: {
1394
+ interval: 80,
1395
+ frames: [
1396
+ "\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
1397
+ "\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
1398
+ "\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
1399
+ "\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ",
1400
+ "\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ",
1401
+ "\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ",
1402
+ "\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "
1403
+ ]
1404
+ },
1405
+ soccerHeader: {
1406
+ interval: 80,
1407
+ frames: [
1408
+ " \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ",
1409
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
1410
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
1411
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
1412
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
1413
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
1414
+ "\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ",
1415
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
1416
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
1417
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
1418
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
1419
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "
1420
+ ]
1421
+ },
1422
+ mindblown: {
1423
+ interval: 160,
1424
+ frames: [
1425
+ "\u{1F610} ",
1426
+ "\u{1F610} ",
1427
+ "\u{1F62E} ",
1428
+ "\u{1F62E} ",
1429
+ "\u{1F626} ",
1430
+ "\u{1F626} ",
1431
+ "\u{1F627} ",
1432
+ "\u{1F627} ",
1433
+ "\u{1F92F} ",
1434
+ "\u{1F4A5} ",
1435
+ "\u2728 ",
1436
+ "\u3000 ",
1437
+ "\u3000 ",
1438
+ "\u3000 "
1439
+ ]
1440
+ },
1441
+ speaker: {
1442
+ interval: 160,
1443
+ frames: [
1444
+ "\u{1F508} ",
1445
+ "\u{1F509} ",
1446
+ "\u{1F50A} ",
1447
+ "\u{1F509} "
1448
+ ]
1449
+ },
1450
+ orangePulse: {
1451
+ interval: 100,
1452
+ frames: [
1453
+ "\u{1F538} ",
1454
+ "\u{1F536} ",
1455
+ "\u{1F7E0} ",
1456
+ "\u{1F7E0} ",
1457
+ "\u{1F536} "
1458
+ ]
1459
+ },
1460
+ bluePulse: {
1461
+ interval: 100,
1462
+ frames: [
1463
+ "\u{1F539} ",
1464
+ "\u{1F537} ",
1465
+ "\u{1F535} ",
1466
+ "\u{1F535} ",
1467
+ "\u{1F537} "
1468
+ ]
1469
+ },
1470
+ orangeBluePulse: {
1471
+ interval: 100,
1472
+ frames: [
1473
+ "\u{1F538} ",
1474
+ "\u{1F536} ",
1475
+ "\u{1F7E0} ",
1476
+ "\u{1F7E0} ",
1477
+ "\u{1F536} ",
1478
+ "\u{1F539} ",
1479
+ "\u{1F537} ",
1480
+ "\u{1F535} ",
1481
+ "\u{1F535} ",
1482
+ "\u{1F537} "
1483
+ ]
1484
+ },
1485
+ timeTravel: {
1486
+ interval: 100,
1487
+ frames: [
1488
+ "\u{1F55B} ",
1489
+ "\u{1F55A} ",
1490
+ "\u{1F559} ",
1491
+ "\u{1F558} ",
1492
+ "\u{1F557} ",
1493
+ "\u{1F556} ",
1494
+ "\u{1F555} ",
1495
+ "\u{1F554} ",
1496
+ "\u{1F553} ",
1497
+ "\u{1F552} ",
1498
+ "\u{1F551} ",
1499
+ "\u{1F550} "
1500
+ ]
1501
+ },
1502
+ aesthetic: {
1503
+ interval: 80,
1504
+ frames: [
1505
+ "\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1",
1506
+ "\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1",
1507
+ "\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1",
1508
+ "\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1",
1509
+ "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1",
1510
+ "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1",
1511
+ "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0",
1512
+ "\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"
1513
+ ]
1514
+ },
1515
+ dwarfFortress: {
1516
+ interval: 80,
1517
+ frames: [
1518
+ " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1519
+ "\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1520
+ "\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1521
+ "\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1522
+ "\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1523
+ "\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1524
+ "\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1525
+ "\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1526
+ "\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1527
+ "\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1528
+ " \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1529
+ " \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1530
+ " \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1531
+ " \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1532
+ " \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1533
+ " \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1534
+ " \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1535
+ " \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1536
+ " \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1537
+ " \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1538
+ " \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1539
+ " \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
1540
+ " \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
1541
+ " \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
1542
+ " \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
1543
+ " \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
1544
+ " \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
1545
+ " \u263A \u2588\u2588\u2588\xA3\xA3\xA3 ",
1546
+ " \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
1547
+ " \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
1548
+ " \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
1549
+ " \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
1550
+ " \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
1551
+ " \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
1552
+ " \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
1553
+ " \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
1554
+ " \u263A \u2588\u2588\xA3\xA3\xA3 ",
1555
+ " \u263A\u2588\u2588\xA3\xA3\xA3 ",
1556
+ " \u263A\u2588\u2588\xA3\xA3\xA3 ",
1557
+ " \u263A\u2593\u2588\xA3\xA3\xA3 ",
1558
+ " \u263A\u2593\u2588\xA3\xA3\xA3 ",
1559
+ " \u263A\u2592\u2588\xA3\xA3\xA3 ",
1560
+ " \u263A\u2592\u2588\xA3\xA3\xA3 ",
1561
+ " \u263A\u2591\u2588\xA3\xA3\xA3 ",
1562
+ " \u263A\u2591\u2588\xA3\xA3\xA3 ",
1563
+ " \u263A \u2588\xA3\xA3\xA3 ",
1564
+ " \u263A\u2588\xA3\xA3\xA3 ",
1565
+ " \u263A\u2588\xA3\xA3\xA3 ",
1566
+ " \u263A\u2593\xA3\xA3\xA3 ",
1567
+ " \u263A\u2593\xA3\xA3\xA3 ",
1568
+ " \u263A\u2592\xA3\xA3\xA3 ",
1569
+ " \u263A\u2592\xA3\xA3\xA3 ",
1570
+ " \u263A\u2591\xA3\xA3\xA3 ",
1571
+ " \u263A\u2591\xA3\xA3\xA3 ",
1572
+ " \u263A \xA3\xA3\xA3 ",
1573
+ " \u263A\xA3\xA3\xA3 ",
1574
+ " \u263A\xA3\xA3\xA3 ",
1575
+ " \u263A\u2593\xA3\xA3 ",
1576
+ " \u263A\u2593\xA3\xA3 ",
1577
+ " \u263A\u2592\xA3\xA3 ",
1578
+ " \u263A\u2592\xA3\xA3 ",
1579
+ " \u263A\u2591\xA3\xA3 ",
1580
+ " \u263A\u2591\xA3\xA3 ",
1581
+ " \u263A \xA3\xA3 ",
1582
+ " \u263A\xA3\xA3 ",
1583
+ " \u263A\xA3\xA3 ",
1584
+ " \u263A\u2593\xA3 ",
1585
+ " \u263A\u2593\xA3 ",
1586
+ " \u263A\u2592\xA3 ",
1587
+ " \u263A\u2592\xA3 ",
1588
+ " \u263A\u2591\xA3 ",
1589
+ " \u263A\u2591\xA3 ",
1590
+ " \u263A \xA3 ",
1591
+ " \u263A\xA3 ",
1592
+ " \u263A\xA3 ",
1593
+ " \u263A\u2593 ",
1594
+ " \u263A\u2593 ",
1595
+ " \u263A\u2592 ",
1596
+ " \u263A\u2592 ",
1597
+ " \u263A\u2591 ",
1598
+ " \u263A\u2591 ",
1599
+ " \u263A ",
1600
+ " \u263A &",
1601
+ " \u263A \u263C&",
1602
+ " \u263A \u263C &",
1603
+ " \u263A\u263C &",
1604
+ " \u263A\u263C & ",
1605
+ " \u203C & ",
1606
+ " \u263A & ",
1607
+ " \u203C & ",
1608
+ " \u263A & ",
1609
+ " \u203C & ",
1610
+ " \u263A & ",
1611
+ "\u203C & ",
1612
+ " & ",
1613
+ " & ",
1614
+ " & \u2591 ",
1615
+ " & \u2592 ",
1616
+ " & \u2593 ",
1617
+ " & \xA3 ",
1618
+ " & \u2591\xA3 ",
1619
+ " & \u2592\xA3 ",
1620
+ " & \u2593\xA3 ",
1621
+ " & \xA3\xA3 ",
1622
+ " & \u2591\xA3\xA3 ",
1623
+ " & \u2592\xA3\xA3 ",
1624
+ "& \u2593\xA3\xA3 ",
1625
+ "& \xA3\xA3\xA3 ",
1626
+ " \u2591\xA3\xA3\xA3 ",
1627
+ " \u2592\xA3\xA3\xA3 ",
1628
+ " \u2593\xA3\xA3\xA3 ",
1629
+ " \u2588\xA3\xA3\xA3 ",
1630
+ " \u2591\u2588\xA3\xA3\xA3 ",
1631
+ " \u2592\u2588\xA3\xA3\xA3 ",
1632
+ " \u2593\u2588\xA3\xA3\xA3 ",
1633
+ " \u2588\u2588\xA3\xA3\xA3 ",
1634
+ " \u2591\u2588\u2588\xA3\xA3\xA3 ",
1635
+ " \u2592\u2588\u2588\xA3\xA3\xA3 ",
1636
+ " \u2593\u2588\u2588\xA3\xA3\xA3 ",
1637
+ " \u2588\u2588\u2588\xA3\xA3\xA3 ",
1638
+ " \u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
1639
+ " \u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
1640
+ " \u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
1641
+ " \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1642
+ " \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1643
+ " \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1644
+ " \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1645
+ " \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1646
+ " \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1647
+ " \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1648
+ " \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1649
+ " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
1650
+ " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "
1651
+ ]
1652
+ }
1653
+ };
1654
+ }
1655
+ });
1656
+
1657
+ // ../../node_modules/.pnpm/cli-spinners@2.9.2/node_modules/cli-spinners/index.js
1658
+ var require_cli_spinners = __commonJS({
1659
+ "../../node_modules/.pnpm/cli-spinners@2.9.2/node_modules/cli-spinners/index.js"(exports2, module2) {
1660
+ "use strict";
1661
+ var spinners = Object.assign({}, require_spinners());
1662
+ var spinnersList = Object.keys(spinners);
1663
+ Object.defineProperty(spinners, "random", {
1664
+ get() {
1665
+ const randomIndex = Math.floor(Math.random() * spinnersList.length);
1666
+ const spinnerName = spinnersList[randomIndex];
1667
+ return spinners[spinnerName];
1668
+ }
1669
+ });
1670
+ module2.exports = spinners;
1671
+ }
1672
+ });
1673
+
26
1674
  // src/index.ts
27
1675
  var import_commander7 = require("commander");
1676
+
1677
+ // src/core/runtime-paths.ts
28
1678
  var import_node_fs = require("fs");
1679
+ var import_node_path = __toESM(require("path"), 1);
29
1680
  var import_node_url = require("url");
1681
+ var import_meta = {};
1682
+ var CLI_PACKAGE_NAMES = /* @__PURE__ */ new Set(["@better-webhook/cli", "better-webhook"]);
1683
+ function resolveRealPath(filePath) {
1684
+ try {
1685
+ return (0, import_node_fs.realpathSync)(filePath);
1686
+ } catch {
1687
+ return filePath;
1688
+ }
1689
+ }
1690
+ function readPackageName(packageJsonPath) {
1691
+ if (!(0, import_node_fs.existsSync)(packageJsonPath)) {
1692
+ return void 0;
1693
+ }
1694
+ try {
1695
+ const packageJson = JSON.parse(
1696
+ (0, import_node_fs.readFileSync)(packageJsonPath, { encoding: "utf8" })
1697
+ );
1698
+ return typeof packageJson.name === "string" ? packageJson.name : void 0;
1699
+ } catch {
1700
+ return void 0;
1701
+ }
1702
+ }
1703
+ function isCliPackageName(packageName) {
1704
+ return typeof packageName === "string" && CLI_PACKAGE_NAMES.has(packageName);
1705
+ }
1706
+ function findCliPackageRoot(startDir) {
1707
+ let currentDir = resolveRealPath(import_node_path.default.resolve(startDir));
1708
+ while (true) {
1709
+ const packageJsonPath = import_node_path.default.join(currentDir, "package.json");
1710
+ const packageName = readPackageName(packageJsonPath);
1711
+ if (isCliPackageName(packageName)) {
1712
+ return currentDir;
1713
+ }
1714
+ const parentDir = import_node_path.default.dirname(currentDir);
1715
+ if (parentDir === currentDir) {
1716
+ return void 0;
1717
+ }
1718
+ currentDir = parentDir;
1719
+ }
1720
+ }
1721
+ function resolveRuntimeDir() {
1722
+ if (typeof __dirname !== "undefined") {
1723
+ return resolveRealPath(__dirname);
1724
+ }
1725
+ const moduleUrl = import_meta.url;
1726
+ if (typeof moduleUrl === "string" && moduleUrl.startsWith("file:")) {
1727
+ return import_node_path.default.dirname(resolveRealPath((0, import_node_url.fileURLToPath)(moduleUrl)));
1728
+ }
1729
+ const entryPath = process.argv[1];
1730
+ if (entryPath) {
1731
+ const entryDir = import_node_path.default.dirname(resolveRealPath(import_node_path.default.resolve(entryPath)));
1732
+ const cliPackageRoot = findCliPackageRoot(entryDir);
1733
+ if (cliPackageRoot) {
1734
+ return cliPackageRoot;
1735
+ }
1736
+ return entryDir;
1737
+ }
1738
+ const cwdPackageRoot = findCliPackageRoot(process.cwd());
1739
+ if (cwdPackageRoot) {
1740
+ return cwdPackageRoot;
1741
+ }
1742
+ return process.cwd();
1743
+ }
1744
+
1745
+ // src/core/cli-version.ts
1746
+ var import_node_fs2 = require("fs");
1747
+ var import_node_path2 = __toESM(require("path"), 1);
1748
+ function readPackageVersion(packageJsonPath) {
1749
+ try {
1750
+ const packageJson = JSON.parse(
1751
+ (0, import_node_fs2.readFileSync)(packageJsonPath, { encoding: "utf8" })
1752
+ );
1753
+ return typeof packageJson.version === "string" && packageJson.version ? packageJson.version : void 0;
1754
+ } catch {
1755
+ return void 0;
1756
+ }
1757
+ }
1758
+ function resolveRuntimePackageVersion(runtimeDir) {
1759
+ const searchDirs = [runtimeDir, import_node_path2.default.resolve(runtimeDir, "..")];
1760
+ const visitedRoots = /* @__PURE__ */ new Set();
1761
+ for (const searchDir of searchDirs) {
1762
+ const cliPackageRoot = findCliPackageRoot(searchDir);
1763
+ if (!cliPackageRoot || visitedRoots.has(cliPackageRoot)) {
1764
+ continue;
1765
+ }
1766
+ visitedRoots.add(cliPackageRoot);
1767
+ const version = readPackageVersion(import_node_path2.default.join(cliPackageRoot, "package.json"));
1768
+ if (version) {
1769
+ return version;
1770
+ }
1771
+ }
1772
+ return void 0;
1773
+ }
30
1774
 
31
1775
  // src/commands/templates.ts
32
1776
  var import_commander = require("commander");
33
- var import_ora = __toESM(require("ora"), 1);
1777
+
1778
+ // ../../node_modules/.pnpm/ora@8.2.0/node_modules/ora/index.js
1779
+ var import_node_process7 = __toESM(require("process"), 1);
1780
+
1781
+ // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js
1782
+ var ANSI_BACKGROUND_OFFSET = 10;
1783
+ var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
1784
+ var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
1785
+ var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
1786
+ var styles = {
1787
+ modifier: {
1788
+ reset: [0, 0],
1789
+ // 21 isn't widely supported and 22 does the same thing
1790
+ bold: [1, 22],
1791
+ dim: [2, 22],
1792
+ italic: [3, 23],
1793
+ underline: [4, 24],
1794
+ overline: [53, 55],
1795
+ inverse: [7, 27],
1796
+ hidden: [8, 28],
1797
+ strikethrough: [9, 29]
1798
+ },
1799
+ color: {
1800
+ black: [30, 39],
1801
+ red: [31, 39],
1802
+ green: [32, 39],
1803
+ yellow: [33, 39],
1804
+ blue: [34, 39],
1805
+ magenta: [35, 39],
1806
+ cyan: [36, 39],
1807
+ white: [37, 39],
1808
+ // Bright color
1809
+ blackBright: [90, 39],
1810
+ gray: [90, 39],
1811
+ // Alias of `blackBright`
1812
+ grey: [90, 39],
1813
+ // Alias of `blackBright`
1814
+ redBright: [91, 39],
1815
+ greenBright: [92, 39],
1816
+ yellowBright: [93, 39],
1817
+ blueBright: [94, 39],
1818
+ magentaBright: [95, 39],
1819
+ cyanBright: [96, 39],
1820
+ whiteBright: [97, 39]
1821
+ },
1822
+ bgColor: {
1823
+ bgBlack: [40, 49],
1824
+ bgRed: [41, 49],
1825
+ bgGreen: [42, 49],
1826
+ bgYellow: [43, 49],
1827
+ bgBlue: [44, 49],
1828
+ bgMagenta: [45, 49],
1829
+ bgCyan: [46, 49],
1830
+ bgWhite: [47, 49],
1831
+ // Bright color
1832
+ bgBlackBright: [100, 49],
1833
+ bgGray: [100, 49],
1834
+ // Alias of `bgBlackBright`
1835
+ bgGrey: [100, 49],
1836
+ // Alias of `bgBlackBright`
1837
+ bgRedBright: [101, 49],
1838
+ bgGreenBright: [102, 49],
1839
+ bgYellowBright: [103, 49],
1840
+ bgBlueBright: [104, 49],
1841
+ bgMagentaBright: [105, 49],
1842
+ bgCyanBright: [106, 49],
1843
+ bgWhiteBright: [107, 49]
1844
+ }
1845
+ };
1846
+ var modifierNames = Object.keys(styles.modifier);
1847
+ var foregroundColorNames = Object.keys(styles.color);
1848
+ var backgroundColorNames = Object.keys(styles.bgColor);
1849
+ var colorNames = [...foregroundColorNames, ...backgroundColorNames];
1850
+ function assembleStyles() {
1851
+ const codes = /* @__PURE__ */ new Map();
1852
+ for (const [groupName, group] of Object.entries(styles)) {
1853
+ for (const [styleName, style] of Object.entries(group)) {
1854
+ styles[styleName] = {
1855
+ open: `\x1B[${style[0]}m`,
1856
+ close: `\x1B[${style[1]}m`
1857
+ };
1858
+ group[styleName] = styles[styleName];
1859
+ codes.set(style[0], style[1]);
1860
+ }
1861
+ Object.defineProperty(styles, groupName, {
1862
+ value: group,
1863
+ enumerable: false
1864
+ });
1865
+ }
1866
+ Object.defineProperty(styles, "codes", {
1867
+ value: codes,
1868
+ enumerable: false
1869
+ });
1870
+ styles.color.close = "\x1B[39m";
1871
+ styles.bgColor.close = "\x1B[49m";
1872
+ styles.color.ansi = wrapAnsi16();
1873
+ styles.color.ansi256 = wrapAnsi256();
1874
+ styles.color.ansi16m = wrapAnsi16m();
1875
+ styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
1876
+ styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
1877
+ styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
1878
+ Object.defineProperties(styles, {
1879
+ rgbToAnsi256: {
1880
+ value(red, green, blue) {
1881
+ if (red === green && green === blue) {
1882
+ if (red < 8) {
1883
+ return 16;
1884
+ }
1885
+ if (red > 248) {
1886
+ return 231;
1887
+ }
1888
+ return Math.round((red - 8) / 247 * 24) + 232;
1889
+ }
1890
+ return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
1891
+ },
1892
+ enumerable: false
1893
+ },
1894
+ hexToRgb: {
1895
+ value(hex) {
1896
+ const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
1897
+ if (!matches) {
1898
+ return [0, 0, 0];
1899
+ }
1900
+ let [colorString] = matches;
1901
+ if (colorString.length === 3) {
1902
+ colorString = [...colorString].map((character) => character + character).join("");
1903
+ }
1904
+ const integer = Number.parseInt(colorString, 16);
1905
+ return [
1906
+ /* eslint-disable no-bitwise */
1907
+ integer >> 16 & 255,
1908
+ integer >> 8 & 255,
1909
+ integer & 255
1910
+ /* eslint-enable no-bitwise */
1911
+ ];
1912
+ },
1913
+ enumerable: false
1914
+ },
1915
+ hexToAnsi256: {
1916
+ value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
1917
+ enumerable: false
1918
+ },
1919
+ ansi256ToAnsi: {
1920
+ value(code) {
1921
+ if (code < 8) {
1922
+ return 30 + code;
1923
+ }
1924
+ if (code < 16) {
1925
+ return 90 + (code - 8);
1926
+ }
1927
+ let red;
1928
+ let green;
1929
+ let blue;
1930
+ if (code >= 232) {
1931
+ red = ((code - 232) * 10 + 8) / 255;
1932
+ green = red;
1933
+ blue = red;
1934
+ } else {
1935
+ code -= 16;
1936
+ const remainder = code % 36;
1937
+ red = Math.floor(code / 36) / 5;
1938
+ green = Math.floor(remainder / 6) / 5;
1939
+ blue = remainder % 6 / 5;
1940
+ }
1941
+ const value = Math.max(red, green, blue) * 2;
1942
+ if (value === 0) {
1943
+ return 30;
1944
+ }
1945
+ let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
1946
+ if (value === 2) {
1947
+ result += 60;
1948
+ }
1949
+ return result;
1950
+ },
1951
+ enumerable: false
1952
+ },
1953
+ rgbToAnsi: {
1954
+ value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
1955
+ enumerable: false
1956
+ },
1957
+ hexToAnsi: {
1958
+ value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
1959
+ enumerable: false
1960
+ }
1961
+ });
1962
+ return styles;
1963
+ }
1964
+ var ansiStyles = assembleStyles();
1965
+ var ansi_styles_default = ansiStyles;
1966
+
1967
+ // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js
1968
+ var import_node_process = __toESM(require("process"), 1);
1969
+ var import_node_os = __toESM(require("os"), 1);
1970
+ var import_node_tty = __toESM(require("tty"), 1);
1971
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process.default.argv) {
1972
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
1973
+ const position = argv.indexOf(prefix + flag);
1974
+ const terminatorPosition = argv.indexOf("--");
1975
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
1976
+ }
1977
+ var { env } = import_node_process.default;
1978
+ var flagForceColor;
1979
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
1980
+ flagForceColor = 0;
1981
+ } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
1982
+ flagForceColor = 1;
1983
+ }
1984
+ function envForceColor() {
1985
+ if ("FORCE_COLOR" in env) {
1986
+ if (env.FORCE_COLOR === "true") {
1987
+ return 1;
1988
+ }
1989
+ if (env.FORCE_COLOR === "false") {
1990
+ return 0;
1991
+ }
1992
+ return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
1993
+ }
1994
+ }
1995
+ function translateLevel(level) {
1996
+ if (level === 0) {
1997
+ return false;
1998
+ }
1999
+ return {
2000
+ level,
2001
+ hasBasic: true,
2002
+ has256: level >= 2,
2003
+ has16m: level >= 3
2004
+ };
2005
+ }
2006
+ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
2007
+ const noFlagForceColor = envForceColor();
2008
+ if (noFlagForceColor !== void 0) {
2009
+ flagForceColor = noFlagForceColor;
2010
+ }
2011
+ const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
2012
+ if (forceColor === 0) {
2013
+ return 0;
2014
+ }
2015
+ if (sniffFlags) {
2016
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
2017
+ return 3;
2018
+ }
2019
+ if (hasFlag("color=256")) {
2020
+ return 2;
2021
+ }
2022
+ }
2023
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
2024
+ return 1;
2025
+ }
2026
+ if (haveStream && !streamIsTTY && forceColor === void 0) {
2027
+ return 0;
2028
+ }
2029
+ const min = forceColor || 0;
2030
+ if (env.TERM === "dumb") {
2031
+ return min;
2032
+ }
2033
+ if (import_node_process.default.platform === "win32") {
2034
+ const osRelease = import_node_os.default.release().split(".");
2035
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
2036
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
2037
+ }
2038
+ return 1;
2039
+ }
2040
+ if ("CI" in env) {
2041
+ if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => key in env)) {
2042
+ return 3;
2043
+ }
2044
+ if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
2045
+ return 1;
2046
+ }
2047
+ return min;
2048
+ }
2049
+ if ("TEAMCITY_VERSION" in env) {
2050
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
2051
+ }
2052
+ if (env.COLORTERM === "truecolor") {
2053
+ return 3;
2054
+ }
2055
+ if (env.TERM === "xterm-kitty") {
2056
+ return 3;
2057
+ }
2058
+ if (env.TERM === "xterm-ghostty") {
2059
+ return 3;
2060
+ }
2061
+ if (env.TERM === "wezterm") {
2062
+ return 3;
2063
+ }
2064
+ if ("TERM_PROGRAM" in env) {
2065
+ const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
2066
+ switch (env.TERM_PROGRAM) {
2067
+ case "iTerm.app": {
2068
+ return version >= 3 ? 3 : 2;
2069
+ }
2070
+ case "Apple_Terminal": {
2071
+ return 2;
2072
+ }
2073
+ }
2074
+ }
2075
+ if (/-256(color)?$/i.test(env.TERM)) {
2076
+ return 2;
2077
+ }
2078
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
2079
+ return 1;
2080
+ }
2081
+ if ("COLORTERM" in env) {
2082
+ return 1;
2083
+ }
2084
+ return min;
2085
+ }
2086
+ function createSupportsColor(stream, options = {}) {
2087
+ const level = _supportsColor(stream, {
2088
+ streamIsTTY: stream && stream.isTTY,
2089
+ ...options
2090
+ });
2091
+ return translateLevel(level);
2092
+ }
2093
+ var supportsColor = {
2094
+ stdout: createSupportsColor({ isTTY: import_node_tty.default.isatty(1) }),
2095
+ stderr: createSupportsColor({ isTTY: import_node_tty.default.isatty(2) })
2096
+ };
2097
+ var supports_color_default = supportsColor;
2098
+
2099
+ // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.js
2100
+ function stringReplaceAll(string, substring, replacer) {
2101
+ let index = string.indexOf(substring);
2102
+ if (index === -1) {
2103
+ return string;
2104
+ }
2105
+ const substringLength = substring.length;
2106
+ let endIndex = 0;
2107
+ let returnValue = "";
2108
+ do {
2109
+ returnValue += string.slice(endIndex, index) + substring + replacer;
2110
+ endIndex = index + substringLength;
2111
+ index = string.indexOf(substring, endIndex);
2112
+ } while (index !== -1);
2113
+ returnValue += string.slice(endIndex);
2114
+ return returnValue;
2115
+ }
2116
+ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
2117
+ let endIndex = 0;
2118
+ let returnValue = "";
2119
+ do {
2120
+ const gotCR = string[index - 1] === "\r";
2121
+ returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? "\r\n" : "\n") + postfix;
2122
+ endIndex = index + 1;
2123
+ index = string.indexOf("\n", endIndex);
2124
+ } while (index !== -1);
2125
+ returnValue += string.slice(endIndex);
2126
+ return returnValue;
2127
+ }
2128
+
2129
+ // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.js
2130
+ var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
2131
+ var GENERATOR = Symbol("GENERATOR");
2132
+ var STYLER = Symbol("STYLER");
2133
+ var IS_EMPTY = Symbol("IS_EMPTY");
2134
+ var levelMapping = [
2135
+ "ansi",
2136
+ "ansi",
2137
+ "ansi256",
2138
+ "ansi16m"
2139
+ ];
2140
+ var styles2 = /* @__PURE__ */ Object.create(null);
2141
+ var applyOptions = (object, options = {}) => {
2142
+ if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
2143
+ throw new Error("The `level` option should be an integer from 0 to 3");
2144
+ }
2145
+ const colorLevel = stdoutColor ? stdoutColor.level : 0;
2146
+ object.level = options.level === void 0 ? colorLevel : options.level;
2147
+ };
2148
+ var chalkFactory = (options) => {
2149
+ const chalk2 = (...strings) => strings.join(" ");
2150
+ applyOptions(chalk2, options);
2151
+ Object.setPrototypeOf(chalk2, createChalk.prototype);
2152
+ return chalk2;
2153
+ };
2154
+ function createChalk(options) {
2155
+ return chalkFactory(options);
2156
+ }
2157
+ Object.setPrototypeOf(createChalk.prototype, Function.prototype);
2158
+ for (const [styleName, style] of Object.entries(ansi_styles_default)) {
2159
+ styles2[styleName] = {
2160
+ get() {
2161
+ const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
2162
+ Object.defineProperty(this, styleName, { value: builder });
2163
+ return builder;
2164
+ }
2165
+ };
2166
+ }
2167
+ styles2.visible = {
2168
+ get() {
2169
+ const builder = createBuilder(this, this[STYLER], true);
2170
+ Object.defineProperty(this, "visible", { value: builder });
2171
+ return builder;
2172
+ }
2173
+ };
2174
+ var getModelAnsi = (model, level, type, ...arguments_) => {
2175
+ if (model === "rgb") {
2176
+ if (level === "ansi16m") {
2177
+ return ansi_styles_default[type].ansi16m(...arguments_);
2178
+ }
2179
+ if (level === "ansi256") {
2180
+ return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
2181
+ }
2182
+ return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
2183
+ }
2184
+ if (model === "hex") {
2185
+ return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
2186
+ }
2187
+ return ansi_styles_default[type][model](...arguments_);
2188
+ };
2189
+ var usedModels = ["rgb", "hex", "ansi256"];
2190
+ for (const model of usedModels) {
2191
+ styles2[model] = {
2192
+ get() {
2193
+ const { level } = this;
2194
+ return function(...arguments_) {
2195
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
2196
+ return createBuilder(this, styler, this[IS_EMPTY]);
2197
+ };
2198
+ }
2199
+ };
2200
+ const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
2201
+ styles2[bgModel] = {
2202
+ get() {
2203
+ const { level } = this;
2204
+ return function(...arguments_) {
2205
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
2206
+ return createBuilder(this, styler, this[IS_EMPTY]);
2207
+ };
2208
+ }
2209
+ };
2210
+ }
2211
+ var proto = Object.defineProperties(() => {
2212
+ }, {
2213
+ ...styles2,
2214
+ level: {
2215
+ enumerable: true,
2216
+ get() {
2217
+ return this[GENERATOR].level;
2218
+ },
2219
+ set(level) {
2220
+ this[GENERATOR].level = level;
2221
+ }
2222
+ }
2223
+ });
2224
+ var createStyler = (open, close, parent) => {
2225
+ let openAll;
2226
+ let closeAll;
2227
+ if (parent === void 0) {
2228
+ openAll = open;
2229
+ closeAll = close;
2230
+ } else {
2231
+ openAll = parent.openAll + open;
2232
+ closeAll = close + parent.closeAll;
2233
+ }
2234
+ return {
2235
+ open,
2236
+ close,
2237
+ openAll,
2238
+ closeAll,
2239
+ parent
2240
+ };
2241
+ };
2242
+ var createBuilder = (self, _styler, _isEmpty) => {
2243
+ const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
2244
+ Object.setPrototypeOf(builder, proto);
2245
+ builder[GENERATOR] = self;
2246
+ builder[STYLER] = _styler;
2247
+ builder[IS_EMPTY] = _isEmpty;
2248
+ return builder;
2249
+ };
2250
+ var applyStyle = (self, string) => {
2251
+ if (self.level <= 0 || !string) {
2252
+ return self[IS_EMPTY] ? "" : string;
2253
+ }
2254
+ let styler = self[STYLER];
2255
+ if (styler === void 0) {
2256
+ return string;
2257
+ }
2258
+ const { openAll, closeAll } = styler;
2259
+ if (string.includes("\x1B")) {
2260
+ while (styler !== void 0) {
2261
+ string = stringReplaceAll(string, styler.close, styler.open);
2262
+ styler = styler.parent;
2263
+ }
2264
+ }
2265
+ const lfIndex = string.indexOf("\n");
2266
+ if (lfIndex !== -1) {
2267
+ string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
2268
+ }
2269
+ return openAll + string + closeAll;
2270
+ };
2271
+ Object.defineProperties(createChalk.prototype, styles2);
2272
+ var chalk = createChalk();
2273
+ var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
2274
+ var source_default = chalk;
2275
+
2276
+ // ../../node_modules/.pnpm/cli-cursor@5.0.0/node_modules/cli-cursor/index.js
2277
+ var import_node_process3 = __toESM(require("process"), 1);
2278
+
2279
+ // ../../node_modules/.pnpm/restore-cursor@5.1.0/node_modules/restore-cursor/index.js
2280
+ var import_node_process2 = __toESM(require("process"), 1);
2281
+
2282
+ // ../../node_modules/.pnpm/mimic-function@5.0.1/node_modules/mimic-function/index.js
2283
+ var copyProperty = (to, from, property, ignoreNonConfigurable) => {
2284
+ if (property === "length" || property === "prototype") {
2285
+ return;
2286
+ }
2287
+ if (property === "arguments" || property === "caller") {
2288
+ return;
2289
+ }
2290
+ const toDescriptor = Object.getOwnPropertyDescriptor(to, property);
2291
+ const fromDescriptor = Object.getOwnPropertyDescriptor(from, property);
2292
+ if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
2293
+ return;
2294
+ }
2295
+ Object.defineProperty(to, property, fromDescriptor);
2296
+ };
2297
+ var canCopyProperty = function(toDescriptor, fromDescriptor) {
2298
+ return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
2299
+ };
2300
+ var changePrototype = (to, from) => {
2301
+ const fromPrototype = Object.getPrototypeOf(from);
2302
+ if (fromPrototype === Object.getPrototypeOf(to)) {
2303
+ return;
2304
+ }
2305
+ Object.setPrototypeOf(to, fromPrototype);
2306
+ };
2307
+ var wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/
2308
+ ${fromBody}`;
2309
+ var toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
2310
+ var toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
2311
+ var changeToString = (to, from, name) => {
2312
+ const withName = name === "" ? "" : `with ${name.trim()}() `;
2313
+ const newToString = wrappedToString.bind(null, withName, from.toString());
2314
+ Object.defineProperty(newToString, "name", toStringName);
2315
+ const { writable, enumerable, configurable } = toStringDescriptor;
2316
+ Object.defineProperty(to, "toString", { value: newToString, writable, enumerable, configurable });
2317
+ };
2318
+ function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
2319
+ const { name } = to;
2320
+ for (const property of Reflect.ownKeys(from)) {
2321
+ copyProperty(to, from, property, ignoreNonConfigurable);
2322
+ }
2323
+ changePrototype(to, from);
2324
+ changeToString(to, from, name);
2325
+ return to;
2326
+ }
2327
+
2328
+ // ../../node_modules/.pnpm/onetime@7.0.0/node_modules/onetime/index.js
2329
+ var calledFunctions = /* @__PURE__ */ new WeakMap();
2330
+ var onetime = (function_, options = {}) => {
2331
+ if (typeof function_ !== "function") {
2332
+ throw new TypeError("Expected a function");
2333
+ }
2334
+ let returnValue;
2335
+ let callCount = 0;
2336
+ const functionName = function_.displayName || function_.name || "<anonymous>";
2337
+ const onetime2 = function(...arguments_) {
2338
+ calledFunctions.set(onetime2, ++callCount);
2339
+ if (callCount === 1) {
2340
+ returnValue = function_.apply(this, arguments_);
2341
+ function_ = void 0;
2342
+ } else if (options.throw === true) {
2343
+ throw new Error(`Function \`${functionName}\` can only be called once`);
2344
+ }
2345
+ return returnValue;
2346
+ };
2347
+ mimicFunction(onetime2, function_);
2348
+ calledFunctions.set(onetime2, callCount);
2349
+ return onetime2;
2350
+ };
2351
+ onetime.callCount = (function_) => {
2352
+ if (!calledFunctions.has(function_)) {
2353
+ throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
2354
+ }
2355
+ return calledFunctions.get(function_);
2356
+ };
2357
+ var onetime_default = onetime;
2358
+
2359
+ // ../../node_modules/.pnpm/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/signals.js
2360
+ var signals = [];
2361
+ signals.push("SIGHUP", "SIGINT", "SIGTERM");
2362
+ if (process.platform !== "win32") {
2363
+ signals.push(
2364
+ "SIGALRM",
2365
+ "SIGABRT",
2366
+ "SIGVTALRM",
2367
+ "SIGXCPU",
2368
+ "SIGXFSZ",
2369
+ "SIGUSR2",
2370
+ "SIGTRAP",
2371
+ "SIGSYS",
2372
+ "SIGQUIT",
2373
+ "SIGIOT"
2374
+ // should detect profiler and enable/disable accordingly.
2375
+ // see #21
2376
+ // 'SIGPROF'
2377
+ );
2378
+ }
2379
+ if (process.platform === "linux") {
2380
+ signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
2381
+ }
2382
+
2383
+ // ../../node_modules/.pnpm/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/index.js
2384
+ var processOk = (process10) => !!process10 && typeof process10 === "object" && typeof process10.removeListener === "function" && typeof process10.emit === "function" && typeof process10.reallyExit === "function" && typeof process10.listeners === "function" && typeof process10.kill === "function" && typeof process10.pid === "number" && typeof process10.on === "function";
2385
+ var kExitEmitter = Symbol.for("signal-exit emitter");
2386
+ var global = globalThis;
2387
+ var ObjectDefineProperty = Object.defineProperty.bind(Object);
2388
+ var Emitter = class {
2389
+ emitted = {
2390
+ afterExit: false,
2391
+ exit: false
2392
+ };
2393
+ listeners = {
2394
+ afterExit: [],
2395
+ exit: []
2396
+ };
2397
+ count = 0;
2398
+ id = Math.random();
2399
+ constructor() {
2400
+ if (global[kExitEmitter]) {
2401
+ return global[kExitEmitter];
2402
+ }
2403
+ ObjectDefineProperty(global, kExitEmitter, {
2404
+ value: this,
2405
+ writable: false,
2406
+ enumerable: false,
2407
+ configurable: false
2408
+ });
2409
+ }
2410
+ on(ev, fn) {
2411
+ this.listeners[ev].push(fn);
2412
+ }
2413
+ removeListener(ev, fn) {
2414
+ const list = this.listeners[ev];
2415
+ const i = list.indexOf(fn);
2416
+ if (i === -1) {
2417
+ return;
2418
+ }
2419
+ if (i === 0 && list.length === 1) {
2420
+ list.length = 0;
2421
+ } else {
2422
+ list.splice(i, 1);
2423
+ }
2424
+ }
2425
+ emit(ev, code, signal) {
2426
+ if (this.emitted[ev]) {
2427
+ return false;
2428
+ }
2429
+ this.emitted[ev] = true;
2430
+ let ret = false;
2431
+ for (const fn of this.listeners[ev]) {
2432
+ ret = fn(code, signal) === true || ret;
2433
+ }
2434
+ if (ev === "exit") {
2435
+ ret = this.emit("afterExit", code, signal) || ret;
2436
+ }
2437
+ return ret;
2438
+ }
2439
+ };
2440
+ var SignalExitBase = class {
2441
+ };
2442
+ var signalExitWrap = (handler) => {
2443
+ return {
2444
+ onExit(cb, opts) {
2445
+ return handler.onExit(cb, opts);
2446
+ },
2447
+ load() {
2448
+ return handler.load();
2449
+ },
2450
+ unload() {
2451
+ return handler.unload();
2452
+ }
2453
+ };
2454
+ };
2455
+ var SignalExitFallback = class extends SignalExitBase {
2456
+ onExit() {
2457
+ return () => {
2458
+ };
2459
+ }
2460
+ load() {
2461
+ }
2462
+ unload() {
2463
+ }
2464
+ };
2465
+ var SignalExit = class extends SignalExitBase {
2466
+ // "SIGHUP" throws an `ENOSYS` error on Windows,
2467
+ // so use a supported signal instead
2468
+ /* c8 ignore start */
2469
+ #hupSig = process3.platform === "win32" ? "SIGINT" : "SIGHUP";
2470
+ /* c8 ignore stop */
2471
+ #emitter = new Emitter();
2472
+ #process;
2473
+ #originalProcessEmit;
2474
+ #originalProcessReallyExit;
2475
+ #sigListeners = {};
2476
+ #loaded = false;
2477
+ constructor(process10) {
2478
+ super();
2479
+ this.#process = process10;
2480
+ this.#sigListeners = {};
2481
+ for (const sig of signals) {
2482
+ this.#sigListeners[sig] = () => {
2483
+ const listeners = this.#process.listeners(sig);
2484
+ let { count } = this.#emitter;
2485
+ const p = process10;
2486
+ if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") {
2487
+ count += p.__signal_exit_emitter__.count;
2488
+ }
2489
+ if (listeners.length === count) {
2490
+ this.unload();
2491
+ const ret = this.#emitter.emit("exit", null, sig);
2492
+ const s = sig === "SIGHUP" ? this.#hupSig : sig;
2493
+ if (!ret)
2494
+ process10.kill(process10.pid, s);
2495
+ }
2496
+ };
2497
+ }
2498
+ this.#originalProcessReallyExit = process10.reallyExit;
2499
+ this.#originalProcessEmit = process10.emit;
2500
+ }
2501
+ onExit(cb, opts) {
2502
+ if (!processOk(this.#process)) {
2503
+ return () => {
2504
+ };
2505
+ }
2506
+ if (this.#loaded === false) {
2507
+ this.load();
2508
+ }
2509
+ const ev = opts?.alwaysLast ? "afterExit" : "exit";
2510
+ this.#emitter.on(ev, cb);
2511
+ return () => {
2512
+ this.#emitter.removeListener(ev, cb);
2513
+ if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) {
2514
+ this.unload();
2515
+ }
2516
+ };
2517
+ }
2518
+ load() {
2519
+ if (this.#loaded) {
2520
+ return;
2521
+ }
2522
+ this.#loaded = true;
2523
+ this.#emitter.count += 1;
2524
+ for (const sig of signals) {
2525
+ try {
2526
+ const fn = this.#sigListeners[sig];
2527
+ if (fn)
2528
+ this.#process.on(sig, fn);
2529
+ } catch (_) {
2530
+ }
2531
+ }
2532
+ this.#process.emit = (ev, ...a) => {
2533
+ return this.#processEmit(ev, ...a);
2534
+ };
2535
+ this.#process.reallyExit = (code) => {
2536
+ return this.#processReallyExit(code);
2537
+ };
2538
+ }
2539
+ unload() {
2540
+ if (!this.#loaded) {
2541
+ return;
2542
+ }
2543
+ this.#loaded = false;
2544
+ signals.forEach((sig) => {
2545
+ const listener = this.#sigListeners[sig];
2546
+ if (!listener) {
2547
+ throw new Error("Listener not defined for signal: " + sig);
2548
+ }
2549
+ try {
2550
+ this.#process.removeListener(sig, listener);
2551
+ } catch (_) {
2552
+ }
2553
+ });
2554
+ this.#process.emit = this.#originalProcessEmit;
2555
+ this.#process.reallyExit = this.#originalProcessReallyExit;
2556
+ this.#emitter.count -= 1;
2557
+ }
2558
+ #processReallyExit(code) {
2559
+ if (!processOk(this.#process)) {
2560
+ return 0;
2561
+ }
2562
+ this.#process.exitCode = code || 0;
2563
+ this.#emitter.emit("exit", this.#process.exitCode, null);
2564
+ return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
2565
+ }
2566
+ #processEmit(ev, ...args) {
2567
+ const og = this.#originalProcessEmit;
2568
+ if (ev === "exit" && processOk(this.#process)) {
2569
+ if (typeof args[0] === "number") {
2570
+ this.#process.exitCode = args[0];
2571
+ }
2572
+ const ret = og.call(this.#process, ev, ...args);
2573
+ this.#emitter.emit("exit", this.#process.exitCode, null);
2574
+ return ret;
2575
+ } else {
2576
+ return og.call(this.#process, ev, ...args);
2577
+ }
2578
+ }
2579
+ };
2580
+ var process3 = globalThis.process;
2581
+ var {
2582
+ /**
2583
+ * Called when the process is exiting, whether via signal, explicit
2584
+ * exit, or running out of stuff to do.
2585
+ *
2586
+ * If the global process object is not suitable for instrumentation,
2587
+ * then this will be a no-op.
2588
+ *
2589
+ * Returns a function that may be used to unload signal-exit.
2590
+ */
2591
+ onExit,
2592
+ /**
2593
+ * Load the listeners. Likely you never need to call this, unless
2594
+ * doing a rather deep integration with signal-exit functionality.
2595
+ * Mostly exposed for the benefit of testing.
2596
+ *
2597
+ * @internal
2598
+ */
2599
+ load,
2600
+ /**
2601
+ * Unload the listeners. Likely you never need to call this, unless
2602
+ * doing a rather deep integration with signal-exit functionality.
2603
+ * Mostly exposed for the benefit of testing.
2604
+ *
2605
+ * @internal
2606
+ */
2607
+ unload
2608
+ } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback());
2609
+
2610
+ // ../../node_modules/.pnpm/restore-cursor@5.1.0/node_modules/restore-cursor/index.js
2611
+ var terminal = import_node_process2.default.stderr.isTTY ? import_node_process2.default.stderr : import_node_process2.default.stdout.isTTY ? import_node_process2.default.stdout : void 0;
2612
+ var restoreCursor = terminal ? onetime_default(() => {
2613
+ onExit(() => {
2614
+ terminal.write("\x1B[?25h");
2615
+ }, { alwaysLast: true });
2616
+ }) : () => {
2617
+ };
2618
+ var restore_cursor_default = restoreCursor;
2619
+
2620
+ // ../../node_modules/.pnpm/cli-cursor@5.0.0/node_modules/cli-cursor/index.js
2621
+ var isHidden = false;
2622
+ var cliCursor = {};
2623
+ cliCursor.show = (writableStream = import_node_process3.default.stderr) => {
2624
+ if (!writableStream.isTTY) {
2625
+ return;
2626
+ }
2627
+ isHidden = false;
2628
+ writableStream.write("\x1B[?25h");
2629
+ };
2630
+ cliCursor.hide = (writableStream = import_node_process3.default.stderr) => {
2631
+ if (!writableStream.isTTY) {
2632
+ return;
2633
+ }
2634
+ restore_cursor_default();
2635
+ isHidden = true;
2636
+ writableStream.write("\x1B[?25l");
2637
+ };
2638
+ cliCursor.toggle = (force, writableStream) => {
2639
+ if (force !== void 0) {
2640
+ isHidden = force;
2641
+ }
2642
+ if (isHidden) {
2643
+ cliCursor.show(writableStream);
2644
+ } else {
2645
+ cliCursor.hide(writableStream);
2646
+ }
2647
+ };
2648
+ var cli_cursor_default = cliCursor;
2649
+
2650
+ // ../../node_modules/.pnpm/ora@8.2.0/node_modules/ora/index.js
2651
+ var import_cli_spinners = __toESM(require_cli_spinners(), 1);
2652
+
2653
+ // ../../node_modules/.pnpm/is-unicode-supported@1.3.0/node_modules/is-unicode-supported/index.js
2654
+ var import_node_process4 = __toESM(require("process"), 1);
2655
+ function isUnicodeSupported() {
2656
+ if (import_node_process4.default.platform !== "win32") {
2657
+ return import_node_process4.default.env.TERM !== "linux";
2658
+ }
2659
+ return Boolean(import_node_process4.default.env.CI) || Boolean(import_node_process4.default.env.WT_SESSION) || Boolean(import_node_process4.default.env.TERMINUS_SUBLIME) || import_node_process4.default.env.ConEmuTask === "{cmd::Cmder}" || import_node_process4.default.env.TERM_PROGRAM === "Terminus-Sublime" || import_node_process4.default.env.TERM_PROGRAM === "vscode" || import_node_process4.default.env.TERM === "xterm-256color" || import_node_process4.default.env.TERM === "alacritty" || import_node_process4.default.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
2660
+ }
2661
+
2662
+ // ../../node_modules/.pnpm/log-symbols@6.0.0/node_modules/log-symbols/index.js
2663
+ var main = {
2664
+ info: source_default.blue("\u2139"),
2665
+ success: source_default.green("\u2714"),
2666
+ warning: source_default.yellow("\u26A0"),
2667
+ error: source_default.red("\u2716")
2668
+ };
2669
+ var fallback = {
2670
+ info: source_default.blue("i"),
2671
+ success: source_default.green("\u221A"),
2672
+ warning: source_default.yellow("\u203C"),
2673
+ error: source_default.red("\xD7")
2674
+ };
2675
+ var logSymbols = isUnicodeSupported() ? main : fallback;
2676
+ var log_symbols_default = logSymbols;
2677
+
2678
+ // ../../node_modules/.pnpm/ansi-regex@6.2.2/node_modules/ansi-regex/index.js
2679
+ function ansiRegex({ onlyFirst = false } = {}) {
2680
+ const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
2681
+ const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
2682
+ const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
2683
+ const pattern = `${osc}|${csi}`;
2684
+ return new RegExp(pattern, onlyFirst ? void 0 : "g");
2685
+ }
2686
+
2687
+ // ../../node_modules/.pnpm/strip-ansi@7.1.2/node_modules/strip-ansi/index.js
2688
+ var regex = ansiRegex();
2689
+ function stripAnsi(string) {
2690
+ if (typeof string !== "string") {
2691
+ throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
2692
+ }
2693
+ return string.replace(regex, "");
2694
+ }
2695
+
2696
+ // ../../node_modules/.pnpm/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/lookup.js
2697
+ function isAmbiguous(x) {
2698
+ return x === 161 || x === 164 || x === 167 || x === 168 || x === 170 || x === 173 || x === 174 || x >= 176 && x <= 180 || x >= 182 && x <= 186 || x >= 188 && x <= 191 || x === 198 || x === 208 || x === 215 || x === 216 || x >= 222 && x <= 225 || x === 230 || x >= 232 && x <= 234 || x === 236 || x === 237 || x === 240 || x === 242 || x === 243 || x >= 247 && x <= 250 || x === 252 || x === 254 || x === 257 || x === 273 || x === 275 || x === 283 || x === 294 || x === 295 || x === 299 || x >= 305 && x <= 307 || x === 312 || x >= 319 && x <= 322 || x === 324 || x >= 328 && x <= 331 || x === 333 || x === 338 || x === 339 || x === 358 || x === 359 || x === 363 || x === 462 || x === 464 || x === 466 || x === 468 || x === 470 || x === 472 || x === 474 || x === 476 || x === 593 || x === 609 || x === 708 || x === 711 || x >= 713 && x <= 715 || x === 717 || x === 720 || x >= 728 && x <= 731 || x === 733 || x === 735 || x >= 768 && x <= 879 || x >= 913 && x <= 929 || x >= 931 && x <= 937 || x >= 945 && x <= 961 || x >= 963 && x <= 969 || x === 1025 || x >= 1040 && x <= 1103 || x === 1105 || x === 8208 || x >= 8211 && x <= 8214 || x === 8216 || x === 8217 || x === 8220 || x === 8221 || x >= 8224 && x <= 8226 || x >= 8228 && x <= 8231 || x === 8240 || x === 8242 || x === 8243 || x === 8245 || x === 8251 || x === 8254 || x === 8308 || x === 8319 || x >= 8321 && x <= 8324 || x === 8364 || x === 8451 || x === 8453 || x === 8457 || x === 8467 || x === 8470 || x === 8481 || x === 8482 || x === 8486 || x === 8491 || x === 8531 || x === 8532 || x >= 8539 && x <= 8542 || x >= 8544 && x <= 8555 || x >= 8560 && x <= 8569 || x === 8585 || x >= 8592 && x <= 8601 || x === 8632 || x === 8633 || x === 8658 || x === 8660 || x === 8679 || x === 8704 || x === 8706 || x === 8707 || x === 8711 || x === 8712 || x === 8715 || x === 8719 || x === 8721 || x === 8725 || x === 8730 || x >= 8733 && x <= 8736 || x === 8739 || x === 8741 || x >= 8743 && x <= 8748 || x === 8750 || x >= 8756 && x <= 8759 || x === 8764 || x === 8765 || x === 8776 || x === 8780 || x === 8786 || x === 8800 || x === 8801 || x >= 8804 && x <= 8807 || x === 8810 || x === 8811 || x === 8814 || x === 8815 || x === 8834 || x === 8835 || x === 8838 || x === 8839 || x === 8853 || x === 8857 || x === 8869 || x === 8895 || x === 8978 || x >= 9312 && x <= 9449 || x >= 9451 && x <= 9547 || x >= 9552 && x <= 9587 || x >= 9600 && x <= 9615 || x >= 9618 && x <= 9621 || x === 9632 || x === 9633 || x >= 9635 && x <= 9641 || x === 9650 || x === 9651 || x === 9654 || x === 9655 || x === 9660 || x === 9661 || x === 9664 || x === 9665 || x >= 9670 && x <= 9672 || x === 9675 || x >= 9678 && x <= 9681 || x >= 9698 && x <= 9701 || x === 9711 || x === 9733 || x === 9734 || x === 9737 || x === 9742 || x === 9743 || x === 9756 || x === 9758 || x === 9792 || x === 9794 || x === 9824 || x === 9825 || x >= 9827 && x <= 9829 || x >= 9831 && x <= 9834 || x === 9836 || x === 9837 || x === 9839 || x === 9886 || x === 9887 || x === 9919 || x >= 9926 && x <= 9933 || x >= 9935 && x <= 9939 || x >= 9941 && x <= 9953 || x === 9955 || x === 9960 || x === 9961 || x >= 9963 && x <= 9969 || x === 9972 || x >= 9974 && x <= 9977 || x === 9979 || x === 9980 || x === 9982 || x === 9983 || x === 10045 || x >= 10102 && x <= 10111 || x >= 11094 && x <= 11097 || x >= 12872 && x <= 12879 || x >= 57344 && x <= 63743 || x >= 65024 && x <= 65039 || x === 65533 || x >= 127232 && x <= 127242 || x >= 127248 && x <= 127277 || x >= 127280 && x <= 127337 || x >= 127344 && x <= 127373 || x === 127375 || x === 127376 || x >= 127387 && x <= 127404 || x >= 917760 && x <= 917999 || x >= 983040 && x <= 1048573 || x >= 1048576 && x <= 1114109;
2699
+ }
2700
+ function isFullWidth(x) {
2701
+ return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
2702
+ }
2703
+ function isWide(x) {
2704
+ return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x >= 94192 && x <= 94198 || x >= 94208 && x <= 101589 || x >= 101631 && x <= 101662 || x >= 101760 && x <= 101874 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128728 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129674 || x >= 129678 && x <= 129734 || x === 129736 || x >= 129741 && x <= 129756 || x >= 129759 && x <= 129770 || x >= 129775 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
2705
+ }
2706
+
2707
+ // ../../node_modules/.pnpm/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/index.js
2708
+ function validate(codePoint) {
2709
+ if (!Number.isSafeInteger(codePoint)) {
2710
+ throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
2711
+ }
2712
+ }
2713
+ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
2714
+ validate(codePoint);
2715
+ if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
2716
+ return 2;
2717
+ }
2718
+ return 1;
2719
+ }
2720
+
2721
+ // ../../node_modules/.pnpm/emoji-regex@10.6.0/node_modules/emoji-regex/index.mjs
2722
+ var emoji_regex_default = () => {
2723
+ 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;
2724
+ };
2725
+
2726
+ // ../../node_modules/.pnpm/string-width@7.2.0/node_modules/string-width/index.js
2727
+ var segmenter = new Intl.Segmenter();
2728
+ var defaultIgnorableCodePointRegex = new RegExp("^\\p{Default_Ignorable_Code_Point}$", "u");
2729
+ function stringWidth(string, options = {}) {
2730
+ if (typeof string !== "string" || string.length === 0) {
2731
+ return 0;
2732
+ }
2733
+ const {
2734
+ ambiguousIsNarrow = true,
2735
+ countAnsiEscapeCodes = false
2736
+ } = options;
2737
+ if (!countAnsiEscapeCodes) {
2738
+ string = stripAnsi(string);
2739
+ }
2740
+ if (string.length === 0) {
2741
+ return 0;
2742
+ }
2743
+ let width = 0;
2744
+ const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
2745
+ for (const { segment: character } of segmenter.segment(string)) {
2746
+ const codePoint = character.codePointAt(0);
2747
+ if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
2748
+ continue;
2749
+ }
2750
+ if (codePoint >= 8203 && codePoint <= 8207 || codePoint === 65279) {
2751
+ continue;
2752
+ }
2753
+ if (codePoint >= 768 && codePoint <= 879 || codePoint >= 6832 && codePoint <= 6911 || codePoint >= 7616 && codePoint <= 7679 || codePoint >= 8400 && codePoint <= 8447 || codePoint >= 65056 && codePoint <= 65071) {
2754
+ continue;
2755
+ }
2756
+ if (codePoint >= 55296 && codePoint <= 57343) {
2757
+ continue;
2758
+ }
2759
+ if (codePoint >= 65024 && codePoint <= 65039) {
2760
+ continue;
2761
+ }
2762
+ if (defaultIgnorableCodePointRegex.test(character)) {
2763
+ continue;
2764
+ }
2765
+ if (emoji_regex_default().test(character)) {
2766
+ width += 2;
2767
+ continue;
2768
+ }
2769
+ width += eastAsianWidth(codePoint, eastAsianWidthOptions);
2770
+ }
2771
+ return width;
2772
+ }
2773
+
2774
+ // ../../node_modules/.pnpm/is-interactive@2.0.0/node_modules/is-interactive/index.js
2775
+ function isInteractive({ stream = process.stdout } = {}) {
2776
+ return Boolean(
2777
+ stream && stream.isTTY && process.env.TERM !== "dumb" && !("CI" in process.env)
2778
+ );
2779
+ }
2780
+
2781
+ // ../../node_modules/.pnpm/is-unicode-supported@2.1.0/node_modules/is-unicode-supported/index.js
2782
+ var import_node_process5 = __toESM(require("process"), 1);
2783
+ function isUnicodeSupported2() {
2784
+ const { env: env2 } = import_node_process5.default;
2785
+ const { TERM, TERM_PROGRAM } = env2;
2786
+ if (import_node_process5.default.platform !== "win32") {
2787
+ return TERM !== "linux";
2788
+ }
2789
+ 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";
2790
+ }
2791
+
2792
+ // ../../node_modules/.pnpm/stdin-discarder@0.2.2/node_modules/stdin-discarder/index.js
2793
+ var import_node_process6 = __toESM(require("process"), 1);
2794
+ var ASCII_ETX_CODE = 3;
2795
+ var StdinDiscarder = class {
2796
+ #activeCount = 0;
2797
+ start() {
2798
+ this.#activeCount++;
2799
+ if (this.#activeCount === 1) {
2800
+ this.#realStart();
2801
+ }
2802
+ }
2803
+ stop() {
2804
+ if (this.#activeCount <= 0) {
2805
+ throw new Error("`stop` called more times than `start`");
2806
+ }
2807
+ this.#activeCount--;
2808
+ if (this.#activeCount === 0) {
2809
+ this.#realStop();
2810
+ }
2811
+ }
2812
+ #realStart() {
2813
+ if (import_node_process6.default.platform === "win32" || !import_node_process6.default.stdin.isTTY) {
2814
+ return;
2815
+ }
2816
+ import_node_process6.default.stdin.setRawMode(true);
2817
+ import_node_process6.default.stdin.on("data", this.#handleInput);
2818
+ import_node_process6.default.stdin.resume();
2819
+ }
2820
+ #realStop() {
2821
+ if (!import_node_process6.default.stdin.isTTY) {
2822
+ return;
2823
+ }
2824
+ import_node_process6.default.stdin.off("data", this.#handleInput);
2825
+ import_node_process6.default.stdin.pause();
2826
+ import_node_process6.default.stdin.setRawMode(false);
2827
+ }
2828
+ #handleInput(chunk) {
2829
+ if (chunk[0] === ASCII_ETX_CODE) {
2830
+ import_node_process6.default.emit("SIGINT");
2831
+ }
2832
+ }
2833
+ };
2834
+ var stdinDiscarder = new StdinDiscarder();
2835
+ var stdin_discarder_default = stdinDiscarder;
2836
+
2837
+ // ../../node_modules/.pnpm/ora@8.2.0/node_modules/ora/index.js
2838
+ var import_cli_spinners2 = __toESM(require_cli_spinners(), 1);
2839
+ var Ora = class {
2840
+ #linesToClear = 0;
2841
+ #isDiscardingStdin = false;
2842
+ #lineCount = 0;
2843
+ #frameIndex = -1;
2844
+ #lastSpinnerFrameTime = 0;
2845
+ #options;
2846
+ #spinner;
2847
+ #stream;
2848
+ #id;
2849
+ #initialInterval;
2850
+ #isEnabled;
2851
+ #isSilent;
2852
+ #indent;
2853
+ #text;
2854
+ #prefixText;
2855
+ #suffixText;
2856
+ color;
2857
+ constructor(options) {
2858
+ if (typeof options === "string") {
2859
+ options = {
2860
+ text: options
2861
+ };
2862
+ }
2863
+ this.#options = {
2864
+ color: "cyan",
2865
+ stream: import_node_process7.default.stderr,
2866
+ discardStdin: true,
2867
+ hideCursor: true,
2868
+ ...options
2869
+ };
2870
+ this.color = this.#options.color;
2871
+ this.spinner = this.#options.spinner;
2872
+ this.#initialInterval = this.#options.interval;
2873
+ this.#stream = this.#options.stream;
2874
+ this.#isEnabled = typeof this.#options.isEnabled === "boolean" ? this.#options.isEnabled : isInteractive({ stream: this.#stream });
2875
+ this.#isSilent = typeof this.#options.isSilent === "boolean" ? this.#options.isSilent : false;
2876
+ this.text = this.#options.text;
2877
+ this.prefixText = this.#options.prefixText;
2878
+ this.suffixText = this.#options.suffixText;
2879
+ this.indent = this.#options.indent;
2880
+ if (import_node_process7.default.env.NODE_ENV === "test") {
2881
+ this._stream = this.#stream;
2882
+ this._isEnabled = this.#isEnabled;
2883
+ Object.defineProperty(this, "_linesToClear", {
2884
+ get() {
2885
+ return this.#linesToClear;
2886
+ },
2887
+ set(newValue) {
2888
+ this.#linesToClear = newValue;
2889
+ }
2890
+ });
2891
+ Object.defineProperty(this, "_frameIndex", {
2892
+ get() {
2893
+ return this.#frameIndex;
2894
+ }
2895
+ });
2896
+ Object.defineProperty(this, "_lineCount", {
2897
+ get() {
2898
+ return this.#lineCount;
2899
+ }
2900
+ });
2901
+ }
2902
+ }
2903
+ get indent() {
2904
+ return this.#indent;
2905
+ }
2906
+ set indent(indent = 0) {
2907
+ if (!(indent >= 0 && Number.isInteger(indent))) {
2908
+ throw new Error("The `indent` option must be an integer from 0 and up");
2909
+ }
2910
+ this.#indent = indent;
2911
+ this.#updateLineCount();
2912
+ }
2913
+ get interval() {
2914
+ return this.#initialInterval ?? this.#spinner.interval ?? 100;
2915
+ }
2916
+ get spinner() {
2917
+ return this.#spinner;
2918
+ }
2919
+ set spinner(spinner) {
2920
+ this.#frameIndex = -1;
2921
+ this.#initialInterval = void 0;
2922
+ if (typeof spinner === "object") {
2923
+ if (spinner.frames === void 0) {
2924
+ throw new Error("The given spinner must have a `frames` property");
2925
+ }
2926
+ this.#spinner = spinner;
2927
+ } else if (!isUnicodeSupported2()) {
2928
+ this.#spinner = import_cli_spinners.default.line;
2929
+ } else if (spinner === void 0) {
2930
+ this.#spinner = import_cli_spinners.default.dots;
2931
+ } else if (spinner !== "default" && import_cli_spinners.default[spinner]) {
2932
+ this.#spinner = import_cli_spinners.default[spinner];
2933
+ } else {
2934
+ 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.`);
2935
+ }
2936
+ }
2937
+ get text() {
2938
+ return this.#text;
2939
+ }
2940
+ set text(value = "") {
2941
+ this.#text = value;
2942
+ this.#updateLineCount();
2943
+ }
2944
+ get prefixText() {
2945
+ return this.#prefixText;
2946
+ }
2947
+ set prefixText(value = "") {
2948
+ this.#prefixText = value;
2949
+ this.#updateLineCount();
2950
+ }
2951
+ get suffixText() {
2952
+ return this.#suffixText;
2953
+ }
2954
+ set suffixText(value = "") {
2955
+ this.#suffixText = value;
2956
+ this.#updateLineCount();
2957
+ }
2958
+ get isSpinning() {
2959
+ return this.#id !== void 0;
2960
+ }
2961
+ #getFullPrefixText(prefixText = this.#prefixText, postfix = " ") {
2962
+ if (typeof prefixText === "string" && prefixText !== "") {
2963
+ return prefixText + postfix;
2964
+ }
2965
+ if (typeof prefixText === "function") {
2966
+ return prefixText() + postfix;
2967
+ }
2968
+ return "";
2969
+ }
2970
+ #getFullSuffixText(suffixText = this.#suffixText, prefix = " ") {
2971
+ if (typeof suffixText === "string" && suffixText !== "") {
2972
+ return prefix + suffixText;
2973
+ }
2974
+ if (typeof suffixText === "function") {
2975
+ return prefix + suffixText();
2976
+ }
2977
+ return "";
2978
+ }
2979
+ #updateLineCount() {
2980
+ const columns = this.#stream.columns ?? 80;
2981
+ const fullPrefixText = this.#getFullPrefixText(this.#prefixText, "-");
2982
+ const fullSuffixText = this.#getFullSuffixText(this.#suffixText, "-");
2983
+ const fullText = " ".repeat(this.#indent) + fullPrefixText + "--" + this.#text + "--" + fullSuffixText;
2984
+ this.#lineCount = 0;
2985
+ for (const line of stripAnsi(fullText).split("\n")) {
2986
+ this.#lineCount += Math.max(1, Math.ceil(stringWidth(line, { countAnsiEscapeCodes: true }) / columns));
2987
+ }
2988
+ }
2989
+ get isEnabled() {
2990
+ return this.#isEnabled && !this.#isSilent;
2991
+ }
2992
+ set isEnabled(value) {
2993
+ if (typeof value !== "boolean") {
2994
+ throw new TypeError("The `isEnabled` option must be a boolean");
2995
+ }
2996
+ this.#isEnabled = value;
2997
+ }
2998
+ get isSilent() {
2999
+ return this.#isSilent;
3000
+ }
3001
+ set isSilent(value) {
3002
+ if (typeof value !== "boolean") {
3003
+ throw new TypeError("The `isSilent` option must be a boolean");
3004
+ }
3005
+ this.#isSilent = value;
3006
+ }
3007
+ frame() {
3008
+ const now = Date.now();
3009
+ if (this.#frameIndex === -1 || now - this.#lastSpinnerFrameTime >= this.interval) {
3010
+ this.#frameIndex = ++this.#frameIndex % this.#spinner.frames.length;
3011
+ this.#lastSpinnerFrameTime = now;
3012
+ }
3013
+ const { frames } = this.#spinner;
3014
+ let frame = frames[this.#frameIndex];
3015
+ if (this.color) {
3016
+ frame = source_default[this.color](frame);
3017
+ }
3018
+ const fullPrefixText = typeof this.#prefixText === "string" && this.#prefixText !== "" ? this.#prefixText + " " : "";
3019
+ const fullText = typeof this.text === "string" ? " " + this.text : "";
3020
+ const fullSuffixText = typeof this.#suffixText === "string" && this.#suffixText !== "" ? " " + this.#suffixText : "";
3021
+ return fullPrefixText + frame + fullText + fullSuffixText;
3022
+ }
3023
+ clear() {
3024
+ if (!this.#isEnabled || !this.#stream.isTTY) {
3025
+ return this;
3026
+ }
3027
+ this.#stream.cursorTo(0);
3028
+ for (let index = 0; index < this.#linesToClear; index++) {
3029
+ if (index > 0) {
3030
+ this.#stream.moveCursor(0, -1);
3031
+ }
3032
+ this.#stream.clearLine(1);
3033
+ }
3034
+ if (this.#indent || this.lastIndent !== this.#indent) {
3035
+ this.#stream.cursorTo(this.#indent);
3036
+ }
3037
+ this.lastIndent = this.#indent;
3038
+ this.#linesToClear = 0;
3039
+ return this;
3040
+ }
3041
+ render() {
3042
+ if (this.#isSilent) {
3043
+ return this;
3044
+ }
3045
+ this.clear();
3046
+ this.#stream.write(this.frame());
3047
+ this.#linesToClear = this.#lineCount;
3048
+ return this;
3049
+ }
3050
+ start(text) {
3051
+ if (text) {
3052
+ this.text = text;
3053
+ }
3054
+ if (this.#isSilent) {
3055
+ return this;
3056
+ }
3057
+ if (!this.#isEnabled) {
3058
+ if (this.text) {
3059
+ this.#stream.write(`- ${this.text}
3060
+ `);
3061
+ }
3062
+ return this;
3063
+ }
3064
+ if (this.isSpinning) {
3065
+ return this;
3066
+ }
3067
+ if (this.#options.hideCursor) {
3068
+ cli_cursor_default.hide(this.#stream);
3069
+ }
3070
+ if (this.#options.discardStdin && import_node_process7.default.stdin.isTTY) {
3071
+ this.#isDiscardingStdin = true;
3072
+ stdin_discarder_default.start();
3073
+ }
3074
+ this.render();
3075
+ this.#id = setInterval(this.render.bind(this), this.interval);
3076
+ return this;
3077
+ }
3078
+ stop() {
3079
+ if (!this.#isEnabled) {
3080
+ return this;
3081
+ }
3082
+ clearInterval(this.#id);
3083
+ this.#id = void 0;
3084
+ this.#frameIndex = 0;
3085
+ this.clear();
3086
+ if (this.#options.hideCursor) {
3087
+ cli_cursor_default.show(this.#stream);
3088
+ }
3089
+ if (this.#options.discardStdin && import_node_process7.default.stdin.isTTY && this.#isDiscardingStdin) {
3090
+ stdin_discarder_default.stop();
3091
+ this.#isDiscardingStdin = false;
3092
+ }
3093
+ return this;
3094
+ }
3095
+ succeed(text) {
3096
+ return this.stopAndPersist({ symbol: log_symbols_default.success, text });
3097
+ }
3098
+ fail(text) {
3099
+ return this.stopAndPersist({ symbol: log_symbols_default.error, text });
3100
+ }
3101
+ warn(text) {
3102
+ return this.stopAndPersist({ symbol: log_symbols_default.warning, text });
3103
+ }
3104
+ info(text) {
3105
+ return this.stopAndPersist({ symbol: log_symbols_default.info, text });
3106
+ }
3107
+ stopAndPersist(options = {}) {
3108
+ if (this.#isSilent) {
3109
+ return this;
3110
+ }
3111
+ const prefixText = options.prefixText ?? this.#prefixText;
3112
+ const fullPrefixText = this.#getFullPrefixText(prefixText, " ");
3113
+ const symbolText = options.symbol ?? " ";
3114
+ const text = options.text ?? this.text;
3115
+ const separatorText = symbolText ? " " : "";
3116
+ const fullText = typeof text === "string" ? separatorText + text : "";
3117
+ const suffixText = options.suffixText ?? this.#suffixText;
3118
+ const fullSuffixText = this.#getFullSuffixText(suffixText, " ");
3119
+ const textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + "\n";
3120
+ this.stop();
3121
+ this.#stream.write(textToWrite);
3122
+ return this;
3123
+ }
3124
+ };
3125
+ function ora(options) {
3126
+ return new Ora(options);
3127
+ }
3128
+
3129
+ // src/commands/templates.ts
34
3130
  var import_prompts = __toESM(require("prompts"), 1);
35
- var import_chalk = __toESM(require("chalk"), 1);
36
3131
 
37
3132
  // src/core/template-manager.ts
38
3133
  var import_undici = require("undici");
@@ -467,7 +3562,7 @@ var listCommand = new import_commander.Command().name("list").alias("ls").descri
467
3562
  "-p, --provider <provider>",
468
3563
  "Filter by provider (stripe, github, etc.)"
469
3564
  ).option("-r, --refresh", "Force refresh the template index cache").action(async (options) => {
470
- const spinner = (0, import_ora.default)("Fetching remote templates...").start();
3565
+ const spinner = ora("Fetching remote templates...").start();
471
3566
  try {
472
3567
  const manager = getTemplateManager();
473
3568
  const templates2 = await manager.listRemoteTemplates({
@@ -475,7 +3570,7 @@ var listCommand = new import_commander.Command().name("list").alias("ls").descri
475
3570
  });
476
3571
  spinner.stop();
477
3572
  if (templates2.length === 0) {
478
- console.log(import_chalk.default.yellow("\u{1F4ED} No remote templates found."));
3573
+ console.log(source_default.yellow("\u{1F4ED} No remote templates found."));
479
3574
  return;
480
3575
  }
481
3576
  let filtered = templates2;
@@ -486,13 +3581,13 @@ var listCommand = new import_commander.Command().name("list").alias("ls").descri
486
3581
  }
487
3582
  if (filtered.length === 0) {
488
3583
  console.log(
489
- import_chalk.default.yellow(
3584
+ source_default.yellow(
490
3585
  `\u{1F4ED} No templates found for provider: ${options.provider}`
491
3586
  )
492
3587
  );
493
3588
  return;
494
3589
  }
495
- console.log(import_chalk.default.bold("\n\u{1F4E6} Available Templates\n"));
3590
+ console.log(source_default.bold("\n\u{1F4E6} Available Templates\n"));
496
3591
  const byProvider = /* @__PURE__ */ new Map();
497
3592
  for (const t of filtered) {
498
3593
  const provider = t.metadata.provider;
@@ -502,24 +3597,24 @@ var listCommand = new import_commander.Command().name("list").alias("ls").descri
502
3597
  byProvider.get(provider).push(t);
503
3598
  }
504
3599
  for (const [provider, providerTemplates] of byProvider) {
505
- console.log(import_chalk.default.cyan.bold(` ${provider.toUpperCase()}`));
3600
+ console.log(source_default.cyan.bold(` ${provider.toUpperCase()}`));
506
3601
  for (const t of providerTemplates) {
507
- const status = t.isDownloaded ? import_chalk.default.green("\u2713 downloaded") : import_chalk.default.gray("\u25CB remote");
508
- console.log(` ${import_chalk.default.white(t.metadata.id)} ${status}`);
3602
+ const status = t.isDownloaded ? source_default.green("\u2713 downloaded") : source_default.gray("\u25CB remote");
3603
+ console.log(` ${source_default.white(t.metadata.id)} ${status}`);
509
3604
  if (t.metadata.description) {
510
- console.log(import_chalk.default.gray(` ${t.metadata.description}`));
3605
+ console.log(source_default.gray(` ${t.metadata.description}`));
511
3606
  }
512
3607
  }
513
3608
  console.log();
514
3609
  }
515
- console.log(import_chalk.default.gray(` Total: ${filtered.length} templates`));
3610
+ console.log(source_default.gray(` Total: ${filtered.length} templates`));
516
3611
  console.log(
517
- import_chalk.default.gray(` Download: better-webhook templates download <id>
3612
+ source_default.gray(` Download: better-webhook templates download <id>
518
3613
  `)
519
3614
  );
520
3615
  } catch (error) {
521
3616
  spinner.fail("Failed to fetch templates");
522
- console.error(import_chalk.default.red(error.message));
3617
+ console.error(source_default.red(error.message));
523
3618
  process.exitCode = 1;
524
3619
  }
525
3620
  });
@@ -527,7 +3622,7 @@ var downloadCommand = new import_commander.Command().name("download").alias("get
527
3622
  async (templateId, options) => {
528
3623
  const manager = getTemplateManager();
529
3624
  if (options?.all) {
530
- const spinner2 = (0, import_ora.default)("Fetching template list...").start();
3625
+ const spinner2 = ora("Fetching template list...").start();
531
3626
  try {
532
3627
  const templates2 = await manager.listRemoteTemplates({
533
3628
  forceRefresh: true
@@ -535,16 +3630,16 @@ var downloadCommand = new import_commander.Command().name("download").alias("get
535
3630
  const toDownload = templates2.filter((t) => !t.isDownloaded);
536
3631
  spinner2.stop();
537
3632
  if (toDownload.length === 0) {
538
- console.log(import_chalk.default.green("\u2713 All templates already downloaded"));
3633
+ console.log(source_default.green("\u2713 All templates already downloaded"));
539
3634
  return;
540
3635
  }
541
3636
  console.log(
542
- import_chalk.default.bold(`
3637
+ source_default.bold(`
543
3638
  Downloading ${toDownload.length} templates...
544
3639
  `)
545
3640
  );
546
3641
  for (const t of toDownload) {
547
- const downloadSpinner = (0, import_ora.default)(
3642
+ const downloadSpinner = ora(
548
3643
  `Downloading ${t.metadata.id}...`
549
3644
  ).start();
550
3645
  try {
@@ -556,16 +3651,16 @@ Downloading ${toDownload.length} templates...
556
3651
  );
557
3652
  }
558
3653
  }
559
- console.log(import_chalk.default.green("\n\u2713 Download complete\n"));
3654
+ console.log(source_default.green("\n\u2713 Download complete\n"));
560
3655
  } catch (error) {
561
3656
  spinner2.fail("Failed to fetch templates");
562
- console.error(import_chalk.default.red(error.message));
3657
+ console.error(source_default.red(error.message));
563
3658
  process.exitCode = 1;
564
3659
  }
565
3660
  return;
566
3661
  }
567
3662
  if (!templateId) {
568
- const spinner2 = (0, import_ora.default)("Fetching templates...").start();
3663
+ const spinner2 = ora("Fetching templates...").start();
569
3664
  try {
570
3665
  const templates2 = await manager.listRemoteTemplates({
571
3666
  forceRefresh: !!options?.refresh
@@ -573,7 +3668,7 @@ Downloading ${toDownload.length} templates...
573
3668
  spinner2.stop();
574
3669
  const notDownloaded = templates2.filter((t) => !t.isDownloaded);
575
3670
  if (notDownloaded.length === 0) {
576
- console.log(import_chalk.default.green("\u2713 All templates already downloaded"));
3671
+ console.log(source_default.green("\u2713 All templates already downloaded"));
577
3672
  return;
578
3673
  }
579
3674
  const choices = notDownloaded.map((t) => ({
@@ -588,29 +3683,29 @@ Downloading ${toDownload.length} templates...
588
3683
  choices
589
3684
  });
590
3685
  if (!response.templateId) {
591
- console.log(import_chalk.default.yellow("Cancelled"));
3686
+ console.log(source_default.yellow("Cancelled"));
592
3687
  return;
593
3688
  }
594
3689
  templateId = response.templateId;
595
3690
  } catch (error) {
596
3691
  spinner2.fail("Failed to fetch templates");
597
- console.error(import_chalk.default.red(error.message));
3692
+ console.error(source_default.red(error.message));
598
3693
  process.exitCode = 1;
599
3694
  return;
600
3695
  }
601
3696
  }
602
- const spinner = (0, import_ora.default)(`Downloading ${templateId}...`).start();
3697
+ const spinner = ora(`Downloading ${templateId}...`).start();
603
3698
  try {
604
3699
  const template = await manager.downloadTemplate(templateId);
605
3700
  spinner.succeed(`Downloaded ${templateId}`);
606
- console.log(import_chalk.default.gray(` Saved to: ${template.filePath}`));
3701
+ console.log(source_default.gray(` Saved to: ${template.filePath}`));
607
3702
  console.log(
608
- import_chalk.default.gray(` Run with: better-webhook run ${templateId}
3703
+ source_default.gray(` Run with: better-webhook run ${templateId}
609
3704
  `)
610
3705
  );
611
3706
  } catch (error) {
612
3707
  spinner.fail(`Failed to download ${templateId}`);
613
- console.error(import_chalk.default.red(error.message));
3708
+ console.error(source_default.red(error.message));
614
3709
  process.exitCode = 1;
615
3710
  }
616
3711
  }
@@ -624,15 +3719,15 @@ var localCommand = new import_commander.Command().name("local").description("Lis
624
3719
  );
625
3720
  }
626
3721
  if (templates2.length === 0) {
627
- console.log(import_chalk.default.yellow("\n\u{1F4ED} No local templates found."));
3722
+ console.log(source_default.yellow("\n\u{1F4ED} No local templates found."));
628
3723
  console.log(
629
- import_chalk.default.gray(
3724
+ source_default.gray(
630
3725
  " Download templates with: better-webhook templates download\n"
631
3726
  )
632
3727
  );
633
3728
  return;
634
3729
  }
635
- console.log(import_chalk.default.bold("\n\u{1F4C1} Local Templates\n"));
3730
+ console.log(source_default.bold("\n\u{1F4C1} Local Templates\n"));
636
3731
  const byProvider = /* @__PURE__ */ new Map();
637
3732
  for (const t of templates2) {
638
3733
  const provider = t.metadata.provider;
@@ -642,62 +3737,62 @@ var localCommand = new import_commander.Command().name("local").description("Lis
642
3737
  byProvider.get(provider).push(t);
643
3738
  }
644
3739
  for (const [provider, providerTemplates] of byProvider) {
645
- console.log(import_chalk.default.cyan.bold(` ${provider.toUpperCase()}`));
3740
+ console.log(source_default.cyan.bold(` ${provider.toUpperCase()}`));
646
3741
  for (const t of providerTemplates) {
647
- console.log(` ${import_chalk.default.white(t.id)}`);
648
- console.log(import_chalk.default.gray(` Event: ${t.metadata.event}`));
3742
+ console.log(` ${source_default.white(t.id)}`);
3743
+ console.log(source_default.gray(` Event: ${t.metadata.event}`));
649
3744
  console.log(
650
- import_chalk.default.gray(
3745
+ source_default.gray(
651
3746
  ` Downloaded: ${new Date(t.downloadedAt).toLocaleDateString()}`
652
3747
  )
653
3748
  );
654
3749
  }
655
3750
  console.log();
656
3751
  }
657
- console.log(import_chalk.default.gray(` Total: ${templates2.length} templates`));
658
- console.log(import_chalk.default.gray(` Storage: ${manager.getTemplatesDir()}
3752
+ console.log(source_default.gray(` Total: ${templates2.length} templates`));
3753
+ console.log(source_default.gray(` Storage: ${manager.getTemplatesDir()}
659
3754
  `));
660
3755
  });
661
3756
  var searchCommand = new import_commander.Command().name("search").argument("<query>", "Search query").description("Search templates by name, provider, or event").action(async (query) => {
662
- const spinner = (0, import_ora.default)("Searching...").start();
3757
+ const spinner = ora("Searching...").start();
663
3758
  try {
664
3759
  const manager = getTemplateManager();
665
3760
  const results = await manager.searchTemplates(query);
666
3761
  spinner.stop();
667
3762
  const totalCount = results.remote.length + results.local.length;
668
3763
  if (totalCount === 0) {
669
- console.log(import_chalk.default.yellow(`
3764
+ console.log(source_default.yellow(`
670
3765
  \u{1F4ED} No templates found for: "${query}"
671
3766
  `));
672
3767
  return;
673
3768
  }
674
- console.log(import_chalk.default.bold(`
3769
+ console.log(source_default.bold(`
675
3770
  \u{1F50D} Search Results for "${query}"
676
3771
  `));
677
3772
  if (results.local.length > 0) {
678
- console.log(import_chalk.default.cyan.bold(" LOCAL TEMPLATES"));
3773
+ console.log(source_default.cyan.bold(" LOCAL TEMPLATES"));
679
3774
  for (const t of results.local) {
680
3775
  console.log(
681
- ` ${import_chalk.default.green("\u2713")} ${t.id} (${t.metadata.provider})`
3776
+ ` ${source_default.green("\u2713")} ${t.id} (${t.metadata.provider})`
682
3777
  );
683
3778
  }
684
3779
  console.log();
685
3780
  }
686
3781
  if (results.remote.length > 0) {
687
- console.log(import_chalk.default.cyan.bold(" REMOTE TEMPLATES"));
3782
+ console.log(source_default.cyan.bold(" REMOTE TEMPLATES"));
688
3783
  for (const t of results.remote) {
689
- const status = t.isDownloaded ? import_chalk.default.green("\u2713") : import_chalk.default.gray("\u25CB");
3784
+ const status = t.isDownloaded ? source_default.green("\u2713") : source_default.gray("\u25CB");
690
3785
  console.log(
691
3786
  ` ${status} ${t.metadata.id} (${t.metadata.provider})`
692
3787
  );
693
3788
  }
694
3789
  console.log();
695
3790
  }
696
- console.log(import_chalk.default.gray(` Found: ${totalCount} templates
3791
+ console.log(source_default.gray(` Found: ${totalCount} templates
697
3792
  `));
698
3793
  } catch (error) {
699
3794
  spinner.fail("Search failed");
700
- console.error(import_chalk.default.red(error.message));
3795
+ console.error(source_default.red(error.message));
701
3796
  process.exitCode = 1;
702
3797
  }
703
3798
  });
@@ -705,7 +3800,7 @@ var cacheCommand = new import_commander.Command().name("cache").description("Man
705
3800
  if (options.clear) {
706
3801
  const manager = getTemplateManager();
707
3802
  manager.clearCache();
708
- console.log(import_chalk.default.green("\u2713 Template cache cleared"));
3803
+ console.log(source_default.green("\u2713 Template cache cleared"));
709
3804
  } else {
710
3805
  console.log("Use --clear to clear the template cache");
711
3806
  }
@@ -714,16 +3809,16 @@ var cleanCommand = new import_commander.Command().name("clean").alias("remove-al
714
3809
  const manager = getTemplateManager();
715
3810
  const templates2 = manager.listLocalTemplates();
716
3811
  if (templates2.length === 0) {
717
- console.log(import_chalk.default.yellow("\n\u{1F4ED} No local templates to remove.\n"));
3812
+ console.log(source_default.yellow("\n\u{1F4ED} No local templates to remove.\n"));
718
3813
  return;
719
3814
  }
720
3815
  console.log(
721
- import_chalk.default.bold(`
3816
+ source_default.bold(`
722
3817
  \u{1F5D1}\uFE0F Found ${templates2.length} downloaded template(s)
723
3818
  `)
724
3819
  );
725
3820
  for (const t of templates2) {
726
- console.log(import_chalk.default.gray(` ${t.id} (${t.metadata.provider})`));
3821
+ console.log(source_default.gray(` ${t.id} (${t.metadata.provider})`));
727
3822
  }
728
3823
  console.log();
729
3824
  if (!options.force) {
@@ -734,23 +3829,21 @@ var cleanCommand = new import_commander.Command().name("clean").alias("remove-al
734
3829
  initial: false
735
3830
  });
736
3831
  if (!response.confirm) {
737
- console.log(import_chalk.default.yellow("Cancelled"));
3832
+ console.log(source_default.yellow("Cancelled"));
738
3833
  return;
739
3834
  }
740
3835
  }
741
3836
  const deleted = manager.deleteAllLocalTemplates();
742
- console.log(import_chalk.default.green(`
3837
+ console.log(source_default.green(`
743
3838
  \u2713 Removed ${deleted} template(s)`));
744
- console.log(import_chalk.default.gray(` Storage: ${manager.getTemplatesDir()}
3839
+ console.log(source_default.gray(` Storage: ${manager.getTemplatesDir()}
745
3840
  `));
746
3841
  });
747
3842
  var templates = new import_commander.Command().name("templates").alias("t").description("Manage webhook templates").addCommand(listCommand).addCommand(downloadCommand).addCommand(localCommand).addCommand(searchCommand).addCommand(cacheCommand).addCommand(cleanCommand);
748
3843
 
749
3844
  // src/commands/run.ts
750
3845
  var import_commander2 = require("commander");
751
- var import_ora2 = __toESM(require("ora"), 1);
752
3846
  var import_prompts2 = __toESM(require("prompts"), 1);
753
- var import_chalk2 = __toESM(require("chalk"), 1);
754
3847
 
755
3848
  // src/core/executor.ts
756
3849
  var import_undici2 = require("undici");
@@ -1128,15 +4221,15 @@ var run = new import_commander2.Command().name("run").argument("[templateId]", "
1128
4221
  async (templateId, options) => {
1129
4222
  const manager = getTemplateManager();
1130
4223
  if (!templateId) {
1131
- const spinner2 = (0, import_ora2.default)("Loading templates...").start();
4224
+ const spinner2 = ora("Loading templates...").start();
1132
4225
  try {
1133
4226
  const local = manager.listLocalTemplates();
1134
4227
  const remote = await manager.listRemoteTemplates();
1135
4228
  spinner2.stop();
1136
4229
  if (local.length === 0 && remote.length === 0) {
1137
- console.log(import_chalk2.default.yellow("\n\u{1F4ED} No templates available."));
4230
+ console.log(source_default.yellow("\n\u{1F4ED} No templates available."));
1138
4231
  console.log(
1139
- import_chalk2.default.gray(
4232
+ source_default.gray(
1140
4233
  " Download templates with: better-webhook templates download\n"
1141
4234
  )
1142
4235
  );
@@ -1146,7 +4239,7 @@ var run = new import_commander2.Command().name("run").argument("[templateId]", "
1146
4239
  if (local.length > 0) {
1147
4240
  for (const t of local) {
1148
4241
  choices.push({
1149
- title: `${t.id} ${import_chalk2.default.green("(local)")}`,
4242
+ title: `${t.id} ${source_default.green("(local)")}`,
1150
4243
  description: `${t.metadata.provider} - ${t.metadata.event}`,
1151
4244
  value: t.id
1152
4245
  });
@@ -1155,7 +4248,7 @@ var run = new import_commander2.Command().name("run").argument("[templateId]", "
1155
4248
  const remoteOnly = remote.filter((t) => !t.isDownloaded);
1156
4249
  for (const t of remoteOnly) {
1157
4250
  choices.push({
1158
- title: `${t.metadata.id} ${import_chalk2.default.gray("(remote)")}`,
4251
+ title: `${t.metadata.id} ${source_default.gray("(remote)")}`,
1159
4252
  description: `${t.metadata.provider} - ${t.metadata.event}`,
1160
4253
  value: `remote:${t.metadata.id}`
1161
4254
  });
@@ -1167,20 +4260,20 @@ var run = new import_commander2.Command().name("run").argument("[templateId]", "
1167
4260
  choices
1168
4261
  });
1169
4262
  if (!response.templateId) {
1170
- console.log(import_chalk2.default.yellow("Cancelled"));
4263
+ console.log(source_default.yellow("Cancelled"));
1171
4264
  return;
1172
4265
  }
1173
4266
  templateId = response.templateId;
1174
4267
  } catch (error) {
1175
4268
  spinner2.fail("Failed to load templates");
1176
- console.error(import_chalk2.default.red(error.message));
4269
+ console.error(source_default.red(error.message));
1177
4270
  process.exitCode = 1;
1178
4271
  return;
1179
4272
  }
1180
4273
  }
1181
4274
  if (templateId?.startsWith("remote:")) {
1182
4275
  const remoteId = templateId.replace("remote:", "");
1183
- const downloadSpinner = (0, import_ora2.default)(`Downloading ${remoteId}...`).start();
4276
+ const downloadSpinner = ora(`Downloading ${remoteId}...`).start();
1184
4277
  try {
1185
4278
  await manager.downloadTemplate(remoteId);
1186
4279
  downloadSpinner.succeed(`Downloaded ${remoteId}`);
@@ -1193,10 +4286,10 @@ var run = new import_commander2.Command().name("run").argument("[templateId]", "
1193
4286
  }
1194
4287
  const localTemplate = manager.getLocalTemplate(templateId);
1195
4288
  if (!localTemplate) {
1196
- console.log(import_chalk2.default.red(`
4289
+ console.log(source_default.red(`
1197
4290
  \u274C Template not found: ${templateId}`));
1198
4291
  console.log(
1199
- import_chalk2.default.gray(
4292
+ source_default.gray(
1200
4293
  " Download it with: better-webhook templates download " + templateId + "\n"
1201
4294
  )
1202
4295
  );
@@ -1209,24 +4302,24 @@ var run = new import_commander2.Command().name("run").argument("[templateId]", "
1209
4302
  const envVarName = getSecretEnvVarName(localTemplate.metadata.provider);
1210
4303
  secret = process.env[envVarName];
1211
4304
  }
1212
- console.log(import_chalk2.default.bold("\n\u{1F680} Executing Webhook\n"));
1213
- console.log(import_chalk2.default.gray(` Template: ${templateId}`));
4305
+ console.log(source_default.bold("\n\u{1F680} Executing Webhook\n"));
4306
+ console.log(source_default.gray(` Template: ${templateId}`));
1214
4307
  console.log(
1215
- import_chalk2.default.gray(` Provider: ${localTemplate.metadata.provider}`)
4308
+ source_default.gray(` Provider: ${localTemplate.metadata.provider}`)
1216
4309
  );
1217
- console.log(import_chalk2.default.gray(` Event: ${localTemplate.metadata.event}`));
1218
- console.log(import_chalk2.default.gray(` Target: ${targetUrl}`));
4310
+ console.log(source_default.gray(` Event: ${localTemplate.metadata.event}`));
4311
+ console.log(source_default.gray(` Target: ${targetUrl}`));
1219
4312
  if (secret) {
1220
- console.log(import_chalk2.default.gray(` Signature: Will be generated`));
4313
+ console.log(source_default.gray(` Signature: Will be generated`));
1221
4314
  } else {
1222
4315
  console.log(
1223
- import_chalk2.default.yellow(
4316
+ source_default.yellow(
1224
4317
  ` \u26A0\uFE0F No secret provided - signature will not be generated`
1225
4318
  )
1226
4319
  );
1227
4320
  }
1228
4321
  console.log();
1229
- const spinner = (0, import_ora2.default)("Sending webhook...").start();
4322
+ const spinner = ora("Sending webhook...").start();
1230
4323
  try {
1231
4324
  const result = await executeTemplate(localTemplate.template, {
1232
4325
  url: targetUrl,
@@ -1234,43 +4327,43 @@ var run = new import_commander2.Command().name("run").argument("[templateId]", "
1234
4327
  headers: options?.header
1235
4328
  });
1236
4329
  spinner.stop();
1237
- const statusColor = result.status >= 200 && result.status < 300 ? import_chalk2.default.green : result.status >= 400 ? import_chalk2.default.red : import_chalk2.default.yellow;
1238
- console.log(import_chalk2.default.bold("\u{1F4E5} Response\n"));
4330
+ const statusColor = result.status >= 200 && result.status < 300 ? source_default.green : result.status >= 400 ? source_default.red : source_default.yellow;
4331
+ console.log(source_default.bold("\u{1F4E5} Response\n"));
1239
4332
  console.log(
1240
4333
  ` Status: ${statusColor(`${result.status} ${result.statusText}`)}`
1241
4334
  );
1242
- console.log(` Duration: ${import_chalk2.default.cyan(`${result.duration}ms`)}`);
4335
+ console.log(` Duration: ${source_default.cyan(`${result.duration}ms`)}`);
1243
4336
  if (options?.verbose) {
1244
- console.log(import_chalk2.default.bold("\n Headers:"));
4337
+ console.log(source_default.bold("\n Headers:"));
1245
4338
  for (const [key, value] of Object.entries(result.headers)) {
1246
4339
  const headerValue = Array.isArray(value) ? value.join(", ") : value;
1247
- console.log(import_chalk2.default.gray(` ${key}: ${headerValue}`));
4340
+ console.log(source_default.gray(` ${key}: ${headerValue}`));
1248
4341
  }
1249
4342
  }
1250
4343
  if (result.json !== void 0) {
1251
- console.log(import_chalk2.default.bold("\n Body:"));
4344
+ console.log(source_default.bold("\n Body:"));
1252
4345
  console.log(
1253
- import_chalk2.default.gray(
4346
+ source_default.gray(
1254
4347
  JSON.stringify(result.json, null, 2).split("\n").map((l) => ` ${l}`).join("\n")
1255
4348
  )
1256
4349
  );
1257
4350
  } else if (result.bodyText) {
1258
- console.log(import_chalk2.default.bold("\n Body:"));
4351
+ console.log(source_default.bold("\n Body:"));
1259
4352
  const preview = result.bodyText.length > 500 ? result.bodyText.slice(0, 500) + "..." : result.bodyText;
1260
- console.log(import_chalk2.default.gray(` ${preview}`));
4353
+ console.log(source_default.gray(` ${preview}`));
1261
4354
  }
1262
4355
  console.log();
1263
4356
  if (result.status >= 200 && result.status < 300) {
1264
- console.log(import_chalk2.default.green("\u2713 Webhook delivered successfully\n"));
4357
+ console.log(source_default.green("\u2713 Webhook delivered successfully\n"));
1265
4358
  } else {
1266
4359
  console.log(
1267
- import_chalk2.default.yellow(`\u26A0 Webhook delivered with status ${result.status}
4360
+ source_default.yellow(`\u26A0 Webhook delivered with status ${result.status}
1268
4361
  `)
1269
4362
  );
1270
4363
  }
1271
4364
  } catch (error) {
1272
4365
  spinner.fail("Request failed");
1273
- console.error(import_chalk2.default.red(`
4366
+ console.error(source_default.red(`
1274
4367
  \u274C ${error.message}
1275
4368
  `));
1276
4369
  process.exitCode = 1;
@@ -1280,7 +4373,6 @@ var run = new import_commander2.Command().name("run").argument("[templateId]", "
1280
4373
 
1281
4374
  // src/commands/capture.ts
1282
4375
  var import_commander3 = require("commander");
1283
- var import_chalk3 = __toESM(require("chalk"), 1);
1284
4376
 
1285
4377
  // src/core/capture-server.ts
1286
4378
  var import_http = require("http");
@@ -1637,7 +4729,7 @@ var capture = new import_commander3.Command().name("capture").description("Start
1637
4729
  async (options) => {
1638
4730
  const port = parseInt(options.port, 10);
1639
4731
  if (isNaN(port) || port < 0 || port > 65535) {
1640
- console.error(import_chalk3.default.red("Invalid port number"));
4732
+ console.error(source_default.red("Invalid port number"));
1641
4733
  process.exitCode = 1;
1642
4734
  return;
1643
4735
  }
@@ -1652,7 +4744,7 @@ var capture = new import_commander3.Command().name("capture").description("Start
1652
4744
  process.on("SIGINT", shutdown);
1653
4745
  process.on("SIGTERM", shutdown);
1654
4746
  } catch (error) {
1655
- console.error(import_chalk3.default.red(`Failed to start server: ${error.message}`));
4747
+ console.error(source_default.red(`Failed to start server: ${error.message}`));
1656
4748
  process.exitCode = 1;
1657
4749
  }
1658
4750
  }
@@ -1660,7 +4752,6 @@ var capture = new import_commander3.Command().name("capture").description("Start
1660
4752
 
1661
4753
  // src/commands/captures.ts
1662
4754
  var import_commander4 = require("commander");
1663
- var import_chalk4 = __toESM(require("chalk"), 1);
1664
4755
  var import_prompts3 = __toESM(require("prompts"), 1);
1665
4756
  var import_os4 = require("os");
1666
4757
 
@@ -1981,7 +5072,7 @@ function toRelativePath(absolutePath) {
1981
5072
  var listCommand2 = new import_commander4.Command().name("list").alias("ls").description("List captured webhooks").option("-l, --limit <limit>", "Maximum number of captures to show", "20").option("-p, --provider <provider>", "Filter by provider").action((options) => {
1982
5073
  const limit = parseInt(options.limit, 10);
1983
5074
  if (isNaN(limit) || limit <= 0) {
1984
- console.error(import_chalk4.default.red("Invalid limit value"));
5075
+ console.error(source_default.red("Invalid limit value"));
1985
5076
  process.exitCode = 1;
1986
5077
  return;
1987
5078
  }
@@ -1993,90 +5084,90 @@ var listCommand2 = new import_commander4.Command().name("list").alias("ls").desc
1993
5084
  );
1994
5085
  }
1995
5086
  if (captures2.length === 0) {
1996
- console.log(import_chalk4.default.yellow("\n\u{1F4ED} No captured webhooks found."));
5087
+ console.log(source_default.yellow("\n\u{1F4ED} No captured webhooks found."));
1997
5088
  console.log(
1998
- import_chalk4.default.gray(" Start capturing with: better-webhook capture\n")
5089
+ source_default.gray(" Start capturing with: better-webhook capture\n")
1999
5090
  );
2000
5091
  return;
2001
5092
  }
2002
- console.log(import_chalk4.default.bold("\n\u{1F4E6} Captured Webhooks\n"));
5093
+ console.log(source_default.bold("\n\u{1F4E6} Captured Webhooks\n"));
2003
5094
  for (const { file, capture: capture2 } of captures2) {
2004
5095
  const date = new Date(capture2.timestamp).toLocaleString();
2005
- const provider = capture2.provider ? import_chalk4.default.cyan(`[${capture2.provider}]`) : import_chalk4.default.gray("[unknown]");
5096
+ const provider = capture2.provider ? source_default.cyan(`[${capture2.provider}]`) : source_default.gray("[unknown]");
2006
5097
  const size = capture2.contentLength || capture2.rawBody?.length || 0;
2007
- console.log(` ${import_chalk4.default.white(capture2.id.slice(0, 8))} ${provider}`);
2008
- console.log(import_chalk4.default.gray(` ${capture2.method} ${capture2.path}`));
2009
- console.log(import_chalk4.default.gray(` ${date} | ${size} bytes`));
2010
- console.log(import_chalk4.default.gray(` File: ${file}`));
5098
+ console.log(` ${source_default.white(capture2.id.slice(0, 8))} ${provider}`);
5099
+ console.log(source_default.gray(` ${capture2.method} ${capture2.path}`));
5100
+ console.log(source_default.gray(` ${date} | ${size} bytes`));
5101
+ console.log(source_default.gray(` File: ${file}`));
2011
5102
  console.log();
2012
5103
  }
2013
- console.log(import_chalk4.default.gray(` Showing ${captures2.length} captures`));
2014
- console.log(import_chalk4.default.gray(` Storage: ${engine.getCapturesDir()}
5104
+ console.log(source_default.gray(` Showing ${captures2.length} captures`));
5105
+ console.log(source_default.gray(` Storage: ${engine.getCapturesDir()}
2015
5106
  `));
2016
5107
  });
2017
5108
  var showCommand = new import_commander4.Command().name("show").argument("<captureId>", "Capture ID or partial ID").description("Show detailed information about a capture").option("-b, --body", "Show full body content").action((captureId, options) => {
2018
5109
  const engine = getReplayEngine();
2019
5110
  const captureFile = engine.getCapture(captureId);
2020
5111
  if (!captureFile) {
2021
- console.log(import_chalk4.default.red(`
5112
+ console.log(source_default.red(`
2022
5113
  \u274C Capture not found: ${captureId}
2023
5114
  `));
2024
5115
  process.exitCode = 1;
2025
5116
  return;
2026
5117
  }
2027
5118
  const { capture: capture2 } = captureFile;
2028
- console.log(import_chalk4.default.bold("\n\u{1F4CB} Capture Details\n"));
2029
- console.log(` ${import_chalk4.default.gray("ID:")} ${capture2.id}`);
2030
- console.log(` ${import_chalk4.default.gray("File:")} ${captureFile.file}`);
5119
+ console.log(source_default.bold("\n\u{1F4CB} Capture Details\n"));
5120
+ console.log(` ${source_default.gray("ID:")} ${capture2.id}`);
5121
+ console.log(` ${source_default.gray("File:")} ${captureFile.file}`);
2031
5122
  console.log(
2032
- ` ${import_chalk4.default.gray("Timestamp:")} ${new Date(capture2.timestamp).toLocaleString()}`
5123
+ ` ${source_default.gray("Timestamp:")} ${new Date(capture2.timestamp).toLocaleString()}`
2033
5124
  );
2034
- console.log(` ${import_chalk4.default.gray("Method:")} ${capture2.method}`);
2035
- console.log(` ${import_chalk4.default.gray("Path:")} ${capture2.path}`);
2036
- console.log(` ${import_chalk4.default.gray("URL:")} ${capture2.url}`);
5125
+ console.log(` ${source_default.gray("Method:")} ${capture2.method}`);
5126
+ console.log(` ${source_default.gray("Path:")} ${capture2.path}`);
5127
+ console.log(` ${source_default.gray("URL:")} ${capture2.url}`);
2037
5128
  if (capture2.provider) {
2038
5129
  console.log(
2039
- ` ${import_chalk4.default.gray("Provider:")} ${import_chalk4.default.cyan(capture2.provider)}`
5130
+ ` ${source_default.gray("Provider:")} ${source_default.cyan(capture2.provider)}`
2040
5131
  );
2041
5132
  }
2042
5133
  console.log(
2043
- ` ${import_chalk4.default.gray("Content-Type:")} ${capture2.contentType || "unknown"}`
5134
+ ` ${source_default.gray("Content-Type:")} ${capture2.contentType || "unknown"}`
2044
5135
  );
2045
5136
  console.log(
2046
- ` ${import_chalk4.default.gray("Content-Length:")} ${capture2.contentLength || 0} bytes`
5137
+ ` ${source_default.gray("Content-Length:")} ${capture2.contentLength || 0} bytes`
2047
5138
  );
2048
5139
  const queryKeys = Object.keys(capture2.query);
2049
5140
  if (queryKeys.length > 0) {
2050
- console.log(import_chalk4.default.bold("\n Query Parameters:"));
5141
+ console.log(source_default.bold("\n Query Parameters:"));
2051
5142
  for (const [key, value] of Object.entries(capture2.query)) {
2052
5143
  const queryValue = Array.isArray(value) ? value.join(", ") : value;
2053
- console.log(import_chalk4.default.gray(` ${key}: ${queryValue}`));
5144
+ console.log(source_default.gray(` ${key}: ${queryValue}`));
2054
5145
  }
2055
5146
  }
2056
- console.log(import_chalk4.default.bold("\n Headers:"));
5147
+ console.log(source_default.bold("\n Headers:"));
2057
5148
  for (const [key, value] of Object.entries(capture2.headers)) {
2058
5149
  const headerValue = Array.isArray(value) ? value.join(", ") : value;
2059
5150
  const display = headerValue.length > 80 ? headerValue.slice(0, 80) + "..." : headerValue;
2060
- console.log(import_chalk4.default.gray(` ${key}: ${display}`));
5151
+ console.log(source_default.gray(` ${key}: ${display}`));
2061
5152
  }
2062
5153
  if (options.body && capture2.body) {
2063
- console.log(import_chalk4.default.bold("\n Body:"));
5154
+ console.log(source_default.bold("\n Body:"));
2064
5155
  if (typeof capture2.body === "object") {
2065
5156
  console.log(
2066
- import_chalk4.default.gray(
5157
+ source_default.gray(
2067
5158
  JSON.stringify(capture2.body, null, 2).split("\n").map((l) => ` ${l}`).join("\n")
2068
5159
  )
2069
5160
  );
2070
5161
  } else {
2071
- console.log(import_chalk4.default.gray(` ${capture2.body}`));
5162
+ console.log(source_default.gray(` ${capture2.body}`));
2072
5163
  }
2073
5164
  } else if (capture2.body) {
2074
- console.log(import_chalk4.default.bold("\n Body:"));
5165
+ console.log(source_default.bold("\n Body:"));
2075
5166
  const preview = JSON.stringify(capture2.body).slice(0, 200);
2076
5167
  console.log(
2077
- import_chalk4.default.gray(` ${preview}${preview.length >= 200 ? "..." : ""}`)
5168
+ source_default.gray(` ${preview}${preview.length >= 200 ? "..." : ""}`)
2078
5169
  );
2079
- console.log(import_chalk4.default.gray(" Use --body to see full content"));
5170
+ console.log(source_default.gray(" Use --body to see full content"));
2080
5171
  }
2081
5172
  console.log();
2082
5173
  });
@@ -2084,30 +5175,30 @@ var searchCommand2 = new import_commander4.Command().name("search").argument("<q
2084
5175
  const engine = getReplayEngine();
2085
5176
  const results = engine.searchCaptures(query);
2086
5177
  if (results.length === 0) {
2087
- console.log(import_chalk4.default.yellow(`
5178
+ console.log(source_default.yellow(`
2088
5179
  \u{1F4ED} No captures found for: "${query}"
2089
5180
  `));
2090
5181
  return;
2091
5182
  }
2092
- console.log(import_chalk4.default.bold(`
5183
+ console.log(source_default.bold(`
2093
5184
  \u{1F50D} Search Results for "${query}"
2094
5185
  `));
2095
5186
  for (const { file, capture: capture2 } of results) {
2096
5187
  const date = new Date(capture2.timestamp).toLocaleString();
2097
- const provider = capture2.provider ? import_chalk4.default.cyan(`[${capture2.provider}]`) : "";
2098
- console.log(` ${import_chalk4.default.white(capture2.id.slice(0, 8))} ${provider}`);
2099
- console.log(import_chalk4.default.gray(` ${capture2.method} ${capture2.path}`));
2100
- console.log(import_chalk4.default.gray(` ${date}`));
5188
+ const provider = capture2.provider ? source_default.cyan(`[${capture2.provider}]`) : "";
5189
+ console.log(` ${source_default.white(capture2.id.slice(0, 8))} ${provider}`);
5190
+ console.log(source_default.gray(` ${capture2.method} ${capture2.path}`));
5191
+ console.log(source_default.gray(` ${date}`));
2101
5192
  console.log();
2102
5193
  }
2103
- console.log(import_chalk4.default.gray(` Found: ${results.length} captures
5194
+ console.log(source_default.gray(` Found: ${results.length} captures
2104
5195
  `));
2105
5196
  });
2106
5197
  var deleteCommand = new import_commander4.Command().name("delete").alias("rm").argument("<captureId>", "Capture ID or partial ID to delete").description("Delete a specific captured webhook").option("-f, --force", "Skip confirmation prompt").action(async (captureId, options) => {
2107
5198
  const engine = getReplayEngine();
2108
5199
  const captureFile = engine.getCapture(captureId);
2109
5200
  if (!captureFile) {
2110
- console.log(import_chalk4.default.red(`
5201
+ console.log(source_default.red(`
2111
5202
  \u274C Capture not found: ${captureId}
2112
5203
  `));
2113
5204
  process.exitCode = 1;
@@ -2115,11 +5206,11 @@ var deleteCommand = new import_commander4.Command().name("delete").alias("rm").a
2115
5206
  }
2116
5207
  const { capture: capture2 } = captureFile;
2117
5208
  if (!options.force) {
2118
- console.log(import_chalk4.default.bold("\n\u{1F5D1}\uFE0F Capture to delete:\n"));
2119
- console.log(` ${import_chalk4.default.white(capture2.id.slice(0, 8))}`);
2120
- console.log(import_chalk4.default.gray(` ${capture2.method} ${capture2.path}`));
5209
+ console.log(source_default.bold("\n\u{1F5D1}\uFE0F Capture to delete:\n"));
5210
+ console.log(` ${source_default.white(capture2.id.slice(0, 8))}`);
5211
+ console.log(source_default.gray(` ${capture2.method} ${capture2.path}`));
2121
5212
  console.log(
2122
- import_chalk4.default.gray(` ${new Date(capture2.timestamp).toLocaleString()}`)
5213
+ source_default.gray(` ${new Date(capture2.timestamp).toLocaleString()}`)
2123
5214
  );
2124
5215
  console.log();
2125
5216
  const response = await (0, import_prompts3.default)({
@@ -2129,19 +5220,19 @@ var deleteCommand = new import_commander4.Command().name("delete").alias("rm").a
2129
5220
  initial: false
2130
5221
  });
2131
5222
  if (!response.confirm) {
2132
- console.log(import_chalk4.default.yellow("Cancelled"));
5223
+ console.log(source_default.yellow("Cancelled"));
2133
5224
  return;
2134
5225
  }
2135
5226
  }
2136
5227
  const deleted = engine.deleteCapture(captureId);
2137
5228
  if (deleted) {
2138
5229
  console.log(
2139
- import_chalk4.default.green(`
5230
+ source_default.green(`
2140
5231
  \u2713 Deleted capture: ${capture2.id.slice(0, 8)}
2141
5232
  `)
2142
5233
  );
2143
5234
  } else {
2144
- console.log(import_chalk4.default.red(`
5235
+ console.log(source_default.red(`
2145
5236
  \u274C Failed to delete capture
2146
5237
  `));
2147
5238
  process.exitCode = 1;
@@ -2151,11 +5242,11 @@ var cleanCommand2 = new import_commander4.Command().name("clean").alias("remove-
2151
5242
  const engine = getReplayEngine();
2152
5243
  const captures2 = engine.listCaptures(1e4);
2153
5244
  if (captures2.length === 0) {
2154
- console.log(import_chalk4.default.yellow("\n\u{1F4ED} No captures to remove.\n"));
5245
+ console.log(source_default.yellow("\n\u{1F4ED} No captures to remove.\n"));
2155
5246
  return;
2156
5247
  }
2157
5248
  console.log(
2158
- import_chalk4.default.bold(`
5249
+ source_default.bold(`
2159
5250
  \u{1F5D1}\uFE0F Found ${captures2.length} captured webhook(s)
2160
5251
  `)
2161
5252
  );
@@ -2165,7 +5256,7 @@ var cleanCommand2 = new import_commander4.Command().name("clean").alias("remove-
2165
5256
  byProvider.set(provider, (byProvider.get(provider) || 0) + 1);
2166
5257
  }
2167
5258
  for (const [provider, count] of byProvider) {
2168
- console.log(import_chalk4.default.gray(` ${provider}: ${count}`));
5259
+ console.log(source_default.gray(` ${provider}: ${count}`));
2169
5260
  }
2170
5261
  console.log();
2171
5262
  if (!options.force) {
@@ -2176,14 +5267,14 @@ var cleanCommand2 = new import_commander4.Command().name("clean").alias("remove-
2176
5267
  initial: false
2177
5268
  });
2178
5269
  if (!response.confirm) {
2179
- console.log(import_chalk4.default.yellow("Cancelled"));
5270
+ console.log(source_default.yellow("Cancelled"));
2180
5271
  return;
2181
5272
  }
2182
5273
  }
2183
5274
  const deleted = engine.deleteAllCaptures();
2184
- console.log(import_chalk4.default.green(`
5275
+ console.log(source_default.green(`
2185
5276
  \u2713 Removed ${deleted} capture(s)`));
2186
- console.log(import_chalk4.default.gray(` Storage: ${engine.getCapturesDir()}
5277
+ console.log(source_default.gray(` Storage: ${engine.getCapturesDir()}
2187
5278
  `));
2188
5279
  });
2189
5280
  var saveAsTemplateCommand = new import_commander4.Command().name("save-as-template").alias("sat").argument("<captureId>", "Capture ID or partial ID").description("Save a captured webhook as a reusable template").option("--id <id>", "Template ID (auto-generated if not provided)").option("--name <name>", "Template display name").option("--event <event>", "Event type (auto-detected if not provided)").option("--description <description>", "Template description").option("--url <url>", "Default target URL for the template").option("--overwrite", "Overwrite existing template with same ID").action(
@@ -2192,18 +5283,18 @@ var saveAsTemplateCommand = new import_commander4.Command().name("save-as-templa
2192
5283
  const templateManager = getTemplateManager();
2193
5284
  const captureFile = engine.getCapture(captureId);
2194
5285
  if (!captureFile) {
2195
- console.log(import_chalk4.default.red(`
5286
+ console.log(source_default.red(`
2196
5287
  \u274C Capture not found: ${captureId}
2197
5288
  `));
2198
5289
  process.exitCode = 1;
2199
5290
  return;
2200
5291
  }
2201
5292
  const { capture: capture2 } = captureFile;
2202
- console.log(import_chalk4.default.bold("\n\u{1F4CB} Capture to save as template:\n"));
2203
- console.log(` ${import_chalk4.default.white(capture2.id.slice(0, 8))}`);
2204
- console.log(import_chalk4.default.gray(` ${capture2.method} ${capture2.path}`));
5293
+ console.log(source_default.bold("\n\u{1F4CB} Capture to save as template:\n"));
5294
+ console.log(` ${source_default.white(capture2.id.slice(0, 8))}`);
5295
+ console.log(source_default.gray(` ${capture2.method} ${capture2.path}`));
2205
5296
  if (capture2.provider) {
2206
- console.log(import_chalk4.default.gray(` Provider: ${capture2.provider}`));
5297
+ console.log(source_default.gray(` Provider: ${capture2.provider}`));
2207
5298
  }
2208
5299
  console.log();
2209
5300
  const template = engine.captureToTemplate(captureId, {
@@ -2221,7 +5312,7 @@ var saveAsTemplateCommand = new import_commander4.Command().name("save-as-templa
2221
5312
  validate: (value) => value.trim().length > 0 || "Template ID is required"
2222
5313
  });
2223
5314
  if (!response.templateId) {
2224
- console.log(import_chalk4.default.yellow("Cancelled"));
5315
+ console.log(source_default.yellow("Cancelled"));
2225
5316
  return;
2226
5317
  }
2227
5318
  templateId = response.templateId;
@@ -2234,7 +5325,7 @@ var saveAsTemplateCommand = new import_commander4.Command().name("save-as-templa
2234
5325
  initial: false
2235
5326
  });
2236
5327
  if (!response.overwrite) {
2237
- console.log(import_chalk4.default.yellow("Cancelled"));
5328
+ console.log(source_default.yellow("Cancelled"));
2238
5329
  return;
2239
5330
  }
2240
5331
  options.overwrite = true;
@@ -2247,24 +5338,24 @@ var saveAsTemplateCommand = new import_commander4.Command().name("save-as-templa
2247
5338
  description: options.description,
2248
5339
  overwrite: options.overwrite
2249
5340
  });
2250
- console.log(import_chalk4.default.green(`
5341
+ console.log(source_default.green(`
2251
5342
  \u2713 Saved template: ${result.id}`));
2252
- console.log(import_chalk4.default.gray(` File: ${toRelativePath(result.filePath)}`));
2253
- console.log(import_chalk4.default.gray(` Provider: ${template.provider || "custom"}`));
5343
+ console.log(source_default.gray(` File: ${toRelativePath(result.filePath)}`));
5344
+ console.log(source_default.gray(` Provider: ${template.provider || "custom"}`));
2254
5345
  if (template.event) {
2255
- console.log(import_chalk4.default.gray(` Event: ${template.event}`));
5346
+ console.log(source_default.gray(` Event: ${template.event}`));
2256
5347
  }
2257
5348
  console.log();
2258
- console.log(import_chalk4.default.gray(" Run it with:"));
5349
+ console.log(source_default.gray(" Run it with:"));
2259
5350
  console.log(
2260
- import_chalk4.default.cyan(
5351
+ source_default.cyan(
2261
5352
  ` better-webhook run ${result.id} --url http://localhost:3000/webhooks
2262
5353
  `
2263
5354
  )
2264
5355
  );
2265
5356
  } catch (error) {
2266
5357
  const message = error instanceof Error ? error.message : "Failed to save template";
2267
- console.log(import_chalk4.default.red(`
5358
+ console.log(source_default.red(`
2268
5359
  \u274C ${message}
2269
5360
  `));
2270
5361
  process.exitCode = 1;
@@ -2275,9 +5366,7 @@ var captures = new import_commander4.Command().name("captures").alias("c").descr
2275
5366
 
2276
5367
  // src/commands/replay.ts
2277
5368
  var import_commander5 = require("commander");
2278
- var import_ora3 = __toESM(require("ora"), 1);
2279
5369
  var import_prompts4 = __toESM(require("prompts"), 1);
2280
- var import_chalk5 = __toESM(require("chalk"), 1);
2281
5370
  var replay = new import_commander5.Command().name("replay").argument("[captureId]", "Capture ID to replay").argument("[targetUrl]", "Target URL to replay to").description("Replay a captured webhook to a target URL").option("-m, --method <method>", "Override HTTP method").option(
2282
5371
  "-H, --header <header>",
2283
5372
  "Add or override header (format: key:value)",
@@ -2298,9 +5387,9 @@ var replay = new import_commander5.Command().name("replay").argument("[captureId
2298
5387
  if (!captureId) {
2299
5388
  const captures2 = engine.listCaptures(50);
2300
5389
  if (captures2.length === 0) {
2301
- console.log(import_chalk5.default.yellow("\n\u{1F4ED} No captured webhooks found."));
5390
+ console.log(source_default.yellow("\n\u{1F4ED} No captured webhooks found."));
2302
5391
  console.log(
2303
- import_chalk5.default.gray(" Start capturing with: better-webhook capture\n")
5392
+ source_default.gray(" Start capturing with: better-webhook capture\n")
2304
5393
  );
2305
5394
  return;
2306
5395
  }
@@ -2320,14 +5409,14 @@ var replay = new import_commander5.Command().name("replay").argument("[captureId
2320
5409
  choices
2321
5410
  });
2322
5411
  if (!response.captureId) {
2323
- console.log(import_chalk5.default.yellow("Cancelled"));
5412
+ console.log(source_default.yellow("Cancelled"));
2324
5413
  return;
2325
5414
  }
2326
5415
  captureId = response.captureId;
2327
5416
  }
2328
5417
  const captureFile = engine.getCapture(captureId);
2329
5418
  if (!captureFile) {
2330
- console.log(import_chalk5.default.red(`
5419
+ console.log(source_default.red(`
2331
5420
  \u274C Capture not found: ${captureId}
2332
5421
  `));
2333
5422
  process.exitCode = 1;
@@ -2349,21 +5438,21 @@ var replay = new import_commander5.Command().name("replay").argument("[captureId
2349
5438
  }
2350
5439
  });
2351
5440
  if (!response.url) {
2352
- console.log(import_chalk5.default.yellow("Cancelled"));
5441
+ console.log(source_default.yellow("Cancelled"));
2353
5442
  return;
2354
5443
  }
2355
5444
  targetUrl = response.url;
2356
5445
  }
2357
5446
  const { capture: capture2 } = captureFile;
2358
- console.log(import_chalk5.default.bold("\n\u{1F504} Replaying Webhook\n"));
2359
- console.log(import_chalk5.default.gray(` Capture ID: ${capture2.id.slice(0, 8)}`));
2360
- console.log(import_chalk5.default.gray(` Original: ${capture2.method} ${capture2.path}`));
5447
+ console.log(source_default.bold("\n\u{1F504} Replaying Webhook\n"));
5448
+ console.log(source_default.gray(` Capture ID: ${capture2.id.slice(0, 8)}`));
5449
+ console.log(source_default.gray(` Original: ${capture2.method} ${capture2.path}`));
2361
5450
  if (capture2.provider) {
2362
- console.log(import_chalk5.default.gray(` Provider: ${capture2.provider}`));
5451
+ console.log(source_default.gray(` Provider: ${capture2.provider}`));
2363
5452
  }
2364
- console.log(import_chalk5.default.gray(` Target: ${targetUrl}`));
5453
+ console.log(source_default.gray(` Target: ${targetUrl}`));
2365
5454
  console.log();
2366
- const spinner = (0, import_ora3.default)("Replaying webhook...").start();
5455
+ const spinner = ora("Replaying webhook...").start();
2367
5456
  try {
2368
5457
  const result = await engine.replay(captureId, {
2369
5458
  targetUrl,
@@ -2371,43 +5460,43 @@ var replay = new import_commander5.Command().name("replay").argument("[captureId
2371
5460
  headers: options?.header
2372
5461
  });
2373
5462
  spinner.stop();
2374
- const statusColor = result.status >= 200 && result.status < 300 ? import_chalk5.default.green : result.status >= 400 ? import_chalk5.default.red : import_chalk5.default.yellow;
2375
- console.log(import_chalk5.default.bold("\u{1F4E5} Response\n"));
5463
+ const statusColor = result.status >= 200 && result.status < 300 ? source_default.green : result.status >= 400 ? source_default.red : source_default.yellow;
5464
+ console.log(source_default.bold("\u{1F4E5} Response\n"));
2376
5465
  console.log(
2377
5466
  ` Status: ${statusColor(`${result.status} ${result.statusText}`)}`
2378
5467
  );
2379
- console.log(` Duration: ${import_chalk5.default.cyan(`${result.duration}ms`)}`);
5468
+ console.log(` Duration: ${source_default.cyan(`${result.duration}ms`)}`);
2380
5469
  if (options?.verbose) {
2381
- console.log(import_chalk5.default.bold("\n Headers:"));
5470
+ console.log(source_default.bold("\n Headers:"));
2382
5471
  for (const [key, value] of Object.entries(result.headers)) {
2383
5472
  const headerValue = Array.isArray(value) ? value.join(", ") : value;
2384
- console.log(import_chalk5.default.gray(` ${key}: ${headerValue}`));
5473
+ console.log(source_default.gray(` ${key}: ${headerValue}`));
2385
5474
  }
2386
5475
  }
2387
5476
  if (result.json !== void 0) {
2388
- console.log(import_chalk5.default.bold("\n Body:"));
5477
+ console.log(source_default.bold("\n Body:"));
2389
5478
  console.log(
2390
- import_chalk5.default.gray(
5479
+ source_default.gray(
2391
5480
  JSON.stringify(result.json, null, 2).split("\n").map((l) => ` ${l}`).join("\n")
2392
5481
  )
2393
5482
  );
2394
5483
  } else if (result.bodyText) {
2395
- console.log(import_chalk5.default.bold("\n Body:"));
5484
+ console.log(source_default.bold("\n Body:"));
2396
5485
  const preview = result.bodyText.length > 500 ? result.bodyText.slice(0, 500) + "..." : result.bodyText;
2397
- console.log(import_chalk5.default.gray(` ${preview}`));
5486
+ console.log(source_default.gray(` ${preview}`));
2398
5487
  }
2399
5488
  console.log();
2400
5489
  if (result.status >= 200 && result.status < 300) {
2401
- console.log(import_chalk5.default.green("\u2713 Replay completed successfully\n"));
5490
+ console.log(source_default.green("\u2713 Replay completed successfully\n"));
2402
5491
  } else {
2403
5492
  console.log(
2404
- import_chalk5.default.yellow(`\u26A0 Replay completed with status ${result.status}
5493
+ source_default.yellow(`\u26A0 Replay completed with status ${result.status}
2405
5494
  `)
2406
5495
  );
2407
5496
  }
2408
5497
  } catch (error) {
2409
5498
  spinner.fail("Replay failed");
2410
- console.error(import_chalk5.default.red(`
5499
+ console.error(source_default.red(`
2411
5500
  \u274C ${error.message}
2412
5501
  `));
2413
5502
  process.exitCode = 1;
@@ -2417,7 +5506,6 @@ var replay = new import_commander5.Command().name("replay").argument("[captureId
2417
5506
 
2418
5507
  // src/commands/dashboard.ts
2419
5508
  var import_commander6 = require("commander");
2420
- var import_chalk6 = __toESM(require("chalk"), 1);
2421
5509
 
2422
5510
  // src/core/dashboard-server.ts
2423
5511
  var import_express2 = __toESM(require("express"), 1);
@@ -2425,7 +5513,6 @@ var import_http2 = require("http");
2425
5513
  var import_ws2 = require("ws");
2426
5514
  var import_path4 = __toESM(require("path"), 1);
2427
5515
  var import_fs4 = require("fs");
2428
- var import_url = require("url");
2429
5516
 
2430
5517
  // src/core/dashboard-api.ts
2431
5518
  var import_express = __toESM(require("express"), 1);
@@ -2779,7 +5866,6 @@ function createDashboardApiRouter(options = {}) {
2779
5866
  }
2780
5867
 
2781
5868
  // src/core/dashboard-server.ts
2782
- var import_meta = {};
2783
5869
  function isStandaloneBinary() {
2784
5870
  if (typeof STANDALONE_BINARY !== "undefined" && STANDALONE_BINARY) {
2785
5871
  return true;
@@ -2863,17 +5949,32 @@ function createEmbeddedDashboardMiddleware() {
2863
5949
  };
2864
5950
  return { staticMiddleware, spaFallback };
2865
5951
  }
2866
- function resolveDashboardDistDir(runtimeDir) {
5952
+ function resolveDashboardDistDir(runtimeDir, options = {}) {
5953
+ const runtimePackageRoot = findCliPackageRoot(runtimeDir);
5954
+ const includePackageRootDistCandidate = runtimePackageRoot !== void 0 && runtimePackageRoot === runtimeDir;
2867
5955
  const candidates = [
5956
+ // Package root fallback -> dist/dashboard (only when runtimeDir is package root)
5957
+ ...includePackageRootDistCandidate ? [import_path4.default.resolve(runtimeDir, "dist", "dashboard")] : [],
2868
5958
  // Bundled CLI: dist/index.js -> dist/dashboard
2869
5959
  import_path4.default.resolve(runtimeDir, "dashboard"),
2870
5960
  // Legacy/unbundled: dist/core -> dist/dashboard
2871
5961
  import_path4.default.resolve(runtimeDir, "..", "dashboard"),
5962
+ // Dev from src -> dist/dashboard
5963
+ import_path4.default.resolve(runtimeDir, "..", "dist", "dashboard"),
2872
5964
  // Dev from src/core -> dist/dashboard
2873
5965
  import_path4.default.resolve(runtimeDir, "..", "..", "dist", "dashboard"),
5966
+ // Dev from package root -> apps/dashboard/dist
5967
+ import_path4.default.resolve(runtimeDir, "..", "dashboard", "dist"),
5968
+ // Dev from src -> apps/dashboard/dist
5969
+ import_path4.default.resolve(runtimeDir, "..", "..", "dashboard", "dist"),
2874
5970
  // Dev from src/core -> apps/dashboard/dist
2875
5971
  import_path4.default.resolve(runtimeDir, "..", "..", "..", "dashboard", "dist")
2876
5972
  ];
5973
+ if (options.verbose) {
5974
+ console.debug(
5975
+ `[dashboard] dist resolution candidates: ${candidates.join(", ")}`
5976
+ );
5977
+ }
2877
5978
  for (const distDir of candidates) {
2878
5979
  const indexHtml = import_path4.default.join(distDir, "index.html");
2879
5980
  if ((0, import_fs4.existsSync)(indexHtml)) {
@@ -2921,11 +6022,8 @@ async function startDashboardServer(options = {}) {
2921
6022
  app.use(staticMiddleware);
2922
6023
  app.get("*", spaFallback);
2923
6024
  } else {
2924
- const runtimeDir = typeof __dirname !== "undefined" ? (
2925
- // eslint-disable-next-line no-undef
2926
- __dirname
2927
- ) : import_path4.default.dirname((0, import_url.fileURLToPath)(import_meta.url));
2928
- const { distDir: dashboardDistDir, indexHtml: dashboardIndexHtml } = resolveDashboardDistDir(runtimeDir);
6025
+ const runtimeDir = resolveRuntimeDir();
6026
+ const { distDir: dashboardDistDir, indexHtml: dashboardIndexHtml } = resolveDashboardDistDir(runtimeDir, { verbose: options.verbose });
2929
6027
  app.use(import_express2.default.static(dashboardDistDir));
2930
6028
  app.get("*", (req, res, next) => {
2931
6029
  if (req.path.startsWith("/api") || req.path === "/health") return next();
@@ -2998,83 +6096,80 @@ async function startDashboardServer(options = {}) {
2998
6096
  }
2999
6097
 
3000
6098
  // src/commands/dashboard.ts
3001
- var dashboard = new import_commander6.Command().name("dashboard").description("Start the local dashboard (UI + API + WebSocket) server").option("-p, --port <port>", "Port to listen on", "4000").option("-h, --host <host>", "Host to bind to", "localhost").option("--capture-port <port>", "Capture server port", "3001").option("--capture-host <host>", "Capture server host", "0.0.0.0").option("--no-capture", "Do not start the capture server").option("--captures-dir <dir>", "Override captures directory").option("--templates-dir <dir>", "Override templates base directory").action(async (options) => {
3002
- const port = Number.parseInt(String(options.port), 10);
3003
- if (!Number.isFinite(port) || port < 0 || port > 65535) {
3004
- console.error(import_chalk6.default.red("Invalid port number"));
3005
- process.exitCode = 1;
3006
- return;
3007
- }
3008
- try {
3009
- const capturePort = Number.parseInt(String(options.capturePort), 10);
3010
- if (!Number.isFinite(capturePort) || capturePort < 0 || capturePort > 65535) {
3011
- console.error(import_chalk6.default.red("Invalid capture port number"));
6099
+ var dashboard = new import_commander6.Command().name("dashboard").description("Start the local dashboard (UI + API + WebSocket) server").option("-p, --port <port>", "Port to listen on", "4000").option("-h, --host <host>", "Host to bind to", "localhost").option("-v, --verbose", "Show dashboard startup debug details").option("--debug", "Alias for --verbose").option("--capture-port <port>", "Capture server port", "3001").option("--capture-host <host>", "Capture server host", "0.0.0.0").option("--no-capture", "Do not start the capture server").option("--captures-dir <dir>", "Override captures directory").option("--templates-dir <dir>", "Override templates base directory").action(
6100
+ async (options) => {
6101
+ const port = Number.parseInt(String(options.port), 10);
6102
+ if (!Number.isFinite(port) || port < 0 || port > 65535) {
6103
+ console.error(source_default.red("Invalid port number"));
3012
6104
  process.exitCode = 1;
3013
6105
  return;
3014
6106
  }
3015
- const { url, server, capture: capture2 } = await startDashboardServer({
3016
- host: options.host,
3017
- port,
3018
- captureHost: options.captureHost,
3019
- capturePort,
3020
- startCapture: options.capture !== false,
3021
- capturesDir: options.capturesDir,
3022
- templatesBaseDir: options.templatesDir
3023
- });
3024
- console.log(import_chalk6.default.bold("\n\u{1F9ED} Dashboard Server\n"));
3025
- console.log(import_chalk6.default.gray(` Dashboard: ${url}/`));
3026
- console.log(import_chalk6.default.gray(` Health: ${url}/health`));
3027
- console.log(import_chalk6.default.gray(` API Base: ${url}/api`));
3028
- console.log(
3029
- import_chalk6.default.gray(` WebSocket: ${url.replace("http://", "ws://")}/ws`)
3030
- );
3031
- if (capture2) {
3032
- console.log();
3033
- console.log(import_chalk6.default.bold("\u{1F3A3} Capture Server"));
3034
- console.log(import_chalk6.default.gray(` Capture: ${capture2.url}`));
6107
+ try {
6108
+ const capturePort = Number.parseInt(String(options.capturePort), 10);
6109
+ if (!Number.isFinite(capturePort) || capturePort < 0 || capturePort > 65535) {
6110
+ console.error(source_default.red("Invalid capture port number"));
6111
+ process.exitCode = 1;
6112
+ return;
6113
+ }
6114
+ const verbose = Boolean(options.verbose || options.debug);
6115
+ const { url, server, capture: capture2 } = await startDashboardServer({
6116
+ host: options.host,
6117
+ port,
6118
+ captureHost: options.captureHost,
6119
+ capturePort,
6120
+ startCapture: options.capture !== false,
6121
+ capturesDir: options.capturesDir,
6122
+ templatesBaseDir: options.templatesDir,
6123
+ verbose
6124
+ });
6125
+ console.log(source_default.bold("\n\u{1F9ED} Dashboard Server\n"));
6126
+ console.log(source_default.gray(` Dashboard: ${url}/`));
6127
+ console.log(source_default.gray(` Health: ${url}/health`));
6128
+ console.log(source_default.gray(` API Base: ${url}/api`));
3035
6129
  console.log(
3036
- import_chalk6.default.gray(
3037
- ` Tip: Send webhooks to any path, e.g. ${capture2.url}/webhooks/github`
3038
- )
6130
+ source_default.gray(` WebSocket: ${url.replace("http://", "ws://")}/ws`)
3039
6131
  );
3040
- }
3041
- console.log();
3042
- const shutdown = async () => {
3043
6132
  if (capture2) {
3044
- await capture2.server.stop();
6133
+ console.log();
6134
+ console.log(source_default.bold("\u{1F3A3} Capture Server"));
6135
+ console.log(source_default.gray(` Capture: ${capture2.url}`));
6136
+ console.log(
6137
+ source_default.gray(
6138
+ ` Tip: Send webhooks to any path, e.g. ${capture2.url}/webhooks/github`
6139
+ )
6140
+ );
3045
6141
  }
3046
- await new Promise((resolve) => server.close(() => resolve()));
3047
- process.exit(0);
3048
- };
3049
- process.on("SIGINT", shutdown);
3050
- process.on("SIGTERM", shutdown);
3051
- } catch (error) {
3052
- console.error(
3053
- import_chalk6.default.red(
3054
- `Failed to start dashboard server: ${error?.message || error}`
3055
- )
3056
- );
3057
- process.exitCode = 1;
6142
+ console.log();
6143
+ const shutdown = async () => {
6144
+ if (capture2) {
6145
+ await capture2.server.stop();
6146
+ }
6147
+ await new Promise((resolve) => server.close(() => resolve()));
6148
+ process.exit(0);
6149
+ };
6150
+ process.on("SIGINT", shutdown);
6151
+ process.on("SIGTERM", shutdown);
6152
+ } catch (error) {
6153
+ const message = error instanceof Error ? error.message : String(error);
6154
+ console.error(
6155
+ source_default.red(`Failed to start dashboard server: ${message}`)
6156
+ );
6157
+ process.exitCode = 1;
6158
+ }
3058
6159
  }
3059
- });
6160
+ );
3060
6161
 
3061
6162
  // src/index.ts
3062
- var import_meta2 = {};
3063
6163
  function getVersion() {
3064
6164
  if (typeof CLI_VERSION !== "undefined") {
3065
6165
  return CLI_VERSION;
3066
6166
  }
3067
- try {
3068
- const packageJsonPath = (0, import_node_url.fileURLToPath)(
3069
- new URL("../package.json", import_meta2.url)
3070
- );
3071
- const packageJson = JSON.parse(
3072
- (0, import_node_fs.readFileSync)(packageJsonPath, { encoding: "utf8" })
3073
- );
3074
- return packageJson.version;
3075
- } catch {
3076
- return "0.0.0-unknown";
6167
+ const runtimeDir = resolveRuntimeDir();
6168
+ const runtimeVersion = resolveRuntimePackageVersion(runtimeDir);
6169
+ if (runtimeVersion) {
6170
+ return runtimeVersion;
3077
6171
  }
6172
+ return "0.0.0-unknown";
3078
6173
  }
3079
6174
  var program = new import_commander7.Command().name("better-webhook").description(
3080
6175
  "Modern CLI for developing, capturing, and replaying webhooks locally"