@better-webhook/cli 3.7.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/LICENSE +0 -1
- package/dist/dashboard/assets/{index-Dlqdzwyc.js → index-CZZLwai4.js} +8 -8
- package/dist/dashboard/index.html +1 -1
- package/dist/index.cjs +3346 -251
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3395 -277
- package/package.json +1 -1
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
|
-
|
|
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 = (
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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(
|
|
3600
|
+
console.log(source_default.cyan.bold(` ${provider.toUpperCase()}`));
|
|
506
3601
|
for (const t of providerTemplates) {
|
|
507
|
-
const status = t.isDownloaded ?
|
|
508
|
-
console.log(` ${
|
|
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(
|
|
3605
|
+
console.log(source_default.gray(` ${t.metadata.description}`));
|
|
511
3606
|
}
|
|
512
3607
|
}
|
|
513
3608
|
console.log();
|
|
514
3609
|
}
|
|
515
|
-
console.log(
|
|
3610
|
+
console.log(source_default.gray(` Total: ${filtered.length} templates`));
|
|
516
3611
|
console.log(
|
|
517
|
-
|
|
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(
|
|
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 = (
|
|
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(
|
|
3633
|
+
console.log(source_default.green("\u2713 All templates already downloaded"));
|
|
539
3634
|
return;
|
|
540
3635
|
}
|
|
541
3636
|
console.log(
|
|
542
|
-
|
|
3637
|
+
source_default.bold(`
|
|
543
3638
|
Downloading ${toDownload.length} templates...
|
|
544
3639
|
`)
|
|
545
3640
|
);
|
|
546
3641
|
for (const t of toDownload) {
|
|
547
|
-
const downloadSpinner = (
|
|
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(
|
|
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(
|
|
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 = (
|
|
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(
|
|
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(
|
|
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(
|
|
3692
|
+
console.error(source_default.red(error.message));
|
|
598
3693
|
process.exitCode = 1;
|
|
599
3694
|
return;
|
|
600
3695
|
}
|
|
601
3696
|
}
|
|
602
|
-
const spinner = (
|
|
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(
|
|
3701
|
+
console.log(source_default.gray(` Saved to: ${template.filePath}`));
|
|
607
3702
|
console.log(
|
|
608
|
-
|
|
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(
|
|
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(
|
|
3722
|
+
console.log(source_default.yellow("\n\u{1F4ED} No local templates found."));
|
|
628
3723
|
console.log(
|
|
629
|
-
|
|
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(
|
|
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(
|
|
3740
|
+
console.log(source_default.cyan.bold(` ${provider.toUpperCase()}`));
|
|
646
3741
|
for (const t of providerTemplates) {
|
|
647
|
-
console.log(` ${
|
|
648
|
-
console.log(
|
|
3742
|
+
console.log(` ${source_default.white(t.id)}`);
|
|
3743
|
+
console.log(source_default.gray(` Event: ${t.metadata.event}`));
|
|
649
3744
|
console.log(
|
|
650
|
-
|
|
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(
|
|
658
|
-
console.log(
|
|
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 = (
|
|
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(
|
|
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(
|
|
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(
|
|
3773
|
+
console.log(source_default.cyan.bold(" LOCAL TEMPLATES"));
|
|
679
3774
|
for (const t of results.local) {
|
|
680
3775
|
console.log(
|
|
681
|
-
` ${
|
|
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(
|
|
3782
|
+
console.log(source_default.cyan.bold(" REMOTE TEMPLATES"));
|
|
688
3783
|
for (const t of results.remote) {
|
|
689
|
-
const status = t.isDownloaded ?
|
|
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(
|
|
3791
|
+
console.log(source_default.gray(` Found: ${totalCount} templates
|
|
697
3792
|
`));
|
|
698
3793
|
} catch (error) {
|
|
699
3794
|
spinner.fail("Search failed");
|
|
700
|
-
console.error(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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(
|
|
3832
|
+
console.log(source_default.yellow("Cancelled"));
|
|
738
3833
|
return;
|
|
739
3834
|
}
|
|
740
3835
|
}
|
|
741
3836
|
const deleted = manager.deleteAllLocalTemplates();
|
|
742
|
-
console.log(
|
|
3837
|
+
console.log(source_default.green(`
|
|
743
3838
|
\u2713 Removed ${deleted} template(s)`));
|
|
744
|
-
console.log(
|
|
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 = (
|
|
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(
|
|
4230
|
+
console.log(source_default.yellow("\n\u{1F4ED} No templates available."));
|
|
1138
4231
|
console.log(
|
|
1139
|
-
|
|
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} ${
|
|
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} ${
|
|
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(
|
|
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(
|
|
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 = (
|
|
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(
|
|
4289
|
+
console.log(source_default.red(`
|
|
1197
4290
|
\u274C Template not found: ${templateId}`));
|
|
1198
4291
|
console.log(
|
|
1199
|
-
|
|
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(
|
|
1213
|
-
console.log(
|
|
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
|
-
|
|
4308
|
+
source_default.gray(` Provider: ${localTemplate.metadata.provider}`)
|
|
1216
4309
|
);
|
|
1217
|
-
console.log(
|
|
1218
|
-
console.log(
|
|
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(
|
|
4313
|
+
console.log(source_default.gray(` Signature: Will be generated`));
|
|
1221
4314
|
} else {
|
|
1222
4315
|
console.log(
|
|
1223
|
-
|
|
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 = (
|
|
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 ?
|
|
1238
|
-
console.log(
|
|
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: ${
|
|
4335
|
+
console.log(` Duration: ${source_default.cyan(`${result.duration}ms`)}`);
|
|
1243
4336
|
if (options?.verbose) {
|
|
1244
|
-
console.log(
|
|
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(
|
|
4340
|
+
console.log(source_default.gray(` ${key}: ${headerValue}`));
|
|
1248
4341
|
}
|
|
1249
4342
|
}
|
|
1250
4343
|
if (result.json !== void 0) {
|
|
1251
|
-
console.log(
|
|
4344
|
+
console.log(source_default.bold("\n Body:"));
|
|
1252
4345
|
console.log(
|
|
1253
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
4357
|
+
console.log(source_default.green("\u2713 Webhook delivered successfully\n"));
|
|
1265
4358
|
} else {
|
|
1266
4359
|
console.log(
|
|
1267
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
5087
|
+
console.log(source_default.yellow("\n\u{1F4ED} No captured webhooks found."));
|
|
1997
5088
|
console.log(
|
|
1998
|
-
|
|
5089
|
+
source_default.gray(" Start capturing with: better-webhook capture\n")
|
|
1999
5090
|
);
|
|
2000
5091
|
return;
|
|
2001
5092
|
}
|
|
2002
|
-
console.log(
|
|
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 ?
|
|
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(` ${
|
|
2008
|
-
console.log(
|
|
2009
|
-
console.log(
|
|
2010
|
-
console.log(
|
|
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(
|
|
2014
|
-
console.log(
|
|
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(
|
|
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(
|
|
2029
|
-
console.log(` ${
|
|
2030
|
-
console.log(` ${
|
|
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
|
-
` ${
|
|
5123
|
+
` ${source_default.gray("Timestamp:")} ${new Date(capture2.timestamp).toLocaleString()}`
|
|
2033
5124
|
);
|
|
2034
|
-
console.log(` ${
|
|
2035
|
-
console.log(` ${
|
|
2036
|
-
console.log(` ${
|
|
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
|
-
` ${
|
|
5130
|
+
` ${source_default.gray("Provider:")} ${source_default.cyan(capture2.provider)}`
|
|
2040
5131
|
);
|
|
2041
5132
|
}
|
|
2042
5133
|
console.log(
|
|
2043
|
-
` ${
|
|
5134
|
+
` ${source_default.gray("Content-Type:")} ${capture2.contentType || "unknown"}`
|
|
2044
5135
|
);
|
|
2045
5136
|
console.log(
|
|
2046
|
-
` ${
|
|
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(
|
|
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(
|
|
5144
|
+
console.log(source_default.gray(` ${key}: ${queryValue}`));
|
|
2054
5145
|
}
|
|
2055
5146
|
}
|
|
2056
|
-
console.log(
|
|
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(
|
|
5151
|
+
console.log(source_default.gray(` ${key}: ${display}`));
|
|
2061
5152
|
}
|
|
2062
5153
|
if (options.body && capture2.body) {
|
|
2063
|
-
console.log(
|
|
5154
|
+
console.log(source_default.bold("\n Body:"));
|
|
2064
5155
|
if (typeof capture2.body === "object") {
|
|
2065
5156
|
console.log(
|
|
2066
|
-
|
|
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(
|
|
5162
|
+
console.log(source_default.gray(` ${capture2.body}`));
|
|
2072
5163
|
}
|
|
2073
5164
|
} else if (capture2.body) {
|
|
2074
|
-
console.log(
|
|
5165
|
+
console.log(source_default.bold("\n Body:"));
|
|
2075
5166
|
const preview = JSON.stringify(capture2.body).slice(0, 200);
|
|
2076
5167
|
console.log(
|
|
2077
|
-
|
|
5168
|
+
source_default.gray(` ${preview}${preview.length >= 200 ? "..." : ""}`)
|
|
2078
5169
|
);
|
|
2079
|
-
console.log(
|
|
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(
|
|
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(
|
|
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 ?
|
|
2098
|
-
console.log(` ${
|
|
2099
|
-
console.log(
|
|
2100
|
-
console.log(
|
|
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(
|
|
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(
|
|
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(
|
|
2119
|
-
console.log(` ${
|
|
2120
|
-
console.log(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
5230
|
+
source_default.green(`
|
|
2140
5231
|
\u2713 Deleted capture: ${capture2.id.slice(0, 8)}
|
|
2141
5232
|
`)
|
|
2142
5233
|
);
|
|
2143
5234
|
} else {
|
|
2144
|
-
console.log(
|
|
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(
|
|
5245
|
+
console.log(source_default.yellow("\n\u{1F4ED} No captures to remove.\n"));
|
|
2155
5246
|
return;
|
|
2156
5247
|
}
|
|
2157
5248
|
console.log(
|
|
2158
|
-
|
|
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(
|
|
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(
|
|
5270
|
+
console.log(source_default.yellow("Cancelled"));
|
|
2180
5271
|
return;
|
|
2181
5272
|
}
|
|
2182
5273
|
}
|
|
2183
5274
|
const deleted = engine.deleteAllCaptures();
|
|
2184
|
-
console.log(
|
|
5275
|
+
console.log(source_default.green(`
|
|
2185
5276
|
\u2713 Removed ${deleted} capture(s)`));
|
|
2186
|
-
console.log(
|
|
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(
|
|
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(
|
|
2203
|
-
console.log(` ${
|
|
2204
|
-
console.log(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
5341
|
+
console.log(source_default.green(`
|
|
2251
5342
|
\u2713 Saved template: ${result.id}`));
|
|
2252
|
-
console.log(
|
|
2253
|
-
console.log(
|
|
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(
|
|
5346
|
+
console.log(source_default.gray(` Event: ${template.event}`));
|
|
2256
5347
|
}
|
|
2257
5348
|
console.log();
|
|
2258
|
-
console.log(
|
|
5349
|
+
console.log(source_default.gray(" Run it with:"));
|
|
2259
5350
|
console.log(
|
|
2260
|
-
|
|
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(
|
|
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(
|
|
5390
|
+
console.log(source_default.yellow("\n\u{1F4ED} No captured webhooks found."));
|
|
2302
5391
|
console.log(
|
|
2303
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
2359
|
-
console.log(
|
|
2360
|
-
console.log(
|
|
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(
|
|
5451
|
+
console.log(source_default.gray(` Provider: ${capture2.provider}`));
|
|
2363
5452
|
}
|
|
2364
|
-
console.log(
|
|
5453
|
+
console.log(source_default.gray(` Target: ${targetUrl}`));
|
|
2365
5454
|
console.log();
|
|
2366
|
-
const spinner = (
|
|
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 ?
|
|
2375
|
-
console.log(
|
|
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: ${
|
|
5468
|
+
console.log(` Duration: ${source_default.cyan(`${result.duration}ms`)}`);
|
|
2380
5469
|
if (options?.verbose) {
|
|
2381
|
-
console.log(
|
|
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(
|
|
5473
|
+
console.log(source_default.gray(` ${key}: ${headerValue}`));
|
|
2385
5474
|
}
|
|
2386
5475
|
}
|
|
2387
5476
|
if (result.json !== void 0) {
|
|
2388
|
-
console.log(
|
|
5477
|
+
console.log(source_default.bold("\n Body:"));
|
|
2389
5478
|
console.log(
|
|
2390
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
5490
|
+
console.log(source_default.green("\u2713 Replay completed successfully\n"));
|
|
2402
5491
|
} else {
|
|
2403
5492
|
console.log(
|
|
2404
|
-
|
|
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(
|
|
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 =
|
|
2925
|
-
|
|
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(
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
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
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
console.log(
|
|
3034
|
-
console.log(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
)
|
|
3056
|
-
)
|
|
3057
|
-
|
|
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
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
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"
|