@jpool/bond-cli 1.5.2 → 1.5.3

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.
Files changed (2) hide show
  1. package/dist/cli.js +3166 -81
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -6,6 +6,10 @@ 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 __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
9
13
  var __copyProps = (to, from, except, desc) => {
10
14
  if (from && typeof from === "object" || typeof from === "function") {
11
15
  for (let key of __getOwnPropNames(from))
@@ -25,14 +29,3095 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
29
 
26
30
  // src/cli.ts
27
31
  var import_web32 = require("@solana/web3.js");
28
- var import_chalk = __toESM(require("chalk"));
32
+
33
+ // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js
34
+ var ANSI_BACKGROUND_OFFSET = 10;
35
+ var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
36
+ var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
37
+ var wrapAnsi16m = (offset = 0) => (red2, green2, blue2) => `\x1B[${38 + offset};2;${red2};${green2};${blue2}m`;
38
+ var styles = {
39
+ modifier: {
40
+ reset: [0, 0],
41
+ // 21 isn't widely supported and 22 does the same thing
42
+ bold: [1, 22],
43
+ dim: [2, 22],
44
+ italic: [3, 23],
45
+ underline: [4, 24],
46
+ overline: [53, 55],
47
+ inverse: [7, 27],
48
+ hidden: [8, 28],
49
+ strikethrough: [9, 29]
50
+ },
51
+ color: {
52
+ black: [30, 39],
53
+ red: [31, 39],
54
+ green: [32, 39],
55
+ yellow: [33, 39],
56
+ blue: [34, 39],
57
+ magenta: [35, 39],
58
+ cyan: [36, 39],
59
+ white: [37, 39],
60
+ // Bright color
61
+ blackBright: [90, 39],
62
+ gray: [90, 39],
63
+ // Alias of `blackBright`
64
+ grey: [90, 39],
65
+ // Alias of `blackBright`
66
+ redBright: [91, 39],
67
+ greenBright: [92, 39],
68
+ yellowBright: [93, 39],
69
+ blueBright: [94, 39],
70
+ magentaBright: [95, 39],
71
+ cyanBright: [96, 39],
72
+ whiteBright: [97, 39]
73
+ },
74
+ bgColor: {
75
+ bgBlack: [40, 49],
76
+ bgRed: [41, 49],
77
+ bgGreen: [42, 49],
78
+ bgYellow: [43, 49],
79
+ bgBlue: [44, 49],
80
+ bgMagenta: [45, 49],
81
+ bgCyan: [46, 49],
82
+ bgWhite: [47, 49],
83
+ // Bright color
84
+ bgBlackBright: [100, 49],
85
+ bgGray: [100, 49],
86
+ // Alias of `bgBlackBright`
87
+ bgGrey: [100, 49],
88
+ // Alias of `bgBlackBright`
89
+ bgRedBright: [101, 49],
90
+ bgGreenBright: [102, 49],
91
+ bgYellowBright: [103, 49],
92
+ bgBlueBright: [104, 49],
93
+ bgMagentaBright: [105, 49],
94
+ bgCyanBright: [106, 49],
95
+ bgWhiteBright: [107, 49]
96
+ }
97
+ };
98
+ var modifierNames = Object.keys(styles.modifier);
99
+ var foregroundColorNames = Object.keys(styles.color);
100
+ var backgroundColorNames = Object.keys(styles.bgColor);
101
+ var colorNames = [...foregroundColorNames, ...backgroundColorNames];
102
+ function assembleStyles() {
103
+ const codes = /* @__PURE__ */ new Map();
104
+ for (const [groupName, group] of Object.entries(styles)) {
105
+ for (const [styleName, style] of Object.entries(group)) {
106
+ styles[styleName] = {
107
+ open: `\x1B[${style[0]}m`,
108
+ close: `\x1B[${style[1]}m`
109
+ };
110
+ group[styleName] = styles[styleName];
111
+ codes.set(style[0], style[1]);
112
+ }
113
+ Object.defineProperty(styles, groupName, {
114
+ value: group,
115
+ enumerable: false
116
+ });
117
+ }
118
+ Object.defineProperty(styles, "codes", {
119
+ value: codes,
120
+ enumerable: false
121
+ });
122
+ styles.color.close = "\x1B[39m";
123
+ styles.bgColor.close = "\x1B[49m";
124
+ styles.color.ansi = wrapAnsi16();
125
+ styles.color.ansi256 = wrapAnsi256();
126
+ styles.color.ansi16m = wrapAnsi16m();
127
+ styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
128
+ styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
129
+ styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
130
+ Object.defineProperties(styles, {
131
+ rgbToAnsi256: {
132
+ value(red2, green2, blue2) {
133
+ if (red2 === green2 && green2 === blue2) {
134
+ if (red2 < 8) {
135
+ return 16;
136
+ }
137
+ if (red2 > 248) {
138
+ return 231;
139
+ }
140
+ return Math.round((red2 - 8) / 247 * 24) + 232;
141
+ }
142
+ return 16 + 36 * Math.round(red2 / 255 * 5) + 6 * Math.round(green2 / 255 * 5) + Math.round(blue2 / 255 * 5);
143
+ },
144
+ enumerable: false
145
+ },
146
+ hexToRgb: {
147
+ value(hex) {
148
+ const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
149
+ if (!matches) {
150
+ return [0, 0, 0];
151
+ }
152
+ let [colorString] = matches;
153
+ if (colorString.length === 3) {
154
+ colorString = [...colorString].map((character) => character + character).join("");
155
+ }
156
+ const integer = Number.parseInt(colorString, 16);
157
+ return [
158
+ /* eslint-disable no-bitwise */
159
+ integer >> 16 & 255,
160
+ integer >> 8 & 255,
161
+ integer & 255
162
+ /* eslint-enable no-bitwise */
163
+ ];
164
+ },
165
+ enumerable: false
166
+ },
167
+ hexToAnsi256: {
168
+ value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
169
+ enumerable: false
170
+ },
171
+ ansi256ToAnsi: {
172
+ value(code) {
173
+ if (code < 8) {
174
+ return 30 + code;
175
+ }
176
+ if (code < 16) {
177
+ return 90 + (code - 8);
178
+ }
179
+ let red2;
180
+ let green2;
181
+ let blue2;
182
+ if (code >= 232) {
183
+ red2 = ((code - 232) * 10 + 8) / 255;
184
+ green2 = red2;
185
+ blue2 = red2;
186
+ } else {
187
+ code -= 16;
188
+ const remainder = code % 36;
189
+ red2 = Math.floor(code / 36) / 5;
190
+ green2 = Math.floor(remainder / 6) / 5;
191
+ blue2 = remainder % 6 / 5;
192
+ }
193
+ const value = Math.max(red2, green2, blue2) * 2;
194
+ if (value === 0) {
195
+ return 30;
196
+ }
197
+ let result = 30 + (Math.round(blue2) << 2 | Math.round(green2) << 1 | Math.round(red2));
198
+ if (value === 2) {
199
+ result += 60;
200
+ }
201
+ return result;
202
+ },
203
+ enumerable: false
204
+ },
205
+ rgbToAnsi: {
206
+ value: (red2, green2, blue2) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red2, green2, blue2)),
207
+ enumerable: false
208
+ },
209
+ hexToAnsi: {
210
+ value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
211
+ enumerable: false
212
+ }
213
+ });
214
+ return styles;
215
+ }
216
+ var ansiStyles = assembleStyles();
217
+ var ansi_styles_default = ansiStyles;
218
+
219
+ // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js
220
+ var import_node_process = __toESM(require("process"), 1);
221
+ var import_node_os = __toESM(require("os"), 1);
222
+ var import_node_tty = __toESM(require("tty"), 1);
223
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process.default.argv) {
224
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
225
+ const position = argv.indexOf(prefix + flag);
226
+ const terminatorPosition = argv.indexOf("--");
227
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
228
+ }
229
+ var { env } = import_node_process.default;
230
+ var flagForceColor;
231
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
232
+ flagForceColor = 0;
233
+ } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
234
+ flagForceColor = 1;
235
+ }
236
+ function envForceColor() {
237
+ if ("FORCE_COLOR" in env) {
238
+ if (env.FORCE_COLOR === "true") {
239
+ return 1;
240
+ }
241
+ if (env.FORCE_COLOR === "false") {
242
+ return 0;
243
+ }
244
+ return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
245
+ }
246
+ }
247
+ function translateLevel(level) {
248
+ if (level === 0) {
249
+ return false;
250
+ }
251
+ return {
252
+ level,
253
+ hasBasic: true,
254
+ has256: level >= 2,
255
+ has16m: level >= 3
256
+ };
257
+ }
258
+ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
259
+ const noFlagForceColor = envForceColor();
260
+ if (noFlagForceColor !== void 0) {
261
+ flagForceColor = noFlagForceColor;
262
+ }
263
+ const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
264
+ if (forceColor === 0) {
265
+ return 0;
266
+ }
267
+ if (sniffFlags) {
268
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
269
+ return 3;
270
+ }
271
+ if (hasFlag("color=256")) {
272
+ return 2;
273
+ }
274
+ }
275
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
276
+ return 1;
277
+ }
278
+ if (haveStream && !streamIsTTY && forceColor === void 0) {
279
+ return 0;
280
+ }
281
+ const min = forceColor || 0;
282
+ if (env.TERM === "dumb") {
283
+ return min;
284
+ }
285
+ if (import_node_process.default.platform === "win32") {
286
+ const osRelease = import_node_os.default.release().split(".");
287
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
288
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
289
+ }
290
+ return 1;
291
+ }
292
+ if ("CI" in env) {
293
+ if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => key in env)) {
294
+ return 3;
295
+ }
296
+ if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
297
+ return 1;
298
+ }
299
+ return min;
300
+ }
301
+ if ("TEAMCITY_VERSION" in env) {
302
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
303
+ }
304
+ if (env.COLORTERM === "truecolor") {
305
+ return 3;
306
+ }
307
+ if (env.TERM === "xterm-kitty") {
308
+ return 3;
309
+ }
310
+ if (env.TERM === "xterm-ghostty") {
311
+ return 3;
312
+ }
313
+ if (env.TERM === "wezterm") {
314
+ return 3;
315
+ }
316
+ if ("TERM_PROGRAM" in env) {
317
+ const version2 = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
318
+ switch (env.TERM_PROGRAM) {
319
+ case "iTerm.app": {
320
+ return version2 >= 3 ? 3 : 2;
321
+ }
322
+ case "Apple_Terminal": {
323
+ return 2;
324
+ }
325
+ }
326
+ }
327
+ if (/-256(color)?$/i.test(env.TERM)) {
328
+ return 2;
329
+ }
330
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
331
+ return 1;
332
+ }
333
+ if ("COLORTERM" in env) {
334
+ return 1;
335
+ }
336
+ return min;
337
+ }
338
+ function createSupportsColor(stream, options = {}) {
339
+ const level = _supportsColor(stream, {
340
+ streamIsTTY: stream && stream.isTTY,
341
+ ...options
342
+ });
343
+ return translateLevel(level);
344
+ }
345
+ var supportsColor = {
346
+ stdout: createSupportsColor({ isTTY: import_node_tty.default.isatty(1) }),
347
+ stderr: createSupportsColor({ isTTY: import_node_tty.default.isatty(2) })
348
+ };
349
+ var supports_color_default = supportsColor;
350
+
351
+ // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.js
352
+ function stringReplaceAll(string, substring, replacer) {
353
+ let index = string.indexOf(substring);
354
+ if (index === -1) {
355
+ return string;
356
+ }
357
+ const substringLength = substring.length;
358
+ let endIndex = 0;
359
+ let returnValue = "";
360
+ do {
361
+ returnValue += string.slice(endIndex, index) + substring + replacer;
362
+ endIndex = index + substringLength;
363
+ index = string.indexOf(substring, endIndex);
364
+ } while (index !== -1);
365
+ returnValue += string.slice(endIndex);
366
+ return returnValue;
367
+ }
368
+ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
369
+ let endIndex = 0;
370
+ let returnValue = "";
371
+ do {
372
+ const gotCR = string[index - 1] === "\r";
373
+ returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? "\r\n" : "\n") + postfix;
374
+ endIndex = index + 1;
375
+ index = string.indexOf("\n", endIndex);
376
+ } while (index !== -1);
377
+ returnValue += string.slice(endIndex);
378
+ return returnValue;
379
+ }
380
+
381
+ // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.js
382
+ var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
383
+ var GENERATOR = Symbol("GENERATOR");
384
+ var STYLER = Symbol("STYLER");
385
+ var IS_EMPTY = Symbol("IS_EMPTY");
386
+ var levelMapping = [
387
+ "ansi",
388
+ "ansi",
389
+ "ansi256",
390
+ "ansi16m"
391
+ ];
392
+ var styles2 = /* @__PURE__ */ Object.create(null);
393
+ var applyOptions = (object, options = {}) => {
394
+ if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
395
+ throw new Error("The `level` option should be an integer from 0 to 3");
396
+ }
397
+ const colorLevel = stdoutColor ? stdoutColor.level : 0;
398
+ object.level = options.level === void 0 ? colorLevel : options.level;
399
+ };
400
+ var chalkFactory = (options) => {
401
+ const chalk2 = (...strings) => strings.join(" ");
402
+ applyOptions(chalk2, options);
403
+ Object.setPrototypeOf(chalk2, createChalk.prototype);
404
+ return chalk2;
405
+ };
406
+ function createChalk(options) {
407
+ return chalkFactory(options);
408
+ }
409
+ Object.setPrototypeOf(createChalk.prototype, Function.prototype);
410
+ for (const [styleName, style] of Object.entries(ansi_styles_default)) {
411
+ styles2[styleName] = {
412
+ get() {
413
+ const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
414
+ Object.defineProperty(this, styleName, { value: builder });
415
+ return builder;
416
+ }
417
+ };
418
+ }
419
+ styles2.visible = {
420
+ get() {
421
+ const builder = createBuilder(this, this[STYLER], true);
422
+ Object.defineProperty(this, "visible", { value: builder });
423
+ return builder;
424
+ }
425
+ };
426
+ var getModelAnsi = (model, level, type, ...arguments_) => {
427
+ if (model === "rgb") {
428
+ if (level === "ansi16m") {
429
+ return ansi_styles_default[type].ansi16m(...arguments_);
430
+ }
431
+ if (level === "ansi256") {
432
+ return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
433
+ }
434
+ return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
435
+ }
436
+ if (model === "hex") {
437
+ return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
438
+ }
439
+ return ansi_styles_default[type][model](...arguments_);
440
+ };
441
+ var usedModels = ["rgb", "hex", "ansi256"];
442
+ for (const model of usedModels) {
443
+ styles2[model] = {
444
+ get() {
445
+ const { level } = this;
446
+ return function(...arguments_) {
447
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
448
+ return createBuilder(this, styler, this[IS_EMPTY]);
449
+ };
450
+ }
451
+ };
452
+ const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
453
+ styles2[bgModel] = {
454
+ get() {
455
+ const { level } = this;
456
+ return function(...arguments_) {
457
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
458
+ return createBuilder(this, styler, this[IS_EMPTY]);
459
+ };
460
+ }
461
+ };
462
+ }
463
+ var proto = Object.defineProperties(() => {
464
+ }, {
465
+ ...styles2,
466
+ level: {
467
+ enumerable: true,
468
+ get() {
469
+ return this[GENERATOR].level;
470
+ },
471
+ set(level) {
472
+ this[GENERATOR].level = level;
473
+ }
474
+ }
475
+ });
476
+ var createStyler = (open, close, parent) => {
477
+ let openAll;
478
+ let closeAll;
479
+ if (parent === void 0) {
480
+ openAll = open;
481
+ closeAll = close;
482
+ } else {
483
+ openAll = parent.openAll + open;
484
+ closeAll = close + parent.closeAll;
485
+ }
486
+ return {
487
+ open,
488
+ close,
489
+ openAll,
490
+ closeAll,
491
+ parent
492
+ };
493
+ };
494
+ var createBuilder = (self, _styler, _isEmpty) => {
495
+ const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
496
+ Object.setPrototypeOf(builder, proto);
497
+ builder[GENERATOR] = self;
498
+ builder[STYLER] = _styler;
499
+ builder[IS_EMPTY] = _isEmpty;
500
+ return builder;
501
+ };
502
+ var applyStyle = (self, string) => {
503
+ if (self.level <= 0 || !string) {
504
+ return self[IS_EMPTY] ? "" : string;
505
+ }
506
+ let styler = self[STYLER];
507
+ if (styler === void 0) {
508
+ return string;
509
+ }
510
+ const { openAll, closeAll } = styler;
511
+ if (string.includes("\x1B")) {
512
+ while (styler !== void 0) {
513
+ string = stringReplaceAll(string, styler.close, styler.open);
514
+ styler = styler.parent;
515
+ }
516
+ }
517
+ const lfIndex = string.indexOf("\n");
518
+ if (lfIndex !== -1) {
519
+ string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
520
+ }
521
+ return openAll + string + closeAll;
522
+ };
523
+ Object.defineProperties(createChalk.prototype, styles2);
524
+ var chalk = createChalk();
525
+ var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
526
+ var source_default = chalk;
527
+
528
+ // src/cli.ts
29
529
  var import_commander = require("commander");
30
- var import_ora = __toESM(require("ora"));
530
+
531
+ // ../../node_modules/.pnpm/ora@9.0.0/node_modules/ora/index.js
532
+ var import_node_process6 = __toESM(require("process"), 1);
533
+
534
+ // ../../node_modules/.pnpm/cli-cursor@5.0.0/node_modules/cli-cursor/index.js
535
+ var import_node_process3 = __toESM(require("process"), 1);
536
+
537
+ // ../../node_modules/.pnpm/restore-cursor@5.1.0/node_modules/restore-cursor/index.js
538
+ var import_node_process2 = __toESM(require("process"), 1);
539
+
540
+ // ../../node_modules/.pnpm/mimic-function@5.0.1/node_modules/mimic-function/index.js
541
+ var copyProperty = (to, from, property, ignoreNonConfigurable) => {
542
+ if (property === "length" || property === "prototype") {
543
+ return;
544
+ }
545
+ if (property === "arguments" || property === "caller") {
546
+ return;
547
+ }
548
+ const toDescriptor = Object.getOwnPropertyDescriptor(to, property);
549
+ const fromDescriptor = Object.getOwnPropertyDescriptor(from, property);
550
+ if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
551
+ return;
552
+ }
553
+ Object.defineProperty(to, property, fromDescriptor);
554
+ };
555
+ var canCopyProperty = function(toDescriptor, fromDescriptor) {
556
+ return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
557
+ };
558
+ var changePrototype = (to, from) => {
559
+ const fromPrototype = Object.getPrototypeOf(from);
560
+ if (fromPrototype === Object.getPrototypeOf(to)) {
561
+ return;
562
+ }
563
+ Object.setPrototypeOf(to, fromPrototype);
564
+ };
565
+ var wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/
566
+ ${fromBody}`;
567
+ var toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
568
+ var toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
569
+ var changeToString = (to, from, name) => {
570
+ const withName = name === "" ? "" : `with ${name.trim()}() `;
571
+ const newToString = wrappedToString.bind(null, withName, from.toString());
572
+ Object.defineProperty(newToString, "name", toStringName);
573
+ const { writable, enumerable, configurable } = toStringDescriptor;
574
+ Object.defineProperty(to, "toString", { value: newToString, writable, enumerable, configurable });
575
+ };
576
+ function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
577
+ const { name } = to;
578
+ for (const property of Reflect.ownKeys(from)) {
579
+ copyProperty(to, from, property, ignoreNonConfigurable);
580
+ }
581
+ changePrototype(to, from);
582
+ changeToString(to, from, name);
583
+ return to;
584
+ }
585
+
586
+ // ../../node_modules/.pnpm/onetime@7.0.0/node_modules/onetime/index.js
587
+ var calledFunctions = /* @__PURE__ */ new WeakMap();
588
+ var onetime = (function_, options = {}) => {
589
+ if (typeof function_ !== "function") {
590
+ throw new TypeError("Expected a function");
591
+ }
592
+ let returnValue;
593
+ let callCount = 0;
594
+ const functionName = function_.displayName || function_.name || "<anonymous>";
595
+ const onetime2 = function(...arguments_) {
596
+ calledFunctions.set(onetime2, ++callCount);
597
+ if (callCount === 1) {
598
+ returnValue = function_.apply(this, arguments_);
599
+ function_ = void 0;
600
+ } else if (options.throw === true) {
601
+ throw new Error(`Function \`${functionName}\` can only be called once`);
602
+ }
603
+ return returnValue;
604
+ };
605
+ mimicFunction(onetime2, function_);
606
+ calledFunctions.set(onetime2, callCount);
607
+ return onetime2;
608
+ };
609
+ onetime.callCount = (function_) => {
610
+ if (!calledFunctions.has(function_)) {
611
+ throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
612
+ }
613
+ return calledFunctions.get(function_);
614
+ };
615
+ var onetime_default = onetime;
616
+
617
+ // ../../node_modules/.pnpm/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/signals.js
618
+ var signals = [];
619
+ signals.push("SIGHUP", "SIGINT", "SIGTERM");
620
+ if (process.platform !== "win32") {
621
+ signals.push(
622
+ "SIGALRM",
623
+ "SIGABRT",
624
+ "SIGVTALRM",
625
+ "SIGXCPU",
626
+ "SIGXFSZ",
627
+ "SIGUSR2",
628
+ "SIGTRAP",
629
+ "SIGSYS",
630
+ "SIGQUIT",
631
+ "SIGIOT"
632
+ // should detect profiler and enable/disable accordingly.
633
+ // see #21
634
+ // 'SIGPROF'
635
+ );
636
+ }
637
+ if (process.platform === "linux") {
638
+ signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
639
+ }
640
+
641
+ // ../../node_modules/.pnpm/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/index.js
642
+ var processOk = (process9) => !!process9 && typeof process9 === "object" && typeof process9.removeListener === "function" && typeof process9.emit === "function" && typeof process9.reallyExit === "function" && typeof process9.listeners === "function" && typeof process9.kill === "function" && typeof process9.pid === "number" && typeof process9.on === "function";
643
+ var kExitEmitter = Symbol.for("signal-exit emitter");
644
+ var global = globalThis;
645
+ var ObjectDefineProperty = Object.defineProperty.bind(Object);
646
+ var Emitter = class {
647
+ emitted = {
648
+ afterExit: false,
649
+ exit: false
650
+ };
651
+ listeners = {
652
+ afterExit: [],
653
+ exit: []
654
+ };
655
+ count = 0;
656
+ id = Math.random();
657
+ constructor() {
658
+ if (global[kExitEmitter]) {
659
+ return global[kExitEmitter];
660
+ }
661
+ ObjectDefineProperty(global, kExitEmitter, {
662
+ value: this,
663
+ writable: false,
664
+ enumerable: false,
665
+ configurable: false
666
+ });
667
+ }
668
+ on(ev, fn) {
669
+ this.listeners[ev].push(fn);
670
+ }
671
+ removeListener(ev, fn) {
672
+ const list = this.listeners[ev];
673
+ const i = list.indexOf(fn);
674
+ if (i === -1) {
675
+ return;
676
+ }
677
+ if (i === 0 && list.length === 1) {
678
+ list.length = 0;
679
+ } else {
680
+ list.splice(i, 1);
681
+ }
682
+ }
683
+ emit(ev, code, signal) {
684
+ if (this.emitted[ev]) {
685
+ return false;
686
+ }
687
+ this.emitted[ev] = true;
688
+ let ret = false;
689
+ for (const fn of this.listeners[ev]) {
690
+ ret = fn(code, signal) === true || ret;
691
+ }
692
+ if (ev === "exit") {
693
+ ret = this.emit("afterExit", code, signal) || ret;
694
+ }
695
+ return ret;
696
+ }
697
+ };
698
+ var SignalExitBase = class {
699
+ };
700
+ var signalExitWrap = (handler) => {
701
+ return {
702
+ onExit(cb, opts) {
703
+ return handler.onExit(cb, opts);
704
+ },
705
+ load() {
706
+ return handler.load();
707
+ },
708
+ unload() {
709
+ return handler.unload();
710
+ }
711
+ };
712
+ };
713
+ var SignalExitFallback = class extends SignalExitBase {
714
+ onExit() {
715
+ return () => {
716
+ };
717
+ }
718
+ load() {
719
+ }
720
+ unload() {
721
+ }
722
+ };
723
+ var SignalExit = class extends SignalExitBase {
724
+ // "SIGHUP" throws an `ENOSYS` error on Windows,
725
+ // so use a supported signal instead
726
+ /* c8 ignore start */
727
+ #hupSig = process3.platform === "win32" ? "SIGINT" : "SIGHUP";
728
+ /* c8 ignore stop */
729
+ #emitter = new Emitter();
730
+ #process;
731
+ #originalProcessEmit;
732
+ #originalProcessReallyExit;
733
+ #sigListeners = {};
734
+ #loaded = false;
735
+ constructor(process9) {
736
+ super();
737
+ this.#process = process9;
738
+ this.#sigListeners = {};
739
+ for (const sig of signals) {
740
+ this.#sigListeners[sig] = () => {
741
+ const listeners = this.#process.listeners(sig);
742
+ let { count } = this.#emitter;
743
+ const p = process9;
744
+ if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") {
745
+ count += p.__signal_exit_emitter__.count;
746
+ }
747
+ if (listeners.length === count) {
748
+ this.unload();
749
+ const ret = this.#emitter.emit("exit", null, sig);
750
+ const s = sig === "SIGHUP" ? this.#hupSig : sig;
751
+ if (!ret)
752
+ process9.kill(process9.pid, s);
753
+ }
754
+ };
755
+ }
756
+ this.#originalProcessReallyExit = process9.reallyExit;
757
+ this.#originalProcessEmit = process9.emit;
758
+ }
759
+ onExit(cb, opts) {
760
+ if (!processOk(this.#process)) {
761
+ return () => {
762
+ };
763
+ }
764
+ if (this.#loaded === false) {
765
+ this.load();
766
+ }
767
+ const ev = opts?.alwaysLast ? "afterExit" : "exit";
768
+ this.#emitter.on(ev, cb);
769
+ return () => {
770
+ this.#emitter.removeListener(ev, cb);
771
+ if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) {
772
+ this.unload();
773
+ }
774
+ };
775
+ }
776
+ load() {
777
+ if (this.#loaded) {
778
+ return;
779
+ }
780
+ this.#loaded = true;
781
+ this.#emitter.count += 1;
782
+ for (const sig of signals) {
783
+ try {
784
+ const fn = this.#sigListeners[sig];
785
+ if (fn)
786
+ this.#process.on(sig, fn);
787
+ } catch (_) {
788
+ }
789
+ }
790
+ this.#process.emit = (ev, ...a) => {
791
+ return this.#processEmit(ev, ...a);
792
+ };
793
+ this.#process.reallyExit = (code) => {
794
+ return this.#processReallyExit(code);
795
+ };
796
+ }
797
+ unload() {
798
+ if (!this.#loaded) {
799
+ return;
800
+ }
801
+ this.#loaded = false;
802
+ signals.forEach((sig) => {
803
+ const listener = this.#sigListeners[sig];
804
+ if (!listener) {
805
+ throw new Error("Listener not defined for signal: " + sig);
806
+ }
807
+ try {
808
+ this.#process.removeListener(sig, listener);
809
+ } catch (_) {
810
+ }
811
+ });
812
+ this.#process.emit = this.#originalProcessEmit;
813
+ this.#process.reallyExit = this.#originalProcessReallyExit;
814
+ this.#emitter.count -= 1;
815
+ }
816
+ #processReallyExit(code) {
817
+ if (!processOk(this.#process)) {
818
+ return 0;
819
+ }
820
+ this.#process.exitCode = code || 0;
821
+ this.#emitter.emit("exit", this.#process.exitCode, null);
822
+ return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
823
+ }
824
+ #processEmit(ev, ...args) {
825
+ const og = this.#originalProcessEmit;
826
+ if (ev === "exit" && processOk(this.#process)) {
827
+ if (typeof args[0] === "number") {
828
+ this.#process.exitCode = args[0];
829
+ }
830
+ const ret = og.call(this.#process, ev, ...args);
831
+ this.#emitter.emit("exit", this.#process.exitCode, null);
832
+ return ret;
833
+ } else {
834
+ return og.call(this.#process, ev, ...args);
835
+ }
836
+ }
837
+ };
838
+ var process3 = globalThis.process;
839
+ var {
840
+ /**
841
+ * Called when the process is exiting, whether via signal, explicit
842
+ * exit, or running out of stuff to do.
843
+ *
844
+ * If the global process object is not suitable for instrumentation,
845
+ * then this will be a no-op.
846
+ *
847
+ * Returns a function that may be used to unload signal-exit.
848
+ */
849
+ onExit,
850
+ /**
851
+ * Load the listeners. Likely you never need to call this, unless
852
+ * doing a rather deep integration with signal-exit functionality.
853
+ * Mostly exposed for the benefit of testing.
854
+ *
855
+ * @internal
856
+ */
857
+ load,
858
+ /**
859
+ * Unload the listeners. Likely you never need to call this, unless
860
+ * doing a rather deep integration with signal-exit functionality.
861
+ * Mostly exposed for the benefit of testing.
862
+ *
863
+ * @internal
864
+ */
865
+ unload
866
+ } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback());
867
+
868
+ // ../../node_modules/.pnpm/restore-cursor@5.1.0/node_modules/restore-cursor/index.js
869
+ 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;
870
+ var restoreCursor = terminal ? onetime_default(() => {
871
+ onExit(() => {
872
+ terminal.write("\x1B[?25h");
873
+ }, { alwaysLast: true });
874
+ }) : () => {
875
+ };
876
+ var restore_cursor_default = restoreCursor;
877
+
878
+ // ../../node_modules/.pnpm/cli-cursor@5.0.0/node_modules/cli-cursor/index.js
879
+ var isHidden = false;
880
+ var cliCursor = {};
881
+ cliCursor.show = (writableStream = import_node_process3.default.stderr) => {
882
+ if (!writableStream.isTTY) {
883
+ return;
884
+ }
885
+ isHidden = false;
886
+ writableStream.write("\x1B[?25h");
887
+ };
888
+ cliCursor.hide = (writableStream = import_node_process3.default.stderr) => {
889
+ if (!writableStream.isTTY) {
890
+ return;
891
+ }
892
+ restore_cursor_default();
893
+ isHidden = true;
894
+ writableStream.write("\x1B[?25l");
895
+ };
896
+ cliCursor.toggle = (force, writableStream) => {
897
+ if (force !== void 0) {
898
+ isHidden = force;
899
+ }
900
+ if (isHidden) {
901
+ cliCursor.show(writableStream);
902
+ } else {
903
+ cliCursor.hide(writableStream);
904
+ }
905
+ };
906
+ var cli_cursor_default = cliCursor;
907
+
908
+ // ../../node_modules/.pnpm/cli-spinners@3.2.1/node_modules/cli-spinners/spinners.json
909
+ var spinners_default = {
910
+ dots: {
911
+ interval: 80,
912
+ frames: [
913
+ "\u280B",
914
+ "\u2819",
915
+ "\u2839",
916
+ "\u2838",
917
+ "\u283C",
918
+ "\u2834",
919
+ "\u2826",
920
+ "\u2827",
921
+ "\u2807",
922
+ "\u280F"
923
+ ]
924
+ },
925
+ dots2: {
926
+ interval: 80,
927
+ frames: [
928
+ "\u28FE",
929
+ "\u28FD",
930
+ "\u28FB",
931
+ "\u28BF",
932
+ "\u287F",
933
+ "\u28DF",
934
+ "\u28EF",
935
+ "\u28F7"
936
+ ]
937
+ },
938
+ dots3: {
939
+ interval: 80,
940
+ frames: [
941
+ "\u280B",
942
+ "\u2819",
943
+ "\u281A",
944
+ "\u281E",
945
+ "\u2816",
946
+ "\u2826",
947
+ "\u2834",
948
+ "\u2832",
949
+ "\u2833",
950
+ "\u2813"
951
+ ]
952
+ },
953
+ dots4: {
954
+ interval: 80,
955
+ frames: [
956
+ "\u2804",
957
+ "\u2806",
958
+ "\u2807",
959
+ "\u280B",
960
+ "\u2819",
961
+ "\u2838",
962
+ "\u2830",
963
+ "\u2820",
964
+ "\u2830",
965
+ "\u2838",
966
+ "\u2819",
967
+ "\u280B",
968
+ "\u2807",
969
+ "\u2806"
970
+ ]
971
+ },
972
+ dots5: {
973
+ interval: 80,
974
+ frames: [
975
+ "\u280B",
976
+ "\u2819",
977
+ "\u281A",
978
+ "\u2812",
979
+ "\u2802",
980
+ "\u2802",
981
+ "\u2812",
982
+ "\u2832",
983
+ "\u2834",
984
+ "\u2826",
985
+ "\u2816",
986
+ "\u2812",
987
+ "\u2810",
988
+ "\u2810",
989
+ "\u2812",
990
+ "\u2813",
991
+ "\u280B"
992
+ ]
993
+ },
994
+ dots6: {
995
+ interval: 80,
996
+ frames: [
997
+ "\u2801",
998
+ "\u2809",
999
+ "\u2819",
1000
+ "\u281A",
1001
+ "\u2812",
1002
+ "\u2802",
1003
+ "\u2802",
1004
+ "\u2812",
1005
+ "\u2832",
1006
+ "\u2834",
1007
+ "\u2824",
1008
+ "\u2804",
1009
+ "\u2804",
1010
+ "\u2824",
1011
+ "\u2834",
1012
+ "\u2832",
1013
+ "\u2812",
1014
+ "\u2802",
1015
+ "\u2802",
1016
+ "\u2812",
1017
+ "\u281A",
1018
+ "\u2819",
1019
+ "\u2809",
1020
+ "\u2801"
1021
+ ]
1022
+ },
1023
+ dots7: {
1024
+ interval: 80,
1025
+ frames: [
1026
+ "\u2808",
1027
+ "\u2809",
1028
+ "\u280B",
1029
+ "\u2813",
1030
+ "\u2812",
1031
+ "\u2810",
1032
+ "\u2810",
1033
+ "\u2812",
1034
+ "\u2816",
1035
+ "\u2826",
1036
+ "\u2824",
1037
+ "\u2820",
1038
+ "\u2820",
1039
+ "\u2824",
1040
+ "\u2826",
1041
+ "\u2816",
1042
+ "\u2812",
1043
+ "\u2810",
1044
+ "\u2810",
1045
+ "\u2812",
1046
+ "\u2813",
1047
+ "\u280B",
1048
+ "\u2809",
1049
+ "\u2808"
1050
+ ]
1051
+ },
1052
+ dots8: {
1053
+ interval: 80,
1054
+ frames: [
1055
+ "\u2801",
1056
+ "\u2801",
1057
+ "\u2809",
1058
+ "\u2819",
1059
+ "\u281A",
1060
+ "\u2812",
1061
+ "\u2802",
1062
+ "\u2802",
1063
+ "\u2812",
1064
+ "\u2832",
1065
+ "\u2834",
1066
+ "\u2824",
1067
+ "\u2804",
1068
+ "\u2804",
1069
+ "\u2824",
1070
+ "\u2820",
1071
+ "\u2820",
1072
+ "\u2824",
1073
+ "\u2826",
1074
+ "\u2816",
1075
+ "\u2812",
1076
+ "\u2810",
1077
+ "\u2810",
1078
+ "\u2812",
1079
+ "\u2813",
1080
+ "\u280B",
1081
+ "\u2809",
1082
+ "\u2808",
1083
+ "\u2808"
1084
+ ]
1085
+ },
1086
+ dots9: {
1087
+ interval: 80,
1088
+ frames: [
1089
+ "\u28B9",
1090
+ "\u28BA",
1091
+ "\u28BC",
1092
+ "\u28F8",
1093
+ "\u28C7",
1094
+ "\u2867",
1095
+ "\u2857",
1096
+ "\u284F"
1097
+ ]
1098
+ },
1099
+ dots10: {
1100
+ interval: 80,
1101
+ frames: [
1102
+ "\u2884",
1103
+ "\u2882",
1104
+ "\u2881",
1105
+ "\u2841",
1106
+ "\u2848",
1107
+ "\u2850",
1108
+ "\u2860"
1109
+ ]
1110
+ },
1111
+ dots11: {
1112
+ interval: 100,
1113
+ frames: [
1114
+ "\u2801",
1115
+ "\u2802",
1116
+ "\u2804",
1117
+ "\u2840",
1118
+ "\u2880",
1119
+ "\u2820",
1120
+ "\u2810",
1121
+ "\u2808"
1122
+ ]
1123
+ },
1124
+ dots12: {
1125
+ interval: 80,
1126
+ frames: [
1127
+ "\u2880\u2800",
1128
+ "\u2840\u2800",
1129
+ "\u2804\u2800",
1130
+ "\u2882\u2800",
1131
+ "\u2842\u2800",
1132
+ "\u2805\u2800",
1133
+ "\u2883\u2800",
1134
+ "\u2843\u2800",
1135
+ "\u280D\u2800",
1136
+ "\u288B\u2800",
1137
+ "\u284B\u2800",
1138
+ "\u280D\u2801",
1139
+ "\u288B\u2801",
1140
+ "\u284B\u2801",
1141
+ "\u280D\u2809",
1142
+ "\u280B\u2809",
1143
+ "\u280B\u2809",
1144
+ "\u2809\u2819",
1145
+ "\u2809\u2819",
1146
+ "\u2809\u2829",
1147
+ "\u2808\u2899",
1148
+ "\u2808\u2859",
1149
+ "\u2888\u2829",
1150
+ "\u2840\u2899",
1151
+ "\u2804\u2859",
1152
+ "\u2882\u2829",
1153
+ "\u2842\u2898",
1154
+ "\u2805\u2858",
1155
+ "\u2883\u2828",
1156
+ "\u2843\u2890",
1157
+ "\u280D\u2850",
1158
+ "\u288B\u2820",
1159
+ "\u284B\u2880",
1160
+ "\u280D\u2841",
1161
+ "\u288B\u2801",
1162
+ "\u284B\u2801",
1163
+ "\u280D\u2809",
1164
+ "\u280B\u2809",
1165
+ "\u280B\u2809",
1166
+ "\u2809\u2819",
1167
+ "\u2809\u2819",
1168
+ "\u2809\u2829",
1169
+ "\u2808\u2899",
1170
+ "\u2808\u2859",
1171
+ "\u2808\u2829",
1172
+ "\u2800\u2899",
1173
+ "\u2800\u2859",
1174
+ "\u2800\u2829",
1175
+ "\u2800\u2898",
1176
+ "\u2800\u2858",
1177
+ "\u2800\u2828",
1178
+ "\u2800\u2890",
1179
+ "\u2800\u2850",
1180
+ "\u2800\u2820",
1181
+ "\u2800\u2880",
1182
+ "\u2800\u2840"
1183
+ ]
1184
+ },
1185
+ dots13: {
1186
+ interval: 80,
1187
+ frames: [
1188
+ "\u28FC",
1189
+ "\u28F9",
1190
+ "\u28BB",
1191
+ "\u283F",
1192
+ "\u285F",
1193
+ "\u28CF",
1194
+ "\u28E7",
1195
+ "\u28F6"
1196
+ ]
1197
+ },
1198
+ dots14: {
1199
+ interval: 80,
1200
+ frames: [
1201
+ "\u2809\u2809",
1202
+ "\u2808\u2819",
1203
+ "\u2800\u2839",
1204
+ "\u2800\u28B8",
1205
+ "\u2800\u28F0",
1206
+ "\u2880\u28E0",
1207
+ "\u28C0\u28C0",
1208
+ "\u28C4\u2840",
1209
+ "\u28C6\u2800",
1210
+ "\u2847\u2800",
1211
+ "\u280F\u2800",
1212
+ "\u280B\u2801"
1213
+ ]
1214
+ },
1215
+ dots8Bit: {
1216
+ interval: 80,
1217
+ frames: [
1218
+ "\u2800",
1219
+ "\u2801",
1220
+ "\u2802",
1221
+ "\u2803",
1222
+ "\u2804",
1223
+ "\u2805",
1224
+ "\u2806",
1225
+ "\u2807",
1226
+ "\u2840",
1227
+ "\u2841",
1228
+ "\u2842",
1229
+ "\u2843",
1230
+ "\u2844",
1231
+ "\u2845",
1232
+ "\u2846",
1233
+ "\u2847",
1234
+ "\u2808",
1235
+ "\u2809",
1236
+ "\u280A",
1237
+ "\u280B",
1238
+ "\u280C",
1239
+ "\u280D",
1240
+ "\u280E",
1241
+ "\u280F",
1242
+ "\u2848",
1243
+ "\u2849",
1244
+ "\u284A",
1245
+ "\u284B",
1246
+ "\u284C",
1247
+ "\u284D",
1248
+ "\u284E",
1249
+ "\u284F",
1250
+ "\u2810",
1251
+ "\u2811",
1252
+ "\u2812",
1253
+ "\u2813",
1254
+ "\u2814",
1255
+ "\u2815",
1256
+ "\u2816",
1257
+ "\u2817",
1258
+ "\u2850",
1259
+ "\u2851",
1260
+ "\u2852",
1261
+ "\u2853",
1262
+ "\u2854",
1263
+ "\u2855",
1264
+ "\u2856",
1265
+ "\u2857",
1266
+ "\u2818",
1267
+ "\u2819",
1268
+ "\u281A",
1269
+ "\u281B",
1270
+ "\u281C",
1271
+ "\u281D",
1272
+ "\u281E",
1273
+ "\u281F",
1274
+ "\u2858",
1275
+ "\u2859",
1276
+ "\u285A",
1277
+ "\u285B",
1278
+ "\u285C",
1279
+ "\u285D",
1280
+ "\u285E",
1281
+ "\u285F",
1282
+ "\u2820",
1283
+ "\u2821",
1284
+ "\u2822",
1285
+ "\u2823",
1286
+ "\u2824",
1287
+ "\u2825",
1288
+ "\u2826",
1289
+ "\u2827",
1290
+ "\u2860",
1291
+ "\u2861",
1292
+ "\u2862",
1293
+ "\u2863",
1294
+ "\u2864",
1295
+ "\u2865",
1296
+ "\u2866",
1297
+ "\u2867",
1298
+ "\u2828",
1299
+ "\u2829",
1300
+ "\u282A",
1301
+ "\u282B",
1302
+ "\u282C",
1303
+ "\u282D",
1304
+ "\u282E",
1305
+ "\u282F",
1306
+ "\u2868",
1307
+ "\u2869",
1308
+ "\u286A",
1309
+ "\u286B",
1310
+ "\u286C",
1311
+ "\u286D",
1312
+ "\u286E",
1313
+ "\u286F",
1314
+ "\u2830",
1315
+ "\u2831",
1316
+ "\u2832",
1317
+ "\u2833",
1318
+ "\u2834",
1319
+ "\u2835",
1320
+ "\u2836",
1321
+ "\u2837",
1322
+ "\u2870",
1323
+ "\u2871",
1324
+ "\u2872",
1325
+ "\u2873",
1326
+ "\u2874",
1327
+ "\u2875",
1328
+ "\u2876",
1329
+ "\u2877",
1330
+ "\u2838",
1331
+ "\u2839",
1332
+ "\u283A",
1333
+ "\u283B",
1334
+ "\u283C",
1335
+ "\u283D",
1336
+ "\u283E",
1337
+ "\u283F",
1338
+ "\u2878",
1339
+ "\u2879",
1340
+ "\u287A",
1341
+ "\u287B",
1342
+ "\u287C",
1343
+ "\u287D",
1344
+ "\u287E",
1345
+ "\u287F",
1346
+ "\u2880",
1347
+ "\u2881",
1348
+ "\u2882",
1349
+ "\u2883",
1350
+ "\u2884",
1351
+ "\u2885",
1352
+ "\u2886",
1353
+ "\u2887",
1354
+ "\u28C0",
1355
+ "\u28C1",
1356
+ "\u28C2",
1357
+ "\u28C3",
1358
+ "\u28C4",
1359
+ "\u28C5",
1360
+ "\u28C6",
1361
+ "\u28C7",
1362
+ "\u2888",
1363
+ "\u2889",
1364
+ "\u288A",
1365
+ "\u288B",
1366
+ "\u288C",
1367
+ "\u288D",
1368
+ "\u288E",
1369
+ "\u288F",
1370
+ "\u28C8",
1371
+ "\u28C9",
1372
+ "\u28CA",
1373
+ "\u28CB",
1374
+ "\u28CC",
1375
+ "\u28CD",
1376
+ "\u28CE",
1377
+ "\u28CF",
1378
+ "\u2890",
1379
+ "\u2891",
1380
+ "\u2892",
1381
+ "\u2893",
1382
+ "\u2894",
1383
+ "\u2895",
1384
+ "\u2896",
1385
+ "\u2897",
1386
+ "\u28D0",
1387
+ "\u28D1",
1388
+ "\u28D2",
1389
+ "\u28D3",
1390
+ "\u28D4",
1391
+ "\u28D5",
1392
+ "\u28D6",
1393
+ "\u28D7",
1394
+ "\u2898",
1395
+ "\u2899",
1396
+ "\u289A",
1397
+ "\u289B",
1398
+ "\u289C",
1399
+ "\u289D",
1400
+ "\u289E",
1401
+ "\u289F",
1402
+ "\u28D8",
1403
+ "\u28D9",
1404
+ "\u28DA",
1405
+ "\u28DB",
1406
+ "\u28DC",
1407
+ "\u28DD",
1408
+ "\u28DE",
1409
+ "\u28DF",
1410
+ "\u28A0",
1411
+ "\u28A1",
1412
+ "\u28A2",
1413
+ "\u28A3",
1414
+ "\u28A4",
1415
+ "\u28A5",
1416
+ "\u28A6",
1417
+ "\u28A7",
1418
+ "\u28E0",
1419
+ "\u28E1",
1420
+ "\u28E2",
1421
+ "\u28E3",
1422
+ "\u28E4",
1423
+ "\u28E5",
1424
+ "\u28E6",
1425
+ "\u28E7",
1426
+ "\u28A8",
1427
+ "\u28A9",
1428
+ "\u28AA",
1429
+ "\u28AB",
1430
+ "\u28AC",
1431
+ "\u28AD",
1432
+ "\u28AE",
1433
+ "\u28AF",
1434
+ "\u28E8",
1435
+ "\u28E9",
1436
+ "\u28EA",
1437
+ "\u28EB",
1438
+ "\u28EC",
1439
+ "\u28ED",
1440
+ "\u28EE",
1441
+ "\u28EF",
1442
+ "\u28B0",
1443
+ "\u28B1",
1444
+ "\u28B2",
1445
+ "\u28B3",
1446
+ "\u28B4",
1447
+ "\u28B5",
1448
+ "\u28B6",
1449
+ "\u28B7",
1450
+ "\u28F0",
1451
+ "\u28F1",
1452
+ "\u28F2",
1453
+ "\u28F3",
1454
+ "\u28F4",
1455
+ "\u28F5",
1456
+ "\u28F6",
1457
+ "\u28F7",
1458
+ "\u28B8",
1459
+ "\u28B9",
1460
+ "\u28BA",
1461
+ "\u28BB",
1462
+ "\u28BC",
1463
+ "\u28BD",
1464
+ "\u28BE",
1465
+ "\u28BF",
1466
+ "\u28F8",
1467
+ "\u28F9",
1468
+ "\u28FA",
1469
+ "\u28FB",
1470
+ "\u28FC",
1471
+ "\u28FD",
1472
+ "\u28FE",
1473
+ "\u28FF"
1474
+ ]
1475
+ },
1476
+ dotsCircle: {
1477
+ interval: 80,
1478
+ frames: [
1479
+ "\u288E ",
1480
+ "\u280E\u2801",
1481
+ "\u280A\u2811",
1482
+ "\u2808\u2831",
1483
+ " \u2871",
1484
+ "\u2880\u2870",
1485
+ "\u2884\u2860",
1486
+ "\u2886\u2840"
1487
+ ]
1488
+ },
1489
+ sand: {
1490
+ interval: 80,
1491
+ frames: [
1492
+ "\u2801",
1493
+ "\u2802",
1494
+ "\u2804",
1495
+ "\u2840",
1496
+ "\u2848",
1497
+ "\u2850",
1498
+ "\u2860",
1499
+ "\u28C0",
1500
+ "\u28C1",
1501
+ "\u28C2",
1502
+ "\u28C4",
1503
+ "\u28CC",
1504
+ "\u28D4",
1505
+ "\u28E4",
1506
+ "\u28E5",
1507
+ "\u28E6",
1508
+ "\u28EE",
1509
+ "\u28F6",
1510
+ "\u28F7",
1511
+ "\u28FF",
1512
+ "\u287F",
1513
+ "\u283F",
1514
+ "\u289F",
1515
+ "\u281F",
1516
+ "\u285B",
1517
+ "\u281B",
1518
+ "\u282B",
1519
+ "\u288B",
1520
+ "\u280B",
1521
+ "\u280D",
1522
+ "\u2849",
1523
+ "\u2809",
1524
+ "\u2811",
1525
+ "\u2821",
1526
+ "\u2881"
1527
+ ]
1528
+ },
1529
+ line: {
1530
+ interval: 130,
1531
+ frames: [
1532
+ "-",
1533
+ "\\",
1534
+ "|",
1535
+ "/"
1536
+ ]
1537
+ },
1538
+ line2: {
1539
+ interval: 100,
1540
+ frames: [
1541
+ "\u2802",
1542
+ "-",
1543
+ "\u2013",
1544
+ "\u2014",
1545
+ "\u2013",
1546
+ "-"
1547
+ ]
1548
+ },
1549
+ pipe: {
1550
+ interval: 100,
1551
+ frames: [
1552
+ "\u2524",
1553
+ "\u2518",
1554
+ "\u2534",
1555
+ "\u2514",
1556
+ "\u251C",
1557
+ "\u250C",
1558
+ "\u252C",
1559
+ "\u2510"
1560
+ ]
1561
+ },
1562
+ simpleDots: {
1563
+ interval: 400,
1564
+ frames: [
1565
+ ". ",
1566
+ ".. ",
1567
+ "...",
1568
+ " "
1569
+ ]
1570
+ },
1571
+ simpleDotsScrolling: {
1572
+ interval: 200,
1573
+ frames: [
1574
+ ". ",
1575
+ ".. ",
1576
+ "...",
1577
+ " ..",
1578
+ " .",
1579
+ " "
1580
+ ]
1581
+ },
1582
+ star: {
1583
+ interval: 70,
1584
+ frames: [
1585
+ "\u2736",
1586
+ "\u2738",
1587
+ "\u2739",
1588
+ "\u273A",
1589
+ "\u2739",
1590
+ "\u2737"
1591
+ ]
1592
+ },
1593
+ star2: {
1594
+ interval: 80,
1595
+ frames: [
1596
+ "+",
1597
+ "x",
1598
+ "*"
1599
+ ]
1600
+ },
1601
+ flip: {
1602
+ interval: 70,
1603
+ frames: [
1604
+ "_",
1605
+ "_",
1606
+ "_",
1607
+ "-",
1608
+ "`",
1609
+ "`",
1610
+ "'",
1611
+ "\xB4",
1612
+ "-",
1613
+ "_",
1614
+ "_",
1615
+ "_"
1616
+ ]
1617
+ },
1618
+ hamburger: {
1619
+ interval: 100,
1620
+ frames: [
1621
+ "\u2631",
1622
+ "\u2632",
1623
+ "\u2634"
1624
+ ]
1625
+ },
1626
+ growVertical: {
1627
+ interval: 120,
1628
+ frames: [
1629
+ "\u2581",
1630
+ "\u2583",
1631
+ "\u2584",
1632
+ "\u2585",
1633
+ "\u2586",
1634
+ "\u2587",
1635
+ "\u2586",
1636
+ "\u2585",
1637
+ "\u2584",
1638
+ "\u2583"
1639
+ ]
1640
+ },
1641
+ growHorizontal: {
1642
+ interval: 120,
1643
+ frames: [
1644
+ "\u258F",
1645
+ "\u258E",
1646
+ "\u258D",
1647
+ "\u258C",
1648
+ "\u258B",
1649
+ "\u258A",
1650
+ "\u2589",
1651
+ "\u258A",
1652
+ "\u258B",
1653
+ "\u258C",
1654
+ "\u258D",
1655
+ "\u258E"
1656
+ ]
1657
+ },
1658
+ balloon: {
1659
+ interval: 140,
1660
+ frames: [
1661
+ " ",
1662
+ ".",
1663
+ "o",
1664
+ "O",
1665
+ "@",
1666
+ "*",
1667
+ " "
1668
+ ]
1669
+ },
1670
+ balloon2: {
1671
+ interval: 120,
1672
+ frames: [
1673
+ ".",
1674
+ "o",
1675
+ "O",
1676
+ "\xB0",
1677
+ "O",
1678
+ "o",
1679
+ "."
1680
+ ]
1681
+ },
1682
+ noise: {
1683
+ interval: 100,
1684
+ frames: [
1685
+ "\u2593",
1686
+ "\u2592",
1687
+ "\u2591"
1688
+ ]
1689
+ },
1690
+ bounce: {
1691
+ interval: 120,
1692
+ frames: [
1693
+ "\u2801",
1694
+ "\u2802",
1695
+ "\u2804",
1696
+ "\u2802"
1697
+ ]
1698
+ },
1699
+ boxBounce: {
1700
+ interval: 120,
1701
+ frames: [
1702
+ "\u2596",
1703
+ "\u2598",
1704
+ "\u259D",
1705
+ "\u2597"
1706
+ ]
1707
+ },
1708
+ boxBounce2: {
1709
+ interval: 100,
1710
+ frames: [
1711
+ "\u258C",
1712
+ "\u2580",
1713
+ "\u2590",
1714
+ "\u2584"
1715
+ ]
1716
+ },
1717
+ triangle: {
1718
+ interval: 50,
1719
+ frames: [
1720
+ "\u25E2",
1721
+ "\u25E3",
1722
+ "\u25E4",
1723
+ "\u25E5"
1724
+ ]
1725
+ },
1726
+ binary: {
1727
+ interval: 80,
1728
+ frames: [
1729
+ "010010",
1730
+ "001100",
1731
+ "100101",
1732
+ "111010",
1733
+ "111101",
1734
+ "010111",
1735
+ "101011",
1736
+ "111000",
1737
+ "110011",
1738
+ "110101"
1739
+ ]
1740
+ },
1741
+ arc: {
1742
+ interval: 100,
1743
+ frames: [
1744
+ "\u25DC",
1745
+ "\u25E0",
1746
+ "\u25DD",
1747
+ "\u25DE",
1748
+ "\u25E1",
1749
+ "\u25DF"
1750
+ ]
1751
+ },
1752
+ circle: {
1753
+ interval: 120,
1754
+ frames: [
1755
+ "\u25E1",
1756
+ "\u2299",
1757
+ "\u25E0"
1758
+ ]
1759
+ },
1760
+ squareCorners: {
1761
+ interval: 180,
1762
+ frames: [
1763
+ "\u25F0",
1764
+ "\u25F3",
1765
+ "\u25F2",
1766
+ "\u25F1"
1767
+ ]
1768
+ },
1769
+ circleQuarters: {
1770
+ interval: 120,
1771
+ frames: [
1772
+ "\u25F4",
1773
+ "\u25F7",
1774
+ "\u25F6",
1775
+ "\u25F5"
1776
+ ]
1777
+ },
1778
+ circleHalves: {
1779
+ interval: 50,
1780
+ frames: [
1781
+ "\u25D0",
1782
+ "\u25D3",
1783
+ "\u25D1",
1784
+ "\u25D2"
1785
+ ]
1786
+ },
1787
+ squish: {
1788
+ interval: 100,
1789
+ frames: [
1790
+ "\u256B",
1791
+ "\u256A"
1792
+ ]
1793
+ },
1794
+ toggle: {
1795
+ interval: 250,
1796
+ frames: [
1797
+ "\u22B6",
1798
+ "\u22B7"
1799
+ ]
1800
+ },
1801
+ toggle2: {
1802
+ interval: 80,
1803
+ frames: [
1804
+ "\u25AB",
1805
+ "\u25AA"
1806
+ ]
1807
+ },
1808
+ toggle3: {
1809
+ interval: 120,
1810
+ frames: [
1811
+ "\u25A1",
1812
+ "\u25A0"
1813
+ ]
1814
+ },
1815
+ toggle4: {
1816
+ interval: 100,
1817
+ frames: [
1818
+ "\u25A0",
1819
+ "\u25A1",
1820
+ "\u25AA",
1821
+ "\u25AB"
1822
+ ]
1823
+ },
1824
+ toggle5: {
1825
+ interval: 100,
1826
+ frames: [
1827
+ "\u25AE",
1828
+ "\u25AF"
1829
+ ]
1830
+ },
1831
+ toggle6: {
1832
+ interval: 300,
1833
+ frames: [
1834
+ "\u101D",
1835
+ "\u1040"
1836
+ ]
1837
+ },
1838
+ toggle7: {
1839
+ interval: 80,
1840
+ frames: [
1841
+ "\u29BE",
1842
+ "\u29BF"
1843
+ ]
1844
+ },
1845
+ toggle8: {
1846
+ interval: 100,
1847
+ frames: [
1848
+ "\u25CD",
1849
+ "\u25CC"
1850
+ ]
1851
+ },
1852
+ toggle9: {
1853
+ interval: 100,
1854
+ frames: [
1855
+ "\u25C9",
1856
+ "\u25CE"
1857
+ ]
1858
+ },
1859
+ toggle10: {
1860
+ interval: 100,
1861
+ frames: [
1862
+ "\u3282",
1863
+ "\u3280",
1864
+ "\u3281"
1865
+ ]
1866
+ },
1867
+ toggle11: {
1868
+ interval: 50,
1869
+ frames: [
1870
+ "\u29C7",
1871
+ "\u29C6"
1872
+ ]
1873
+ },
1874
+ toggle12: {
1875
+ interval: 120,
1876
+ frames: [
1877
+ "\u2617",
1878
+ "\u2616"
1879
+ ]
1880
+ },
1881
+ toggle13: {
1882
+ interval: 80,
1883
+ frames: [
1884
+ "=",
1885
+ "*",
1886
+ "-"
1887
+ ]
1888
+ },
1889
+ arrow: {
1890
+ interval: 100,
1891
+ frames: [
1892
+ "\u2190",
1893
+ "\u2196",
1894
+ "\u2191",
1895
+ "\u2197",
1896
+ "\u2192",
1897
+ "\u2198",
1898
+ "\u2193",
1899
+ "\u2199"
1900
+ ]
1901
+ },
1902
+ arrow2: {
1903
+ interval: 80,
1904
+ frames: [
1905
+ "\u2B06\uFE0F ",
1906
+ "\u2197\uFE0F ",
1907
+ "\u27A1\uFE0F ",
1908
+ "\u2198\uFE0F ",
1909
+ "\u2B07\uFE0F ",
1910
+ "\u2199\uFE0F ",
1911
+ "\u2B05\uFE0F ",
1912
+ "\u2196\uFE0F "
1913
+ ]
1914
+ },
1915
+ arrow3: {
1916
+ interval: 120,
1917
+ frames: [
1918
+ "\u25B9\u25B9\u25B9\u25B9\u25B9",
1919
+ "\u25B8\u25B9\u25B9\u25B9\u25B9",
1920
+ "\u25B9\u25B8\u25B9\u25B9\u25B9",
1921
+ "\u25B9\u25B9\u25B8\u25B9\u25B9",
1922
+ "\u25B9\u25B9\u25B9\u25B8\u25B9",
1923
+ "\u25B9\u25B9\u25B9\u25B9\u25B8"
1924
+ ]
1925
+ },
1926
+ bouncingBar: {
1927
+ interval: 80,
1928
+ frames: [
1929
+ "[ ]",
1930
+ "[= ]",
1931
+ "[== ]",
1932
+ "[=== ]",
1933
+ "[====]",
1934
+ "[ ===]",
1935
+ "[ ==]",
1936
+ "[ =]",
1937
+ "[ ]",
1938
+ "[ =]",
1939
+ "[ ==]",
1940
+ "[ ===]",
1941
+ "[====]",
1942
+ "[=== ]",
1943
+ "[== ]",
1944
+ "[= ]"
1945
+ ]
1946
+ },
1947
+ bouncingBall: {
1948
+ interval: 80,
1949
+ frames: [
1950
+ "( \u25CF )",
1951
+ "( \u25CF )",
1952
+ "( \u25CF )",
1953
+ "( \u25CF )",
1954
+ "( \u25CF)",
1955
+ "( \u25CF )",
1956
+ "( \u25CF )",
1957
+ "( \u25CF )",
1958
+ "( \u25CF )",
1959
+ "(\u25CF )"
1960
+ ]
1961
+ },
1962
+ smiley: {
1963
+ interval: 200,
1964
+ frames: [
1965
+ "\u{1F604} ",
1966
+ "\u{1F61D} "
1967
+ ]
1968
+ },
1969
+ monkey: {
1970
+ interval: 300,
1971
+ frames: [
1972
+ "\u{1F648} ",
1973
+ "\u{1F648} ",
1974
+ "\u{1F649} ",
1975
+ "\u{1F64A} "
1976
+ ]
1977
+ },
1978
+ hearts: {
1979
+ interval: 100,
1980
+ frames: [
1981
+ "\u{1F49B} ",
1982
+ "\u{1F499} ",
1983
+ "\u{1F49C} ",
1984
+ "\u{1F49A} ",
1985
+ "\u{1F497} "
1986
+ ]
1987
+ },
1988
+ clock: {
1989
+ interval: 100,
1990
+ frames: [
1991
+ "\u{1F55B} ",
1992
+ "\u{1F550} ",
1993
+ "\u{1F551} ",
1994
+ "\u{1F552} ",
1995
+ "\u{1F553} ",
1996
+ "\u{1F554} ",
1997
+ "\u{1F555} ",
1998
+ "\u{1F556} ",
1999
+ "\u{1F557} ",
2000
+ "\u{1F558} ",
2001
+ "\u{1F559} ",
2002
+ "\u{1F55A} "
2003
+ ]
2004
+ },
2005
+ earth: {
2006
+ interval: 180,
2007
+ frames: [
2008
+ "\u{1F30D} ",
2009
+ "\u{1F30E} ",
2010
+ "\u{1F30F} "
2011
+ ]
2012
+ },
2013
+ material: {
2014
+ interval: 17,
2015
+ frames: [
2016
+ "\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2017
+ "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2018
+ "\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2019
+ "\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2020
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2021
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2022
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2023
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2024
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2025
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2026
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2027
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2028
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2029
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2030
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2031
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2032
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2033
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2034
+ "\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
2035
+ "\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2036
+ "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2037
+ "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2038
+ "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2039
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2040
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2041
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2042
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2043
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2044
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2045
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2046
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2047
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2048
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2049
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2050
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2051
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2052
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2053
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2054
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588",
2055
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
2056
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
2057
+ "\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2058
+ "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2059
+ "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2060
+ "\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2061
+ "\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2062
+ "\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2063
+ "\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2064
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2065
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2066
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2067
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2068
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2069
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2070
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2071
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2072
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2073
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2074
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2075
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2076
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2077
+ "\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
2078
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2079
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2080
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2081
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2082
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2083
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2084
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2085
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2086
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2087
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2088
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2089
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2090
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2091
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2092
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
2093
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2094
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2095
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2096
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2097
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2098
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2099
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2100
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2101
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2102
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2103
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2104
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2105
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2106
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2107
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"
2108
+ ]
2109
+ },
2110
+ moon: {
2111
+ interval: 80,
2112
+ frames: [
2113
+ "\u{1F311} ",
2114
+ "\u{1F312} ",
2115
+ "\u{1F313} ",
2116
+ "\u{1F314} ",
2117
+ "\u{1F315} ",
2118
+ "\u{1F316} ",
2119
+ "\u{1F317} ",
2120
+ "\u{1F318} "
2121
+ ]
2122
+ },
2123
+ runner: {
2124
+ interval: 140,
2125
+ frames: [
2126
+ "\u{1F6B6} ",
2127
+ "\u{1F3C3} "
2128
+ ]
2129
+ },
2130
+ pong: {
2131
+ interval: 80,
2132
+ frames: [
2133
+ "\u2590\u2802 \u258C",
2134
+ "\u2590\u2808 \u258C",
2135
+ "\u2590 \u2802 \u258C",
2136
+ "\u2590 \u2820 \u258C",
2137
+ "\u2590 \u2840 \u258C",
2138
+ "\u2590 \u2820 \u258C",
2139
+ "\u2590 \u2802 \u258C",
2140
+ "\u2590 \u2808 \u258C",
2141
+ "\u2590 \u2802 \u258C",
2142
+ "\u2590 \u2820 \u258C",
2143
+ "\u2590 \u2840 \u258C",
2144
+ "\u2590 \u2820 \u258C",
2145
+ "\u2590 \u2802 \u258C",
2146
+ "\u2590 \u2808 \u258C",
2147
+ "\u2590 \u2802\u258C",
2148
+ "\u2590 \u2820\u258C",
2149
+ "\u2590 \u2840\u258C",
2150
+ "\u2590 \u2820 \u258C",
2151
+ "\u2590 \u2802 \u258C",
2152
+ "\u2590 \u2808 \u258C",
2153
+ "\u2590 \u2802 \u258C",
2154
+ "\u2590 \u2820 \u258C",
2155
+ "\u2590 \u2840 \u258C",
2156
+ "\u2590 \u2820 \u258C",
2157
+ "\u2590 \u2802 \u258C",
2158
+ "\u2590 \u2808 \u258C",
2159
+ "\u2590 \u2802 \u258C",
2160
+ "\u2590 \u2820 \u258C",
2161
+ "\u2590 \u2840 \u258C",
2162
+ "\u2590\u2820 \u258C"
2163
+ ]
2164
+ },
2165
+ shark: {
2166
+ interval: 120,
2167
+ frames: [
2168
+ "\u2590|\\____________\u258C",
2169
+ "\u2590_|\\___________\u258C",
2170
+ "\u2590__|\\__________\u258C",
2171
+ "\u2590___|\\_________\u258C",
2172
+ "\u2590____|\\________\u258C",
2173
+ "\u2590_____|\\_______\u258C",
2174
+ "\u2590______|\\______\u258C",
2175
+ "\u2590_______|\\_____\u258C",
2176
+ "\u2590________|\\____\u258C",
2177
+ "\u2590_________|\\___\u258C",
2178
+ "\u2590__________|\\__\u258C",
2179
+ "\u2590___________|\\_\u258C",
2180
+ "\u2590____________|\\\u258C",
2181
+ "\u2590____________/|\u258C",
2182
+ "\u2590___________/|_\u258C",
2183
+ "\u2590__________/|__\u258C",
2184
+ "\u2590_________/|___\u258C",
2185
+ "\u2590________/|____\u258C",
2186
+ "\u2590_______/|_____\u258C",
2187
+ "\u2590______/|______\u258C",
2188
+ "\u2590_____/|_______\u258C",
2189
+ "\u2590____/|________\u258C",
2190
+ "\u2590___/|_________\u258C",
2191
+ "\u2590__/|__________\u258C",
2192
+ "\u2590_/|___________\u258C",
2193
+ "\u2590/|____________\u258C"
2194
+ ]
2195
+ },
2196
+ dqpb: {
2197
+ interval: 100,
2198
+ frames: [
2199
+ "d",
2200
+ "q",
2201
+ "p",
2202
+ "b"
2203
+ ]
2204
+ },
2205
+ weather: {
2206
+ interval: 100,
2207
+ frames: [
2208
+ "\u2600\uFE0F ",
2209
+ "\u2600\uFE0F ",
2210
+ "\u2600\uFE0F ",
2211
+ "\u{1F324} ",
2212
+ "\u26C5\uFE0F ",
2213
+ "\u{1F325} ",
2214
+ "\u2601\uFE0F ",
2215
+ "\u{1F327} ",
2216
+ "\u{1F328} ",
2217
+ "\u{1F327} ",
2218
+ "\u{1F328} ",
2219
+ "\u{1F327} ",
2220
+ "\u{1F328} ",
2221
+ "\u26C8 ",
2222
+ "\u{1F328} ",
2223
+ "\u{1F327} ",
2224
+ "\u{1F328} ",
2225
+ "\u2601\uFE0F ",
2226
+ "\u{1F325} ",
2227
+ "\u26C5\uFE0F ",
2228
+ "\u{1F324} ",
2229
+ "\u2600\uFE0F ",
2230
+ "\u2600\uFE0F "
2231
+ ]
2232
+ },
2233
+ christmas: {
2234
+ interval: 400,
2235
+ frames: [
2236
+ "\u{1F332}",
2237
+ "\u{1F384}"
2238
+ ]
2239
+ },
2240
+ grenade: {
2241
+ interval: 80,
2242
+ frames: [
2243
+ "\u060C ",
2244
+ "\u2032 ",
2245
+ " \xB4 ",
2246
+ " \u203E ",
2247
+ " \u2E0C",
2248
+ " \u2E0A",
2249
+ " |",
2250
+ " \u204E",
2251
+ " \u2055",
2252
+ " \u0DF4 ",
2253
+ " \u2053",
2254
+ " ",
2255
+ " ",
2256
+ " "
2257
+ ]
2258
+ },
2259
+ point: {
2260
+ interval: 125,
2261
+ frames: [
2262
+ "\u2219\u2219\u2219",
2263
+ "\u25CF\u2219\u2219",
2264
+ "\u2219\u25CF\u2219",
2265
+ "\u2219\u2219\u25CF",
2266
+ "\u2219\u2219\u2219"
2267
+ ]
2268
+ },
2269
+ layer: {
2270
+ interval: 150,
2271
+ frames: [
2272
+ "-",
2273
+ "=",
2274
+ "\u2261"
2275
+ ]
2276
+ },
2277
+ betaWave: {
2278
+ interval: 80,
2279
+ frames: [
2280
+ "\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2",
2281
+ "\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2",
2282
+ "\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2",
2283
+ "\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2",
2284
+ "\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2",
2285
+ "\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2",
2286
+ "\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"
2287
+ ]
2288
+ },
2289
+ fingerDance: {
2290
+ interval: 160,
2291
+ frames: [
2292
+ "\u{1F918} ",
2293
+ "\u{1F91F} ",
2294
+ "\u{1F596} ",
2295
+ "\u270B ",
2296
+ "\u{1F91A} ",
2297
+ "\u{1F446} "
2298
+ ]
2299
+ },
2300
+ fistBump: {
2301
+ interval: 80,
2302
+ frames: [
2303
+ "\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
2304
+ "\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
2305
+ "\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
2306
+ "\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ",
2307
+ "\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ",
2308
+ "\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ",
2309
+ "\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "
2310
+ ]
2311
+ },
2312
+ soccerHeader: {
2313
+ interval: 80,
2314
+ frames: [
2315
+ " \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ",
2316
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2317
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2318
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2319
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2320
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2321
+ "\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ",
2322
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2323
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2324
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2325
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2326
+ "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "
2327
+ ]
2328
+ },
2329
+ mindblown: {
2330
+ interval: 160,
2331
+ frames: [
2332
+ "\u{1F610} ",
2333
+ "\u{1F610} ",
2334
+ "\u{1F62E} ",
2335
+ "\u{1F62E} ",
2336
+ "\u{1F626} ",
2337
+ "\u{1F626} ",
2338
+ "\u{1F627} ",
2339
+ "\u{1F627} ",
2340
+ "\u{1F92F} ",
2341
+ "\u{1F4A5} ",
2342
+ "\u2728 ",
2343
+ "\u3000 ",
2344
+ "\u3000 ",
2345
+ "\u3000 "
2346
+ ]
2347
+ },
2348
+ speaker: {
2349
+ interval: 160,
2350
+ frames: [
2351
+ "\u{1F508} ",
2352
+ "\u{1F509} ",
2353
+ "\u{1F50A} ",
2354
+ "\u{1F509} "
2355
+ ]
2356
+ },
2357
+ orangePulse: {
2358
+ interval: 100,
2359
+ frames: [
2360
+ "\u{1F538} ",
2361
+ "\u{1F536} ",
2362
+ "\u{1F7E0} ",
2363
+ "\u{1F7E0} ",
2364
+ "\u{1F536} "
2365
+ ]
2366
+ },
2367
+ bluePulse: {
2368
+ interval: 100,
2369
+ frames: [
2370
+ "\u{1F539} ",
2371
+ "\u{1F537} ",
2372
+ "\u{1F535} ",
2373
+ "\u{1F535} ",
2374
+ "\u{1F537} "
2375
+ ]
2376
+ },
2377
+ orangeBluePulse: {
2378
+ interval: 100,
2379
+ frames: [
2380
+ "\u{1F538} ",
2381
+ "\u{1F536} ",
2382
+ "\u{1F7E0} ",
2383
+ "\u{1F7E0} ",
2384
+ "\u{1F536} ",
2385
+ "\u{1F539} ",
2386
+ "\u{1F537} ",
2387
+ "\u{1F535} ",
2388
+ "\u{1F535} ",
2389
+ "\u{1F537} "
2390
+ ]
2391
+ },
2392
+ timeTravel: {
2393
+ interval: 100,
2394
+ frames: [
2395
+ "\u{1F55B} ",
2396
+ "\u{1F55A} ",
2397
+ "\u{1F559} ",
2398
+ "\u{1F558} ",
2399
+ "\u{1F557} ",
2400
+ "\u{1F556} ",
2401
+ "\u{1F555} ",
2402
+ "\u{1F554} ",
2403
+ "\u{1F553} ",
2404
+ "\u{1F552} ",
2405
+ "\u{1F551} ",
2406
+ "\u{1F550} "
2407
+ ]
2408
+ },
2409
+ aesthetic: {
2410
+ interval: 80,
2411
+ frames: [
2412
+ "\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1",
2413
+ "\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1",
2414
+ "\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1",
2415
+ "\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1",
2416
+ "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1",
2417
+ "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1",
2418
+ "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0",
2419
+ "\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"
2420
+ ]
2421
+ },
2422
+ dwarfFortress: {
2423
+ interval: 80,
2424
+ frames: [
2425
+ " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2426
+ "\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2427
+ "\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2428
+ "\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2429
+ "\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2430
+ "\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2431
+ "\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2432
+ "\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2433
+ "\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2434
+ "\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2435
+ " \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2436
+ " \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2437
+ " \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2438
+ " \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2439
+ " \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2440
+ " \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2441
+ " \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2442
+ " \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2443
+ " \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2444
+ " \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2445
+ " \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2446
+ " \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
2447
+ " \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
2448
+ " \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
2449
+ " \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
2450
+ " \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
2451
+ " \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
2452
+ " \u263A \u2588\u2588\u2588\xA3\xA3\xA3 ",
2453
+ " \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
2454
+ " \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
2455
+ " \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
2456
+ " \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
2457
+ " \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
2458
+ " \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
2459
+ " \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
2460
+ " \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
2461
+ " \u263A \u2588\u2588\xA3\xA3\xA3 ",
2462
+ " \u263A\u2588\u2588\xA3\xA3\xA3 ",
2463
+ " \u263A\u2588\u2588\xA3\xA3\xA3 ",
2464
+ " \u263A\u2593\u2588\xA3\xA3\xA3 ",
2465
+ " \u263A\u2593\u2588\xA3\xA3\xA3 ",
2466
+ " \u263A\u2592\u2588\xA3\xA3\xA3 ",
2467
+ " \u263A\u2592\u2588\xA3\xA3\xA3 ",
2468
+ " \u263A\u2591\u2588\xA3\xA3\xA3 ",
2469
+ " \u263A\u2591\u2588\xA3\xA3\xA3 ",
2470
+ " \u263A \u2588\xA3\xA3\xA3 ",
2471
+ " \u263A\u2588\xA3\xA3\xA3 ",
2472
+ " \u263A\u2588\xA3\xA3\xA3 ",
2473
+ " \u263A\u2593\xA3\xA3\xA3 ",
2474
+ " \u263A\u2593\xA3\xA3\xA3 ",
2475
+ " \u263A\u2592\xA3\xA3\xA3 ",
2476
+ " \u263A\u2592\xA3\xA3\xA3 ",
2477
+ " \u263A\u2591\xA3\xA3\xA3 ",
2478
+ " \u263A\u2591\xA3\xA3\xA3 ",
2479
+ " \u263A \xA3\xA3\xA3 ",
2480
+ " \u263A\xA3\xA3\xA3 ",
2481
+ " \u263A\xA3\xA3\xA3 ",
2482
+ " \u263A\u2593\xA3\xA3 ",
2483
+ " \u263A\u2593\xA3\xA3 ",
2484
+ " \u263A\u2592\xA3\xA3 ",
2485
+ " \u263A\u2592\xA3\xA3 ",
2486
+ " \u263A\u2591\xA3\xA3 ",
2487
+ " \u263A\u2591\xA3\xA3 ",
2488
+ " \u263A \xA3\xA3 ",
2489
+ " \u263A\xA3\xA3 ",
2490
+ " \u263A\xA3\xA3 ",
2491
+ " \u263A\u2593\xA3 ",
2492
+ " \u263A\u2593\xA3 ",
2493
+ " \u263A\u2592\xA3 ",
2494
+ " \u263A\u2592\xA3 ",
2495
+ " \u263A\u2591\xA3 ",
2496
+ " \u263A\u2591\xA3 ",
2497
+ " \u263A \xA3 ",
2498
+ " \u263A\xA3 ",
2499
+ " \u263A\xA3 ",
2500
+ " \u263A\u2593 ",
2501
+ " \u263A\u2593 ",
2502
+ " \u263A\u2592 ",
2503
+ " \u263A\u2592 ",
2504
+ " \u263A\u2591 ",
2505
+ " \u263A\u2591 ",
2506
+ " \u263A ",
2507
+ " \u263A &",
2508
+ " \u263A \u263C&",
2509
+ " \u263A \u263C &",
2510
+ " \u263A\u263C &",
2511
+ " \u263A\u263C & ",
2512
+ " \u203C & ",
2513
+ " \u263A & ",
2514
+ " \u203C & ",
2515
+ " \u263A & ",
2516
+ " \u203C & ",
2517
+ " \u263A & ",
2518
+ "\u203C & ",
2519
+ " & ",
2520
+ " & ",
2521
+ " & \u2591 ",
2522
+ " & \u2592 ",
2523
+ " & \u2593 ",
2524
+ " & \xA3 ",
2525
+ " & \u2591\xA3 ",
2526
+ " & \u2592\xA3 ",
2527
+ " & \u2593\xA3 ",
2528
+ " & \xA3\xA3 ",
2529
+ " & \u2591\xA3\xA3 ",
2530
+ " & \u2592\xA3\xA3 ",
2531
+ "& \u2593\xA3\xA3 ",
2532
+ "& \xA3\xA3\xA3 ",
2533
+ " \u2591\xA3\xA3\xA3 ",
2534
+ " \u2592\xA3\xA3\xA3 ",
2535
+ " \u2593\xA3\xA3\xA3 ",
2536
+ " \u2588\xA3\xA3\xA3 ",
2537
+ " \u2591\u2588\xA3\xA3\xA3 ",
2538
+ " \u2592\u2588\xA3\xA3\xA3 ",
2539
+ " \u2593\u2588\xA3\xA3\xA3 ",
2540
+ " \u2588\u2588\xA3\xA3\xA3 ",
2541
+ " \u2591\u2588\u2588\xA3\xA3\xA3 ",
2542
+ " \u2592\u2588\u2588\xA3\xA3\xA3 ",
2543
+ " \u2593\u2588\u2588\xA3\xA3\xA3 ",
2544
+ " \u2588\u2588\u2588\xA3\xA3\xA3 ",
2545
+ " \u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
2546
+ " \u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
2547
+ " \u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
2548
+ " \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2549
+ " \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2550
+ " \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2551
+ " \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2552
+ " \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2553
+ " \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2554
+ " \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2555
+ " \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2556
+ " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2557
+ " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "
2558
+ ]
2559
+ }
2560
+ };
2561
+
2562
+ // ../../node_modules/.pnpm/cli-spinners@3.2.1/node_modules/cli-spinners/index.js
2563
+ var cli_spinners_default = spinners_default;
2564
+ var spinnersList = Object.keys(spinners_default);
2565
+
2566
+ // ../../node_modules/.pnpm/log-symbols@7.0.1/node_modules/log-symbols/symbols.js
2567
+ var symbols_exports = {};
2568
+ __export(symbols_exports, {
2569
+ error: () => error,
2570
+ info: () => info,
2571
+ success: () => success,
2572
+ warning: () => warning
2573
+ });
2574
+
2575
+ // ../../node_modules/.pnpm/yoctocolors@2.1.2/node_modules/yoctocolors/base.js
2576
+ var import_node_tty2 = __toESM(require("tty"), 1);
2577
+ var hasColors = import_node_tty2.default?.WriteStream?.prototype?.hasColors?.() ?? false;
2578
+ var format = (open, close) => {
2579
+ if (!hasColors) {
2580
+ return (input) => input;
2581
+ }
2582
+ const openCode = `\x1B[${open}m`;
2583
+ const closeCode = `\x1B[${close}m`;
2584
+ return (input) => {
2585
+ const string = input + "";
2586
+ let index = string.indexOf(closeCode);
2587
+ if (index === -1) {
2588
+ return openCode + string + closeCode;
2589
+ }
2590
+ let result = openCode;
2591
+ let lastIndex = 0;
2592
+ const reopenOnNestedClose = close === 22;
2593
+ const replaceCode = (reopenOnNestedClose ? closeCode : "") + openCode;
2594
+ while (index !== -1) {
2595
+ result += string.slice(lastIndex, index) + replaceCode;
2596
+ lastIndex = index + closeCode.length;
2597
+ index = string.indexOf(closeCode, lastIndex);
2598
+ }
2599
+ result += string.slice(lastIndex) + closeCode;
2600
+ return result;
2601
+ };
2602
+ };
2603
+ var reset = format(0, 0);
2604
+ var bold = format(1, 22);
2605
+ var dim = format(2, 22);
2606
+ var italic = format(3, 23);
2607
+ var underline = format(4, 24);
2608
+ var overline = format(53, 55);
2609
+ var inverse = format(7, 27);
2610
+ var hidden = format(8, 28);
2611
+ var strikethrough = format(9, 29);
2612
+ var black = format(30, 39);
2613
+ var red = format(31, 39);
2614
+ var green = format(32, 39);
2615
+ var yellow = format(33, 39);
2616
+ var blue = format(34, 39);
2617
+ var magenta = format(35, 39);
2618
+ var cyan = format(36, 39);
2619
+ var white = format(37, 39);
2620
+ var gray = format(90, 39);
2621
+ var bgBlack = format(40, 49);
2622
+ var bgRed = format(41, 49);
2623
+ var bgGreen = format(42, 49);
2624
+ var bgYellow = format(43, 49);
2625
+ var bgBlue = format(44, 49);
2626
+ var bgMagenta = format(45, 49);
2627
+ var bgCyan = format(46, 49);
2628
+ var bgWhite = format(47, 49);
2629
+ var bgGray = format(100, 49);
2630
+ var redBright = format(91, 39);
2631
+ var greenBright = format(92, 39);
2632
+ var yellowBright = format(93, 39);
2633
+ var blueBright = format(94, 39);
2634
+ var magentaBright = format(95, 39);
2635
+ var cyanBright = format(96, 39);
2636
+ var whiteBright = format(97, 39);
2637
+ var bgRedBright = format(101, 49);
2638
+ var bgGreenBright = format(102, 49);
2639
+ var bgYellowBright = format(103, 49);
2640
+ var bgBlueBright = format(104, 49);
2641
+ var bgMagentaBright = format(105, 49);
2642
+ var bgCyanBright = format(106, 49);
2643
+ var bgWhiteBright = format(107, 49);
2644
+
2645
+ // ../../node_modules/.pnpm/is-unicode-supported@2.1.0/node_modules/is-unicode-supported/index.js
2646
+ var import_node_process4 = __toESM(require("process"), 1);
2647
+ function isUnicodeSupported() {
2648
+ const { env: env2 } = import_node_process4.default;
2649
+ const { TERM, TERM_PROGRAM } = env2;
2650
+ if (import_node_process4.default.platform !== "win32") {
2651
+ return TERM !== "linux";
2652
+ }
2653
+ 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";
2654
+ }
2655
+
2656
+ // ../../node_modules/.pnpm/log-symbols@7.0.1/node_modules/log-symbols/symbols.js
2657
+ var _isUnicodeSupported = isUnicodeSupported();
2658
+ var info = blue(_isUnicodeSupported ? "\u2139" : "i");
2659
+ var success = green(_isUnicodeSupported ? "\u2714" : "\u221A");
2660
+ var warning = yellow(_isUnicodeSupported ? "\u26A0" : "\u203C");
2661
+ var error = red(_isUnicodeSupported ? "\u2716" : "\xD7");
2662
+
2663
+ // ../../node_modules/.pnpm/ansi-regex@6.2.0/node_modules/ansi-regex/index.js
2664
+ function ansiRegex({ onlyFirst = false } = {}) {
2665
+ const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
2666
+ const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
2667
+ const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
2668
+ const pattern = `${osc}|${csi}`;
2669
+ return new RegExp(pattern, onlyFirst ? void 0 : "g");
2670
+ }
2671
+
2672
+ // ../../node_modules/.pnpm/strip-ansi@7.1.2/node_modules/strip-ansi/index.js
2673
+ var regex = ansiRegex();
2674
+ function stripAnsi(string) {
2675
+ if (typeof string !== "string") {
2676
+ throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
2677
+ }
2678
+ return string.replace(regex, "");
2679
+ }
2680
+
2681
+ // ../../node_modules/.pnpm/get-east-asian-width@1.3.1/node_modules/get-east-asian-width/lookup.js
2682
+ function isAmbiguous(x) {
2683
+ 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;
2684
+ }
2685
+ function isFullWidth(x) {
2686
+ return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
2687
+ }
2688
+ function isWide(x) {
2689
+ return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
2690
+ }
2691
+
2692
+ // ../../node_modules/.pnpm/get-east-asian-width@1.3.1/node_modules/get-east-asian-width/index.js
2693
+ function validate(codePoint) {
2694
+ if (!Number.isSafeInteger(codePoint)) {
2695
+ throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
2696
+ }
2697
+ }
2698
+ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
2699
+ validate(codePoint);
2700
+ if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
2701
+ return 2;
2702
+ }
2703
+ return 1;
2704
+ }
2705
+
2706
+ // ../../node_modules/.pnpm/string-width@8.1.0/node_modules/string-width/index.js
2707
+ var segmenter = new Intl.Segmenter();
2708
+ var zeroWidthClusterRegex = /^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Mark}|\p{Surrogate})+$/v;
2709
+ var leadingNonPrintingRegex = /^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Mark}\p{Surrogate}]+/v;
2710
+ var rgiEmojiRegex = /^\p{RGI_Emoji}$/v;
2711
+ function baseVisible(segment) {
2712
+ return segment.replace(leadingNonPrintingRegex, "");
2713
+ }
2714
+ function isZeroWidthCluster(segment) {
2715
+ return zeroWidthClusterRegex.test(segment);
2716
+ }
2717
+ function trailingHalfwidthWidth(segment, eastAsianWidthOptions) {
2718
+ let extra = 0;
2719
+ if (segment.length > 1) {
2720
+ for (const char of segment.slice(1)) {
2721
+ if (char >= "\uFF00" && char <= "\uFFEF") {
2722
+ extra += eastAsianWidth(char.codePointAt(0), eastAsianWidthOptions);
2723
+ }
2724
+ }
2725
+ }
2726
+ return extra;
2727
+ }
2728
+ function stringWidth(input, options = {}) {
2729
+ if (typeof input !== "string" || input.length === 0) {
2730
+ return 0;
2731
+ }
2732
+ const {
2733
+ ambiguousIsNarrow = true,
2734
+ countAnsiEscapeCodes = false
2735
+ } = options;
2736
+ let string = input;
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 } of segmenter.segment(string)) {
2746
+ if (isZeroWidthCluster(segment)) {
2747
+ continue;
2748
+ }
2749
+ if (rgiEmojiRegex.test(segment)) {
2750
+ width += 2;
2751
+ continue;
2752
+ }
2753
+ const codePoint = baseVisible(segment).codePointAt(0);
2754
+ width += eastAsianWidth(codePoint, eastAsianWidthOptions);
2755
+ width += trailingHalfwidthWidth(segment, eastAsianWidthOptions);
2756
+ }
2757
+ return width;
2758
+ }
2759
+
2760
+ // ../../node_modules/.pnpm/is-interactive@2.0.0/node_modules/is-interactive/index.js
2761
+ function isInteractive({ stream = process.stdout } = {}) {
2762
+ return Boolean(
2763
+ stream && stream.isTTY && process.env.TERM !== "dumb" && !("CI" in process.env)
2764
+ );
2765
+ }
2766
+
2767
+ // ../../node_modules/.pnpm/stdin-discarder@0.2.2/node_modules/stdin-discarder/index.js
2768
+ var import_node_process5 = __toESM(require("process"), 1);
2769
+ var ASCII_ETX_CODE = 3;
2770
+ var StdinDiscarder = class {
2771
+ #activeCount = 0;
2772
+ start() {
2773
+ this.#activeCount++;
2774
+ if (this.#activeCount === 1) {
2775
+ this.#realStart();
2776
+ }
2777
+ }
2778
+ stop() {
2779
+ if (this.#activeCount <= 0) {
2780
+ throw new Error("`stop` called more times than `start`");
2781
+ }
2782
+ this.#activeCount--;
2783
+ if (this.#activeCount === 0) {
2784
+ this.#realStop();
2785
+ }
2786
+ }
2787
+ #realStart() {
2788
+ if (import_node_process5.default.platform === "win32" || !import_node_process5.default.stdin.isTTY) {
2789
+ return;
2790
+ }
2791
+ import_node_process5.default.stdin.setRawMode(true);
2792
+ import_node_process5.default.stdin.on("data", this.#handleInput);
2793
+ import_node_process5.default.stdin.resume();
2794
+ }
2795
+ #realStop() {
2796
+ if (!import_node_process5.default.stdin.isTTY) {
2797
+ return;
2798
+ }
2799
+ import_node_process5.default.stdin.off("data", this.#handleInput);
2800
+ import_node_process5.default.stdin.pause();
2801
+ import_node_process5.default.stdin.setRawMode(false);
2802
+ }
2803
+ #handleInput(chunk) {
2804
+ if (chunk[0] === ASCII_ETX_CODE) {
2805
+ import_node_process5.default.emit("SIGINT");
2806
+ }
2807
+ }
2808
+ };
2809
+ var stdinDiscarder = new StdinDiscarder();
2810
+ var stdin_discarder_default = stdinDiscarder;
2811
+
2812
+ // ../../node_modules/.pnpm/ora@9.0.0/node_modules/ora/index.js
2813
+ var Ora = class {
2814
+ #linesToClear = 0;
2815
+ #isDiscardingStdin = false;
2816
+ #lineCount = 0;
2817
+ #frameIndex = -1;
2818
+ #lastSpinnerFrameTime = 0;
2819
+ #lastIndent = 0;
2820
+ #options;
2821
+ #spinner;
2822
+ #stream;
2823
+ #id;
2824
+ #initialInterval;
2825
+ #isEnabled;
2826
+ #isSilent;
2827
+ #indent;
2828
+ #text;
2829
+ #prefixText;
2830
+ #suffixText;
2831
+ color;
2832
+ constructor(options) {
2833
+ if (typeof options === "string") {
2834
+ options = {
2835
+ text: options
2836
+ };
2837
+ }
2838
+ this.#options = {
2839
+ color: "cyan",
2840
+ stream: import_node_process6.default.stderr,
2841
+ discardStdin: true,
2842
+ hideCursor: true,
2843
+ ...options
2844
+ };
2845
+ this.color = this.#options.color;
2846
+ this.spinner = this.#options.spinner;
2847
+ this.#initialInterval = this.#options.interval;
2848
+ this.#stream = this.#options.stream;
2849
+ this.#isEnabled = typeof this.#options.isEnabled === "boolean" ? this.#options.isEnabled : isInteractive({ stream: this.#stream });
2850
+ this.#isSilent = typeof this.#options.isSilent === "boolean" ? this.#options.isSilent : false;
2851
+ this.text = this.#options.text;
2852
+ this.prefixText = this.#options.prefixText;
2853
+ this.suffixText = this.#options.suffixText;
2854
+ this.indent = this.#options.indent;
2855
+ if (import_node_process6.default.env.NODE_ENV === "test") {
2856
+ this._stream = this.#stream;
2857
+ this._isEnabled = this.#isEnabled;
2858
+ Object.defineProperty(this, "_linesToClear", {
2859
+ get() {
2860
+ return this.#linesToClear;
2861
+ },
2862
+ set(newValue) {
2863
+ this.#linesToClear = newValue;
2864
+ }
2865
+ });
2866
+ Object.defineProperty(this, "_frameIndex", {
2867
+ get() {
2868
+ return this.#frameIndex;
2869
+ }
2870
+ });
2871
+ Object.defineProperty(this, "_lineCount", {
2872
+ get() {
2873
+ return this.#lineCount;
2874
+ }
2875
+ });
2876
+ }
2877
+ }
2878
+ get indent() {
2879
+ return this.#indent;
2880
+ }
2881
+ set indent(indent = 0) {
2882
+ if (!(indent >= 0 && Number.isInteger(indent))) {
2883
+ throw new Error("The `indent` option must be an integer from 0 and up");
2884
+ }
2885
+ this.#indent = indent;
2886
+ this.#updateLineCount();
2887
+ }
2888
+ get interval() {
2889
+ return this.#initialInterval ?? this.#spinner.interval ?? 100;
2890
+ }
2891
+ get spinner() {
2892
+ return this.#spinner;
2893
+ }
2894
+ set spinner(spinner) {
2895
+ this.#frameIndex = -1;
2896
+ this.#initialInterval = void 0;
2897
+ if (typeof spinner === "object") {
2898
+ if (!Array.isArray(spinner.frames) || spinner.frames.length === 0 || spinner.frames.some((frame) => typeof frame !== "string")) {
2899
+ throw new Error("The given spinner must have a non-empty `frames` array of strings");
2900
+ }
2901
+ if (spinner.interval !== void 0 && !(Number.isInteger(spinner.interval) && spinner.interval > 0)) {
2902
+ throw new Error("`spinner.interval` must be a positive integer if provided");
2903
+ }
2904
+ this.#spinner = spinner;
2905
+ } else if (!isUnicodeSupported()) {
2906
+ this.#spinner = cli_spinners_default.line;
2907
+ } else if (spinner === void 0) {
2908
+ this.#spinner = cli_spinners_default.dots;
2909
+ } else if (spinner !== "default" && cli_spinners_default[spinner]) {
2910
+ this.#spinner = cli_spinners_default[spinner];
2911
+ } else {
2912
+ 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.`);
2913
+ }
2914
+ }
2915
+ get text() {
2916
+ return this.#text;
2917
+ }
2918
+ set text(value = "") {
2919
+ this.#text = value;
2920
+ this.#updateLineCount();
2921
+ }
2922
+ get prefixText() {
2923
+ return this.#prefixText;
2924
+ }
2925
+ set prefixText(value = "") {
2926
+ this.#prefixText = value;
2927
+ this.#updateLineCount();
2928
+ }
2929
+ get suffixText() {
2930
+ return this.#suffixText;
2931
+ }
2932
+ set suffixText(value = "") {
2933
+ this.#suffixText = value;
2934
+ this.#updateLineCount();
2935
+ }
2936
+ get isSpinning() {
2937
+ return this.#id !== void 0;
2938
+ }
2939
+ #formatAffix(value, separator, placeBefore = false) {
2940
+ const resolved = typeof value === "function" ? value() : value;
2941
+ if (typeof resolved === "string" && resolved !== "") {
2942
+ return placeBefore ? separator + resolved : resolved + separator;
2943
+ }
2944
+ return "";
2945
+ }
2946
+ #getFullPrefixText(prefixText = this.#prefixText, postfix = " ") {
2947
+ return this.#formatAffix(prefixText, postfix, false);
2948
+ }
2949
+ #getFullSuffixText(suffixText = this.#suffixText, prefix = " ") {
2950
+ return this.#formatAffix(suffixText, prefix, true);
2951
+ }
2952
+ #computeLineCountFrom(text, columns) {
2953
+ let count = 0;
2954
+ for (const line of stripAnsi(text).split("\n")) {
2955
+ count += Math.max(1, Math.ceil(stringWidth(line) / columns));
2956
+ }
2957
+ return count;
2958
+ }
2959
+ #updateLineCount() {
2960
+ const columns = this.#stream.columns ?? 80;
2961
+ const prefixText = typeof this.#prefixText === "function" ? "" : this.#prefixText;
2962
+ const suffixText = typeof this.#suffixText === "function" ? "" : this.#suffixText;
2963
+ const fullPrefixText = typeof prefixText === "string" && prefixText !== "" ? prefixText + " " : "";
2964
+ const fullSuffixText = typeof suffixText === "string" && suffixText !== "" ? " " + suffixText : "";
2965
+ const spinnerChar = "-";
2966
+ const fullText = " ".repeat(this.#indent) + fullPrefixText + spinnerChar + (typeof this.#text === "string" ? " " + this.#text : "") + fullSuffixText;
2967
+ this.#lineCount = this.#computeLineCountFrom(fullText, columns);
2968
+ }
2969
+ get isEnabled() {
2970
+ return this.#isEnabled && !this.#isSilent;
2971
+ }
2972
+ set isEnabled(value) {
2973
+ if (typeof value !== "boolean") {
2974
+ throw new TypeError("The `isEnabled` option must be a boolean");
2975
+ }
2976
+ this.#isEnabled = value;
2977
+ }
2978
+ get isSilent() {
2979
+ return this.#isSilent;
2980
+ }
2981
+ set isSilent(value) {
2982
+ if (typeof value !== "boolean") {
2983
+ throw new TypeError("The `isSilent` option must be a boolean");
2984
+ }
2985
+ this.#isSilent = value;
2986
+ }
2987
+ frame() {
2988
+ const now = Date.now();
2989
+ if (this.#frameIndex === -1 || now - this.#lastSpinnerFrameTime >= this.interval) {
2990
+ this.#frameIndex = ++this.#frameIndex % this.#spinner.frames.length;
2991
+ this.#lastSpinnerFrameTime = now;
2992
+ }
2993
+ const { frames } = this.#spinner;
2994
+ let frame = frames[this.#frameIndex];
2995
+ if (this.color) {
2996
+ frame = source_default[this.color](frame);
2997
+ }
2998
+ const fullPrefixText = this.#getFullPrefixText(this.#prefixText, " ");
2999
+ const fullText = typeof this.text === "string" ? " " + this.text : "";
3000
+ const fullSuffixText = this.#getFullSuffixText(this.#suffixText, " ");
3001
+ return fullPrefixText + frame + fullText + fullSuffixText;
3002
+ }
3003
+ clear() {
3004
+ if (!this.#isEnabled || !this.#stream.isTTY) {
3005
+ return this;
3006
+ }
3007
+ this.#stream.cursorTo(0);
3008
+ for (let index = 0; index < this.#linesToClear; index++) {
3009
+ if (index > 0) {
3010
+ this.#stream.moveCursor(0, -1);
3011
+ }
3012
+ this.#stream.clearLine(1);
3013
+ }
3014
+ if (this.#indent || this.#lastIndent !== this.#indent) {
3015
+ this.#stream.cursorTo(this.#indent);
3016
+ }
3017
+ this.#lastIndent = this.#indent;
3018
+ this.#linesToClear = 0;
3019
+ return this;
3020
+ }
3021
+ render() {
3022
+ if (!this.#isEnabled || this.#isSilent) {
3023
+ return this;
3024
+ }
3025
+ this.clear();
3026
+ let frameContent = this.frame();
3027
+ const columns = this.#stream.columns ?? 80;
3028
+ const actualLineCount = this.#computeLineCountFrom(frameContent, columns);
3029
+ const consoleHeight = this.#stream.rows;
3030
+ if (consoleHeight && consoleHeight > 1 && actualLineCount > consoleHeight) {
3031
+ const lines = frameContent.split("\n");
3032
+ const maxLines = consoleHeight - 1;
3033
+ frameContent = [...lines.slice(0, maxLines), "... (content truncated to fit terminal)"].join("\n");
3034
+ }
3035
+ this.#stream.write(frameContent);
3036
+ this.#linesToClear = this.#computeLineCountFrom(frameContent, columns);
3037
+ return this;
3038
+ }
3039
+ start(text) {
3040
+ if (text) {
3041
+ this.text = text;
3042
+ }
3043
+ if (this.#isSilent) {
3044
+ return this;
3045
+ }
3046
+ if (!this.#isEnabled) {
3047
+ const line = " ".repeat(this.#indent) + this.#getFullPrefixText(this.#prefixText, " ") + (this.text ? `- ${this.text}` : "") + this.#getFullSuffixText(this.#suffixText, " ");
3048
+ if (line.trim() !== "") {
3049
+ this.#stream.write(line + "\n");
3050
+ }
3051
+ return this;
3052
+ }
3053
+ if (this.isSpinning) {
3054
+ return this;
3055
+ }
3056
+ if (this.#options.hideCursor) {
3057
+ cli_cursor_default.hide(this.#stream);
3058
+ }
3059
+ if (this.#options.discardStdin && import_node_process6.default.stdin.isTTY) {
3060
+ this.#isDiscardingStdin = true;
3061
+ stdin_discarder_default.start();
3062
+ }
3063
+ this.render();
3064
+ this.#id = setInterval(this.render.bind(this), this.interval);
3065
+ return this;
3066
+ }
3067
+ stop() {
3068
+ clearInterval(this.#id);
3069
+ this.#id = void 0;
3070
+ this.#frameIndex = 0;
3071
+ if (this.#isEnabled) {
3072
+ this.clear();
3073
+ if (this.#options.hideCursor) {
3074
+ cli_cursor_default.show(this.#stream);
3075
+ }
3076
+ }
3077
+ if (this.#options.discardStdin && import_node_process6.default.stdin.isTTY && this.#isDiscardingStdin) {
3078
+ stdin_discarder_default.stop();
3079
+ this.#isDiscardingStdin = false;
3080
+ }
3081
+ return this;
3082
+ }
3083
+ succeed(text) {
3084
+ return this.stopAndPersist({ symbol: symbols_exports.success, text });
3085
+ }
3086
+ fail(text) {
3087
+ return this.stopAndPersist({ symbol: symbols_exports.error, text });
3088
+ }
3089
+ warn(text) {
3090
+ return this.stopAndPersist({ symbol: symbols_exports.warning, text });
3091
+ }
3092
+ info(text) {
3093
+ return this.stopAndPersist({ symbol: symbols_exports.info, text });
3094
+ }
3095
+ stopAndPersist(options = {}) {
3096
+ if (this.#isSilent) {
3097
+ return this;
3098
+ }
3099
+ const prefixText = options.prefixText ?? this.#prefixText;
3100
+ const fullPrefixText = this.#getFullPrefixText(prefixText, " ");
3101
+ const symbolText = options.symbol ?? " ";
3102
+ const text = options.text ?? this.text;
3103
+ const separatorText = symbolText ? " " : "";
3104
+ const fullText = typeof text === "string" ? separatorText + text : "";
3105
+ const suffixText = options.suffixText ?? this.#suffixText;
3106
+ const fullSuffixText = this.#getFullSuffixText(suffixText, " ");
3107
+ const textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + "\n";
3108
+ this.stop();
3109
+ this.#stream.write(textToWrite);
3110
+ return this;
3111
+ }
3112
+ };
3113
+ function ora(options) {
3114
+ return new Ora(options);
3115
+ }
31
3116
 
32
3117
  // src/context.ts
33
3118
  var import_node_buffer = require("buffer");
34
3119
  var import_node_fs = require("fs");
35
- var import_node_os = require("os");
3120
+ var import_node_os2 = require("os");
36
3121
  var import_node_path = require("path");
37
3122
  var import_anchor = require("@coral-xyz/anchor");
38
3123
  var import_bond_sdk = require("@jpool/bond-sdk");
@@ -42,12 +3127,12 @@ var context;
42
3127
  function useContext() {
43
3128
  return context;
44
3129
  }
45
- function initContext({ cluster, env, keypair }) {
3130
+ function initContext({ cluster, env: env2, keypair }) {
46
3131
  const opts = import_anchor.AnchorProvider.defaultOptions();
47
3132
  const connection = new import_web3.Connection(resolveRpcUrl(cluster), opts.commitment);
48
3133
  const wallet = new import_anchor.Wallet(resolveKeypair(keypair));
49
3134
  const provider = new import_anchor.AnchorProvider(connection, wallet, opts);
50
- const client = new import_bond_sdk.JBondClient(provider).env(env);
3135
+ const client = new import_bond_sdk.JBondClient(provider).env(env2);
51
3136
  return context = { keypair: wallet.payer, provider, client, cluster: cluster ?? DEFAULT_CLUSTER };
52
3137
  }
53
3138
  function resolveRpcUrl(cluster) {
@@ -73,7 +3158,7 @@ function resolveKeypair(path) {
73
3158
  buffer = (0, import_node_fs.readFileSync)(process.env.CLI_SOLANA_KEYPAIR);
74
3159
  } else {
75
3160
  buffer = (0, import_node_fs.readFileSync)(
76
- (0, import_node_path.join)((0, import_node_os.homedir)(), ".config", "solana", "id.json").replace(/\\/g, "/")
3161
+ (0, import_node_path.join)((0, import_node_os2.homedir)(), ".config", "solana", "id.json").replace(/\\/g, "/")
77
3162
  );
78
3163
  }
79
3164
  return import_web3.Keypair.fromSecretKey(
@@ -82,16 +3167,16 @@ function resolveKeypair(path) {
82
3167
  }
83
3168
 
84
3169
  // package.json
85
- var version = "1.5.2";
3170
+ var version = "1.5.3";
86
3171
 
87
3172
  // src/cli.ts
88
3173
  import_commander.program.name("jbond").description("CLI to interact with the JPool Bond program").version(process.env.VERSION ?? version).allowExcessArguments(false).option("-c, --cluster <CLUSTER>", "Solana cluster or RPC URL").option("-k, --keypair <KEYPAIR>", "Filepath to Solana keypair").hook("preAction", async (command) => {
89
3174
  const opts = command.opts();
90
3175
  const { provider, client } = initContext(opts);
91
- console.log(import_chalk.default.dim(`# Version: ${command.version()}`));
92
- console.log(import_chalk.default.dim(`# Program: ${client.programId}`));
93
- console.log(import_chalk.default.dim(`# Keypair: ${provider.wallet.publicKey}`));
94
- console.log(import_chalk.default.dim(`# Rpc Url: ${provider.connection.rpcEndpoint}`));
3176
+ console.log(source_default.dim(`# Version: ${command.version()}`));
3177
+ console.log(source_default.dim(`# Program: ${client.programId}`));
3178
+ console.log(source_default.dim(`# Keypair: ${provider.wallet.publicKey}`));
3179
+ console.log(source_default.dim(`# Rpc Url: ${provider.connection.rpcEndpoint}`));
95
3180
  console.log("\n");
96
3181
  }).hook("postAction", (_c) => {
97
3182
  process.exit();
@@ -101,37 +3186,37 @@ import_commander.program.command("info").description("Get global state informati
101
3186
  try {
102
3187
  const state = await client.getGlobalState();
103
3188
  if (!state) {
104
- console.log(import_chalk.default.yellow("Global state not initialized"));
3189
+ console.log(source_default.yellow("Global state not initialized"));
105
3190
  return;
106
3191
  }
107
- console.log(import_chalk.default.cyan("Global State Information:"));
108
- console.log(import_chalk.default.white(` Authority: ${state.authority}`));
109
- console.log(import_chalk.default.white(` Reserve: ${state.reserve}`));
110
- console.log(import_chalk.default.white(` Total Validators: ${state.totalValidators}`));
111
- console.log(import_chalk.default.white(` Total Compensation Amount: ${state.totalCompensationAmount.toString()}`));
3192
+ console.log(source_default.cyan("Global State Information:"));
3193
+ console.log(source_default.white(` Authority: ${state.authority}`));
3194
+ console.log(source_default.white(` Reserve: ${state.reserve}`));
3195
+ console.log(source_default.white(` Total Validators: ${state.totalValidators}`));
3196
+ console.log(source_default.white(` Total Compensation Amount: ${state.totalCompensationAmount.toString()}`));
112
3197
  const epochInfo = await provider.connection.getEpochInfo();
113
- console.log(import_chalk.default.white(` Current Epoch: ${epochInfo.epoch}`));
114
- } catch (error) {
115
- console.error(import_chalk.default.red(`Failed to get global state info: ${error}`));
3198
+ console.log(source_default.white(` Current Epoch: ${epochInfo.epoch}`));
3199
+ } catch (error2) {
3200
+ console.error(source_default.red(`Failed to get global state info: ${error2}`));
116
3201
  process.exit(1);
117
3202
  }
118
3203
  });
119
3204
  import_commander.program.command("initialize").description("Initialize the global state and reserve vault").requiredOption("-r, --reserve <address>", "Reserve vault address").option("-w, --claim-authority <pubkey>", "Claim authority (defaults to signer)").action(async (opts) => {
120
- const spinner = (0, import_ora.default)("Initializing global state...").start();
3205
+ const spinner = ora("Initializing global state...").start();
121
3206
  const { client } = useContext();
122
3207
  const reserve = new import_web32.PublicKey(opts.reserve);
123
3208
  const authority = opts.claimAuthority ? new import_web32.PublicKey(opts.claimAuthority) : void 0;
124
3209
  try {
125
3210
  const tx = await client.initialize({ reserve, authority });
126
- spinner.succeed(import_chalk.default.green(`Bond program initialized successfully!`));
127
- console.log(import_chalk.default.gray(`Transaction: ${tx}`));
128
- console.log(import_chalk.default.gray(`Reserve address: ${reserve.toString()}`));
129
- } catch (error) {
130
- spinner.fail(import_chalk.default.red(`Failed to initialize bond program: ${error}`));
3211
+ spinner.succeed(source_default.green(`Bond program initialized successfully!`));
3212
+ console.log(source_default.gray(`Transaction: ${tx}`));
3213
+ console.log(source_default.gray(`Reserve address: ${reserve.toString()}`));
3214
+ } catch (error2) {
3215
+ spinner.fail(source_default.red(`Failed to initialize bond program: ${error2}`));
131
3216
  }
132
3217
  });
133
3218
  import_commander.program.command("register-validator").description("Register validator and fund initial collateral").argument("<vote-account>", "Vote account public key").argument("<amount>", "Initial collateral amount in SOL").action(async (voteAccountStr, amount) => {
134
- const spinner = (0, import_ora.default)("Registering validator...").start();
3219
+ const spinner = ora("Registering validator...").start();
135
3220
  const { keypair, client } = useContext();
136
3221
  try {
137
3222
  const voteAccount = new import_web32.PublicKey(voteAccountStr);
@@ -144,17 +3229,17 @@ import_commander.program.command("register-validator").description("Register val
144
3229
  initialCollateral,
145
3230
  identity: keypair.publicKey
146
3231
  });
147
- spinner.succeed(import_chalk.default.green(`Validator registered successfully!`));
148
- console.log(import_chalk.default.gray(`Transaction: ${tx}`));
149
- console.log(import_chalk.default.gray(`Initial collateral: ${initialCollateral} SOL`));
150
- console.log(import_chalk.default.gray(`Validator: ${keypair.publicKey.toString()}`));
151
- console.log(import_chalk.default.gray(`Vote Account: ${voteAccountStr}`));
152
- } catch (error) {
153
- spinner.fail(import_chalk.default.red(`Failed to register validator: ${error}`));
3232
+ spinner.succeed(source_default.green(`Validator registered successfully!`));
3233
+ console.log(source_default.gray(`Transaction: ${tx}`));
3234
+ console.log(source_default.gray(`Initial collateral: ${initialCollateral} SOL`));
3235
+ console.log(source_default.gray(`Validator: ${keypair.publicKey.toString()}`));
3236
+ console.log(source_default.gray(`Vote Account: ${voteAccountStr}`));
3237
+ } catch (error2) {
3238
+ spinner.fail(source_default.red(`Failed to register validator: ${error2}`));
154
3239
  }
155
3240
  });
156
3241
  import_commander.program.command("topup-collateral").description("Top up collateral for existing validator").argument("<vote-account>", "Vote account public key").argument("<amount>", "Amount to top up in SOL").action(async (voteAccountStr, amount) => {
157
- const spinner = (0, import_ora.default)("Topping up collateral...").start();
3242
+ const spinner = ora("Topping up collateral...").start();
158
3243
  const { client } = useContext();
159
3244
  try {
160
3245
  const voteAccount = new import_web32.PublicKey(voteAccountStr);
@@ -163,16 +3248,16 @@ import_commander.program.command("topup-collateral").description("Top up collate
163
3248
  throw new Error("Invalid top-up amount");
164
3249
  }
165
3250
  const signature = await client.topUpCollateral({ voteAccount, amount: topUpAmount });
166
- spinner.succeed(import_chalk.default.green(`Collateral topped up successfully!`));
167
- console.log(import_chalk.default.gray(`Signature: ${signature}`));
168
- console.log(import_chalk.default.gray(`Top-up amount: ${topUpAmount} SOL`));
169
- } catch (error) {
170
- spinner.fail(import_chalk.default.red(`Failed to top up collateral: ${error}`));
3251
+ spinner.succeed(source_default.green(`Collateral topped up successfully!`));
3252
+ console.log(source_default.gray(`Signature: ${signature}`));
3253
+ console.log(source_default.gray(`Top-up amount: ${topUpAmount} SOL`));
3254
+ } catch (error2) {
3255
+ spinner.fail(source_default.red(`Failed to top up collateral: ${error2}`));
171
3256
  process.exit(1);
172
3257
  }
173
3258
  });
174
3259
  import_commander.program.command("withdraw-collateral").description("Withdraw collateral from validator bond account").argument("<vote-account>", "Vote account public key").argument("<destination>", "Destination address for withdrawn funds").argument("<amount>", "Amount to withdraw in SOL").action(async (voteAccountStr, destinationStr, amount) => {
175
- const spinner = (0, import_ora.default)("Withdrawing collateral...").start();
3260
+ const spinner = ora("Withdrawing collateral...").start();
176
3261
  const { client } = useContext();
177
3262
  try {
178
3263
  const voteAccount = new import_web32.PublicKey(voteAccountStr);
@@ -186,17 +3271,17 @@ import_commander.program.command("withdraw-collateral").description("Withdraw co
186
3271
  throw new Error("Validator bond account not found");
187
3272
  }
188
3273
  const tx = await client.withdrawCollateral({ voteAccount, destination, amount: withdrawAmount });
189
- spinner.succeed(import_chalk.default.green(`Collateral withdrawn successfully!`));
190
- console.log(import_chalk.default.gray(`Transaction: ${tx}`));
191
- console.log(import_chalk.default.gray(`Amount withdrawn: ${withdrawAmount} SOL`));
192
- console.log(import_chalk.default.gray(`Destination: ${destinationStr}`));
193
- } catch (error) {
194
- spinner.fail(import_chalk.default.red(`Failed to withdraw collateral: ${error}`));
3274
+ spinner.succeed(source_default.green(`Collateral withdrawn successfully!`));
3275
+ console.log(source_default.gray(`Transaction: ${tx}`));
3276
+ console.log(source_default.gray(`Amount withdrawn: ${withdrawAmount} SOL`));
3277
+ console.log(source_default.gray(`Destination: ${destinationStr}`));
3278
+ } catch (error2) {
3279
+ spinner.fail(source_default.red(`Failed to withdraw collateral: ${error2}`));
195
3280
  process.exit(1);
196
3281
  }
197
3282
  });
198
3283
  import_commander.program.command("claim-compensation").description("Claim compensation from validator to reserve").argument("<vote-account>", "Vote account public key").argument("<amount>", "Amount to withdraw in SOL").action(async (voteAccountStr, amount) => {
199
- const spinner = (0, import_ora.default)("Claiming compensation...").start();
3284
+ const spinner = ora("Claiming compensation...").start();
200
3285
  const { client } = useContext();
201
3286
  try {
202
3287
  const voteAccount = new import_web32.PublicKey(voteAccountStr);
@@ -208,11 +3293,11 @@ import_commander.program.command("claim-compensation").description("Claim compen
208
3293
  voteAccount,
209
3294
  amount: withdrawAmount
210
3295
  });
211
- spinner.succeed(import_chalk.default.green(`Compensation withdrawn successfully!`));
212
- console.log(import_chalk.default.gray(`Transaction: ${tx}`));
213
- console.log(import_chalk.default.gray(`Amount: ${withdrawAmount} SOL`));
214
- } catch (error) {
215
- spinner.fail(import_chalk.default.red(`Failed to withdraw compensation: ${error}`));
3296
+ spinner.succeed(source_default.green(`Compensation withdrawn successfully!`));
3297
+ console.log(source_default.gray(`Transaction: ${tx}`));
3298
+ console.log(source_default.gray(`Amount: ${withdrawAmount} SOL`));
3299
+ } catch (error2) {
3300
+ spinner.fail(source_default.red(`Failed to withdraw compensation: ${error2}`));
216
3301
  process.exit(1);
217
3302
  }
218
3303
  });
@@ -221,35 +3306,35 @@ import_commander.program.command("validator-info").description("Get validator bo
221
3306
  try {
222
3307
  const voteAccount = new import_web32.PublicKey(voteAccountStr);
223
3308
  const [validatorBondAddress] = client.pda.validatorBond(voteAccount);
224
- console.log(import_chalk.default.gray(`Validator Bond Address: ${validatorBondAddress.toString()}`));
3309
+ console.log(source_default.gray(`Validator Bond Address: ${validatorBondAddress.toString()}`));
225
3310
  const state = await client.getValidatorBond(
226
3311
  voteAccount
227
3312
  );
228
3313
  if (!state) {
229
- console.log(import_chalk.default.yellow("Validator bond account not found"));
3314
+ console.log(source_default.yellow("Validator bond account not found"));
230
3315
  return;
231
3316
  }
232
- console.log(import_chalk.default.cyan("\nValidator Bond Account Information:"));
233
- console.log(import_chalk.default.white(` Validator: ${state.identity}`));
234
- console.log(import_chalk.default.white(` Vote Account: ${state.voteAccount}`));
3317
+ console.log(source_default.cyan("\nValidator Bond Account Information:"));
3318
+ console.log(source_default.white(` Validator: ${state.identity}`));
3319
+ console.log(source_default.white(` Vote Account: ${state.voteAccount}`));
235
3320
  if (state.withdrawalAuthority) {
236
- console.log(import_chalk.default.white(` Withdrawal Authority: ${state.withdrawalAuthority}`));
3321
+ console.log(source_default.white(` Withdrawal Authority: ${state.withdrawalAuthority}`));
237
3322
  } else {
238
- console.log(import_chalk.default.white(` Withdrawal Authority: Not set (identity only)`));
3323
+ console.log(source_default.white(` Withdrawal Authority: Not set (identity only)`));
239
3324
  }
240
3325
  console.log(
241
- import_chalk.default.white(
242
- ` Active: ${state.isActive ? import_chalk.default.green("Yes") : import_chalk.default.red("No")}`
3326
+ source_default.white(
3327
+ ` Active: ${state.isActive ? source_default.green("Yes") : source_default.red("No")}`
243
3328
  )
244
3329
  );
245
- console.log(import_chalk.default.white(` Created At: ${state.createdAt}`));
246
- } catch (error) {
247
- console.error(import_chalk.default.red(`Failed to get validator info: ${error}`));
3330
+ console.log(source_default.white(` Created At: ${state.createdAt}`));
3331
+ } catch (error2) {
3332
+ console.error(source_default.red(`Failed to get validator info: ${error2}`));
248
3333
  process.exit(1);
249
3334
  }
250
3335
  });
251
3336
  import_commander.program.command("set-withdraw-authority").description("Set or update withdrawal authority for validator bond").argument("<vote-account>", "Vote account public key").option("-w, --new-authority <pubkey>", "New withdrawal authority (omit to remove authority)").action(async (voteAccountStr, options) => {
252
- const spinner = (0, import_ora.default)("Setting withdrawal authority...").start();
3337
+ const spinner = ora("Setting withdrawal authority...").start();
253
3338
  const { client, keypair } = useContext();
254
3339
  try {
255
3340
  const voteAccount = new import_web32.PublicKey(voteAccountStr);
@@ -265,20 +3350,20 @@ import_commander.program.command("set-withdraw-authority").description("Set or u
265
3350
  voteAccount,
266
3351
  newWithdrawAuthority
267
3352
  });
268
- spinner.succeed(import_chalk.default.green(`Withdrawal authority updated successfully!`));
269
- console.log(import_chalk.default.gray(`Transaction: ${tx}`));
3353
+ spinner.succeed(source_default.green(`Withdrawal authority updated successfully!`));
3354
+ console.log(source_default.gray(`Transaction: ${tx}`));
270
3355
  if (newWithdrawAuthority) {
271
- console.log(import_chalk.default.gray(`New withdrawal authority: ${newWithdrawAuthority.toString()}`));
3356
+ console.log(source_default.gray(`New withdrawal authority: ${newWithdrawAuthority.toString()}`));
272
3357
  } else {
273
- console.log(import_chalk.default.gray(`Withdrawal authority removed (identity only)`));
3358
+ console.log(source_default.gray(`Withdrawal authority removed (identity only)`));
274
3359
  }
275
- } catch (error) {
276
- spinner.fail(import_chalk.default.red(`Failed to set withdrawal authority: ${error}`));
3360
+ } catch (error2) {
3361
+ spinner.fail(source_default.red(`Failed to set withdrawal authority: ${error2}`));
277
3362
  process.exit(1);
278
3363
  }
279
3364
  });
280
3365
  import_commander.program.command("configure").description("Update program configuration (authority and/or reserve)").option("-a, --new-authority <pubkey>", "New authority address").option("-r, --new-reserve <pubkey>", "New reserve address").action(async (opts) => {
281
- const spinner = (0, import_ora.default)("Updating program configuration...").start();
3366
+ const spinner = ora("Updating program configuration...").start();
282
3367
  const { client } = useContext();
283
3368
  try {
284
3369
  if (!opts.newAuthority && !opts.newReserve) {
@@ -290,16 +3375,16 @@ import_commander.program.command("configure").description("Update program config
290
3375
  newAuthority,
291
3376
  newReserve
292
3377
  });
293
- spinner.succeed(import_chalk.default.green(`Program configuration updated successfully!`));
294
- console.log(import_chalk.default.gray(`Transaction: ${tx}`));
3378
+ spinner.succeed(source_default.green(`Program configuration updated successfully!`));
3379
+ console.log(source_default.gray(`Transaction: ${tx}`));
295
3380
  if (newAuthority) {
296
- console.log(import_chalk.default.gray(`New authority: ${newAuthority.toString()}`));
3381
+ console.log(source_default.gray(`New authority: ${newAuthority.toString()}`));
297
3382
  }
298
3383
  if (newReserve) {
299
- console.log(import_chalk.default.gray(`New reserve: ${newReserve.toString()}`));
3384
+ console.log(source_default.gray(`New reserve: ${newReserve.toString()}`));
300
3385
  }
301
- } catch (error) {
302
- spinner.fail(import_chalk.default.red(`Failed to update configuration: ${error}`));
3386
+ } catch (error2) {
3387
+ spinner.fail(source_default.red(`Failed to update configuration: ${error2}`));
303
3388
  process.exit(1);
304
3389
  }
305
3390
  });
@@ -307,10 +3392,10 @@ import_commander.program.command("*", { isDefault: true, hidden: true }).allowEx
307
3392
  import_commander.program.help();
308
3393
  });
309
3394
  import_commander.program.parseAsync().catch((e) => {
310
- console.log(import_chalk.default.red(e.message));
3395
+ console.log(source_default.red(e.message));
311
3396
  if (e.logs) {
312
3397
  console.log(
313
- import_chalk.default.red(JSON.stringify(e.logs, null, 2))
3398
+ source_default.red(JSON.stringify(e.logs, null, 2))
314
3399
  );
315
3400
  }
316
3401
  process.exit();